機械学習の勉強するにあたって何か動機づけが欲しいのと尚且つそれでお小遣いが稼がたらと思って、Azure Machine Learning を利用して競艇の順位予測みたいなのをしてみた。
Azure Machine Learning
下記のURLを参考にやってみた。
競艇データの取得先
圧縮ファイルがダウンロードできるので、ダウンロードしたファイルを基にデータを整形しDBに突っ込む。
もちろん、手動でなんかやりません。
PHPからWebAPIへの問合せ
webapiへの問合せサンプルはC#、Pythonなどあるがphpがなかったので、pythonのサンプルをphpで書いて実行させています。
$header = [
'Authorization: Bearer '.発行されたAPI_KEY,
'Content-Type: application/json',
];
$data = [
"Inputs" => [
"input1" => [
"ColumnNames" => ["event_date", ・・・],
"Values" => ['2015-10-26',・・・]
]
],
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 発行されたURL);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); // post
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // リクエストにヘッダーを含める
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
// リクエストデータをセット
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data) );
//リクエスト
$result = curl_exec($curl);
//リクエスト実行後
// ヘッダーサイズを取得
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
// ヘッダー
$header = substr($result, 0, $header_size);
//ボディー
$body = substr($result, $header_size);
//デコード
$body = json_decode($body);
以上のコードでどうにか予測値を取得できるようになりました。
間違っていたらご指摘お願いします。
###参考サイト
http://qiita.com/re-24/items/bfdd533e5dacecd21a7a
船券購入条件
- 予測順位が高い順の船番3つのボックス買い
- 1通り 100 円 合計 600 円 の投資を1レースにする
- 競艇場は「福岡」
結果
どでかいマイナスを出しておりますw
現在
-15000 円 くらい
もう、お小遣いがそこを尽きそうです・・・orz
追記
10月26日~31日 GIIIオールレディースLOVE FM福岡なでしこカップ
で、評価しました。
前半戦3日は、当たる確率はかなり低く惨敗ですが、後半になっていくにつれて、
当たる確率はかなり上がっていきました。
最終日以外、回収率はかなり悪かったのですが、最終日は「148%」とまぁ、ぼちぼちのプラスで終わりました。
今回作った、学習モデルで言えることは、最終日の本命レースではかなり良い予測ができることが言えます。
感想
まだまだ、改良の余地のある学習モデルをどうにかしないと・・・
あまりにも、知識が不足しているのでこれから継続的に勉強していこうかなっておもっています。
機械学習初心者がAzureを使っうと、めっちゃ簡単にここまで出来た事に自分自身が驚いてますw
最後に、誰か一緒にやりませんか!?
参考サイトなど
・http://qiita.com/icoxfog417/items/f32f89a0d5145d9861bc
・http://pronama.azurewebsites.net/2015/03/16/azure-machine-learning/