No video

【リメイク版#4】馬の過去成績テーブルを取得する【競馬AI開発】

  Рет қаралды 3,864

競馬予想で始めるデータ分析・機械学習

競馬予想で始めるデータ分析・機械学習

Күн бұрын

Пікірлер: 38
@user-ej3zj6kv9z
@user-ej3zj6kv9z 4 ай бұрын
📘動画中のソースコードや補足解説はこちら note.com/dijzpeb/n/n95bcef3eb524 📘目次 0:00 オープニング 0:35 今回やること 3:44 馬の過去成績テーブル取得の流れ 5:20 レース結果テーブルへの列追加 23:01 取得したテーブルの保存方法 28:01 horseページのスクレイピング 34:59 馬の過去成績テーブルの作成 📘関連動画 【リメイク版#1】レース開催日一覧をスクレイピング【競馬AI開発】 kzbin.info/www/bejne/iaqVanSoidR3p5Y 【リメイク版#2】ChromeDriverによるレースid一覧のスクレイピング【競馬AI開発】 kzbin.info/www/bejne/aImzo41jrNWFbdU
@makochan0909
@makochan0909 Ай бұрын
フォルダを作る際、失敗してしまいます。 その場合はOSのライブラリ使ったほうがいいのでしょうか?
@user-ej3zj6kv9z
@user-ej3zj6kv9z Ай бұрын
どんなエラーが出ますか?
@makochan0909
@makochan0909 Ай бұрын
@@user-ej3zj6kv9z 手動でフォルダ作っちゃいましたw
@hiro29865
@hiro29865 4 ай бұрын
いつも 動画 ありがとうございます 今回の動画では過去成績データを全部取得するものでしたが こういうデータベースみたいなものを作成していた方が 後々 色々な プログラムを作成する時に手間が省けるということでしょうか? 私がやりたい例えば開催日の第10レースだけの過去成績データを馬毎に 取り出し走破タイムに条件( 開催日・ 馬場状態・ それぞれの競馬場と距離の基準タイム差)を加味して補正タイムをだす 次に補正タイムから馬毎に競馬場 距離別で一番速いタイムだけを残す ( 同じ 競馬場 距離が複数あれば一番 速いタイムだけを残す) やりたい レースだけをプログラムで回してこういうような ことができればいいなと思います このような細かい加工動画も見てみたいです よろしくお願いいたします 最後にこういうプログラミングをしてる パソコンのスペックって どれぐらいのものを使ってるのでしょうか、お聞きしたいです
@user-ej3zj6kv9z
@user-ej3zj6kv9z 3 ай бұрын
> こういうデータベースみたいなものを作成していた方が後々 色々な プログラムを作成する時に手間が省けるということでしょうか? →そうです!後々まとめてデータを入れて機械学習させます。走破タイムの加工はいずれやりたいと思っています! > こういうプログラミングをしてる パソコンのスペックってどれぐらいのものを使ってるのでしょうか →僕が今使っているのは ・MacBook Pro 13インチ M1 2020 ・メモリ:8GB ・ストレージ:500GB です!
@kani838
@kani838 4 ай бұрын
いつも動画で勉強しています! リクエストなんですが、今回のリメイク版ではランキング学習を用いるのはどうでしょうか?
@user-ej3zj6kv9z
@user-ej3zj6kv9z 3 ай бұрын
ありがとうございます! ランキング学習、ちょうどやろうと思っています!(順番的に、少し先にはなると思いますが)
@HERO-super55
@HERO-super55 Ай бұрын
いつも勉強させてもらってます。 質問なのですが、scrape_html_horseを実行する際,10%進むのに1時間くらいかかりました。 time.sleepは2秒にしてますが、こんなにかかるものでしょうか? PCはRYZEN7 5000series,メモリは16GBのものを使ってます 教えていただけると幸いです。
@user-ej3zj6kv9z
@user-ej3zj6kv9z Ай бұрын
time.sleepが2秒だと、単純に計算すると最速でも1800件/1時間ですが、それと比べてどうですか?
@HERO-super55
@HERO-super55 Ай бұрын
@@user-ej3zj6kv9z そう考えるとちょっと遅いくらいです。 気長に待ちます。ありがとうございます。
@user-gl7zw2ok3k
@user-gl7zw2ok3k 3 ай бұрын
リメイク版、ありがとうございます! 1つ質問があります。 create_rawdf.create_results関数内において、df = pd.read_html[0]でraceページのテーブルを取得していますが、通過や上りや馬主などいくつかの列が取得できていないのはなぜなのでしょうか? 最終的には、horseページから結合する際に、必要な特徴量を追加すれば同じことだとは思うのですが、単純にテーブルデータすべてが取得されていないのが気になります。 検証を見ても、tableデータとして含まれているので、私には何を基準に列の取捨がなされているのか分かりません。 もし可能でしたら、お時間のあるときにご対応をお願いいたします。
@user-ej3zj6kv9z
@user-ej3zj6kv9z 3 ай бұрын
サイト上だと見えないのでトラップなのですが、取得したhtmlを見てみると、次のようにというタグで囲まれているせいで、うまく判定されないんですよね。 タイム指数 通過 上り このタグを除外すれば取得できるようになるので、次の第5回のソースコードでは、除外して取得するようにアップデートしています!
@user-gl7zw2ok3k
@user-gl7zw2ok3k 3 ай бұрын
そういうトラップがあったんですね。ありがとうございます!
@sm.4299
@sm.4299 Ай бұрын
results = create_rawdf. create_results(html_paths_race) では table not found at 202301010101 が3456個分出力されます
@user-ej3zj6kv9z
@user-ej3zj6kv9z Ай бұрын
指定したパスに含まれているhtmlが想定と違うものになっている可能性が高いです notebook上で試しに一つ読み込んで想定通りのものが得られているか確かめてみてください
@sm.4299
@sm.4299 Ай бұрын
@@user-ej3zj6kv9z 再起動をした際の %load_ext autoreload 以外に実行したコードも教えていただいていいですか?
@user-ej3zj6kv9z
@user-ej3zj6kv9z Ай бұрын
動画中どの箇所でしょうか?時間書いていただけると助かります!
@sm.4299
@sm.4299 Ай бұрын
27:30 あたりです!
@user-ej3zj6kv9z
@user-ej3zj6kv9z Ай бұрын
%load_ext autoreloadの後、 HTML_RACE_DIR = Path("..", "data", "html", "race") html_paths_race = list(HTML_RACE_DIR.glob("*.bin")) でhtml_paths_raceが再取得できるので、これで実行できると思います!
@user-bu7ss2ow3o
@user-bu7ss2ow3o 24 күн бұрын
初めまして。動画内 21:06~ の場面でどうしてもエラーが解決できないため質問させていただきます。 ↓エラーの内容です。 "name": "AttributeError", "message": "'NoneType' object has no attribute 'find_all'", "stack": "--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[9], line 1 ----> 1 results = create_rawdf.create_results(html_paths_race[:10]) File c:\\Users\\81904\\python\\KEIBAAI\\data\\create_rawdf.py:22, in create_results(html_path_list) 19 df = pd.read_html(html)[0] 21 # horse_id追加 ---> 22 a_list = soup.find_all(\"a\", href=re.compile(r\"^/horse/\")) 23 horse_id_list = [] 24 for a in a_list: AttributeError: 'NoneType' object has no attribute 'find_all'" プログラミング初心者ですが、動画内の作業を全て踏襲して書いており、これ以前は動画内通り動作しています。 chatGPTを用いて様々試行錯誤をしましたが解決できません。soupの中身がNoneを返してきていると認識しています。 このような大規模なプログラムを書いたことのない初心者なので、決定的な初歩のミスの可能性も疑っています。 何か思い浮かぶ原因があればご教示お願いします。
@user-ej3zj6kv9z
@user-ej3zj6kv9z 24 күн бұрын
まずは、エラーが発生している箇所の上にprint(race_id)を入れて、どのhtmlファイルでエラーが発生しているか特定してみてください。 次に、return dfなどを入れてみて、そのhtmlファイルについてdf = pd.read_html(html)[0] の処理は正しくされているか確認してみてください
@user-bu7ss2ow3o
@user-bu7ss2ow3o 23 күн бұрын
@@user-ej3zj6kv9z お返事ありがとうございます。実行してみました。 print(race_id)を a_list = soup.find_all…の前に挿入した結果→202301010101 のrace_idが返ってきました。 return dfをdf = pd.read_html(html)[0] の直後に挿入した結果→何も帰ってきませんでした。エラーは出ていません。
@user-bu7ss2ow3o
@user-bu7ss2ow3o 23 күн бұрын
@@user-ej3zj6kv9z お返事ありがとうございます。実行してみました。 print(race_id)をa_list = soup.find_all…の直前に挿入した結果→202301010101 のrace_idが返ってきました。 return dfをdf = pd.read_html(html)[0] の直後に挿入した結果→何も帰ってきませんでした。エラーはありません。 原因をさらに探りたいのですが、次の一手が分かりません…
@user-bu7ss2ow3o
@user-bu7ss2ow3o 23 күн бұрын
@@user-ej3zj6kv9z お返事ありがとうございます。実行しました。 以下df = pd.read_html(html)[0] の直後にprint(race_id)、return dfをそれぞれ挿入した結果です。 print(race_id)→202301010101 年初めのrace_idが返ってきました。 return df→何も返ってきませんでした。 エラーは出ていません。 お手数おかけしますが、自分では対処できないのでアドバイスお願いします…
@user-ej3zj6kv9z
@user-ej3zj6kv9z 23 күн бұрын
ということは、htmlがそもそも取得できていなさそうなので、#3の動画の流れをもう一度追ってみて、どこまで正しく作成できているか、確かめてみてください
【リメイク版#5】データ加工の決定版!レース結果/馬の過去成績テーブルの前処理【競馬AI開発】
28:23
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 41 МЛН
Gli occhiali da sole non mi hanno coperto! 😎
00:13
Senza Limiti
Рет қаралды 17 МЛН
Нашли чужие сети в озере..💁🏼‍♀️🕸️🎣
00:34
Connoisseur BLIND420
Рет қаралды 3,6 МЛН
高額当たり馬券を持っているのは誰だ?究極の心理ゲーム【馬狼】開催!!
43:45
さらば青春の光Official Youtube Channel
Рет қаралды 2,6 МЛН
【競馬】コーナーロス見てない人は大損してます
14:34
投資馬券術Channel
Рет қаралды 6 М.
競馬予想AI #1 アクセス回数を1000回減らす意外な方法とは?【ゼロから作る競馬予想モデル・機械学習入門 part1】
13:45
【ゼロから作る競馬予想モデル・機械学習入門】ゆっくりデータサイエンスLab
Рет қаралды 2,4 М.
朝まで有馬記念 全部見せます【オグリキャップ~クロノジェネシス】
3:49:54
【リメイク版#8】機械学習モデルを作成して単勝馬券を予測する【競馬AI開発】
30:06
競馬予想で始めるデータ分析・機械学習
Рет қаралды 4 М.
ExcelでWEBの情報を一瞬で抽出してみた!!【ExcelVBA】
5:48
こいこいの人工知能研究室
Рет қаралды 64 М.
ChatGPTの活用【pythonのスクレイピングが5秒で出来る!】
17:29
とし / コンサルタントエンジニア
Рет қаралды 1,1 М.
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 41 МЛН