TOP 購入者/紹介者様へ BOOKERSの特徴 販売者様へ BOOKERSの特徴 機能紹介・チュートリアル 定期購読マガジン/メンバーシップ機能申込 公式からのお知らせ 注目記事一覧 特集ページ 競馬予想(New) 競艇予想(New) 競輪予想 パチ/スロ情報 テクノロジー 創作 その他 ログイン 新規登録 新規登録
本記事は割引/還元キャンペーン対象です割引適用へ
本記事は割引/還元キャンペーン対象です割引適用へ
【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 mdi-share-variant mdi-heart-outline 2 テクノロジー
ゆっくりデータサイエンス
mdi-update 無料記事/有料記事無料部分 - 更新時刻
2024年7月9日8:18 mdi-currency-jpy mdi-update 有料記事有料部分 - 更新時刻
1500円 [[ getProduct ]]内容のご確認 【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 - ゆっくりデータサイエンス
[[support_message]]
ログイン/会員登録して購入 閉じる
割引キャンペーンを適用
Youtubeログインしてチャンネル登録で割引に!
Youtubeでログインする 閉じる
1500円
0円当選無料
記事を購入して見る
1500
[[ getProduct ]]内容のご確認 【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 - ゆっくりデータサイエンス
[[support_message]]
この記事は「チャンネル登録で割引」が適用されています。
決済方法 - クレジットカード
有料コンテンツ購入に関する確認事項
キャンセル 決済方法を選択
お支払い方法の選択 クレジットカード以外の決済方法について キャンセル 決済方法を選択
お支払い情報の入力
カード情報 必須
カード名義 必須
有効期限 必須
セキュリティコード 必須
[[pay_error]]
キャンセル
カードで支払う
・確認事項
決済ボタン押下後にカード会社の認証画面に移動しますので、認証を求められた場合は実施ください。 これは不正利用対策のために国から導入義務付けされている本人認証サービス(3Dセキュア)です。
3Dセキュアのパスワード等が分からない場合は こちら をご参照ください。
お支払い情報の確認 以下のカードで決済してよろしいでしょうか?
[[pay_credit_list[pay_select].payment_label]]
【重要】3Dセキュア/本人確認認証にクレジットカード名義が求められるようになったため、追加入力してください
カード名義 必須
キャンセル
カードで支払う
・確認事項
決済ボタン押下後にカード会社の認証画面に移動しますので、認証を求められた場合は実施ください。 これは不正利用対策のために国から導入義務付けされている本人認証サービス(3Dセキュア)です。
3Dセキュアのパスワード等が分からない場合は こちら をご参照ください。
No
お支払い方法の選択 ※d払いが環境によって正常決済できないことがありますが、その場合は一定期間後に自動返金されます。即時残高のお戻しを希望される場合は、お問合せください
購入失敗時のFAQ
携帯キャリア決済以外の決済方法について
キャンセル 決済方法を選択
[[ getProduct ]]内容のご確認 【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 - ゆっくりデータサイエンス
[[support_message]]
この記事は「チャンネル登録で割引」が適用されています。
決済方法 - [[ payment_categories[payment_category] ]]
キャンセル
購入に進む
・確認事項
「購入に進む」ボタン押下後に携帯キャリア決済の認証画面に移動しますので、認証を求められた場合は実施ください。
■注意事項
・「購入に進む」ボタンは1度だけ押してください。ダブルクリックしないでください。二重決済になる可能性があります。
・キャリア側ページで認証・購入確定後、リダイレクトが複数回発生しますが、購入が完了するまでページを閉じずにそのままお待ちください(ページが切り替わった場合には購入が正常に完了しない可能性があります)
割引キャンペーンを適用
Youtubeログインしてチャンネル登録で割引に!
Youtubeでログインする 閉じる
1500円
0円当選無料
記事を購入して見る
1500
[[ getProduct ]]内容のご確認 【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 - ゆっくりデータサイエンス
[[support_message]]
この記事は「チャンネル登録で割引」が適用されています。
決済方法 - [[ payment_categories[payment_category] ]]
有料コンテンツ購入に関する確認事項
キャンセル
購入に進む
・確認事項
「購入に進む」ボタン押下後に携帯キャリア決済の認証画面に移動しますので、認証を求められた場合は実施ください。
■注意事項
・「購入に進む」ボタンは1度だけ押してください。ダブルクリックしないでください。二重決済になる可能性があります。
・認証・購入確定後、リダイレクトが複数回発生しますが、購入が完了するまでページを閉じずにそのままお待ちください(ページが切り替わった場合には購入が正常に完了しない可能性があります)
お支払い方法の選択
保有コイン: [[total_balance.toLocaleString()]] コイン (1コイン=1円)
残高が不足しています。
10%還元 5%還元
チャージ
最短1営業日
mdi-help-circleBOOKERSコインとは
キャンセル 決済方法を選択
[[ getProduct ]]内容のご確認 【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 - ゆっくりデータサイエンス
[[support_message]]
この記事は「チャンネル登録で割引」が適用されています。
決済方法 - [[ payment_categories[payment_category] ]]
キャンセル
購入に進む
mdi-flag 報告

競馬予想プログラムソフトの開発をしている者です。ここではメインモデル作成に向けて、すべてのモデルで共通するベース前処理部分の実装コードです。

実装箇所事態はNotebookレベルで個人サイトに公開されていますが、ここでは個人サイトで公開されている内容をモジュール化したものです。

目次

0.全ソースを公開しました!

以下記事で、競馬データのスクレイピングから、データの前処理、機械学習モデルの作成、モデル分析用WEBアプリの4機能を有したソースを全て公開しました!
こちらの記事を購入される場合は、全体ソースを入手して頂く方が、今後も全体ソースのバージョン更新予定なので、ぜひご検討ください。

1.はじめに

私は、競馬予想プログラムソフト開発を通して、データサイエンスの勘どころを掴みつつソフト開発の経験もできる教材を目指している者です。
今回は、その競馬予想プログラムソフト開発の第二弾となる、ベース前処理部分の実装となります。
なぜベース前処理が必要になるのかについては、以下の動画シリーズを参照ください。

2.前提事項

2.1, 2.3について

基本は前回公開した2.1節~2.4節と同じです。購入される場合は、事前に環境と競馬データ2010年から2023年分をご用意してください。
前回記事↓

2.2 ソースコードのコアな部分は共有済

今回もソースコードの根本的なアイデアになっている部分は別サイトで公開しています。私が管理運営しているさいとなので、よければ立ち寄ってください。
サイトURL:
上記のサイト記事を参考に自力でできる場合は、ご自身で作成ください。上記サイトと本記事の違いは、モジュール化されているかの違いだけです。
つまり、個人サイトの方で共有されている内容は、Notebookを逐一起動しないと使用できませんが、本記事のものは「import DataPreProcessor」とすればどのプログラムからでも呼び出せるようになります。

2.4 必要なPythonパッケージ

前回の2.4節で挙げているものに加えて以下のものを追加でインストールしてください。インストールされていない方は今のうちにお願いします。

  • loguru==0.7.2
※購入された方で、パッケージのバージョン依存によるコマンドエラーが起きた場合は対応出来かねますので、なるべく揃えていただけると問題があった際にフォローしやすいかと思います。。。

3.プログラム仕様

3.1 フォルダ構成

以下プログラム動作時に前提となるフォルダ構成です。事前に記載のあるフォルダは作成していただくようお願いします。
また、「※」がついているファイル/フォルダが今回新規で作成されるものです。それ以外のものは、前回分のソースで作成されたものです。前提となるファイルもあるため、ご注意ください。
中括弧「<>」でくくられているのがフォルダ名。それ以外はファイル名です。また、<any-dir>任意のフォルダ名です。作業用フォルダなので、お好きな名前にしてください。有料記事部分では、この各種ファイル(※1~※5)の中身を上から順番に列挙しています。ソース内にコメントを残していたりいなかったりしていますが、なるべく1機能1メソッド単位で作成しているので、内容を理解したい方はぜひ読み込んでみることをおすすめします。

3.2 サンプルプログラム

今回のソースはモジュールであるため、どのようにimportして使用すれば良いかを以下に示します。
コマンドラインで実行する際には、カレントディレクトリを必ず<any-dir>で定めたフォルダにしてください。
サンプルコード

3.3 実行したらどうなる?

上記のサンプルコードを実行すると、変数: df2にベース前処理を施した結果が入ります。以下に実行時に出力されるログのイメージを示します。
ベース前処理実行時ログイメージ
各ログの出力を見ると、前処理1~前処理8までを実行していることが分かります。

3.4 ベース前処理:DataPreProcessor(is_checkpoint=True)について

ベース前処理のインスタンス作成時に指定する引数に「is_checkpoint」があります。(デフォルトFalse)
この引数にTrueを指定すると、各前処理が実行されるたびに、その時点のdfを保存してくれます。
以下の属性でアクセスできます。
  • 前処理実施前:dataPreP.dforg
  • 前処理1実施後:dataPreP.dfprep1
  • 前処理2実施後:dataPreP.dfprep2
  • 前処理3実施後:dataPreP.dfprep3
  • 前処理4実施後:dataPreP.dfprep4
  • 前処理5実施後:dataPreP.dfprep5
  • 前処理6実施後:dataPreP.dfprep6
  • 前処理7実施後:dataPreP.dfprep7
  • 前処理8実施後:dataPreP.dfprep8
意図としては、途中の前処理で何が行われているのかの差分が見れることや、前処理1から前処理5まで実施したデータが欲しいといった場合など、より柔軟なデータ処理がしたい方のための設定項目です。
デフォルトでは、保存されません。今後もバージョンアップされていくため、前処理が増えるほど、保存されるデータ数が多くなるため、メモリ圧迫の原因になります
Trueにする場合はご注意ください。

4.有料範囲の内容

有料範囲では、3.1で説明したフォルダ構成で※マークがついているファイルのソースを上から順に列挙しています。
すべてで5コードになります。
コード量は以下表を参照ください。配置先フォルダは上記フォルダ構成にあるフォルダ名に準拠しています。
配置先フォルダ
ファイル名
コードのみ行数
概要
<any-dir>/<src>/<core>/<logs>
log_manager.py
29行
ログ形式を管理する関数です。
<any-dir>/<src>/<core>/<utils>
decorator_tools.py
32行
ログ出力、チェックポイント保存をコントロールするデコレータが入っています。
<any-dir>/<src>/<data_manager>
data_loader.py
46行
DBから指定した年数期間分の競馬データを取得するクラスです。
<any-dir>/<src>/<data_manager>
dataframe_checkpoint.py
67行
各前処理の処理結果を保存管理するクラスです。
<any-dir>/<src>/<data_manager>
preprocess_tools.py
195行
ベース前処理のメイン処理を行うクラスです。
クラス定義等はオブジェクト指向フル無視のなんちゃってクラス定義になっています。
個人開発レベルのものなので特に自分は気にしない派ですが、宗教上の理由でどうしても許容できない方は適宜修正ください。

5.留意事項

有料記事を購入検討されている方へ、購入する前にご一読ください。
本記事を購入された際は以下の留意事項に同意したものとします。予めご了承ください。
  1. 本ソースは商品ではなく勉強目的で使用されることを想定して作成しました。バグ取りは十分できていないので、購入者様側でバグ対応をしていただく必要があります。
  2. 本ソースはコピーガードされていません。ご自由にコピペしてお使いください。
  3. 本ソースを使用したことによって、購入者様に不利益や違法行為があった場合でも本ソース作成者は一切の責任を負わないことご承知おきください。
  4. 基本的には写経すれば動くプログラムになっていますが、内容を理解したい場合はPythonの入門書レベルの文法を理解していることを前提としています。
 項番1については、プログラム書く以上バグは絶対に直面するものです。挫けずにバグ対応しましょう。必ず良い勉強機会になります。
 エラー内容をコピペして調べると、必ずどこかで同じ目に合っている人がいます。そしてそれを解決してくれる通りすがりのプログラマが答えやヒントを出してくれています。わからなければまずは調べることを徹底してください。頑張りましょう。

6.宣伝

これから今回のような競馬予測ソフトを開発の工程や実際のソース公開をリアルタイムで更新していきます。
YouTubeでソースのエッセンス部分の紹介、運営サイトでソースの重要な処理部分の紹介をしているので、良ければYouTubeや運営サイトも立ち寄っていただけると嬉しいです!
Twitter(自称X)もやっていますので、フォローよろしくお願いします!
また、YouTubeのチャンネル登録していただけると、1000円引きで購入できます

7.実際のベース前処理のソース:コピペOK!!

記事を購入して続きを見る

この続き:17502文字

【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1
ゆっくりデータサイエンス
1500円
記事を購入して続きを見る
1500円

もしくは

既に抽選済みです チャンネル登録で割引 1500円
500円

もしくは

メンバーシップ 定期購読マガジン
[[magazine.title]]
ゆっくりデータサイエンス
[[magazine.price]]円/月
[[magazine.description]]
mdi-gift-outline [[ item ]]
本記事の メンバーシップ 定期購読マガジン を購入する
mdi-gift-outline 記事を気に入ったらサポート ゆっくりデータサイエンスさんをサポート 【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1 金額
100円
500円
1000円
ログイン/会員登録して購入 閉じる
ゆっくりデータサイエンス
競馬予想ソフトの作成動画を投稿しています。 後々には競馬予想も公開できればと思っています。 よろしくお願いします。
mdi-home fab fa-x-twitter
新着記事
ゼロから作る競馬予想モデル・機械学習入門
無料!競馬予想AIモデル分析基盤um-AI
【競馬予想プログラムソフト#3】コピペOK!モデル管理分析クラスver 0.2
【競馬予想プログラムソフト#2】コピペOK!ベース前処理ver 0.1
【競馬予想プログラムソフト#1】低アクセス回数で競馬データをスクレイピングする方法
Copyright © 2020 - [[ new Date().getFullYear() ]] BOOKERS All rights reserved.