競艇の解析をやってみよう。
競艇って6艇しかいないし、データは無料で大量にあるし、夏は涼しそうだし、うまくいけば儲かるし(失敗したら損するし・・・)、競馬とか競輪よりも解析にちょうどいい題材な気がする。
あとは MATLAB を使えばデータの統計解析とか可視化とか、いろんな学習まで全部できちゃいそうな気がするので、勉強ついでにやってみよう。
おっと、競艇って古い呼び方ですね。今はボートレースですね。
まずはダウンロード
まずはデータを取得しないと始まらないので、ボートレースのサイトから力技で取ってこよう。
2019年8月1日だとすると、出走表がここにあって、
http://www1.mbrace.or.jp/od2/B/201908/b190801.lzh
結果がここにあるみたい。
http://www1.mbrace.or.jp/od2/K/201908/k190801.lzh
MATLABで取る場合、こんな感じでブラウザー頼りの web コマンドを実行すればいいですね。
url = "http://www1.mbrace.or.jp/od2/K/201908/k190801.lzh";
web(url,'-browser')
あとは、ルールは /B/YYYYmm/bYYmmDD.lzh なので、既に同じファイルがあったら if exist --- で飛ばしたりしてループさせてしまおう。とりあえず3日分くらい。
since = "20190801";
to = "20190803";
for ix = datenum(since,'yyyymmdd'):datenum(to,'yyyymmdd')
if exist(['K',datestr(ix,'yymmdd'),'.TXT']) ~= 2
url = "http://www1.mbrace.or.jp/od2/K/"+datestr(ix,'yyyymm')+"/k"+datestr(ix,'yymmdd')+".lzh";
web(url,'-browser')
end
if exist(['B',datestr(ix,'yymmdd'),'.TXT']) ~= 2
url = "http://www1.mbrace.or.jp/od2/B/"+datestr(ix,'yyyymm')+"/b"+datestr(ix,'yymmdd')+".lzh";
web(url,'-browser')
end
end
ブラウザーがピカピカするけど大丈夫そう!
LZH を展開しよう
次の悩みは lzh っていう拡張子ですが、MATLABだとデフォルトで展開できない圧縮形式なので、Lhaplus とかインストールしておきましょう。デフォルトだと C:\Program Files (x86)\Lhaplus\Lhaplus.exe にインストールされるので、dos コマンドで実行しよう。
ウィンドウズの downloads フォルダーに入ってれば以下のコマンドで解凍して、適当な作業フォルダーにコピー。(例えば C:\work\boat )
%% ダウンロードしたもの(lzh)を C:\work\boat に展開
dl = [getenv('USERPROFILE'),'\Downloads\'];
for ix = datenum(since,'yyyymmdd'):datenum(to,'yyyymmdd')
if exist(['K',datestr(ix,'yymmdd'),'.TXT']) ~= 2
zipname = ['k',datestr(ix,'yymmdd'),'.lzh'];
dos(['"C:\Program Files (x86)\Lhaplus\Lhaplus.exe" /o:C:\work\boat ',dl,zipname,' &']);
end
if exist(['B',datestr(ix,'yymmdd'),'.TXT']) ~= 2
zipname = ['b',datestr(ix,'yymmdd'),'.lzh'];
dos(['"C:\Program Files (x86)\Lhaplus\Lhaplus.exe" /o:C:\work\boat ',dl,zipname,' &']);
end
end
LZH の展開のたびに確認ウィンドウとか音とかが出る場合、出ないように Lhaplus の設定をしておくといいですね。うまくいったら数ヶ月分くらいダウンロードしてみよう。
とりあえずデータの取得までできました。
続きに興味のある人がいたら「いいね」で教えてね。(いいね中毒)
を書いたよ。