見出し画像

タノウマAIを詳しく!(自己紹介と概要2)

改めましてこんにちはイクシです!

今回の記事は
私が制作し、先日命名しました
AI技術を活用した競馬予想ツール

タノむからウマい馬を上手いこと選んでくださいAI技術さん!』こと
タノみのウマ(綱)のAI技術さん』こと

【 タノウマAI 】

の中身について
もうちょっと詳しく説明しようと思います!


概略


まずは前回の記事でも書きましたが
タノウマAIに至るまでの大まかなフローはこういった感じです。

プロトタイプ

ver 1.0(ロジスティック回帰を用いた予想)

ver 1.1(特徴量を足して調整した予想)

ver 2.0(ロジスティック回帰 × ランダムフォレストを用いた予想)

ver 3.0(特徴量の調整と買い目を指示した予想)
タノウマAI ※現在


プログラミング言語


まず、使用しているプログラミング言語は
python です!

全くのド素人の私がいろいろと調べた結果
初心者向きかつオープンソース(無料
であるpythonに行きつきました。

ちなみにイクシは
この本のシリーズでpythonを学びました↓


Python1年生

めちゃめちゃ優しそうでしょ?笑
本当に期待以上の優しさで
図説も具体例もわかりやすく完全初心者向けですので
興味のある方はぜひ!

また、私は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

最後まで読んでくださった方
本当にありがとうございます!

今週末からいよいよ
馬券対決を始めていこうと思いますので
ぜひそちらも見てみてください!

いいなと思ったら応援しよう!

この記事が参加している募集