ゆっくり作る競馬予想プログラム ライブラリVer.0.1.2 30 テクノロジー

Youtube動画で紹介しているプログラムをリファレンス付きで公開

目次
  1. 1.概要
  2. 2.フォルダ構成
  3. 3.クラス
  4.     Scraper --- スクレイピング関連の制御をまとめたクラス
  5.         静的メソッド
  6.             scrapeRaceHTML(targetYear) --- レース結果HTML取得メソッド
  7.             extractionRaceResult() --- レース結果データ抽出メソッド
  8.             extractionRaceInfo() --- レース情報データ抽出メソッド
  9.             scrapePedHTML() --- 血統HTML取得メソッド
  10.             extractionHorsePed() --- 血統データ抽出メソッド
  11.             scrapeHorseResultHTML() --- 戦績HTML取得メソッド
  12.             extractionHorseResult() --- 戦績データ抽出メソッド
  13.             scrapeEntryTable(raceId: str) --- 出馬表取得メソッド
  14.     Dataset --- 競馬予想に使用するデータセットの操作・加工を行うクラス
  15.         プロパティ
  16.             dataset --- データセット
  17.             columnsDict --- 列リスト
  18.         メソッド
  19.             __init__(load=True: bool) --- コンストラクタ
  20.             update(targetYear) --- データセット更新メソッド
  21.             encoding(src: DataFrame, fit=False: bool) --- ラベルエンコーディングメソッド
  22.             preprocessingEntryTable(entryDf: DataFrame) --- 出馬表前処理メソッド
  23.         静的メソッド
  24.             addHistrical(src: DataFrame) --- 戦績付与メソッド
  25.             addInterval(src: DataFrame) --- 出走間隔付与メソッド
  26.             addPeds(src: DataFrame) --- 血統付与メソッド

1.概要

Youtube動画で紹介している競馬予想プログラムのライブラリ化した部分を公開したものです。

Release note
Ver.0.1.2
レース結果とレース情報内のスキップ処理のバグを修正

作成編の解説動画は↓↓↓↓をどうぞ。
【競馬予想プログラム】#12 モジュール化編 その2【作成編】
https://youtu.be/bsxVWqpA2rg
【競馬予想プログラム】#13 モジュール化編 その3【作成編】
https://youtu.be/WRvCT85x4qE

2.フォルダ構成

3.クラス

    Scraper --- スクレイピング関連の制御をまとめたクラス

        静的メソッド

            scrapeRaceHTML(targetYear) --- レース結果HTML取得メソッド

Webサイトより引数で指定した西暦のHTMLを取得し、./data/race_html.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み既に取得済みのHTMLはスキップする。
引数は整数型または整数型のリスト。
使用例

            extractionRaceResult() --- レース結果データ抽出メソッド

./data/race_html.pklからHTMLを読み込みレース結果のデータフレームを生成し、./data/race_result.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み既に取得済みのHTMLの処理はスキップする。
入力、出力ともにファイルの為、引数の指定は不要。
./data/race_html.pklが存在しない場合、例外を発生します。
使用例

            extractionRaceInfo() --- レース情報データ抽出メソッド

./data/race_html.pklからHTMLを読み込みレース情報のデータフレームを生成し、./data/race_info.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み既に取得済みのHTMLの処理はスキップする。
入力、出力ともにファイルの為、引数の指定は不要。
./data/race_html.pklが存在しない場合、例外を発生します。
使用例

            scrapePedHTML() --- 血統HTML取得メソッド

./data/race_result.pklからデータフレームを読み込み、収集対象となるhorseIdを抽出、WebサイトからHTMLを取得し、./data/ped_html.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み既に取得済みのHTMLはスキップする。
入力、出力ともにファイルの為、引数の指定は不要。
./data/race_result.pklが存在しない場合、例外を発生します。
使用例

            extractionHorsePed() --- 血統データ抽出メソッド

./data/ped_html.pklからHTMLを読み込み血統データのデータフレームを生成し、./data/horse_ped.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み既に取得済みのHTMLの処理はスキップする。
入力、出力ともにファイルの為、引数の指定は不要。
./data/ped_html.pklが存在しない場合、例外を発生します。
使用例

            scrapeHorseResultHTML() --- 戦績HTML取得メソッド

./data/race_result.pklからデータフレームを読み込み、収集対象となるhorseIdを抽出、WebサイトからHTMLを取得し、./data/horse_html.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み、horseIdごとの直近日付とレース結果の直近日付を比較し、収集対象かどうかを判断します。
入力、出力ともにファイルの為、引数の指定は不要。
./data/race_result.pkl及び./data/race_info.pklが存在しない場合、例外を発生します。
使用例

            extractionHorseResult() --- 戦績データ抽出メソッド

./data/horse_html.pklからHTMLを読み込み戦績データのデータフレームを生成し、./data/horse_result.pklに出力する。
既に出力したファイルがあった場合は、一度ファイルを読み込み、horseIdごとの直近日付とレース結果の直近日付を比較し、収集対象かどうかを判断します。
入力、出力ともにファイルの為、引数の指定は不要。
./data/horse_html.pkl及び./data/race_result.pkl並びに./data/race_info.pklが存在しない場合、例外を発生します。
使用例

            scrapeEntryTable(raceId: str) --- 出馬表取得メソッド

Webから実際のレース推論時に予測に必要なデータの取得を行う。
収集データは出馬表及びレース情報を取得し、テーブル結合、出馬表、レース情報のデータフレームをtupleとして戻り値で返す。この時データフレームは前処理済みのデータなので、ラベルエンコーディングしてそのまま推論を実行できる。
天気及び馬場情報が公開前の場合inputboxを表示し、それぞれ手入力にてデータを生成する。
使用例

    Dataset --- 競馬予想に使用するデータセットの操作・加工を行うクラス

        プロパティ

            dataset --- データセット

インスタンスしたデータセットのデータフレームを取得する。
読み取り専用。
使用例

            columnsDict --- 列リスト

インスタンスしたデータセットのデータフレームの列を辞書型で取得。
keyを指定することでカテゴリ別の列名をリストで取得。
読み取り専用。
key
説明
all
データセットの全ての列名を取得
entry_table
出馬表取得時の列名を取得。allの着順を削除したもの。
histrical
直近9レース分の戦績データ部分の列名を取得
ped
血統データ部分の列名を取得
numeric
量的変数として扱う列名を取得。
categorical
カテゴリ変数として扱う列名を取得。
使用例

        メソッド

            __init__(load=True: bool) --- コンストラクタ

引数loadにTrueを指定することで、インスタンス時に./data/dataset.pklを読み込む。読み込んだデータはdatasetプロパティからアクセス可能。
./data/dataset.pklが存在しない時は例外を発生させる。
updateメソッドの実行時など
./data/dataset.pklを実行する必要が無い場合は、loadにFalseを指定してインスタンスを行う。
使用例

            update(targetYear) --- データセット更新メソッド

Scraperクラスの出馬表取得メソッド以外のメソッドを順次実行し、データセットの更新を行う。更新したデータは内部保持を行いdatasetプロパティからアクセス可能。同時に./data/dataset.pklに出力する。
引数は整数型または整数型のリストを指定する。
使用例

            encoding(src: DataFrame, fit=False: bool) --- ラベルエンコーディングメソッド

データセットのラベルエンコーディングを行う。

引数
src: DataFrame
ラベルエンコーディングを行うデータフレームを指定する。
fit: False: bool
Trueを指定することでラベルエンコーダーを生成する。
Falseを指定すると内部に保持されたラベルエンコーダでデータフレームの変換のみを行う。

戻り値
ラベルエンコーディングを実行したデータフレームを返す。
使用例

            preprocessingEntryTable(entryDf: DataFrame) --- 出馬表前処理メソッド

出馬表のデータセットに対して戦績付与、出走間隔付与、血統付与、ラベルエンコーディングを順次実行する。

引数
entryDf: DataFrame

前処理を行う出馬表データフレームを指定する。

戻り値
処理済みのデータフレームを返す
使用例

        静的メソッド

            addHistrical(src: DataFrame) --- 戦績付与メソッド

引数にデータフレームを指定することで直近9レース分の戦績を付与したデータフレームを返します。
実質出馬表データ専用。
公開メソッドにした理由も静的メソッドにした理由も不明。必要ないじゃん。
使用例

            addInterval(src: DataFrame) --- 出走間隔付与メソッド

引数に戦績データを付与した出馬表データフレームを指定することで出走間隔を付与したデータフレームを返します。
同じく公開メソッドにした理由も静的メソッドにした理由も不明。必要ないじゃん。
使用例

            addPeds(src: DataFrame) --- 血統付与メソッド

引数に出馬表データフレームを指定することで血統を付与したデータフレームを返します。
公開メソッドにした理(ry
使用例

この続き:48170文字

Sponsored Link

ゆっくり作る競馬予想プログラム ライブラリVer.0.1.2
ゆっくり作る競馬予想プログラム
1500円