파이썬 머신러닝ML

파이썬 로또 번호 예측 하기 #3

양기호니 2022. 11. 27. 22:25
728x90
반응형

혼자 공부하려고 정리했어요~

아주 간단한 모델로 번호 예측 해보겠습니다.
훈련 데이터는 앞서 포스팅한 내용을 참고하세요~
https://gihoni.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A1%9C%EB%98%90-%EB%B2%88%ED%98%B8-%EC%98%88%EC%B8%A1-%ED%95%98%EA%B8%B0-1

 

파이썬 로또 번호 예측 하기 #1

혼자 공부하려고 정리했어요~ 구글 드리이브에서 .csv 불러오기부터 진행하겠습니다. 회차별 당첨번호 데이터가 있어야 예측할 수 있겠죠?? 동행복권 사이트에서 다운받을 수 있습니다. https://dhl

1.gihooni.com

 

저번 포스팅에는 회차와 추첨년도, 추첨날짜만으로 당첨 번호를 예측해봤습니다.

https://gihoni.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A1%9C%EB%98%90-%EB%B2%88%ED%98%B8-%EC%98%88%EC%B8%A1-%ED%95%98%EA%B8%B0-2

 

파이썬 로또 번호 예측 하기 #2

혼자 공부하려고 정리했어요~ 아주 간단한 모델로 번호 예측 해보겠습니다. 훈련 데이터는 앞서 포스팅한 내용을 참고하세요~ https://gihoni.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A1%9C%EB%98%90-%EB%B2%8

1.gihooni.com

 

이번엔 한 주전의 회차, 추첨년도, 추첨날짜로 다음주의 당첨번호를 예측하는 법을 정리해봤습니다.

1043회차, 22년, 1126, 3 ,5, 12, 22, 26, 31, 보너스 19가 입력되면,

1044회차, 22년, 1203의 -> 번호가 예측되는 것 입니다.

import pandas as pd
import numpy
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras import models
from keras.models import Sequential
from keras.layers.core import Dense
from sklearn.model_selection import train_test_split

#데이터 불러오기
rows = x_data.to_numpy() 
row_count = len(rows)
pre_counts = row_count-1 #x에 들어갈 행의 갯수
now_counts = row_count #y에 들어갈 행의 갯수

#x는 1주 전 데이터가 들어가도록 셋업
#y는 x보다 1주 뒤 데이터가 들어가도록 셋업 

x_samples = x_data[0:pre_counts] #1회차 부터 1042회차까지 x데이터 입력
y_samples = x_data[1:now_counts] #2회차 부터 1043회차까지 y데이터 입력
xx_dataset = x_samples.values
yy_dataset = y_samples.values

X = xx_dataset.astype(float) #0,9열만 X로 1041,10
Y_obj = yy_dataset[:,3:9] #3~8열만 Y로 넣기 1, 6 번호 1041,6 다음 숫자로

X.shape
X_train, X_test, y_train, y_test = train_test_split(X, Y_obj, test_size=0.1)  

modelb = Sequential()
modelb.add(Dense(20, input_shape=(10,), activation='relu'))
modelb.add(Dense(6))

# model compile
modelb.compile(loss='mae', optimizer="adam", metrics=['accuracy'])
history=modelb.fit(X_train,y_train, epochs=100, batch_size = 16, verbose=0, validation_data=(X_test,y_test))
print('\n Accuracy: %.4f' % (modelb.evaluate(X_train, y_train)[1]))
print('\n Accuracy: %.4f' % (modelb.evaluate(X_test, y_test)[1]))

이번에도 정확도는 기가 막힌데요...

(train_test_split이 랜덤하게 이루어지기 때문에 실행하실때마다 조금씩 다르게 나오실 겁니다.)

오차가 크네요ㅋㅋ

 

11월 26일 발표했던 번호를 예측해보겠습니다.

ans_121 =[[now_counts, 2022, 1126, 5 ,14, 15, 23, 34, 43, 4]]
y_pred = modelb.predict(ans_121)
print(np.round(y_pred,0))

이번에도 잘 예측은 못했네요 ㅋㅋ

29번이 심지어 중복 ㅋㅋ

땡!!!

그래도 예측된 번호가 튀어나온다는 것에 일단은 만족해봅니다...ㅋㅋㅋ

 

반응형