🐈

loto6の当選番号を予想しようとして失敗

に公開

愚者の思考

loto6、当たらないよね。

https://loto6.jp/tips/basic/probability

43個の数字の内、6個が同時に当たる、1等の確率は609万分の1。
3個が同時に当たる、最低の五等でも約40分の1という小さな確率だ。
5等に当たるために、40口購入すれば8000円。
当選金は1000円だから、必ず損する仕組みになっている。

だから、このくじを買う事はお勧めしない。
しかし買わなければ、当たる可能性もない。
609万分の1が、いかに小さな確率であっても、人は夢を見る

そうだ。Tensorflowでデータの特徴量が抽出できないだろうか?

このような馬鹿げた予想に、コーディングエージェントを利用しよう、という浅はかさ。
そして、見事に失敗する、という予想された結末。

  • julesに以下のプロンプトで指示。
tensorflowを用いて、loto6の予想プログラムを作ります。 

データはxlsx形式で、
開催回|日付|第1数字|第2数字|第3数字|第4数字|第5数字|第6数字
という構造になっています。

実際に使用する本番データの代わりに、ダミーデータを作成し、読み込みます。 
それを学習データとし、LSTMモデルを構築し、それを用いて次回の本数字の番号を予測します。 
過学習を防ぐために、Early Stopping、Normalizationなどを組み込みます。 
また、学習曲線をグラフ出力します。
  • 生成されたコード

https://github.com/KEISIN/GL/tree/loto6-predictor

  • これをColabで実行するには、ドライブをマウントするコードを書く必要があります。
def is_drive_mounted():
    return os.path.exists('/content/drive/MyDrive')

if __name__ == '__main__':
    if not is_drive_mounted():
        from google.colab import drive
        drive.mount('/content/drive')
    # --- 設定 ---
    # 実際のLOTO6データが入ったExcelファイルのパスを指定してください。
    # このパスが空欄の場合、プログラムは自動でダミーデータを生成して実行します。
    # 例: FILE_PATH = 'C:/Users/YourUser/Documents/loto6_data.xlsx'
    FILE_PATH = '/content/drive/MyDrive/tf_models/loto6.xlsx' # ← ここに実際のファイルのパスを入力

データはtf_modelsというフォルダに置きます。ここにloto6.xlsx(過去の当選番号一覧)を置き、モデルのトレーニングを実施します。

結果

loss,val_lossともに0.04付近を行き来し、安定しない。
これは、モデルが特徴量を見いだせないことを示す。

[6,12,25,31,35]が平均値になるのだが、このプログラムで予想出来る数値は
[6,12,27,32,35]で、ほぼ「平均値」に収束することがわかった。

したがって、このプロジェクトは失敗だ、ということになる。
当たり前のことであるが、AIを利用してランダムな値を予想しようなどと思わないことだ。

このプロジェクトを作る過程で学習した事

  • Colabの使い道
  • kerasの使い方
  • モデルのチューニングのやりかた
  • データをモデルに学習させる方法

Discussion