
タノウマAIを詳しく!(自己紹介と概要2)
改めましてこんにちはイクシです!
今回の記事は
私が制作し、先日命名しました
AI技術を活用した競馬予想ツール
『タノむからウマい馬を上手いこと選んでくださいAI技術さん!』こと
『タノみのウマ(綱)のAI技術さん』こと
【 タノウマAI 】
の中身について
もうちょっと詳しく説明しようと思います!
概略
まずは前回の記事でも書きましたが
タノウマAIに至るまでの大まかなフローはこういった感じです。
プロトタイプ
↓
ver 1.0(ロジスティック回帰を用いた予想)
↓
ver 1.1(特徴量を足して調整した予想)
↓
ver 2.0(ロジスティック回帰 × ランダムフォレストを用いた予想)
↓
ver 3.0(特徴量の調整と買い目を指示した予想)
タノウマAI ※現在
プログラミング言語
まず、使用しているプログラミング言語は
python です!
全くのド素人の私がいろいろと調べた結果
初心者向きかつオープンソース(無料)
であるpythonに行きつきました。
ちなみにイクシは
この本のシリーズでpythonを学びました↓

めちゃめちゃ優しそうでしょ?笑
本当に期待以上の優しさで
図説も具体例もわかりやすく完全初心者向けですので
興味のある方はぜひ!
また、私はJRA-VAN会員ではあるものの
スマホアプリのみの登録で
データラボ会員ではないので
スクレイピングから行っております。
要するに
お金かけられないから
自作のタノウマAIくんでデータ収集もしてる。
ということです。
ゆくゆくは公式データからcsvで取り込みたいし
そっちの方が効率的なのですが、
いかんせんMac愛用者でして
ソフトが対応してないんです……。
Parallelsとか
「MacでもWindowsソフト使えるよー」
みたいなソフト買って楽にデータ分析したいのですが。
Parallels : 約12,000円/年
JRA-VANデータラボ:約2,000円/月
なので、ちょっと今の私には用意できない。
(というより気づいたら馬券に変わってる)
ただやっぱり【JRA-VAN】の方が
データ量も膨大で正確ですし
オッズや馬体重も随時更新されるし
いろんな競馬ソフトが使えるしで
圧倒的に効率がいいので
気になる方は詳細を見てみてください!↓
イクシのように
そこにお金かけたくないorかけられない
勉強がてらデータ収集も自分でやりたい
自分が欲しいデータのみで構成してシンプルにしたい
のような方は【 Python1年生シリーズ】は
スクレイピングのやり方も教えてくれているので
初心者でもオススメです!↓
アルゴリズム
まずアルゴリズムとは
「問題を解決するための手順や計算方法、思考方法」
とのことなのですが、
今回に当てはめて端的に言ってしまえば
勝ち馬をどうやって選ぼうか?
って感覚でいいと思いますw
競馬場行きたいけど「電車orバスor車」どれで向かおうか。
この乗り物の部分がアルゴリズムって雰囲気で私は認識してます。
そして私は
勝ち馬という目的地に
ロジスティック回帰という乗り物と
ランダムフォレストという乗り物、
を使って向かうことにしました!
ではそれぞれを簡単に説明しようと思います。
・ロジスティック回帰
Wikipediaでは
「ロジスティック回帰は、ベルヌーイ分布に従う変数の統計的回帰モデルの一種である。連結関数としてロジットを使用する一般化線形モデル の一種でもある」
とのことです。
うん……はははは。
うん……ぅん?
となるので私の解釈で
競馬予想AIを作る上で簡単に言えば
『1頭1頭それぞれを見て"勝つ or 負ける"の二分類で分ける』
それだけのことです。
今年からのバージョン
【 タノウマAI(通算ver 3.0)】では
「連対する(2着以内に入る)のか否か」を境界線にしました!
・ランダムフォレスト
Wikipediaでは
「2001年にレオ・ブレイマンによって提案された機械学習のアルゴリズムであり、分類・回帰・クラスタリングに用いられる。決定木を弱学習器とするアンサンブル学習アルゴリズム」
とのことです。
へへへへへ……は?
となるのでこちらも
私の解釈でざっくりいえば
「Yes or Noの質疑応答を繰り返していって
最終的にその馬が勝つか負けるかを判断する」
まずこれが決定木アルゴリズムです。
例えば、
1. 牡馬ですか? →Yesなら2-a, Noなら2-b
2-a. 5歳以上ですか? →Yesなら3-a, Noなら3-b
2-b. 関西馬ですか? →Yesなら3-c, Noなら3-c
3-a. 馬体重500kg以上ですか? →Yesなら4-a, Noなら4-b
3-b. ……

このようにどんどん分岐させていって
条件を絞っていき、その馬が勝つか負けるかを判断します。
この決定木を複数個行って沢山の答えが出てから
多数決をして最終的な判断を下します。
つまり、
解1. 3歳の牡馬で馬体重が490kgの関西馬が勝つ!
解2. 中4週の前走上がり3F33.9秒以下の武豊騎手が乗る馬が勝つ!
解3. 6枠より外で……
みたいなのをいくつも用意して
この解に最も多く該当する15番の馬だ!
という結論に至るわけです。
タノウマAIはこの
ロジスティック回帰とランダムフォレスト
上記の2つを用いて予想を行っています!
特徴量
次に特徴量なんですが
まず「特徴とは?」をざっくり紹介します。
こちらも私の勝手な解釈なのですが
正解を見つけるための判断材料
って感覚でいいと思います!
競馬予想で言うところの
予想ファクター
みたいな感じですかねw
ちなみにさっきのランダムフォレストで
「牡馬ですか?」みたいな質問は
この特徴量からお題を作っています!
【 タノウマAI 】で使用している
特徴量一覧は以下の通りです。

2024年の成績(ver 2.0)
前の記事でも紹介しましたが
改めて現状の成績をお伝えします。
タノウマAIになる前(命名前)
2024年のほとんどの重賞レースを
本命馬1頭のみの予想をした場合の
検証結果がこのようになっています↓

いやぁ。あの……。
ちょっと下手な人の予想
程度ですねw
おわりに
タノウマAIについて
簡単に解説するつもりでいたのですが、
今回もまぁまぁな長文になってしまいましたw
最後まで読んでくださった方
本当にありがとうございます!
今週末からいよいよ
馬券対決を始めていこうと思いますので
ぜひそちらも見てみてください!