lightGBMでボート予想AIを作ってみた①|事前準備編

Boat race

マイクロソフトが開発したlightGBM、以前これを使って競馬AIを作ってみたが大した結果を出せず、『だったらボートレースだ!6艇しかないんやから結構イケるんじゃないか』『儲かるAIができて、自動で舟券を買うプログラムができればサイコーじゃん』と安易に始めてみた記録です。

この試みのゴールと準備すること

ゴールとしては、番組表からAIに各艇の勝率と3連対確率を予測させ、予測結果をCSV形式で可視化できるようにすること。的中率と回収率はいったん気にしないことに。

予測の手法としてはlightGBMの分類を使っていきます。

事前準備としては学習用のデータが必要になりますね。webスクレイピングでデータを集める方法もありますが、今回はボートレースの公式HPがデータをテキスト形式で無料公開しているので、そちらをダウンロード、データ形成をしていきます。

ダウンロードに関しては素晴らしいコードが公開されていたのでほぼそのまま使わせていただきました。ほぼ丸パクリコードを載せるのは気がひけるので掲載は控えます。

公式ホームページの「競争成績ダウンロード」 https://www1.mbrace.or.jp/od2/K/dindex.html. からテキストファイルを取得できるので、取得したテキストデータを、正規表現を使ってデータフレーム→csv化します。

結果以下のようなcsvファイルができレース結果をcsvとして保存します。

1行目から6行目までを1レース、7行目から13行目までを2レースと言う形で、6行ごとで1レースというまとめ方をしているのがなんともわかり図らく、むず痒いが「とりあえず完成させること優先!!!」ということで気にしない。

1ヶ月のデータ量として約2.8万行、レース数として約4600レース、これを直近9ヶ月分を学習データとして、つまり約41000レースを学習データとして試みていきます。このデータをベースにしてさらに詳細なデータ(イン逃げ率がどうだとか、◯コースの2連対率がどーとか)を作っていきます。

次回にむけてとお願い

今後、掲載するコードで「汚ねー、もっとスマートに書けよ」とか思ってもグッと堪えていただければいいなと思います。「こういうやり方もあるよね」とかアドバイス頂けると嬉しいです。

次は、データの取捨選択と今回のデータから新しいデータを作っていきます。

タイトルとURLをコピーしました