【リメイク版#9】競馬予想AIがついに完成!実際の予測時のコードを作成する

競馬予想で始めるデータ分析・機械学習
14 Jun 202439:09

Summary

TLDRこの動画スクリプトでは、競馬予想AIの開発プロセスが詳細に解説されています。2023年のレース結果をもとに機械学習モデルを学習させ、予測精度を高める方法が紹介されています。実際の予測時には、成績データだけでなく、出場馬の体重や人気データなどのリアルタイム情報を取得し、特徴量を作成することが重要です。スクリプトでは、データのスクレイピング、加工、前処理、そして予測のための特徴量の作成までを解説しており、データサイエンスの基礎を学ぶことができる内容です。

Takeaways

  • 😀 スクリプトは、競馬予想AIの開発プロセスとその詳細について説明しています。
  • 🤖 AIは、netb.COMの過去データベースから2023年のレース結果を学んで予測を行っています。
  • 🔍 学習と実際の予測の間にデータの不一致があるため、注意が必要です。特に、馬の体重や人気データはレース直前にしか入手できません。
  • 📈 予測の精度を高めるために、学習時に使用したデータと予測時に使用するデータが完全に一致することが重要です。
  • 🛠️ スクリプトでは、Pythonを使用して予測募集団を作成し、レースIDとホースIDを取得するプロセスが解説されています。
  • 🌐 スクレイピング技術を使って、出馬表などのウェブページから必要な情報を抽出しています。
  • 📊 特徴量の作成には、過去のレース結果や天候、馬場の条件などを含む多岐にわたるデータを使用しています。
  • 🔧 予測の精度を上げるために、特徴量エンジニアリングを通じてデータ前処理を行っています。
  • 📝 スクリプトには、データフレームの保存や読み込み、そして予測結果の出力を含む、一連のプロセスが含まれています。
  • 🔄 学習と予測の間でデータの更新が必要な場合、その更新プロセスも解説されています。
  • 🎓 このチャンネルは、機械学習やデータサイエンスの基礎を学ぶための教育的な内容も提供しています。

Q & A

  • このスクリプトはどのような目的で作成されていますか?

    -スクリプトは競馬予想AIの作成を目的に、機械学習モデルをトレーニングし、レースの結果を予測するプロセスを自動化しています。

  • スクリプトで使用されているデータベースのURLはどのような形をしているか?

    -スクリプトではnetb.COMというデータベースのURLが使用されており、過去のレース結果が含まれているとされています。

  • 機械学習モデルはどのようにしてレースの着順を予測するのですか?

    -機械学習モデルは、netb.COMの過去のレース結果データを学習させ、その学習済みモデルを使ってレースの着順を予測します。

  • 実際の予測時に必要なデータはどのように取得するのですか?

    -実際の予測時には、別ページの出場表から馬の体重や人気などのデータを取得する必要があります。

  • スクリプトで使用されているライブラリやツールには何がありますか?

    -スクリプトではBeautifulSoupなどのライブラリが使用されており、HTMLのスクレイピングやデータの加工に利用されています。

  • 予測の精度を上げるためにはどのようなアプローチが必要か?

    -予測の精度を上げるためには、学習時に使用したデータと予測時に使用するデータが完全に一致することが重要です。また、データの前処理や特徴量の選択にも注意が必要です。

  • スクリプトの解説はどのようなチャンネルで行われているか?

    -スクリプトの解説は、機械学習やデータサイエンスの勉強ができそうなチャンネルで行われています。

  • スクリプトのソースコードはどこで入手できますか?

    -スクリプトのソースコードは、動画の概要欄やコメント欄にリンクされた記事からダウンロードできます。

  • スクリプトの実行前に必要な環境設定には何がありますか?

    -スクリプトの実行前に必要な環境設定には、Pythonの実行環境や必要なライブラリのインストール、そしてデータベースへのアクセス権限などが含まれます。

  • スクリプトの解説で触れられている主なポイントは何ですか?

    -スクリプトの解説では、データのスクレイピング、機械学習モデルのトレーニング、予測結果の生成、そして実際の運用における課題や実験の方法が触れられています。

Outlines

00:00

🤖 AIによる競馬予想の流れとデータの取り扱い方

この段落では、競馬予想AIの開発プロセスとデータの取り扱いについて解説しています。AIは過去のレースデータから学習し、予測モデルを作成しています。netb.COMのデータベースから2023年のレース結果を用いて機械学習を行い、実際の予測時にはnetg.COMの出場表ページからデータを取得する必要があると説明されています。また、予測の正確性には、学習時に使用したデータと同一の形式でデータを取得することが重要であることが強調されています。

05:02

🔍 スクレイピングを用いた出馬情報の取得

第二段落では、スクレイピング技術を使ってレースの出馬情報を取得する方法が説明されています。結果払い戻しテーブルからデータを抽出する代わりに、レース前にも公開される出馬表ページからフースIDを取得することが求められています。スクレイピングの過程でBeautifulSoupを使ってHTMLを加工し、必要な情報だけを抽出しています。

10:03

📊 予測募集団の作成とデータフレームの操作

第三段落では、予測募集団の作成方法とPandasのデータフレーム操作について説明しています。開催日、レースID、フースIDを取得し、それらをデータフレームにまとめるプロセスが紹介されています。関数の作成とその使い方、そしてデータフレームへのデータの入力方法が詳細に説明されています。

15:03

📈 データの前処理と保存

第四段落では、スクレイピングしたデータを前処理し、ファイルに保存するプロセスについて説明しています。日付、レースID、ホースIDを含むデータフレームを作成し、それをCSVファイルに保存する手順が詳細に説明されています。また、保存時に日付形式への変換やディレクトリーの作成などにも触れられています。

20:06

🏇 馬の過去成績の取得とテーブルへの変換

第五段落では、馬の過去成績を取得し、テーブル形式に変換するプロセスについて解説しています。スクレイピングを用いてHTMLファイルを取得し、それらをテーブル形式に加工する関数の作成方法が説明されています。また、取得したデータを新しいファイル名で保存することで、古いデータとの干渉を避ける方法も紹介されています。

25:08

🔧 特徴量の作成と前処理

第六段落では、機械学習モデルに入力する特徴量の作成と前処理について説明しています。過去成績のテーブルを前処理し、必要な特徴量を抽出するプロセスが紹介されています。また、事前に集計できるデータと当日更新されるデータの取り分け方、そしてそれらを特徴量テーブルに結合する方法についても詳細に説明されています。

30:08

🛠️ 予測時の特徴量作成クラスの構築

第七段落では、予測時の特徴量作成プロセスを効率化するためのクラスの構築方法について説明しています。事前に集計できる特徴量と当日更新されるデータの取り扱い方、そしてそれらを統合するクラスの骨組みの作り方が詳細に説明されています。また、クラスの利点として、関数の再利用性や実行効率の向上が強調されています。

35:10

🏁 予測当日の処理フロー

第八段落では、予測当日に行われる処理の流れについて説明しています。事前に集約されたデータと当日取得するデータを組み合わせ、特徴量テーブルを作成し、機械学習モデルに入力するプロセスが紹介されています。また、スキップ可能な処理やクラスのメソッドを使って効率的なデータ作成を行い、最終的な予測結果を得る方法についても詳細に説明されています。

Mindmap

Keywords

💡機械学習モデル

機械学習モデルとは、学習データから学んだ知識をもとに新たなデータの予測や判断を行うアルゴリズムのことです。このビデオでは、過去の競馬データを用いて機械学習モデルを学習させ、レースの結果を予測するプロセスが説明されています。

💡予測

予測とは、既知のデータや情報から未知の未来の出来事を推測する行為です。ビデオでは、機械学習モデルを利用して競馬の着順を予測する手法が紹介されており、そのプロセスが詳細に解説されています。

💡スクレイピング

スクレイピングは、ウェブページからデータを自動的に収集するプロセスです。ビデオでは、競馬の出場馬やその成績などのデータをウェブからスクレイピングして、機械学習モデルの学習に利用することが示されています。

💡特徴量

特徴量とは、データから抽出された、モデルの学習や予測に有用な情報を持つ変数のことです。ビデオでは、馬の過去成績やレースの条件など、様々な特徴量を用いて機械学習モデルをトレーニングしています。

💡データベース

データベースは、大量のデータを効率的に管理するためのシステムです。ビデオでは、過去の競馬データをデータベースとして使用し、機械学習モデルの学習に活用しています。

💡前処理

前処理は、データ分析や機械学習で使用する前にデータを整えるプロセスです。ビデオでは、スクレイピングしたデータを機械学習モデルに適した形に変換する前処理のステップが説明されています。

💡競馬予想AI

競馬予想AIとは、人工知能技術を用いて競馬の結果を予想するシステムのことです。ビデオでは、そのAIの開発プロセスや使い方、さらには精度の向上方法について解説しています。

💡出場表

出場表とは、競馬の当日に出走する馬のリストやその情報を含む表です。ビデオでは、出場表から必要なデータをスクレイピングし、機械学習モデルの学習データに使用することが議論されています。

💡精度

精度とは、モデルの予測値と実際の値との一致度を示す指標です。ビデオでは、競馬予想AIの精度を高める方法や、その重要性について触れられています。

💡クラス

クラスとは、オブジェクト指向プログラミングで使用される概念で、特定のデータ型やメソッドの集合を定義したものです。ビデオでは、特徴量の作成やデータの前処理をクラスとして扱い、コードの再利用性や管理性を高めています。

Highlights

AIを用いた競馬予想の流れをコードにまとめる方法が解説されています。

機械学習モデルに2023年のレース結果を学習させ、そのモデルを用いて着順を予測するプロセスが紹介されています。

学習時に使用したデータと実際予測時に使用するデータの差異が説明されています。

予測の時に必要な最新の馬体重や人気データの取得方法が解説されています。

実際の予測時に必要なデータの取得方法とそのタイミングについて説明されています。

学習データと予測データの整合性について、同じ列とデータの意味を保つ必要性が強調されています。

初心者向けに機械学習やデータサイエンスの基礎を学べるチャンネルが紹介されています。

競馬予想AIの精度を上げるために行う実験やシミュレーションの方法が説明されています。

動画の概要やコメント欄にソースコードのダウンロードリンクが提供されている旨が案内されています。

レースIDの取得方法とその重要性が説明されています。

スクレイピングを用いたフースIDの取得方法が詳細に解説されています。

予測募集団の作成方法とそのデータフレームの形式が紹介されています。

スクレイピングモジュールの使い方とその利便性が強調されています。

関数を用いたデータの自動取得と待機時間の扱い方について説明されています。

データフレームの作成とその活用方法が解説されています。

ファイル保存時のディレクトリーの設定方法が紹介されています。

最新の馬の過去成績を取得し、それをテーブル形式に加工する方法が説明されています。

前処理のコードとその活用方法、そして特徴量の作成方法が解説されています。

特徴量エンジニアリングのクラスを作成し、予測時の特徴量作成プロセスを効率化する方法が紹介されています。

事前に集計されたデータと当日更新されるデータの扱い方とその重要性が強調されています。

予測時の特徴量作成の流れとそのコードの骨組みが解説されています。

予測結果のテーブルがどのように得られるかのプロセスが紹介されています。

詳細編の動画や記事へのリンクが提供され、さらに深い解説が期待できる旨が案内されています。

Transcripts

play00:00

と4110411041あすげえすげえ

play00:03

すげえ今番4当たってますね41これで

play00:07

学習から予測までの競馬予想AIの1連の

play00:11

流れをコドにまとめることができましたね

play00:13

ということでこっからはだんだんあの制度

play00:15

を上げていったりするフェーズに入って

play00:17

いき

play00:20

[音楽]

play00:22

ますはい今回はですね実際の予測の時の

play00:25

行動を書いていって競馬予想AIを完成さ

play00:28

せたいと思います今どんなことをやってる

play00:30

かって言うとこのnetb.COMのこの

play00:32

過去のデータベースから2023年の全部

play00:35

のレースの結果を機械学習モデルに学習さ

play00:38

せてその学習させた機械学習モデルを使っ

play00:40

てこの着順のところを予測するっていうの

play00:42

をやってますでですねただ1個難しい

play00:44

ところがあってあの学習の時に使ったのは

play00:47

このnetg.COMののデータベースの

play00:50

ところにあるこの過去の成績のデータなん

play00:52

ですけど実際予測する時にはた別のページ

play00:56

のこの出場表っていうページのところから

play00:58

データを取ってこなきゃいけないですねで

play01:00

しかも今あの収録してるのが6月1日なん

play01:04

ですけどこれ6月2日の例えばデータを

play01:06

取ってこようとするとまだこの馬体重とか

play01:09

が発表されてないんですねあとはもっと

play01:12

言うとこの予測の予想ウッツ単勝ウッツと

play01:14

か人気のデータっていうのはレンスの直前

play01:16

に更新されたりするものになるのでもう

play01:19

直前にならないと処理できない部分って

play01:21

いうのがあるんですねなのでそういうのを

play01:23

どうやって扱っていけばいいかとかどう

play01:24

いうコードを書いていけばいいかっていう

play01:26

のを今回解説していきますあとは予測の時

play01:29

に大事になってくるのは学習の時に入れた

play01:31

データと全く同じデータを作んないといけ

play01:34

ないんですね同じ列でと列の数とか方とか

play01:38

を揃えてで中に入ってるデータの意味もと

play01:41

同じように作っていかなきゃいけないので

play01:43

そういうところどうやって揃えていけば

play01:45

いいかっていうのも今回やっていきます

play01:47

はいこのチャンネルはこんな感じでですね

play01:48

競馬予想AIを作ることを通して機械学習

play01:51

とかデータサイエンスの勉強ができるよう

play01:53

なチャンネルになっていますでこういう

play01:55

機械学習のやつって大体その1回だけ機械

play01:58

学習で競馬予想してみたっていうで終わっ

play02:00

てしまうパターンとか多いんですけどと

play02:02

このリメイク版っていうのはとちゃんと

play02:03

本格的に運用してと長く使ってくKY想

play02:07

AIにするにはどういう風にコドをまとめ

play02:09

ていけばいいかっていうところだったりと

play02:11

かこれ作って終わりじゃなくてどんどん

play02:13

精度を上げていかないといけないんですね

play02:15

なのでそういう時のと実験ってどういう風

play02:17

にやっていけばいいのかとか

play02:18

シミュレーションのコードどうやって書け

play02:19

ばいいかっていうところまで踏み込んで

play02:21

まず初心者向けにコドを書いて解説して

play02:23

いってるようなチャンネルになってますで

play02:25

今回の動画で使うソースコードですね概要

play02:28

欄とコメント欄の記事の中にコ

play02:30

ダウウンロードするところがありますので

play02:31

そこから見ることができますあとはあの

play02:34

動画の詳細編だったりとかあとはあの動画

play02:38

の補足とか解説とかも記事の中で載せてる

play02:41

ような形になるので興味ある方是非見てみ

play02:43

てくださいはいということで早速やって

play02:45

いきたいんですがとさっき言ったように

play02:47

えっと本番ってこの質表のデータから取っ

play02:50

てこないといけないんですねこういう馬

play02:52

体重とかとオッツとか人気のデータって

play02:55

いうのは直前にならないと取れないんです

play02:57

けど事前にそのどの馬が出走するかって

play02:59

いうデーはここに入ってきているのでこの

play03:02

予測したいレースの日にどの馬が走る

play03:04

かっていう情報をテーブルで取得していき

play03:07

ますレース前日準備っていうところでの

play03:10

事前に取れるところとかのデータは準備し

play03:13

ておくようなイメージですね予測募集団の

play03:16

作成っていうのをやっていきます何をする

play03:18

かって言うとと

play03:20

日付レースIDどのレースを予測するの

play03:24

かっていうのとフースIDどの馬が出走

play03:27

するのかっていう予測したい日のこのペア

play03:30

のデータを取得していくっていう感じです

play03:33

でまずはこのレースIDのところなんです

play03:35

けどとこれちょうどすでに作ってあるこの

play03:38

スクレイプレスIDリストこの関数を利用

play03:41

すればとこれ開催開催日を入れるとここに

play03:45

説明書いてありますね開催日をリストで

play03:48

入れるとレースIDの一覧が返ってくる

play03:50

ような関数になってるのでとこれでまず

play03:53

レースIDまでは取得することができます

play03:56

なので使っていき

play03:57

ましょうこういうにやですね関数に

play04:00

ちゃんとまとめておいたのがかなり聞いて

play04:03

て便利なソースコードになってますねはい

play04:07

でレースID

play04:10

リストはスクレイプレースIDリストので

play04:15

えっと今回の動画では例としてあの6月1

play04:19

日のデータに対して予測をしていく時の

play04:22

場合を考えていきますなので

play04:26

20204年の6月1日っていう風にやる

play04:30

とまずこれであのレースIDの一覧を取得

play04:33

してくれます

play04:36

はいリスト見ていきましょうこんな感じ

play04:38

ですね全部で長さ

play04:42

が24個でさっきのところに戻ると6月1

play04:47

日はえっと2つの競馬場で開催されてて

play04:51

それぞれ12レースまであるので24で

play04:54

オッケーですねこれでレスIDの一覧が

play04:55

取得できましたでじゃそしたら次にとこの

play04:59

IDですねそれぞれのレースIDに対して

play05:02

このフースIDどの馬が出走するのかって

play05:05

情報を取っていきますそれがどっから

play05:08

取れるかって言うとこの結果払い戻しって

play05:10

いうテーブルはこのレースの後に知れる

play05:12

データなのでこの出馬表ですねここがあの

play05:16

レース前にも明かされてる情報になるので

play05:18

このページから取っていき

play05:23

ますこのURLから取得していくんですが

play05:27

えっとここはパラメーターなので無視して

play05:30

このURLですねこのURLに対してまず

play05:33

スクレイピングをしていきますはいこれで

play05:36

スクレイピングです

play05:40

ねこれでえっとこのページのこのこういう

play05:43

HTMLの一覧が取得できます

play05:47

GoogleChromeの右クリック

play05:48

から検証でこの中身見ることができるん

play05:51

ですがこの今こうやって書いてある

play05:52

HTMLの一覧が今ここで取得できてい

play05:55

ますねこの辺りのスクレイピングの方法と

play05:58

かあの前の動画とかでも詳しく解説してる

play06:00

ので是非見てみてくださいね

play06:02

スクレイピングできたら今まで通り

play06:04

ビューティフルスープで加工していき

play06:09

[音楽]

play06:10

ますはいこうです

play06:13

ねで今取得したいのがえっとこのフース

play06:18

IDこのうめって書いてあるここのえっと

play06:21

フースIDっていうのが多URLの情報の

play06:25

ところにあるんですよねこうやって遡っ

play06:27

てくとえっとここにありましたねこの

play06:30

URLの中のとこの数字ですねここを取得

play06:34

していきたいですなのでえっとそれを取得

play06:37

するために上の方に遡っていってこのタグ

play06:40

ですねこのタグに注目しましょうこのTD

play06:43

タグでクラスの名前がホースインフォって

play06:45

なってるタグに注目してあげてスープの

play06:50

フイン

play06:52

オールこの辺りのスクレイピングの方法と

play06:55

か結構あのいろんな動画で解説してたり

play06:57

するのと結構今回その内容が盛になるので

play07:01

ちょっと飛ばし気味にいきます

play07:06

ねはいこれでうですねこのTDタグの中身

play07:10

っていうのがを取り出すことができたので

play07:13

このリスト型で入っていいので例えば1番

play07:16

最初のTDタグだったらとこんな感じの

play07:18

ものが入ってるのでこれに対して正規表現

play07:23

でえっとここの数字を取っていきますどう

play07:27

するかっていうと今ロでも表示してくれ

play07:31

ちゃってるんですがとまずAタグですね

play07:34

この中からこのAタグをまずここで抽出し

play07:37

てでAタグのHレフ属性っていうところに

play07:41

とこのURLがまず入ってますこれだけ

play07:43

ちょっと見てみます

play07:45

かここにURLが入ってるのでこのURL

play07:48

に対してとこのレースIDの部分10桁の

play07:52

数字になってるのでそれを取り出して

play07:54

くださいっていうコードを書いてますそう

play07:55

するとこのレースIDが取り出せますねな

play07:58

のでこんな感じをで今1つのTDタグに

play08:01

ついてやったんですがこれを全部のこの

play08:03

最初に取得したリストについてやっていっ

play08:06

てかつそれをまた全部のレースIDに対し

play08:10

てこの24個のレースIDに対してえっと

play08:12

ホースIDを取得していくっていうのを

play08:14

そういうコードを書いていきますとコモン

play08:17

ソースの中でクリエイト

play08:21

プレディクションポピュレーション測

play08:24

[音楽]

play08:29

ポピュレーションていうのは英語で募集団

play08:32

ですねと予測募集弾を作成する

play08:34

Pythonのスクリプトを書いていて

play08:37

この中にあの関数で書いていきます今使っ

play08:40

たパッケージをスクリプトの中でも

play08:43

インポートしていっ

play08:44

てでスクレイプフースIDリストっていう

play08:48

関数を作っていきますレスID

play08:53

を入れる

play08:55

とリスト型でとフースIDが返ってくる

play08:58

ような関数ですねはいレースIDを指定

play09:02

するとそのレースIDの出走場のIDの

play09:05

一覧が返ってくる関数ですねでまずURL

play09:09

がこれ

play09:11

ででえっと今このとべた書きでレースID

play09:16

を指定してるんですがここ

play09:19

をとこうやって中括弧で書いてここにFを

play09:22

つけてあげることによってこの入ってきた

play09:24

レースIDに対してURLを指定すること

play09:26

ができます

play09:33

でスクレイピングをし

play09:35

てビューティフルスープのオブジェクトに

play09:40

変換し

play09:40

[音楽]

play09:43

ますであとはさっきと同じ流れでTDの

play09:47

リストまで取っていってここにまずからの

play09:51

リストを定義しておいてフォア分で入れて

play09:53

いくようなイメージですねはいまずこの

play09:56

取得したTDのリストから1個ずつ回しで

play10:00

ここがさっきのコードで言うえっとこれ

play10:03

ですねこれでホスIDが取り出せるように

play10:05

なってるのでここはこうですねうんこれで

play10:08

いいですねTDが1つずつ回っていって

play10:10

このフスIDリストっていうここで定義し

play10:13

たからのリストの中に1つずつ入れていっ

play10:16

てくださいこういうコードでオッケーです

play10:18

ねでこの放送ididのリストを返して

play10:21

あげるはいこれでまず実行してみましょう

play10:24

インポートクリエイトプレディクション

play10:27

ポレーション

play10:31

インポートしてあげてスクレイプホス

play10:34

ididリストに対してえっとじゃあ最初

play10:38

の取得したさっき取得したレスIDリスト

play10:42

この中から1番最初の

play10:45

ものこれ

play10:47

を入れてあげ

play10:51

ましょうはいオッケーですねそうすると

play10:54

フースIDの一覧をこれでリストの形で

play10:56

取得することができましたそしたらここの

play10:59

流れで今度はえっと1つのレースIDに

play11:01

対して今フスIDリストを取得するコード

play11:05

を書いたんですが最初に取得したこの

play11:07

レースID全部についてと取得していって

play11:11

とこういう日付とレスIDとフスIDの列

play11:14

を持つあのパンスのデータフレームの形に

play11:17

まとめていきますインポートパンスで

play11:20

パンスをインポートし

play11:22

て次

play11:24

にクリエイトっていう関数を作って開催

play11:30

ピを入れるとファダスのデータフレームが

play11:34

返ってくるような関数を作りますでどんな

play11:38

関数かって言うと開催日開催日を

play11:43

yyyymmddの形式で指定すると

play11:45

えっと予測募集団である日付レースID

play11:51

ホース

play11:52

IDのデータフレームが返ってくる関数

play11:55

こういうのを書いていきますなのでまずは

play11:58

えっと催が入ってくるのでそれに対して

play12:01

さっきと同じようにさっき1番最初にやっ

play12:04

たのと同じようにとまずレースIDの一覧

play12:07

を取得してあげますこれです

play12:10

ねまずはこれをやっていきたいんですが

play12:13

えっとこれスクレイピングモジュールモ

play12:16

ルっていうのはこのドッパって書か

play12:17

れた形のものモルっていうんですが

play12:19

このスクレイピングモジュールの中にある

play12:22

関数を使いたいのでとこのスクリプトの中

play12:25

でもさらにインポートスクレイピングに

play12:29

やってあげますそうするとここにあると

play12:31

関数が使えるようになりますねでさっき

play12:34

ここ下書きしたんですがこれが今引数で

play12:37

入ってくる開催デートになるのでこれで

play12:40

レースIDの一覧が抜き出すれますでそし

play12:44

たらレースIDinレースIDリスト

play12:47

みたいな感じであってこの関数っていうの

play12:49

がこの1つだけのレースID1つのレース

play12:52

IDを入れることが想定されてる関数に

play12:54

なるのでこれに対してスクレイプフスID

play12:58

リストっていうのをこう使ってあげ

play13:02

ますモスID

play13:04

リストが返ってきますねこれ

play13:08

ではいでえっと大事なのがここで1回

play13:12

スクレイピングをすることになるので必ず

play13:16

フア分とスクレイピングを組み合わせる時

play13:18

は1秒間待機時間をあのネットKは.

play13:21

COMのサーバーに負担かけないように

play13:22

入れてあげましょうでえっとインポート

play13:25

タイムですねはいで

play13:30

やりたいのが日付レスIDホスIDって

play13:33

いうデータフレームを作りたいのでパンス

play13:36

のデータフレーム

play13:40

で日付が入ってきたこの開催デートで

play13:45

レースID列にと今フア分で回してるので

play13:49

このレースIDを入れてホスIDにここで

play13:52

取得したホスIDリストを入れ

play13:55

ます

play13:57

はい一旦ちょっとここまでであのこの

play14:01

データクレームどんなものができるかって

play14:03

いうのを見てみますそういう時はとリタン

play14:07

DFってここでやってあげるとここであの

play14:09

強制的に1回目のループでと関数が終了

play14:12

するような形になるのでこういう感じで

play14:14

確認していくとあの関数作りやすいですね

play14:17

ここがデータフレームになってるしたら

play14:21

これで1回今の関数実行してみましょう

play14:24

これを書いておいたので

play14:27

えっと更新したい時ははオートリロード

play14:30

オートリロードっていうのを実行すればと

play14:33

今の書いたこれが反映される形になり

play14:38

ますでこれ

play14:41

でクリエイト関数を実行してみましょう

play14:44

ここに開催

play14:46

日開催日

play14:48

play14:50

yyyymmddの形で入れる

play14:55

とはいまずこれで最初にとレースIDをス

play14:59

ピングしてくれてます

play15:00

ねはい帰ってきましたこんな感じのデータ

play15:03

クレームが返ってきましたねコア分の中の

play15:05

このDFっていうのがっと帰ってきてます

play15:07

ねここではい1つのレースIDに対して

play15:11

こんな感じでそのレースそのレースの中で

play15:14

出走する馬さっきサイト上で見たこの

play15:16

レースですねこの馬の一覧がここで返って

play15:19

きてます1つのレースIDだとこんな感じ

play15:22

になるのでこれをえっと全部のレースID

play15:25

に対してやってあげたいのでどうするかて

play15:29

言うとこのDFをたくさん入れるっていう

play15:31

意味でこのDXっていう自称型を作って

play15:34

おいてそこにその自称型

play15:38

にDFをこうやって入れていくような形に

play15:41

しますでその自称型のデータに対し

play15:48

てDXvalていう風にやってあげる

play15:55

とやってあげるととさっきのこが縦に

play15:59

どんどん繋がっていくような形になります

play16:01

ねとこの方法についてはとこのクリエイト

play16:05

ロディFの関数を作るところで詳しく解説

play16:09

してるのでとその記事をぜひ見てみて

play16:11

くださいはいこれでともう1度実行してみ

play16:15

ますリロードして関数を実行してみます

play16:19

今回は24個のレースididに対して

play16:21

あるのでちょっと時間かかるかなって思い

play16:23

ますねあれ

play16:26

なんかエラーになった

play16:30

キノットセッタデータフレームミス

play16:32

マルチプルカムズカラムがダブってる

play16:35

ぞって言われてますねなんでだろうあ

play16:39

ここここDFSです

play16:43

ねはいもう1回これで実行してみ

play16:47

ますリロードして再実行してみますでこれ

play16:51

あれですねちょっと時間かかっててどん

play16:54

くらい進んでるか知りたくなるのでとここ

play16:57

にtqdm入れてあげまし

play17:06

qdmノートブックからtqdm

play17:09

インポートして入れてあげましょうであと

play17:11

はこのそれぞれのスクレイピングの処理の

play17:14

ところにと何をやってる

play17:16

か書いてあげるともっと分かりやすいです

play17:22

play17:24

はいはいで結果返ってきてますねうんそう

play17:29

ですねこんな感じでと日付ととレースID

play17:32

今度全部のレースIDに対してとそれぞれ

play17:34

ホスIDをスクレイピングして結合して

play17:38

くれてますねはいそしたらえっと今度これ

play17:41

をファイルに保存していくんですがそれも

play17:44

関数の中で自動的にやってくれる形にし

play17:47

ましょうでえっとファイルの保存場所なん

play17:50

ですがこれは新しくとディレクトリーを

play17:53

作ってしまいましょうこれ専用の

play17:58

プレディクション

play18:00

ポピュレーションみたいなディレクトリー

play18:02

を作ってしまってその中にあの保存して

play18:04

いく形にしましょうなのでそのファイル

play18:07

パスを

play18:09

まず定義してあげますファイルパス

play18:14

はとパスリブのパス型で定義してあげると

play18:19

環境の違いによってエラーを起こさずに

play18:21

済むのでそれで定義してあげますね

play18:29

プレディクションポピュレーション

play18:30

[音楽]

play18:33

いうディレクトリーを定義してあげ

play18:37

ますでと初回の実行の時とかもしこの

play18:41

フォルダーがない時にエラーになって

play18:42

しまうのでここで作っておきましょうはい

play18:45

そしたらこのクリエイト関数を実行する時

play18:48

にセーブディレクトリ

play18:52

とセーブファイルネームを指定してあげて

play18:56

まプレディクションポピュレーションの中

play18:58

play19:00

まPO.CSVとかにしときますか

play19:02

デフォルトの名前はでこのコンッDFに

play19:06

対し

play19:08

て2CSV

play19:11

でのファイルに保存してあげ

play19:14

ますでえっと区切り文字はタブがいいので

play19:19

これを設定しますであとはえっと日付の列

play19:22

ですねこれ文字列のままこうやって保存し

play19:25

てもいいんですがこれあの日付型に変換し

play19:28

ておきましょう

play19:29

ということで

play19:30

えッDF

play19:33

の日付列はパンダのtoデータイムって

play19:39

いうので日付け型に変換します確か

play19:43

yyyymmの形はフォーマット

play19:47

デフォルトのままで指定しなくても日付型

play19:50

に変換してくれたはずなのでこれでもう1

play19:53

回実行してみ

play19:54

ますプレプレディクション

play19:59

ポピュレーション

play20:01

っていう変数で受け取りましょうはいこれ

play20:06

でまずさっき書いたあのレースIDの

play20:09

リストをスクレイピングしてますみたい

play20:11

な進捗を表示してくれますねでホースID

play20:15

リストをスクレイピングし

play20:17

ていますっていうのを表示してくれるのと

play20:20

このプログレスバーはさっきここに

play20:23

tqdmっていうのを書いた影響ですね

play20:25

これであのこんな感じで24分の何まで

play20:29

スクレイピングが終わってるかっていうの

play20:31

を表示して分かりやすくなりましたねはい

play20:34

処理が終わりました中身同じさっきと同じ

play20:37

ものが返ってきてるか確認するのと

play20:39

オッケーそうですねであとはあれ

play20:43

プレディクションポピュレーションが保存

play20:44

されてないぞなんでだなんで

play20:48

だなんで保存されてないんだろう

play20:51

ポピュレーションディアであこれなんか

play20:56

今日データとデート間違いやすいなデータ

play21:00

なんかでそっかここにできちゃってんのか

play21:02

これちょっと1回消してもう1回っと再

play21:08

実行し

play21:10

ますはい現れましたねここに

play21:13

population.CSVがこんな

play21:15

感じでできてきますはいこれで予測募集団

play21:20

の日付とどのレース6月1日を予想しよう

play21:24

と思ったらえっとどのレースがあってどの

play21:27

馬が走るのかって情報をできたので次です

play21:30

ねえっと今使ってる特徴量として何があっ

play21:35

たかっていうのをもう1回確認していくと

play21:38

このデータベースのえっとねあのレース

play21:41

結果テーブルまずこのテーブルの中のと

play21:44

こういうなんか金量とか性別年齢とかの

play21:48

カムを使ってたのとあとこのレースの情報

play21:51

テーブルテーブルっていうかこれまだ文字

play21:53

ですけどえとレースの情報から色々天気と

play21:56

かあのレースの芝なのかダートなのか障害

play22:00

なのかっていうのを取ってきてたのとあと

play22:02

はこの馬の過去成績ですね例えばこの馬

play22:05

だったらこの馬がこの予測したいレースに

play22:08

対してと直近3レース5レースでどんな

play22:11

成績を上げてたかっていうのを集計して

play22:14

ここら辺ですね3レス分5レース分10

play22:16

レース分のも賞金と着順の平均をここで

play22:21

中継してるんですが例えば今学習させてる

play22:24

データって2023年の全部のレースの

play22:27

結果学習させてて6月1日とかに予測し

play22:29

たい場合っってモデルを学習させた時点

play22:32

から馬の成績のデータが更新されてる可能

play22:34

性っていうのが高いんですねなので予測の

play22:38

時にまた今の過去成績を取得する必要が

play22:41

ありますこのちょうど予測募集団の中に

play22:44

ホースIDがあるの

play22:46

でホースIDですねこの馬に対してえっと

play22:51

また馬の過去成績テーブルこれを取得して

play22:54

作ってあげるっていうのをやっていきます

play22:57

でそのコードっていうのはもう既に作って

play22:59

あるのでスクレイピングの中のと

play23:03

スクレイプHTMLホースですねはいこれ

play23:07

どんな関数かって言うととホースページの

play23:10

htmlをスクレイピングしてと

play23:12

ディレクトリに保存するでここに書いて

play23:15

あるのがスキップトっていう風にすると

play23:18

既にHTMLが存在してる場合はスキップ

play23:21

されるんですが今回上書きしたい最新の

play23:24

データに上書きしたいのでSKIPイ

play23:26

フルスにして実行して行きますなので

play23:30

ホースIDのリストっていうの

play23:34

play23:37

ユニークこの予測募集団に含まれるやつで

play23:40

スキップはフルスにしますはい

play23:45

HTML

play23:47

パズ

play23:49

コスいうのでこの取得したHTML

play23:53

ファイルのパスが返ってくるのでそれを

play23:54

受け取りますねはいこれでまず

play23:56

スクレイピングをしますそうするとこの

play23:59

関数はデータのHTMLの中のこのホース

play24:03

このディレクトリにそれぞれの馬の過去

play24:05

成績のこのhtmlを取得していってと

play24:08

ファイルでこう保存していくようなこう

play24:10

いうドッバイナリていうファイルで保存し

play24:13

ていくような関数でしたねこれで1回あの

play24:16

処理を待ちたいと思いますはい

play24:18

スクレイピングが完了しましたで中身見て

play24:21

みましょうこんな感じで取得した

play24:24

バイナリーファイルのパスが返ってきて

play24:26

ますね一応長さも

play24:30

チェックはい入れた放銀の数だけ

play24:33

スクレイピングがちゃんとできてますねで

play24:36

そしたら次にとこのテーブル形式にする

play24:39

ところですねこのファイルからテーブル

play24:41

形式にしたいんですがとこれもすでにと

play24:45

クリエイトLDFの中にとクリエイト

play24:49

フースリザルツっていう関数を準備して

play24:52

ますねなのでクリエーLDFの中でクエス

play24:58

っていうのを準備してますでと説明出し

play25:02

たいのでこう打ってみるとこれ何かって

play25:05

言うと今取得したのホースページの

play25:07

htmlを読み込んで馬の過去成績

play25:10

テーブルに加工していく関数になりますな

play25:12

のでこのパスのリストを入れてあげるのと

play25:15

あとここで1個ポイントがあってこれこの

play25:18

まま実行しちゃうととデフォルトがこの

play25:21

fceRES.CSVこれ上書きされ

play25:23

ちゃうんですよねこれ何だったかて言うと

play25:26

学習の時に使った馬の過去成績テーブル

play25:29

ですねこれ2023年に走る馬全部のと馬

play25:33

の過去成績のデータが入ったテーブルに

play25:36

なってるんですがこれを上書きしちゃうん

play25:38

ですけどとこれはこれで取っておきたい

play25:40

ものなのでと別のファイルネームに保存し

play25:43

てあげることにしますでファイルネームは

play25:46

これ引数でちゃんと用意してあげてるので

play25:49

セーブファイル

play25:51

ネームっていうのをとじゃあフース

play25:54

リザルツプレディクションみたいな名前に

play25:56

しますかこんな感じで定してあげることに

play25:59

よってあこれデータクレーム返ってくるの

play26:02

でちょっと受け取ってあげますかフス

play26:05

リザルツ

play26:07

プレディクション予測の馬の過去成績

play26:10

テーブルでノットファンドって書いてある

play26:12

のはまだあの走ったことない馬とかは

play26:15

テーブルが見つかりませんにはなりますね

play26:17

はいこんな感じでホースリザルツ

play26:19

プレディクションていう別のファイル

play26:21

ネームを指定しあげることによってその日

play26:24

を足するデータはここに保存されることに

play26:27

なりますこれがですね結構あの元々

play26:30

クリエイトRDFテーブルデータ作る時に

play26:33

関数にちゃんとまとめておいた効果になり

play26:35

ますねこんな感じでとファイル名とかを

play26:38

引き数で設定できるようにしたことによっ

play26:40

てここを1個変えるだけであの別の

play26:43

ファイルネームに保存することができ

play26:44

るっていうこういうのは結構ねあのこの時

play26:47

にちゃんと作った自分に感謝したい案件

play26:49

ですねこういうのちゃんとまとめておく

play26:51

ことによってまって後々使いやすくなって

play26:54

いったりしますはいこれで上の過去成績

play26:56

テーブルその日に予測したい日に走る馬の

play26:59

と最新の過去成績を取ってくることができ

play27:02

たのでと次に実際予測の時の特徴量の

play27:06

データを作っていきたいと思いますで特徴

play27:09

量のデータはこのそれぞれのバージョンの

play27:12

フォルダの中にコードがあるのでそこに

play27:14

書いていくことにしますなのでこの

play27:16

バージョン3.0.0のとデブ

play27:19

ノートブックに1回移っていきます一旦

play27:22

消しますねこういう風にフォルダーを分け

play27:24

てる背景とかはただこれも前の動画と記事

play27:27

で解説しので参考にしてみてください即時

play27:31

の処理ですね即時の処理の中のレース前日

play27:36

準備さっき作ったこれはと馬の過去成績

play27:40

テーブルのローデータこのままではあの

play27:43

例えばこういうデータとかは機械学習に

play27:46

入れられないのでそれをまずは前処理して

play27:48

いきますでその前処理のコードもすでに

play27:51

作ってあるのでこれがこのプリプロセッ

play27:54

シンググっていうところにプロセスホース

play27:56

リザルツっていう関数で作ってあるので

play27:59

これ実行していきますでインポートプリ

play28:02

プロセッシングでオース

play28:05

リザルツプリプロセスはこのプリ

play28:08

プロセッシングの中のプロセスかな

play28:10

プロセスフォースリザルツっていう関数で

play28:13

これ何かって言うと馬の加工績テーブルの

play28:16

の未加工のデータをとインプット

play28:18

ディレクトリから読み込んで加工してと

play28:20

このアウトプットディレクトリに加工

play28:22

えっと保存してくような関数ですね

play28:24

デフォルトだとも01プリプロセスていう

play28:27

ところに保存され出ていますでこれも便利

play28:30

なのがえっとセーブファイルネームか

play28:33

セーブファイルネームをこれもデフォルト

play28:36

だとこのホースリザルツなんですがさっき

play28:38

指定したとこのフースリザルツ

play28:41

プレディクションっていうのに変えて

play28:43

あげることによってえとこのファイルが

play28:45

読み込まれて01プリープロセスのところ

play28:49

にと加工されて保存されることになります

play28:52

はいできましたね感じで前処理のデータが

play28:57

一発で開けねこれどうですかだいぶ便利

play29:00

じゃないですかこんな感じで1発で新しい

play29:02

コードを書く必要はないですねと学習の時

play29:06

は馬の過去成績の他にあのレース結果の

play29:10

テーブルとレース情報のテーブルをここで

play29:12

加工してたんですがこれはただ事前にでき

play29:15

ないことになりますね最初に話したんです

play29:17

けどこのオツとか人気とか馬退場のデー

play29:21

タっていうのが事前に集計できなくてと

play29:23

直前に取得しないといけないんですよねな

play29:26

のでここからちょっと複雑になっては

play29:28

しまうんですがここら辺の処理を予測時は

play29:31

全部このフューチャーエンジニアリングの

play29:33

ところでやっていきたいと思いますなので

play29:36

どうするかって言うとこのフューチャー

play29:39

エンジニアリングの中にクラスえっと

play29:42

フューチャークリエイターってあるので

play29:46

プレディクション

play29:49

フューチャー

play29:51

クリエイターっていうクラスを作り

play29:55

ますでえっと先にクラスの骨格中身の具体

play30:00

的な処理は置いといて骨格どんな感じで

play30:02

やるかっていうのだけと書いていきますね

play30:06

まずどんなイメージでやるかって言うと

play30:08

ここですねこれ馬の過去成績の直近N

play30:11

レースの着順と賞金を平均して集計する

play30:15

ものなんですがこれはそのまま同じ処理が

play30:18

できますでさらに言うとこれはえっと事前

play30:23

にできる処理なんですよね馬の過去成績な

play30:26

のでえっと当日更新されるデータていうの

play30:28

は使わないのでこういうのは事前に集計し

play30:30

ておくことにしますなので出走する馬が

play30:34

確定した時点で先に実行しておいても

play30:36

いいっていう風にしますねでここからなん

play30:38

ですがどんな感じのイメージで特徴量を

play30:41

作っていくかって言うと

play30:44

まずフチ出馬テーブルHTMLっていう

play30:49

関数を用意し

play30:52

[音楽]

play30:54

ますえどういう関数かっていうとレースを

play30:58

1個指定するとそのレスIDの出場表

play31:01

ページのHTMLが返ってくる関数

play31:04

htmlをスクレイピングする関数こう

play31:07

いう関数をまず用意しますこうすることで

play31:10

この関数の中でと直前に例えばツとか人気

play31:14

の値が更新されたらこの関数を実行する

play31:16

ことによって更新できるっていうような

play31:18

イメージですねでその結果をなんか例えば

play31:22

えっとこのクラスの中のSF.HTML

play31:25

みたいな感じにしておいてとこのクラス内

play31:28

のHTMLとして使えるようにしておき

play31:31

ますペッチっていうのはなんか取って

play31:32

くるってい感じの意味ですねこの出場表の

play31:35

htmlを取ってくるってい意味の関数

play31:38

です同じ感じ

play31:47

でその取得したhtmlを入れるとケトル

play31:52

とレース結果テーブルを取得して学習時と

play31:58

同じ形式に前処理する関数で学習時にやっ

play32:04

てたえっとこのレース結果のテーブルを

play32:08

取得して前処理するっていうの2段回に

play32:10

分けてやってたんですがえっと予測の時

play32:13

ってこのオツとか単勝が更新されるから

play32:16

それを取得してすぐにそのまま前処理する

play32:19

んですねなのでそれを1括でこの関数の中

play32:21

でま予測の時はやってあげますからなんか

play32:25

こういうイメージですねDFは=ファンス

play32:28

のReHTMLでテーブル形式に変換して

play32:31

あげてここで前処理をしてでこのクラスの

play32:35

SF.RESとかに入れてあげるような

play32:37

イメージです同じようにレースインフ

play32:41

テーブルについても同じ感じでhtmlを

play32:44

受け取ってレス情報テーブルを学習時と

play32:47

同じ感じに前処理してあげ

play32:48

るっていうことをやりますこれなどんな

play32:51

イメージかって言うとビューティフル

play32:52

スープでなんかhtmlを加工していく

play32:55

ようなイメージですねで最終的にセルフ

play32:58

レースインフォっていうところになんか

play33:00

加工してあげたデータフレームとして入れ

play33:02

てあげるっていうイメージですなのでこの

play33:05

フェッチの処理っっていうのはレースの

play33:06

直前にこう更新するようなイメージですね

play33:10

でそれらの関数を全部実行してあげるメ

play33:13

ソッドドっていうのを学習と同じように

play33:17

ここに用意してあげる感じですね特徴量の

play33:21

作成処理を実行してポピュレーション

play33:22

テーブルに全部結合していくっていうです

play33:25

でポピュレーションテーブルっていうのは

play33:27

なこの関数のイニットとかで読み込んで

play33:31

あげるイメージですねこれもなんかセルフ

play33:34

オペレーションイコールBCSVこれまだ

play33:38

書いてないんですけどなんかさっき保存し

play33:41

たえっとこのプレディクション

play33:43

ポピュレーションこれを読み込んであげ

play33:45

ますこのレスIDフスIDっていうところ

play33:48

から読み込んであげてそこに前処理した

play33:52

レース結果テーブルとかレース情報

play33:53

テーブルとかどこの作ってる特徴量ですね

play33:56

馬の過去先の特徴量とかをどんどん紐付け

play33:59

てくイメージですこれはあの学習時の時の

play34:02

あのここら辺の処理と一緒ですねなので

play34:05

基本的にはこれをコピーしてあげて同じ

play34:09

感じで作ってくイメージですで1個違うの

play34:12

がここ

play34:16

でこの取得の処理が入るっていう感じです

play34:20

ねエッチ出馬テーブルでhtmlを取って

play34:23

きてあげ

play34:24

てでレース結果テーブルを取ってきて前

play34:27

処理もしてあげ

play34:31

てあえっとフッチレースインフォレース

play34:36

情報テーブルを取ってきて前処理をして

play34:39

あげるそうするとこのセルフリザルツとか

play34:42

セルフレースインフっていうのにえっと

play34:44

それぞれの処理されたテーブルが入るので

play34:46

あとは同じマジ処理で書けるっていう

play34:49

イメージですねであとは例えば第7回の

play34:52

動画でクラスにするメリットとして関数の

play34:55

あの単体実行ができますよっていうのは

play34:58

あったと思うんですがそれが生かせる場面

play35:00

がついに来たっていう感じなんですよね

play35:02

どういうことかって言うとえっとさっき

play35:04

書いたようにこのaggフースNレズって

play35:07

いうのは先に実行しておいてもいいんです

play35:09

ねなので先に実行しておいた時にはこの

play35:13

処理がスキップできる何がしたいかって

play35:15

言うと後々このなんか事前の集計処理が

play35:18

重くなったりする場合この単勝オッツとか

play35:21

が更新されてあのすぐにデータ作りたい

play35:24

ですよねそうしないと間に合わないので

play35:27

なるべく直前のオとかを取得したいって

play35:29

いう時に間に合わないのでここら辺の

play35:31

データをこの処理を待ってる時間っていう

play35:33

のが無駄なんですよねなのでそれを

play35:35

スキップできるっていう意味でスキップ

play35:39

AGコースとかやってあげてまデフォルト

play35:44

フォルスにしてこの処理は実行してあげる

play35:47

ことにして先に実行しておいた場合は

play35:53

スキップできる

play35:58

こんな感じでやってあげますなのでこの

play36:01

関数をあらかじめ実行して外から実行して

play36:04

あげた場合にはこのスキップAGフォース

play36:07

ていう引数をトルーにしてあげればこの

play36:10

処理がスキップできるっていうスキップし

play36:12

ても事前に集計してたらこのクラス内の

play36:15

AGフースNRACていうところにあの

play36:18

ちゃんと入ってくるのでここであの

play36:20

ちゃんと処理は行われるっていうこういう

play36:22

仕組みにしようと思いますこれ結構なんか

play36:26

若干複雑な話して

play36:28

はいると思うのでなんかついていけなく

play36:29

なったりとかわかんないよっていう方い

play36:31

たら是非あのコメント欄とかであの聞いて

play36:34

くれれば返しますのではいこんなイメージ

play36:36

ですね先にこれを実行しておいた場合は

play36:39

スキップできるはいこんな感じのこれが

play36:42

このクラスの予測時の特徴量作成のコード

play36:45

の骨の部分になりますなのでと先にこれど

play36:48

実行するとどんな感じになるかっていう

play36:50

イメージをちょっと見せていきたいと思い

play36:53

ます予測当日はどういう処理をすることに

play36:56

なるかっていうとまずは今作った

play36:59

プレディクションフューチャークリエイ

play37:00

ターっていうクラスを初期化してで馬の

play37:04

過去成績集計だけ先にこうやってやって

play37:07

おきますそうするとefcのえっとフース

play37:12

リザルじゃなくてあなんだっけ

play37:15

AGスNRDFっていうところにと事前に

play37:19

こんな感じで直近3レス分5レース分とか

play37:22

集計した結果っていうのが先にこう格納さ

play37:25

れる形になるんですねでそしたらこのこの

play37:27

スキッAGフォースっていうのをTRUE

play37:29

にすることによってスキップしてこの特徴

play37:32

量の更新をしています今この出場表の

play37:35

ページからhtmlを取得してとレース

play37:38

結果テーブルとレース情報テーブル

play37:41

それぞれ前処理したものが入ってています

play37:43

確認してみるといいと思うんですがECの

play37:48

えっとリザルツっていうところには例えば

play37:51

こんな感じでレース結果テーブルの前処理

play37:54

の結果が入っていてレースインフっていう

play37:59

ところにははいそうですね1つのレース

play38:01

IDでやるので1つのレース情報の

play38:03

テーブルがこうやって入ってくるイメージ

play38:05

ですはいこんな感じで特徴量が返ってきて

play38:09

学習時と同じような立で処理されたこの

play38:12

特徴量のテーブルが入ってくるのであは

play38:15

これを機械学習モデルに入れてあげるば

play38:18

予測の結果が返ってきます予測のコードも

play38:21

あのこの後作っていくんですがこんな感じ

play38:23

でプレディクション.Piっていうのに

play38:25

こうやってまとめて学習させたモデルを

play38:29

あの読み込んでフィーチャーズが入ってき

play38:31

たら予測するっていうスクリプトを書いて

play38:33

あげればこれでこんな感じで予測の

play38:35

テーブルが返ってくることになります

play38:37

こんな感じの処理の流れで当日は予測する

play38:39

ことになりますねはいということでえっと

play38:42

ここからは正在編の方の動画に行ってこの

play38:45

中身の処理ですねプレディクション

play38:47

フューチャークリエイターの今ここに省略

play38:50

してるここの部分完成させていってあの今

play38:52

の処理作っていきたいと思います詳細編の

play38:55

動画はあの概要欄とコメント欄の記事に

play38:58

貼っておきますので是非興味ある方見てみ

play39:00

てくださいはい概要編一旦ここまでにし

play39:03

たいと思いますご視聴ありがとうござい

play39:05

ました

play39:07

[音楽]

Rate This

5.0 / 5 (0 votes)

Related Tags
競馬予想AI開発機械学習データ分析スクレイピングPython予測モデルデータベース学習手法技術解説
Do you need a summary in English?