俺にも執筆活動させろボケ

見に行こうぜ次元の呪いってやつを

一応畳み込みできたけど6*6ぐらいじゃあんまり効果ないな、

場、モーター、選手の3チャンネルで試してもいいが表現力が足りなそうなので別の方法を考えよう。

真面目にカテゴリカル・データを処理しつつ今持ってるデータを一度全部ぶっこんでみることにした。

その過程で特徴量1項目づつピクルスにしておくとあとあと便利だと思いついた、

あれとあれで回してみて、ってデータ入れ替えつつ遊べるし。

逃亡生活(ボート)de 畳み込み

ようやく学習データが作成できた

f:id:nemui3900:20181005204837j:plain

これを学習させればほとんどの場と季節で1-2-3[1,0,0,0,0.....0]と返してくるはずだ。

さっそく畳み込みでやってみる。

コンピュータービジョンの項をまともに読んでなかったのでめでたくハングアップした。

今の所解決するめどが立たないのでもう少し勉強しないといけない。

根性が減ったので今日は終わり。

ボートで畳み込み

あまりにもランダムの壁すら超えない、

というかまあ見た目の問題で超えてはいる。

f:id:nemui3900:20181005115035j:plain

左から123,124,125,126,132,134なので

予想がイン寄りに傾ければ自ずとACCも上がるのだ。

しかしきれいに落ちていくかというとそうでもなく多くの12より132のほうが強いという特徴的な形をしている。

つまりは畳み込みを使うべきだと思うわけで

じゃあ畳み込みを使えるデータの形状ってどんなものなのかっていうと

ボートレース場データ|BOAT RACE オフィシャルウェブサイト

まさにこれなのでこれをベースに特徴量を考えていこうと思う。

まずは場ごとの四季折々のデータをDBにスクレイピングして入れるところから

ここで別VPCと自宅PCで同じコードでうまくpd.io.html.read_html(url)

が動作しない問題に直面した、家のPCでやるか。環境構築の問題なので先送りで。

ひたすらDBに書き込んで取れたのでベクトル化を進める。

f:id:nemui3900:20181005141743j:plain

四季*24のレース場で結構な量あってだるかったなあ。

 

ディープラーニングを始めようと思う人達へ

ある程度ブームは過ぎてそろそろ冬の時代を感じるAIことディープラーニングですが。

そんなAIをやってみようという特異な人たちに送る僕からのアドバイス

数学的要素は本当のところいらないので別に勉強しなくていいです。

しかし式の意味だけは理解している必要があります、

0+0=0

この式を見たときに左が足し算で右が答え

f(x)=y

この式を見たときは左が関数で右が答え、曲線か直線かは知らないがyが連続していく。

総和だとか外積だとか内積だとかが式として浮かんでるとやりやすい。必要なのはそのくらいの浅い知識。

まあそんなことも本当はどうでも良くて解きたい問題と説明できるデータがたくさんあるとこと、

そしてその問題とデータが魅力的ならばみんなが助けてくれる可能性が上がる。

つまりいきなりディープラーニング勉強しても続かないので

問題とデータを持った状態でいることのほうがもっとも重要。

解き方なんて後からいくらでも探せる、試せるので。

スクレイピングとかSQLとかpandasとnumpyを理解することが、

説明変数をうまく作ることがディープラーニングの本質なんじゃねえかと思う次第です。

逃亡生活(ボート)part9

120のカテゴリに使うニューロンの数の目安はどんくらいかなあ。

まあいい

まずは単純なホールドアウト法でいこう

12:4:2(バックテストで残しとく)

f:id:nemui3900:20181001134239j:plain

やっぱり512にした

epochs=3000で試す。

やってみないとよくわからないことが多すぎるのでよくわかってない間にトレーニング回して調べて試したいことをためとくべきだなあ。

チューニングできるようになるまでなかなか遠そうだ。

逃亡生活(ボート)part8

取れたには取れたが当地勝率と実際問題かぶっていて、

これを入れるのはどうかという考えが出てきたのでスルーしておく。

年齢・体重まできたので平均STと全国と当地の勝率二連率三連率。

そしてモーターとボート、チルト。

FとLは一回入れずに回してみる。

特徴量のndarrayとラベルのndarrayが出来上がった。

ここまでクソ長かった、まあ主に不勉強によるところがでかいが。

ということで保存しておこう

次回いよいよガチ目のNNを回すの巻

逃亡生活(ボート)part7

ようやくだらだら取得していたレコードが18万を超え、

そろそろビッグデータの扱いについて考えないといけない。

いちばん大事なのって実用性だと思う、

ということで一回.read_sqlで全部取得してみてどれくらいかかるか見てみる。

2分ぐらいで終わるわ、すごいすごいpandas。

f:id:nemui3900:20181001083102j:plain

なんか102件ぬけてますけど?

まあいいやこれで。

とりあえずこれで一回ガチでどの程度予想できるかやってみるか。

使う特徴量を選別→ndarrayに前処理して追加していく

最初はラベルのoheからやる、わかりやすいから。

f:id:nemui3900:20181001085743j:plain

1着2着しかないデータがあるっぽいのでそのレコードを除外する。

正規表現で除外するのが多分一般的かと思うがめんどくさいのでできなかったIDを返す関数にしよう。

f:id:nemui3900:20181001091515j:plain

77個あった

これをインデックスでドロップしていく

ac.drop(de, axis=0)

単にこれでよかった、払い戻し金とかぶったらとか考えてしまったが多分文字列だったはず。

年齢は前回やっているので、次は体重。

ターゲットと年齢体重まで入ったので

ここで一旦blogを閉じる

 

次回

場のデータ

ボートレース場データ | BOAT RACE オフィシャルウェブサイト

ここに過去3ヶ月間の枠ごとの勝率があるのでぶち込む