初心者が機械学習をやってみたら(その3)


早速これから、データの取得を行いたいと思います。
使用するデータの紹介、取得元を記載します。

データは
http://www1.mbrace.or.jp/」
から頂きました。
(このページ自体には何もありません)

使用するデータは以下の3種類です。
・番組表
・競走成績
・レーサー期別成績

提供されているデータは1996年からありますが、
今回私は「2012年4月に持ちペラ制度が廃止」と言う区切り目を意識し、
2012年5月からのデータを取得することとしました。

1.番組表

ボートレースの開催情報が記載されています。
各開催場、各レースの枠番、出場選手の情報など。
更新は毎日です。

ここから取得可能です。
http://www1.mbrace.or.jp/od2/B/dindex.html」
しかし、1ファイルずつ取得するのは現実的ではないです。

http://www1.mbrace.or.jp/od2/B/[開催年月6桁]/b[開催年月日6桁].lzh
と言う法則があります。
開催年月6桁 :YYYYMM
開催年月日6桁:YYMMDD
を日付ごとにブン回せば取得できます。

例)2020年07年14日の場合
http://www1.mbrace.or.jp/od2/B/202007/b200714.lzh

圧縮形式はLZHなのでダウンロード後、解凍が必要です。
解凍のために「lhasa」をインストールします。

$ sudo apt install lhasa
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  liblhasa0
The following NEW packages will be installed:
  lhasa liblhasa0
0 upgraded, 2 newly installed, 0 to remove and 312 not upgraded.
Need to get 33.7 kB of archives.
After this operation, 109 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

「Y」を入力しインストールする。

文字コードはSJISとなっています。
表示するために、「nkf」をインストールします。

$ sudo apt install nkf
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  nkf
0 upgraded, 1 newly installed, 0 to remove and 312 not upgraded.
Need to get 123 kB of archives.
After this operation, 309 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic/universe arm64 nkf arm64 1:2.1.4-1ubuntu2 [123 kB]
Fetched 123 kB in 1s (96.3 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package nkf.
(Reading database ... 144514 files and directories currently installed.)
Preparing to unpack .../nkf_1%3a2.1.4-1ubuntu2_arm64.deb ...
Unpacking nkf (1:2.1.4-1ubuntu2) ...
Setting up nkf (1:2.1.4-1ubuntu2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

番組表の内容はこんな感じです。

$ nkf b200714.txt | less
STARTB
23BBGN
ボートレース唐 津    7月14日  第3回住信SBIネッ  第 1日

                            *** 番組表 ***

          第3回住信SBIネット銀行賞           

   第 1日          2020年 7月14日                  ボートレース唐 津

               −内容については主催者発行のものと照合して下さい−


 1R  予  選            H1800m  電話投票締切予定08:47 
-------------------------------------------------------------------------------
艇 選手 選手  年 支 体級    全国      当地     モーター   ボート   今節成績  早
番 登番  名   齢 部 重別 勝率  2率  勝率  2率  NO  2率  NO  2率  123456見
-------------------------------------------------------------------------------
1 4171榎 幸司37長崎51A2 6.36 46.67 5.47 31.58 35 32.31 41 34.48              9
2 3305小野信樹52岡山53B1 4.06 20.73 3.83 22.22 67 36.96 72 37.31               
3 4874池田奈津26福岡51B1 4.75 32.14 3.22 16.67 49 31.13 38 35.48              6
4 3507藤井 徹49大阪52B1 4.08 15.07 5.11 21.05 31 30.81 77 29.03              5
5 5146野田彩加17山口49B2 1.28  0.00 0.00  0.00 34 44.29 83 46.88               
6 4034西原明生41香川54B1 4.55 26.60 4.68 28.00 56 32.88 47 20.34              7
(略)

私は番組表から、
会場番号・レース番号・進入固定有無、
各枠の選手登番・選手名・年齢・体重・級別・全国勝率・全国2率・当地勝率・当地2率・
モーターNo・モーター2率・ボートNo・ボート2率・今節成績を収集しました。

2.競走成績

 ボートレースの競走結果が記載されています。
 各開催場、各レースの着順、的中番号、組み合わせ、払戻金、競走除外など。
 更新は毎日です。

ここから取得可能です。
http://www1.mbrace.or.jp/od2/K/dindex.html」
しかし、番組表と同じく1ファイルずつ取得するのは現実的ではないです。

http://www1.mbrace.or.jp/od2/K/[開催年月6桁]/k[開催年月日6桁].lzh
と言う法則があります。
開催年月6桁 :YYYYMM
開催年月日6桁:YYMMDD
を日付ごとにブン回せば取得できます。

例)2020年07年14日の場合
http://www1.mbrace.or.jp/od2/K/202007/k200714.lzh

と言う法則があります。
番組表と同じく圧縮形式はLZHなのでダウンロード後、解凍が必要です。

文字コードはSJISとなっています。
競走成績の内容はこんな感じです。

$ nkf k200714.txt | less
STARTK
23KBGN
唐 津[成績]      7/14      第3回住信SBIネッ  第 1日

                            *** 競走成績 ***

          第3回住信SBIネット銀行賞           

   第 1日          2020/ 7/14                             ボートレース唐 津

               −内容については主催者発行のものと照合して下さい−

   [払戻金]       3連単           3連複           2連単         2連複
           1R  6-1-2    9820    1-2-6     500    6-1    3560    1-6     580
           2R  2-1-5     910    1-2-5     390    2-1     240    1-2     150
           3R  1-3-2     660    1-2-3     210    1-3     250    1-3     150
           4R  1-6-3    3120    1-3-6     860    1-6     950    1-6     910
           5R  2-3-1    4610    1-2-3     810    2-3    1550    2-3    1000
           6R  1-3-4    4200    1-3-4    1330    1-3     800    1-3     410
           7R  2-1-3    1610    1-2-3     400    2-1     570    1-2     230
           8R  1-2-4    3460    1-2-4     510    1-2    1340    1-2     900
           9R  3-1-4    2210    1-3-4     320    3-1     940    1-3     250
          10R  1-3-4    2110    1-3-4    1140    1-3     280    1-3     170
          11R  4-1-2    3790    1-2-4     460    4-1     890    1-4     320
          12R  4-5-3   12350    3-4-5    4290    4-5    1610    4-5    1360



   1R       予  選                   H1800m  雨   風  南   2m  波   2cm
  着 艇 登番  選 手 名  モーター ボート 展示 進入 スタートタイミンク レースタイム まくり差し
-------------------------------------------------------------------------------
  01  6 4034 西 原  明 生 56   47  6.82   5    0.09     1.50.3
  02  1 4171 榎    幸 司 35   41  6.85   1    0.17     1.52.1
  03  2 3305 小 野  信 樹 67   72  6.88   2    0.19     1.52.5
  04  4 3507 藤 井    徹 31   77  6.87   4    0.09     1.54.3
  05  3 4874 池 田  奈津美 49   38  6.80   3    0.26     1.55.6
  06  5 5146 野 田  彩 加 34   83  6.83   6    0.09     1.57.1

        単勝     6         2220  
        複勝     6          320  1          100  
        2連単   6-1       3560  人気     7 
        2連複   1-6        580  人気     3 
        拡連複   1-6        180  人気     3 
                 2-6        310  人気     5 
                 1-2        140  人気     1 
        3連単   6-1-2     9820  人気    19 
        3連複   1-2-6      500  人気     3 
(略)

私は競走成績から、
会場番号・レース番号、
1着艇番・2着艇番・3着艇番・3連単配当金を収集しました。

3.レーサー期別成績

 現役ボートレーサーの情報が記載されている。
 選手の個人情報から、過去の成績データがたっぷり載ってます。
 (モーターボートファン手帳とも言う?)
 更新は半期に1度、年2回です。

ここから取得可能です。
https://www.boatrace.jp/owpc/pc/extra/data/download.html」
半期に1度なので手動でもいいかな?

文字コードはSJISとなっています。
レーサー期別成績の内容はこんな感じです。

$ nkf fan1910.txt | less
2014高 塚  清 一タカツカ セイイチ      静岡B1S22030717216555O 049703290130190970000017015060001321002103810173400130385019300016037501733001801670172700140071022490B1B1B14800480020201201905012019103102000500400100100300100000000000000000040040030010060030000000000000000002003003000002003000000000000000000200400100500100201000000000000000000030040070030010000000000000000000001002002003006000000000000000000000000静 岡
2538高 橋  二 朗タカハシ ジロウ      東京B1S24042617016452AB042801520040090850100020010030001733001702350183400190158022390016018801733001300000214200100000023420B1B1B14800470020201201905012019103103200200100200400100000000000000000000000040050030020030000000000000000001002003006003003010000000000000000100200300300500200000000000000000000000020050030030000000000000000000000004002001003000000000000000000000000千 葉
2787藤 井  定 美フジイ サダミ      群馬B1S30021416417153A 052403260180161040000015018072201219002004000143100210429015340019015801731001700590173600090000021400B1B1B14900490020201201905012019103104001100200300200000000000000000000000020060080010030000000000000000000003006001005002004000000000000000000200100200400500500000000000000000000010020060060020000000000000000000000001003003002000000000000000000000000群 馬
(略)

データレイアウトは
https://www.boatrace.jp/owpc/pc/extra/data/layout.html」
に記載されています。

私はレーサー期別成績から、
とりあえず全データを収集しました。

データの紹介で終わってしまいました。
データ蓄積の説明は次回とさせてください。

関連(連載)

初心者が機械学習をやってみたら(その0)
初心者が機械学習をやってみたら(その4)