初心者が機械学習をやってみたら（その３）

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

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

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

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


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

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

```
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
ボートレース唐　津   　７月１４日  第３回住信ＳＢＩネッ  第　１日

                            ＊＊＊　番組表　＊＊＊

          第３回住信ＳＢＩネット銀行賞　　　　　　　　　　　

   第　１日          ２０２０年　７月１４日                  ボートレース唐　津

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


　１Ｒ  予　　選　　          Ｈ１８００ｍ  電話投票締切予定０８：４７ 
-------------------------------------------------------------------------------
艇 選手 選手  年 支 体級    全国      当地     モーター   ボート   今節成績  早
番 登番  名   齢 部 重別 勝率  2率  勝率  2率  NO  2率  NO  2率  １２３４５６見
-------------------------------------------------------------------------------
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
（略）
```

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


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

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

```
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      第３回住信ＳＢＩネッ  第 1日

                            ＊＊＊　競走成績　＊＊＊

          第３回住信ＳＢＩネット銀行賞　　　　　　　　　　　

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

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

   [払戻金]       ３連単           ３連複           ２連単         ２連複
           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  
        ２連単   6-1       3560  人気     7 
        ２連複   1-6        580  人気     3 
        拡連複   1-6        180  人気     3 
                 2-6        310  人気     5 
                 1-2        140  人気     1 
        ３連単   6-1-2     9820  人気    19 
        ３連複   1-2-6      500  人気     3 
（略）
```

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


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

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

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

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

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


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

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



#関連（連載）

[初心者が機械学習をやってみたら（その０）](https://qiita.com/tosikazu-s/items/db2b37c46b104633d79a)
[初心者が機械学習をやってみたら（その４）](https://qiita.com/tosikazu-s/items/7dd6cd6c3f4fc2e21743)