競馬AIの作り方(手順概要)
「初心者向け」などと偉そうに書いておりますが…、私自身まだまだ未熟者です。
当然、熟練者向けの競馬AIの作り方の解説なんかできない訳で。。。
ただ、自分で作った競馬AIの予想が当たった時の喜びは格別であることは間違いありませんので、少しでも多くの競馬ファンの方に、ぜひオリジナルの競馬AIを作ってみていただきたいという思いで本記事を書いています。
さて、以下手順概要です。(今回は、準備編なのでおそらく①だけ。次回で②③やります。)
・手順①:データを集める
・手順②:学習させる
・手順③:精度検証
今回は、できるだけ簡単・お手軽(ノンコーディング)に、かつ低コストで作成するという目標でやっていきます。
手順①データを集める
データ提供サービス
まずは、データを集めます。
今回は中央競馬の予測をさせるAIを想定しておりますので、収集元の候補としては以下3通りぐらいになるかと思います。
- JRA-VAN データラボ … JRA公式。時系列オッズの取得が可能。
- JRDB … 馬券裁判の卍氏も使用。出遅れや不利、パドック情報など独自の情報を持つ。
- netkeiba.com … 国内最大級の競馬情報ポータル。
まずnetkeiba.comはウェブスクレイピング(ウェブサイトから情報を抽出する技術)が必要になるので、今回の簡単・お手軽コンセプトから外れてしまいます。
残り2つの選択については、費用的にも似たようなもの(2000円前後)なので、好みの問題にもなってきますが、今回はJRA-VAN データラボで進めます。
早速、JRA-VAN データラボのページへ行き、「今すぐ使ってみる」をクリック。
製品ラインナップのページに飛びます。
レースや調教映像が見られる「JRAレーシングビュアー」付きのプランもありますが、今回はJRA-VAN データラボ単体のプランを選択。
メールアドレス等を登録し、サービス購入まで完了させます。
今回の手順で費用が発生するのは、ここだけです。
※デフォルトの設定では自動継続がONになっています。自動継続をご利用にならない場合は、有効期限日前日までに自動継続停止ボタンを押してください。
データべース
続いて、データを入れる器(データべース)と、その器とデータラボとをつなぐツールを用意します。
器は、わりと何でも良いですが今回は無料でも使える「SQL Server」にします。
※2021/01/20 追記
この後ご紹介いたします『PC-KEIBA』について、「Ver.5.0.0.0」以降においては、
対応データベースは「PostgreSQL」限定となっています。
作者様のページでも旧バージョン(「Ver.4.2.0」以前)については、サポートも提供も一切行わない旨の記載がありますので、当ブログとしましても、データベースについては「PostgreSQL」を推奨いたします。
つきましては、本記事の以降の記載についても、SQLServerの登場箇所はPostgreSQLとして読み替えていただければと思います。
時間が空いた時にまたPostgreSQLバージョンの手順も書くかもしれませんが、ひとまず作者様ページのマニュアルをご参考にしていただければと思います。
SQL Serverのインストール手順については、以下の記事などをご参照ください。
学習用に「SQLServerDeveloper」をパソコンにインストールする【前編】
学習用に「SQLServerDeveloper」をパソコンにインストールする【後編】
諸々インストールできましたら、SSMS(SQL Server Management Studio)を起動。そのままWindows認証でログインします。
[データベース]を右クリックし、[新しいデータベース]をクリック。適用な名前を付けて[OK]ボタンをクリックします。
データ連携ツール
データベースが作成できましたら、いよいよデータラボとつなぎます。
データベースとデータラボとをつなぐツールとして、今回は「PC-KEIBA Database for JRA-VAN Data Lab.」を使用します。無料です。
インストールページより、ツールをインストールしましょう。インストールできたら、起動します。
初めに、アプリケーション設定を行います。
データベースの設定は、SSMSで各自の環境と照らし合わせながら設定をすれば、難しくないです。
JV-Linkの設定には利用キーが必要です。
利用キーは、JRA-VANマイページより、「ご利用状況の確認・サービス購入」をクリック⇒「 JRA-VAN Data Lab. 」の[詳細]ボタンをクリックすると確認できます。
データベースとデータラボとをつなぐことができましたら、ツールを使っていきます。
メニューより、[JRA-VAN DataLab. からのデータ取得]をクリック。登録処理状況タブの[今すぐ更新]をクリック。基本、これだけです。
正常に終了すると「登録作業を完了しました」というメッセージが出ます。
データベースにデータが入ったか確認します。
SSMSを起動、ログインし、[テーブル]フォルダを展開します。
試しにレース詳細(RACE_SHOSAI)を確認してみます。
ちゃんとデータが入っていますね!(※結果を分かりやすくするためにレコードの追加日時(INSERT_TIMESTAMP)が新しい順に並び替えています。)
取得するデータの選択
PC-KEIBA Database for JRA-VAN Data Lab.では、データラボから取得するデータを選択できるようになっています。
必要に応じてチェックのON/OFFを切り替えましょう。
また、”蓄積系データ”について、最初はセットアップデータを取得しないと、AIに学習させるにはデータ量が少ないと思います。
ただし、フルセットアップは時間がかかるのと、そこそこメモリを消費しますので、まずは簡易セットアップ(直近2年分のデータ取得)をおすすめします。
データの整形
AIに学習をさせる際には、データは1つの表にまとまっているほうが良いです。
そのためには、テーブル結合や条件指定などが必要になってきます。(今回ですと、おそらくレース詳細と馬毎レース情報をレースコードで結合して、この条件でこの項目を取得して…というような作業が発生します)
また、独自の区分を設けたいケースが出てくるかもしれません。(例えば、距離が1600m以下のレースは”0″、1600mより長いレースは”1″のような、デフォルト項目としては用意されていないもの)
おそらく今回の中でここが最も難易度が高いところですが、AIに個性を出して周りとの差を付けやすいところでもあります。
こちらの記事など、インターネット上にSQLの基礎を教えてくれる記事はたくさんありますので、少し勉強すれば大丈夫かと思います。
尚、テーブル定義(各テーブル・各項目の説明)については、こちらのページにあります。”JV-Data仕様書”ですね。
まとめ(競馬AIの作り方(準備編))
今回は、競馬AIの作り方(準備編)として、データの準備を中心に進めました。
データ提供サービスのところでどうしても費用発生してしまいますが、他ツールについては、無料で調達することができました。
難易度としても、少しだけSQLの知識は要るかもしれませんが、ゴリゴリにコードを書いて…ということは、ここでも、この後の実践編でも必要ありません。
次回は、実践編として実際に学習をさせて精度を評価するところまで行きたいと思います。
2020/03/20 追記
実践編を公開いたしました。以下リンクよりお楽しみください。
それでは、また次回!
世界一有名なアライグマ…ではなく、データサイエンス・AI(人工知能)をかじった競馬好きシステムエンジニアがまったり開発している競馬AIです。各馬が複勝圏内に入るかどうかをディープラーニングによりスコアリングしています。
重賞以外のレースの予想(主に上位5頭のスコア)は基本Twitterにつぶやいています。
重賞レースの予想(全馬スコアを含む)は当ブログに載せることがあります。
コメント
お疲れ様です。
データベース]を右クリックし、[新しいデータベース]をクリック。適用な名前を付けて[OK]ボタンをクリックします。←この部分までは出来たと思うのですが下記の部分が上手くいきません。
データベースの設定は、SSMSで各自の環境と照らし合わせながら設定をすれば、難しくないです。
pc_keibaでデータ取得が出来ませんし、データベースの設定も上手くいきません。
コメントありがとうございます。
後ほど、画面キャプチャと合わせてメールにて詳しく解説いたします。
はじめまして。
私もデータベース]を右クリックし、[新しいデータベース]をクリック。適用な名前を付けて[OK]ボタンをクリックします。←この部分までは出来たと思うのですが下記の部分が上手くいきません。
データベースの設定は、SSMSで各自の環境と照らし合わせながら設定をすれば、難しくないです。
pc_keibaでデータ取得が出来ませんし、データベースの設定も上手くいきません。
コメントありがとうございます。
後ほど、画面キャプチャと合わせてメールにて詳しく解説いたします。
database側の仕様が変わったのか、データベースの設定が上手くできません。
コメントありがとうございます。
メールにてご回答させていただきます。