🤖

scikit-learnを「機械学習とか知らない初心者」が触った結果

2021/05/17に公開

前書き

この記事は本当に初歩の初歩的なことを理解してない初心者がscikit-learnを触った所感
をまとめたものです

事の始まり

ウマ娘にはまる → リアル馬に手を出す → 負ける
→ 自分でやって負けるなら機械学習に任せてみよう

使った技術

  • Python
  • sklearn
  • pandas

などなど

自分の思考ロジックを機械学習に落とす

自分は初心者ながら競馬経験者の方に話を聞きつつ競馬を行えました。
話していて思ったこととしては、競馬は順位を当てることを目的としているが、どの馬が上位に行きやすいかの期待値を考えながら行っていました。

結果

惨敗

結局のところscikit-learnでは何ができたのか?

競馬だとわかりずらいので天気で説明します

日付 温度 気圧 天気 翌日の天気
5/1 25 1003.7 曇り
5/2 21 1002.2 曇り
5/3 25 1003.4 曇り 晴れ
5/4 26 1003.1 晴れ 晴れ
5/5 32 1004.8 晴れ 晴れ

仮にこんなデータがあったとします(値は雑に手入力しました)

それを下記のように分けます
学習データ

日付 温度 気圧 天気
5/1 25 1003.7 曇り
5/2 21 1002.2
5/3 25 1003.4 曇り
5/4 26 1003.1 晴れ
5/5 32 1004.8 晴れ

目標データ

翌日の天気
曇り
晴れ
晴れ
晴れ

上記の二つの学習データ目標データをscikit-learnに渡してあげると
学習モデルができます(手順省略)

すると何ができるのか?

学習データ

日付 温度 気圧 天気 翌日の天気
5/6 25 1003.7 晴れ ???

このようなデータがあった場合に学習データと同じデータをscikit-learnに渡してあげると翌日の天気予測してくれます。

つまり何が言いたいか

scikit-learnでは複数の情報から穴抜けたデータを出すということが出来ます。

そして

それは競馬で思ったより通用しませんでした...
競馬で勝てない理由はとして

  • 馬の調子とかいう見えないデータ
  • データで見える馬と騎手の実力
    • データでは見えない馬毎の戦略違い(逃げとか差しとか色々ある)
  • 面倒くさがってデータ集積が甘かった
  • 機械学習の知識無いが奴がやってる

などの理由がありました
後半は自業自得感ありますね...

今後について

競馬に関して

見えないデータの視える化は必須だと思いました。
競馬機械学習は現在ver5になってます
(なお、verが上がるたびに現金消えてます)

現在はデータの集積し直しとデータの加工から始めたりしてます

僕自身の機械学習の可能性について

仕事や他の趣味で広げていけたらいいなぁと思いました

  • 趣味の場合
    • 仮想通貨、為替取引の予測
    • 競輪や競艇など別の公営ギャンブルの場合の検証
    • 株式相場での上がりやすい銘柄予想
    • ぶっちゃけ金につながること(その方がモチベがあがるので)
  • 仕事の場合(ゲーム関連)
    • 売上予測
      • 天気データみたいにガチャやイベントをデータ化して売上予測とかしてみたい
    • マスタデータの最適化
      • 理想の目標データの値を求めるために、マスタを再帰的に検証し続けるシステムとか作りたい

最後に学べたこと(あとがき)

機械学習自体はとても楽しく学べました。
自分でもどんどん予測精度が上がっていくのが実感できたので楽しかったです。
あとは地味にウェブスレイピングとデータ加工のスキルが上がりました。
昔、仮想通貨で遊んでた際に両方行ってはいたのですが、機械学習での重要性はさらに高くより試行回数が増えたのでスキルアップに繋がりました。

Discussion