機械学習でボートレース予想してみた① きっかけ~事前調査 編

機械学習

なんかパソコン使ってカタカタ予想してるよね。

うん。

何それ?

気になる?

機械学習でボートレース予想を始めたきっかけ

私は機械学習でボートレースの予想しています。始めたきっかけは、もともと機械学習に興味を持っていて、実際に手を動かして何かを作ってみたいと思っていました。

そんな中、6艇から3艇を選ぶだけで簡単に当てられそう(実際には当てるの難しいです。。)で前から興味があったボートレースの予想を自分でも試してみようと考えました。

ボートレースは、6艇という少ない数の中から勝者を予想することができるため、他の公営ギャンブルと比較して予想しやすいと言われています。また、過去のレースデータが公開されているため、それを使って機械学習を行うことができます。これらの理由から、ボートレースを対象にした機械学習に挑戦することにしました。

ボートレースの機械学習を始めた3つのきっかけの詳細を現在の感想も含めて説明します。

機械学習の勉強に最適

飽きやすい性格もあり勉強するのであれば、何か自分にも得する内容がいいなと思っていました。
その点、ボートレースは自分のお金を賭けて予想することになるので、真剣に取り組むことができます。公営ギャンブルなので必ず勝てるわけではありませんが、予想した結果が当たるようになれば、改善を進めていくモチベーションに繋がると感じています。

ボートレースは予想しやすい

公式サイトでは以下のように記載がありますが、他の競馬や競輪などと比べても予想がしやすいです。はじめてから思ったことですが、ボートレースは6艇固定なので、プログラムも作りやすいと感じました。

ボートレースは6艇で競われる競技で、これは公営競技のなかでは最も少ない出走数になる。
そのため各勝式の組合せ数も少なく、予想がしやすいといえるだろう。
単勝=1/6、複勝=1/3、2連複=1/15、2連単=1/30、
3連複=1/20、3連単=1/120、拡連複=3/15

LEVEL.1 6艇だから予想がしやすい | BOAT RACE オフィシャルウェブサイト

過去データが公開されている

機械学習で使用する学習データが集めやすいです。公式がダウンロードできる形で、選手データや番組表データ、競争成績データを公開してくれています。
CSVなどの扱いやすい形式ではないですが、データがまとまっているのはとてもありがたいです。

ダウンロード・他 | BOAT RACE オフィシャルウェブサイト

機械学習でボートレース予想実現までの工程

プログラミングの経験はありましたが、機械学習の経験はありませんでした。そのため、最初は機械学習の事から調べました。その後機械学習を進めるうえで必要なことが分かってきたので、事前調査から始めたのはよかったと思います。

この「機械学習でボートレース予想してみた」では機械学習でボートレース予想実現までの工程をざっくりと下記の6つに分けて説明します。

 1.機械学習について調査(今回はここ!)
 2.技術選定
 3.環境構築
 4.機械学習用のデータ取得
 5.機械学習でモデル作成
 6.作成したモデルで予測

この後に、舟券投票や機械学習モデルを改善する工程もありますが、このシリーズでは予測までをまとめてます。

今回は「1.機械学習について調査」を中心にまとめてます。

そもそも機械学習とは?

その名の通り機械(コンピュータ)自身が学習して、それらしい答えを見つけ出す技術の事です。
機械学習には大きく分けて以下の3種類がありますが、ボートレース予想や競馬の予想に①教師あり学習を用いている例が多く見られたので、今回は①教師あり学習を選択しました。
 ①教師あり学習
 ②教師なし学習
 ③強化学習

それぞれの詳しい仕組みについては私の知識レベルでは、
説明が難しいので、調べてみてください。。

教師あり学習ってなに?

教師あり学習は、答えが含まれるデータを使用して学習することで、答えなしのデータから答えを予測する手法になります。

文字だけだと分かりにくいと思うので、以下にミニチュアダックスフンドを予測する例を示します。
なるべく専門用語を使用しないように説明します。学習中のため、説明の部分が事実と異なる部分があるかもしれませんがご容赦ください。

1.学習データからモデル作成
次のような答えを持った学習データを使ってトレーニングすることでモデル(トレーニングの結果できたファイル)を作ります。ここではミニチュアダックスフンド、ポメラニアン、チワワが答えになり、[色]~[胴の長さ]と答えの関係性を学習します。

■学習データ
答え(犬種)と色、体高、体重、胴の長さが一覧化されたデータです。
通常は文字列でなく数値に変換して使用しますが、分かりやすさ優先で[答え]や[色]は文字のままにしてます。

答え体高体重胴の長さ
ミニチュアダックスフンド茶色30cm4.5kg50cm
ポメラニアンクリーム20cm2.3kg30cm
ポメラニアンクリーム20cm2.1kg25cm
チワワクリーム17cm2.0kg23cm
ミニチュアダックスフンド33cm4.3kg50cm
※架空のデータなので実際の数値とは異なります。

2.モデルを使用して予測する
次のような答えが含まれないデータをモデルに渡して予測します。

■予測したいデータ

体高体重胴の長さ
茶色32cm4.5kg48cm

上のデータからトレーニングしたモデルを使って、ミニチュアダックスフンドかどうかを分類します。また、分類方法にもいくつかあります。

二値分類:ミニチュアダックスフンドかどうか(Yes or No)の予測する方法
 →どのくらいミニチュアダックスフンドの可能性があるのか数値で分かるイメージです。
多クラス分類:どの犬種かを予測する方法
 →それぞれの犬種である可能性が、合計100%となるように数値として表されるイメージです。

今回のボートレースでは多クラス分類で1位~6位になる可能性を数値化して予想しています。

まとめ

今回は機械学習でボートレースの予想をはじめたきっかけや機械学習についてまとめてみました。
いざ文字にして説明するとなると難しかったですが、思い出すことで自分の理解も深まりました。

次回、機械学習でボートレース予想してみた② 技術選定~環境構築編に続きます。

※当ブログに掲載されている情報は、可能な限り正確性を重視していますが、正確性について保証するものではありません。読者の方々は、自己責任において情報を活用してください。

コメント

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