文系事務職がゼロから競馬予想プログラムを作る話~悪戦苦闘編~
前回までのあらすじ
『機械学習で競馬予想をする!』
目標を立てて約1ヵ月後の日本ダービーを予想するプログラムを構築した。予想はできたが、課題点が多く、その改善に挑もうとしたが…
予想結果:全頭着外
日本ダービーからおよそ1ヵ月。私は頭を抱えていました。
前回の課題の一つである『東京2400mしか予想できない』点を改善するため、私は学習データの数を増やし、予想プログラムの修正に取り掛かっていました。
その結果が出たのですが…『1頭も3着以内に入らない』という内容から一向に進展しませんでした。
一体どうしてでしょうか?
不均衡データの罠
原因は不均衡データにありました。
ちょっと専門的な話になりますが、お話しします。
ものすごく感染する確率が低いウイルスが流行したとし、それに対応する
陽性か陰性かどうかを判定するための検査モデルを開発するとしましょう。
ここでウイルスの感染確率が1/100000とした場合、100万人の中に感染者は10人しかいません。
このモデルが正答率だけを目標としている場合、通常は100万人全てを陰性と判定するモデルが完成します。
この場合の実際の正答率は999,990/1,000,000=99.999%と非常に高いです。しかしながら、本来の目的である『ウイルスの陽性を判定する』ことは全く達成しておりません。このような場合では、たとえ誤って本当は陰性の人を陽性と判定してもよいので、陽性の人を検知できるモデルが必要となります。
このようにデータの分類が偏っていることを不均衡データと呼びます。当時私が作成していた予想モデルは東京競馬場のみのデータを使用していたため、そこまでデータの偏りがひどくありませんでした。しかし、学習データの数を増やしたがためにデータの偏りが発生したと考えられます。
更に悪いことに…
この問題に対処するため、私は新しくライブラリをインストールしました。ところが、この方法が私を更に困らせました。
インストールの方法が間違っていたためか、プログラムの実行そのものが出来なくなりました。
Pythonを再インストールするなどの方法を試しましたが、一向によくなりません。
気が付いたら更に1ヵ月の月日が経過していました。
(独学を)諦めた
ついに私は独学でのプログラミング学習を諦めるに至りました。
このきっかけになったのは次のYoutubeチャンネルの存在です。
このチャンネルで紹介されているコードで記述すれば、予想モデルができるはずでした。
ところが、チャンネルを見てもあまりわからない。
というのも、私は無理矢理機械学習の勉強を進めていたために、Pythonの基礎知識がほとんどなかったのです。
『プログラミングスクールに通うか!』
次回『プログラミングスクール編』に続く!