Edited at

【まさかの】ChainerでLSTMを使ってナンバーズの予測をする【当選】

More than 3 years have passed since last update.


前置き(読み飛ばしていいです)


  • 古巣(某ISP)が定期的にハッカソンを開催していて、ありがたいことに毎回お声掛け頂いています。


    • 特にテーマは無い、もくもく会的なハッカソンです。

    • 毎回美味しいお弁当が出ますが、今回は量は満足でしたが、質がいまいちでした



  • やりたいなーと思っててやる時間がなかったことを毎回やってます。


    • 今回はLSTMを使ってナンバーズの予測をやりました。





ナンバーズ


  • 数字選択式宝くじ

  • 平日は毎日抽選が行われる

  • 数字を3つ選ぶナンバーズ3と、4つ選ぶナンバーズ4がある

  • 数字と並びの両方を当てるストレート、並びは関係なく数字だけを当てるボックス、ストレートとボックスに半々にかけるイメージのセットがある。

  • 当選金額は ストレート >> セットのストレート > ボックス > セットのボックス みたいなイメージ



ナンバーズに関するオカルト「ひっぱり現象」


  • 同じ数字が何回かにわたって連続して出現しやすい。これをひっぱり現象という。


    • 計算してないけど、多分確率的にはよくあるくらいの確率なのでは……。



  • ひっぱり現象がある = 前回の結果と今回の結果にはゆるい相関関係がある

  • ナンバーズの結果を「時系列データ」と捉えてLSTMで学習させる



ナンバーズのデータ



やったこと


  • 一文字づつ学習させて、次になにが来るか予測



  • 1回ごとの当選番号(4桁)を学習させて、次の当選番号(4桁)を学習させる





1文字づつバージョン


  • 1000epochくらい学習させて perplexityが6くらい。全然下がらない。



とりあえず予測はさせてみる



1回毎の当選番号で学習バージョン


  • 1000epochくらい学習させて perplexity 1くらい。上々である。

  • こちらも予測させてみる。



そして買ってみる



結果!





セットボックス当選だぁぁぁぁあああああああああ!!!!!!!



考察


  • 今回ヒットしたのは「一文字づつ学習」させたほう

  • 両方共「9」や「4」が出てくると予想してたみたい

  • 引っ張り現象はあるんや!!



糸冬