こんにちは sohnishi です。
競馬の予想って難しいですよね。
ボクシングの試合、人間の1対1の勝負ですら、
勝敗を予想することは難しいです。
ましてや会話も出来ない馬が10〜16頭も一斉に走るレースなんて、
予想できません。
競馬の予想はどこまで突き詰めても的中率100%は不可能だと思います。
ですが、、、
自分で出馬表は一切見ずに、機械に計算させた結果だけで勝てたら、、、
すごく夢のある話ですよね。
実際にやってみました。
機械学習はハードルが高く、趣味でスキマ時間を使ってやるには、
かなりの時間を要してしまいそうだったので、していません。
超シンプルな計算だけでやってみました。
まずはスクレイピングから簡単にご紹介しようと思います。
1 2 3 4 5 6 7 |
def scraping(url): # ### KEIBA.GO.JP ### # 例)http://www.keiba.go.jp/KeibaWeb/TodayRaceInfo/RaceList?k_raceDate=2019%2f07%2f18&k_babaCode=27 res = requests.get(url) # 競馬場別当日メニューHTML soup = BeautifulSoup(res.content, 'html.parser') |
KEIBA.GO.JPから任意の競馬場の当日全レース一覧があるページにいきます。
例)http://www.keiba.go.jp/KeibaWeb/TodayRaceInfo/RaceList?k_raceDate=2019%2f07%2f18&k_babaCode=27
このページから全てのレースの出馬表ページリンクを抽出します。
そして全てのレースの全ての出馬表ページから全出走馬の詳細ページのリンクを抽出します。
例)http://www.keiba.go.jp/KeibaWeb/DataRoom/HorseMarkInfo?k_lineageLoginCode=30016404036
そして今回出走するレースと同じ競馬場、且つ、同じ距離での、
ゴールタイムと上3Fタイムを全て抽出します。
そして、過去最高ゴールタイム、過去最高上3Fタイム、
平均ゴールタイム、平均上3Fタイム等々etc、、、を計算して、ランク付けを行います。
そうすると、たまに10万馬券があたっています。(※賭けていません。)
趣味の範囲でもっと的中率と回収率をあげれるように工夫していきたいと思います。
今の課題は、
・その競馬場やその距離に初めて出走する馬をどのように評価するか
他の競馬場や他の距離で走ったレースから計算し、
他の全出走馬と平等となる計算をしなくてはいけません。
ここまでくるともう既に限界が見えてきます。。。
諦めずにまったり頑張ります^^
それでは。