ここ1年はほとんど変わっていないですが、今現在の機械学習による競馬予想で使っているサービスやライブラリについて情報を残しておきたいと思います。 どちらかというと、なぜそれを使っているのかを考え直したり、あわよくばコメントを貰って改善に役立てるために公開します。
Web Service
JRDB
予想をする上ではデータソースがないと話にならないのですが、Mac, Linux上でデータを取得できるサービスは今の所 JRDB だけです。 (netkeiba をスクレイピングするのはグレーだし、時間が非常にかかる)
データ形式はShiftJISの固定長テキストなので、Pythonで仕様からパーサを生成してパースしています。
予想には2012年からのデータを用いていますが、netkeiba のスクレイピングでこれをするのは少し厳しいですね。
このデータをParquet形式にしたものをBigQueryに流しています。
月会費¥1,980で利用可能です。
Google BigQuery
Google が提供する最高のDWHです。非常に早く、SQL拡張でかなり複雑なことができます。 失敗したクエリは課金されないようです。
BigQuery でできる処理はすべて処理してしまい、 Pandas での処理は最小限にしています。
出力を保存するStorageも合わせて月に¥4,000ぐらいでしょうか。
参考:
Google Cloud Platform実践ビッグデータ分析基盤開発 ストーリーで学ぶGoogle BigQuery
- 作者:トップゲート
- 発売日: 2019/12/01
- メディア: 単行本
レジまぐ
予想に使っているというか、予想を使っているサイトです。
以前は note.com で予想を有料公開していたのですが、予想結果の記述が面倒だったりしたのであちこち探してこちらに行き当たりました。
レース情報をポチポチ入力すると、そのレースの勝敗判定をしてくれます。また全レースが終わると自動的に公開する機能もあります。
これがnote.comより使いやすいかというとちょっと微妙で、売れ行きが悪かったらnote.comに戻るかもしれません。
もしもっといい有料公開の方法があったら教えて下さい。
Library
Pandas
言わずとしれた、Pythonのライブラリです。特に説明することはないですね。
BigQueryの出力csvをこれで加工しています。
参考:
Pythonデータ分析/機械学習のための基本コーディング! pandasライブラリ活用入門 impress top gearシリーズ
- 作者:Daniel Y. Chen,吉川 邦夫,福島 真太朗
- 発売日: 2019/02/22
- メディア: Kindle版
現場で使える!pandasデータ前処理入門 機械学習・データサイエンスで役立つ前処理手法
- 作者:株式会社ロンバート
- 発売日: 2020/04/20
- メディア: Kindle版
LightGBM
TensorFlow や PyTorch の影に隠れていますが、Kaggleではそれなりに使われているという、GBDTライブラリです。
無効値を食わせても予想できるため、前走データがない場合がある競馬予想では必須です。
同じ特徴を持つものにXGBoostやCatBoostもありますが、最初に触ったのがこれなのと、どうやら他よりも速いらしいのでこれを使い続けています。
Jupyter Lab
これもまた言わずとしれたPythonのアプリケーションですね。 matplotlib と合わせて予想結果をビジュアライズするために使っています。
参考:
- 作者:掌田津耶乃
- 発売日: 2019/03/25
- メディア: Kindle版
使ってみたいもの
Google Cloud Functions
AWS Lambda でもいいけど、要はサーバレス。
予想のためにGCPのインスタンスを使う代わりに、サーバレスで分散処理をしてリードタイムを短縮したいです。
つかっていたもの
Google Cloud Build
https://cloud.google.com/cloud-build/hl=jacloud.google.com
ETL タスクの実行に使おうとしていたのですが、JRDBデータのパース中に固まってしまうため、なくなく使用を諦めました。
現在、JRDBデータのパース、BigQueryへの転送・実行、データの加工はローカルで実行していますがそれほど困っていません。
色々とサービスやライブラリを使っているのですが、その中でも代表的なものを紹介しました。 もし似たようなことをしている方でこれいいよ!というものがあれば教えていただけると幸いです。