データサイエンス研究所

競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信…

データサイエンス研究所

競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

マガジン

  • 【定期マガジン】競馬AI研究所

    「競馬予想AIを1から作る」ことを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。 一度きりの「機械学習で競馬予想してみた」ではなく、「本格的に運用できる競馬予想AI」を作成するための技術を、ソースコードと共に公開。 記事は基本的に【隔週で土曜日の午後】に更新されます。

記事一覧

【競馬AI開発#16】特定条件における馬の過去成績を特徴量に追加する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,480

【競馬AI開発#15】騎手と調教師の過去成績を特徴量に追加する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000

【競馬AI開発#14】LightGBMのハイパーパラメータって結局どうすれば良いの?

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,480

【競馬AI開発#13】特徴量追加で押さえるべき4つのパターンとは?

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,980

【競馬AI開発#12】競馬予想AIには何年間のデータを学習させるべきか?

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000

【競馬AI開発#11】的中率・回収率のシミュレーションを作成する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000

【競馬AI開発#10】払い戻しテーブルを取得・前処理する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

480

【競馬AI開発#9】予測時のコードを作成して競馬AIを完成させる

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,980

【競馬AI開発#8】機械学習モデルを作成して単勝馬券を予測する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000

【競馬AI開発#7】機械学習モデルに入れる特徴量を完成させる

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000

【競馬AI開発#4】馬の過去成績データをスクレイピングで取得

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っ…

980

【競馬AI開発#3】1年分のレース結果データをまとめてテーブルにする

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っ…

980

【競馬AI開発#2】ChromeDriverによるレースid一覧のスクレイピング

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っ…

980

【競馬AI開発#1】レース開催日一覧をスクレイピングで取得する

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っ…

0〜
割引あり

【競馬AI開発#6】馬の過去成績の集計方法・レース情報テーブルの取得

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000

【競馬AI開発#5】取得したレース結果テーブル・馬の過去成績テーブルを加工する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきま…

1,000
【競馬AI開発#16】特定条件における馬の過去成績を特徴量に追加する

【競馬AI開発#16】特定条件における馬の過去成績を特徴量に追加する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
今回は、競馬予想AIに以下の予測材料を追加することで、精度向上を目指します。

予測対象レースと同じ距離における、各馬の最速タイム

予測対象レースと同じレース階級/開催場所/馬場状態/天気における、各馬の成績

もっとみる
【競馬AI開発#15】騎手と調教師の過去成績を特徴量に追加する

【競馬AI開発#15】騎手と調教師の過去成績を特徴量に追加する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
現バージョンの競馬AI(v3.0.3)では、netkeiba.comから取得した5年分のデータから以下のような107個の特徴量(=機械学習モデルにインプットする予測材料)を作成し、着順を予測しています。

hor

もっとみる
【競馬AI開発#14】LightGBMのハイパーパラメータって結局どうすれば良いの?

【競馬AI開発#14】LightGBMのハイパーパラメータって結局どうすれば良いの?

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

学習から予測までの競馬予想AIのコードが一通り完成したので、今は実験を繰り返して精度をさらに高めていくフェーズに入っています。

■今回やること
今回は「ハイパーパラメータの調整」について、ベストな方法を探っていきます。
「ハイ

もっとみる
【競馬AI開発#13】特徴量追加で押さえるべき4つのパターンとは?

【競馬AI開発#13】特徴量追加で押さえるべき4つのパターンとは?

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
今回からは、新しい特徴量(=機械学習モデルにインプットする予測材料)を作成し、競馬予想AIの精度向上を目指していきます。
現バージョンの競馬AI(v3.0.1)では、netkeiba.comから取得した5年分のデ

もっとみる
【競馬AI開発#12】競馬予想AIには何年間のデータを学習させるべきか?

【競馬AI開発#12】競馬予想AIには何年間のデータを学習させるべきか?

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
今回は、機械学習モデルに学習させるデータを追加するためのコードを整えると同時に、データ量による精度を比較し、何年分のデータを学習に使用するのが最適なのか?検証していきます。

機械学習ではこのように、一部のデータ

もっとみる
【競馬AI開発#11】的中率・回収率のシミュレーションを作成する

【競馬AI開発#11】的中率・回収率のシミュレーションを作成する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
今回は、機械学習を使って実際に馬券を買った際の的中率・回収率のシミュレーションを行います。

今回のコードを実行することで、以下のように各馬券の的中率(hitrate)・回収率(returnrate)を、人気順に

もっとみる
【競馬AI開発#10】払い戻しテーブルを取得・前処理する

【競馬AI開発#10】払い戻しテーブルを取得・前処理する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
前回の記事では予測時のコードが完成し、学習〜予測までの一通りの流れが完成しました。

ここからは、精度を上げて回収率100%超えを目指していきます。
それにあたって、まずは回収率のシミュレーションをする必要があり

もっとみる
【競馬AI開発#9】予測時のコードを作成して競馬AIを完成させる

【競馬AI開発#9】予測時のコードを作成して競馬AIを完成させる

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
今回は、実際の予測時におけるコードを作成します。
今回のコードが完成すると、出馬表からデータを取得し、機械学習による予測結果を出力することができます。

▼実行コード

from feature_engineer

もっとみる
【競馬AI開発#8】機械学習モデルを作成して単勝馬券を予測する

【競馬AI開発#8】機械学習モデルを作成して単勝馬券を予測する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること
今回は、LightGBMを使って機械学習モデルを作成し、実際に単勝予測モデルを作っていきます。

今回作成するコードを以下のように実行することで、機械学習モデルが学習され、完成したモデルファイルが自動的に保存され

もっとみる
【競馬AI開発#7】機械学習モデルに入れる特徴量を完成させる

【競馬AI開発#7】機械学習モデルに入れる特徴量を完成させる

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■どんな機械学習モデルを目指しているか?

初手として作成するモデルでは、2023年に開催された全てのレースについてnetkeiba.comからデータを取得し、以下の「着順」列を機械学習で予測することを目指しています。

そこに

もっとみる
【競馬AI開発#4】馬の過去成績データをスクレイピングで取得

【競馬AI開発#4】馬の過去成績データをスクレイピングで取得

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

今回の記事は、以下の動画に補足を加えてまとめたものになります。

今回やること

今回はnetkeiba.comから「馬の過去成績データ」をスクレイピングにより集めて、一つのテーブルとして繋げていきます。

この「馬の過

もっとみる
【競馬AI開発#3】1年分のレース結果データをまとめてテーブルにする

【競馬AI開発#3】1年分のレース結果データをまとめてテーブルにする

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

今回の記事は、以下の動画に補足を加えて簡単にまとめたものになります。

今回やること前回に引き続き、まずはnetkeiba.comから2023年のレース結果のテーブルをスクレイピングにより取得して、Pythonで扱えるよ

もっとみる
【競馬AI開発#2】ChromeDriverによるレースid一覧のスクレイピング

【競馬AI開発#2】ChromeDriverによるレースid一覧のスクレイピング

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

今回の記事は、以下の動画に補足を加えて簡単にまとめたものになります。

今回やること前回に引き続き、まずはnetkeiba.comから2023年のレース結果のテーブルをスクレイピングにより取得して、Pythonで扱えるよ

もっとみる
【競馬AI開発#1】レース開催日一覧をスクレイピングで取得する

【競馬AI開発#1】レース開催日一覧をスクレイピングで取得する

はじめにこの【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

今回の記事は、以下の動画に補足を加えて簡単にまとめたものになります。

筆者のプロフィール

東京大学大学院卒業後、データサイエンティストとしてWEBマーケティング調査会社でWEB上の消費者行動ログ分析などを経験。
現在

もっとみる
【競馬AI開発#6】馬の過去成績の集計方法・レース情報テーブルの取得

【競馬AI開発#6】馬の過去成績の集計方法・レース情報テーブルの取得

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること

馬の過去成績データをどのように集計して特徴量にすれば良いのか?

netkeiba.com上で非構造化データになっているレース情報データを、どのようにテーブル形式のデータにうまくまとめるか?

について扱ってい

もっとみる
【競馬AI開発#5】取得したレース結果テーブル・馬の過去成績テーブルを加工する

【競馬AI開発#5】取得したレース結果テーブル・馬の過去成績テーブルを加工する

この【競馬AI開発】シリーズでは、競馬予想AIを作ることを通して、機械学習・データサイエンスの勉強になるコンテンツの発信や、筆者が行った実験の共有などを行っていきます。

■今回やること

今回は、netkeiba.comから取得した「レース結果テーブル」と「馬の過去成績テーブル」を前処理して、機械学習モデルにインプットできる形に加工していきます。

今回のコードを実行することで、上のrawデータ

もっとみる