ブログ一覧
2024年振り返り - Blogress
ブログ自体久しぶり(3年くらい?)の更新ですが、2024年を振り返ります。 意図せずして、Kaggle Competitions Expertになってしまった まずはこれです。 完全に運ゲーかましてしまいました。個人的にあまり嬉しくないというのが正直なところ。 元々、M2の時にGoogle Smartphone Decimeter Challengeで銀メダルを持っていた状態でした(これ自体は2,3ヶ月くらい頑張って取り組みました)。 そこから月日は流れ社会人になり、コンペに参加しては特にフルコミットもできずという不完全燃焼を繰り返していました。 Kaggleだけではなく、atmacup17,…
【青果×ポケモン】シンオウ地方ポケモンに青果商品のニックネームをつける - Blogress
タイトルでわかるとおり、ネタ回です。 はじめに スーパーは好きですか。僕は好きです。 コンビニは割高なので、原則スーパーでしか買い物をしません。 また、超(スーパー)アルバイターとして約4年ほど働き、精肉、鮮魚、青果と渡り歩いてきました。 ポケモンは好きですか。僕は好きです。 11月19日発売のダイパリメイクに向け、旅パを考えるくらいには発売を楽しみにしています(パール購入予定)。 旅パは固まりつつも、旅をしていく上で、もう一つ重要な要素があります。 そうです。ニックネームです。 ニックネームをつけなければ愛着というものが欠如してしまいます。 つまり、旅パのポケモンたちを超(スーパー)ポケモン…

スライディングウィンドウ処理をしたIMUセンサデータに対して、クラスタリングによるパターン抽出は有効か否か - Blogress
はじめに 以前、Twitterにて 前略ーー時系列データをsliding windowで切り取ってkmeansしてパターン見つけるみたいな手法あるけどそれやると正弦波になって意味ないでみたいな話を思い出したーー後略 というものを見かけました。 時系列データの前処理として、スライディングウィンドウ処理で部分時系列を作り、それを特徴ベクトルとして機械学習で予測する、みたいなことは何度も経験があるので、k-meansの中心点が正弦波(位相は問わない?)になるというのはとても興味深いです。 ツイートを見かけたときは「へー」くらいに思って、いいねしてたのですが、今回は気になったので、自分の持っているデー…

LSTMによる時系列データの教師なし異常検知 - Blogress
はじめに 以前(といってもかなり前)、オートエンコーダによる時系列データの教師なし異常検知に関して記事を書きました。 今回はその続きで、同じ心電図データを用いて、LSTMによる異常検知をしたいと思います。 noleff.hatenablog.com プログラム import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from tensorflow.keras.models import Sequential from…

Google Smartphone Decimeter Challengeの解法 - Blogress
Google Smartphone Decimeter Challenge 概要はこちら post-processing approach snap to grid (snap to ground truth) 地理情報を取得し、最寄りの位置(地理情報)に予測位置を補正する手法です。 このnotebookでは、地理情報のみのアプローチですが、trainデータとtestデータで同じ経路を通っている場所も一部あることから、trainデータのground truthもsnap対象としました。 なお、最寄りの緯度経度を見つけるのは気軽に叩けないほど時間がかかりました。 Road detection a…

初参加のKaggleで銀メダルとるためにしたこと(Google Smartphone Decimeter Challenge) - Blogress
solutionはこちら はじめに 先日終了したGoogle Smartphone Decimeter Challenge(通称outdoorコンペ)に参加し、銀メダル(34位/810teams)をとることができました。 Kaggle初参加でしたが、相方の後輩とえっちらほっちらと蛇行しながらも、前に進めることができた結果が実ったのだと思っています。 outdoorコンペの振り返りとともに、約2ヶ月間何をしたかをまとめていきたいと思います。 www.kaggle.com outdoorコンペ概要 スマートフォン(Android)から得られるデータから、位置(緯度・経度)を推定するコンペでした。 …

groupbyしてvalue_counts()したい - Blogress
タイトル通りです。 データ import pandas as pd from sklearn.preprocessing import LabelEncoder df = pd.DataFrame([ ['Aさん', 100, 'S', 'cola'], ['Bさん', 150, 'M', 'tea'], ['Cさん', 200, 'L', 'tea'], ['Dさん', 100, 'S', 'tea'], ['Eさん', 200, 'L', 'coffee'], ['Fさん', 200, 'L', 'tea'], ['Gさん', 150, 'M', 'coffee'], ['Hさん', 20…
複数ファイルのデータ結合方法(InvalidIndexError: Reindexing only valid with uniquely valued Index objects) - Blogress
はじめに 複数ファイルにわかれたデータの結合方法のメモです。 InvalidIndexError: Reindexing only valid with uniquely valued Index objects というエラーとも戦いました。 データ 気象庁の気象データを使いました。 広島、高松、大阪、東京、那覇の5都市分のデータです。 Pythonスクリプトと同じ階層にあるdataディレクトリの中身は以下になります。 ├── data │ ├── 2016 <- 2016年の気象データ │ │ ├── 広島.csv │ │ ├── 高松.csv │ │ ├── 大阪.csv │ │ ├── …

Kaggle挑戦前時点でのデータ分析手法 - Blogress
はじめに 最近、重い腰を上げ、ようやくKaggleを始めました。 タイタニックやインターン限定のコンペ等には参加したことがありましたが、賞金が発生するようなKaggleに参加したことは、今までありませんでした。 データサイエンス及びエンジニアリングのスキルは研究メインで勉強している現状です。 そんな自分が、現時点でデータを与えられた場合、何から初めてどう進めるかのプロセスを本記事でまとめたいと思います。 Kaggle等進め、自分にさらに技術力がついたとき、この記事を読んで「このときはわかってなかった……」と顧みるための備忘録とも言えます。 なお、ビジネス的な話はなしとします。 データ データは…

愛(AI)の力でパイモンを救いたい - Blogress
ネタ回です。 前回の投稿から少し開きました。 就活と論文のダブルパンチで死んでたわけですが、また引き続き頑張ります。 はじめにのはじめに 本記事で出てくる画像は以下から引用してます。 株式会社miHoYo corp.mihoyo.co.jp Bossard, Lukas and Guillaumin, Matthieu and Van Gool, Luc, Food-101 – Mining Discriminative Components with Random Forests, European Conference on Computer Vision, 2014. data.visi…

機械学習(pcaとkmeans)による画像のグルーピング - Blogress
はじめにのはじめに 本記事で出てくる画像は一部、以下から引用してます。 株式会社MIHOYO corp.mihoyo.co.jp はじめに 自分で集めた画像でCNNするために、TwitterAPIの検索機能を使って画像を集めています。 集めている画像は特定の作品のキャラクターだったりするわけですが、CNNで分類モデルを作る上で画像にラベルを付けなくてはなりません。 このラベル付けは言うまでもなく面倒で、時間がかかります。そこである程度自動化できないかと思ったわけです。 したがって、今回はタイトルにある通り、pca(主成分分析)とkmeans(クラスタリング)を用いて画像のグルーピングを行いたい…

カテゴリ変数(質的データ)の前処理の違いまとめ - Blogress
はじめに 一般的に機械学習においてカテゴリ変数は、前処理として数値化する必要があります。 本記事ではその前処理の方法と違いについてまとめです。 データの種類と意味 下図のように変数は4つの尺度に分けられます。 今回説明するのは名義尺度と順序尺度に関する前処理の方法です。 引用:人工知能プログラミングのための数学がわかる本 データ まず、簡単なデータを以下のコードで準備します。あるユーザがある飲み物を買ったときの値段、サイズ、飲み物の種類が記載されています。 このデータでは、sizeデータはL>M>Sの関係にあるため順序尺度、drinkデータは大小関係がないため名義尺度になります。 import…

機械学習のおおまかな流れを理解する - Blogress
この記事は SLP KBIT Advent Calendar 2020 12日目の記事です。(じゃあなぜ 13日に公開しているのか) adventar.org はじめに 機械学習を勉強する上で、重要なことはいくつもあると思います。 その中でも本記事は全体像の部分、機械学習のおおまかな流れに焦点を当てます。 機械学習を勉強し続けてはや2年。機械学習の分野は学ぶことが多く、勉強したてのときは気にも止めていなかったおおまかな流れですが、これを理解しているのとしていないとのでは今後の理解度に大きく響くと感じています。 ですので、本記事では〇〇モデルの具体的なアルゴリズムや数学的内容(理論)だったり、精…

オートエンコーダによる時系列データの教師なし異常検知 - Blogress
はじめに 深層学習を用いた異常検知手法では有名なオートエンコーダを使ってプログラミングしたことをまとめます。オートエンコーダによる再構成誤差とLSTMによる予測誤差などとも比較予定です。 追記 LSTMの異常検知記事、書きました 対象データ 今回もこちらの心電図のデータを使わせていただきました。 心電図のデータですので比較的周期性のあるデータですね。では実装していきます。 なお、データに関しては以前異常検知に関するブログでまとめてあるのでご参照ください。 noleff.hatenablog.com プログラム 環境 OS: macOS Catalina numpy: 1.18.5 pandas…

LightGBMを使って気温予測してみた - Blogress
はじめに 今回の記事では、Kagglerランカー達がこぞって使ってるという「LightGBM」なるものを使ってプログラミングしたことをまとめていきます。 LightGBMとは LightGBMとは決定木アルゴリズムを応用したアルゴリズムです。よくXGBoostと比較されるのを目にします。 詳しくは以下のサイトをご参考ください。決定木、アンサンブル学習、勾配ブースティング(LightGBMやXGBoost)の順に、非常にわかりやすくまとめられています。 www.codexa.net プログラミング データ 実際に手を動かしていきます。まず、肝心のデータですが、今回は高松市の気象データを気象庁の方…

Pythonのクラス内におけるメソッドについてまとめてみた - Blogress
目的 備忘録用です。普段Pythonでプログラミングするとき、めんどくさいのであまりクラスを使ってプログラミングしないことが多いです(jupyter notebookのベタ書き脳死コーディングのせい)。 ですが、最近はちょっとこのままでは良くないなと、あまり使う必要ないと思う場面でもわざわざクラスにしてPythonのコードを書いてます。 今回の記事は二番煎じ感満載かもしれませんが、ご了承ください。 メソッド クラス内のメソッドには以下の3種類があります。 インスタンスメソッド クラスメソッド スタティックメソッド インスタンスメソッド 普通のメソッドがこれです。簡単に例題プログラムを書きます。…
機械学習を使わずに時系列データの異常検知 - Blogress
はじめに 研究で時系列データの異常検知に関する研究を行っています。そのため、機械学習による異常検知のアルゴリズムについて普段から文献調査などしているわけですが、機械学習を使わずとも異常検知できるという記事を見つけました。 https://cpp-learning.com/hampel-filter/ https://qiita.com/hoto17296/items/d337fe0215907432d754 大変興味深かったので、記事の内容に少しだけアレンジを加えて実装してみたいと思います。 対象データ 自分で異常検知用のデータを作成しても良いのですが、それだとどうしても作業的になってしまい、…

Telloのセンサデータ収集に関しての捕捉 - Blogress
前回 前回の記事でTelloのセンサデータ収集方法について書きました。今回はその記事の補足となります。良かったら、まず先にそちらを読んでいただければなと思います。 今回の記事内容 今回の記事は前回の内容データ収集部分に関する捕捉です。具体的にはtello.pyの中のget_tello_sensorメソッドの話になります。以下コードです。 import socket import threading import time from datetime import datetime import csv from stats import Stats class Tello: def __ini…

Telloのセンサデータ収集 - Blogress
はじめに Ryze Telloでプログラミングしたときのセンサデータ収集方法についてまとめます。言語はPythonでやりました。SDKとして、DJIの公式SDK「Tello-Python」を使っています。 https://github.com/dji-sdk/Tello-Python 本ブログでは、上記のサンプルコードを理解、実装済みであることを想定しています。まだの方はgit cloneして動かしてみてください。 以下のサイトが参考になると思います。 https://qiita.com/hsgucci/items/3327cc29ddf10a321f3c 開発環境 macOS Catalin…
