🕌

Python3とscikit-learnでスロットの大当たり確率を予想して無双しようとした話(ランダムフォレスト編

2023/08/27に公開

はじめに

  • スロットのデータを手入力でcsvに書き込み、ランダムフォレストで大当たり確率・設定の予想をして、検証をした結果を記事にしてみました。

対象読者

  • 機械学習に興味がある方
  • スロットの大当たり予想を試してみたい方

大当たり予想の検証をした経緯

  • スロットは1から6まで設定が存在し、6に近いほど高設定と呼ばれプレイヤーが勝ちやすくなります。
  • 当然ながら、しょっちゅう設定6が入ることは無いのが現実です。
  • そこで、機械学習で過去のデータを学習して予想すれば高設定の台に座りやすくなったり、低設定を打つリスクが下げられるのではと考え実験しました。

注意

この記事および、この記事の続きで紹介する手法等は必ず設定を当てる保証はありません。同じ実験や検証をする際はご注意ください。

scikit-learnで使用するモデル

  • ランダムフォレスト

データ集め

ホール名: P-PORT PREGO 立川店
ターゲットのスロット機種名: とある科学の超電磁砲
スロットの遊戯履歴を台データオンラインというサービスから手入力で打ち込み。

この検証では次のデータを入力しています。

  • 台番号
  • 累計スタート
  • BB回数
  • RB回数
  • 最大差玉
  • BB確率
  • 合成確率
  • 前日最終スタート

スクレイピングが台データオンラインだとうまくいかなかったから手入力で。
データを最低でも6日か7日分頑張って手入力で打ち込みます。
これに追加で、その日がイベント日かどうかを0か1で打ち込みます。

コードの作成

python3でコードを書きます。
また、csvの読み込みにpandas、機械学習にはscikit-learnを使っています。

ソースコードや実際に使用したcsvファイルは次で公開しています。
https://zenn.dev/h0tcatnohotmens/books/f2b4606601e90a

設定の予想・お店へ打ちに行く

コマンドライン引数で、台番号を受け取り
説明変数は次の通りにしました。

  • 日付
  • 前日最終スタート
  • イベント日かどうか

2023年7月21日の台は設定6と予想されました。

怪しい、怪しいぞ。

都合が良すぎる。

フィードバック

ランダムフォレストで行ったがうまく予測できなかった。実際の設定は2っぽい感じでした

機械学習に使うモデルを変えたりして調節する必要もあるのかなーと振り返り。

しかし、8月の検証ではある日を境に覚醒するのであった。
https://zenn.dev/h0tcatnohotmens/books/f2b4606601e90a

Discussion