【競馬予測】統計を使って予想してみた~その1~

公開日: : 最終更新日:2018/04/07 競馬 , , ,

私は、競馬初心者なのですが、前から過去の大量のデータを用いて統計的に競馬の予測をすれば、回収率が100%を超えるようになるのではないかと漠然と思っていました(思っていただけで、行動はしてなかった汗)。

そんなとき、あるブログで統計的に競馬の予測をしている記事をみつけたので、参考にさせて頂くことにしました。

競馬の予測をがちでやってみた

データの取得とクリーニング

まず、予測に用いる過去のデータを以下のサイトから取得します。

http://db.netkeiba.com/?acc_param=db

次に、データのクリーニングをして、データベースに入れます。

なんと、ここまでを自動でやってくれるスクリプトを作成してくれているので、ありがたく使わせて頂きました。

以下の GitHub からスクリプト一式をダウンロードします。

https://github.com/stockedge/netkeiba-scraper

スクリプトは Scala で書かれていて、データベースは SQLite を使っています。Scala のインストール方法と SQLite の基本操作はそれぞれ以下の記事にまとめました。

Scala のインストールについて

SQLite 基本的な操作について

SQLite の GUI管理ツールのインストールについて

Scala がインストールできれば、README.md に記載されている以下のコマンドを順番に実行していけばデータが SQLite に保存されました(時間は結構かかりました)。

#使い方
以下のコマンドを上から順に実行していけば最後に素性が作成される。

sbt "run collecturl"

レース結果が載っているURLを収集して「race_list.txt」に保存する。

sbt "run scrapehtml"

レース結果のHTMLをスクレイピングしてhtmlフォルダに保存する。HTMLをまるごとスクレイピングするので結構時間がかかる。

sbt "run extract"

HTMLからレース結果を抜き出しSQLiteに保存する。

sbt "run genfeature"

レース結果を元にして素性を作りSQLiteに保存する。

データベースを見てみる

スクリプトを実行して、無事 SQLite にデータが保存されたようなのですが、どんなデータが入っているか分からなかったので、データベースやテーブルの構造から確認することにしました。

まず、ディレクトリ構造ですが、スクリプトを実行した後は、「netkeiba-scraper-master」ディレクトリは以下のようになっていました。

race.db」が SQLite  のデータベースファイルになります。

race.db」の中には、以下の4つのテーブルがありました。

  • feature
  • payoff
  • race_info
  • race_result

次回、実際に各テーブルにどんな情報が入っているかそれぞれ確認していきます。

関連記事

【競馬収支】2018年4月8日|桜花賞(おうかしょう)G1

競馬をやり始めたので、収支を記録していこうと思います。 2018年4月8日の桜花賞(おうかしょ

記事を読む

競馬の馬券をインターネットから購入する方法【即PAT】

競馬の馬券をインターネットから購入する方法を調べてみました。JRA のホームページをみると、以下の3

記事を読む

【競馬初心者】JRA の競馬初心者講座の動画をみた。

私は競馬初心者で1度も馬券を買ったことがなかったので、競馬に対する最低限の知識を付けようと思ってYo

記事を読む

【競馬予測】統計を使って予想してみた~その2~

統計を使った競馬予測の前回の続きです。 「race.db」の中にある、 fe

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

【Python】pip3 で「cannot import name ‘main’」エラーが出たときの対処法。

Python でライブラリをインストールする際に、pipを使います。

【mecab-python3】parseToNode で surface が正しく取得できないときの対処法。

python3 で mecab-python3 を使うと、parseT

【Python】形態素解析器 Mecab を Linux(Ubuntu)で使ってみた。

Linux の Ubuntu OS に、形態素解析器 Mecab をイ

【Python】NLTK(自然言語処理ライブラリ)を使ってみた。

Python の自然言語処理ライブラリである NLTK を Linux

【Python】OpenCV を使って顔画像を検出してみた。

OpenCV のインストール Numpy のインストール [c

→もっと見る

PAGE TOP ↑