파이썬 머신러닝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
저번 포스팅에는 회차와 추첨년도, 추첨날짜만으로 당첨 번호를 예측해봤습니다.
이번엔 한 주전의 회차, 추첨년도, 추첨날짜로 다음주의 당첨번호를 예측하는 법을 정리해봤습니다.
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번이 심지어 중복 ㅋㅋ
땡!!!
그래도 예측된 번호가 튀어나온다는 것에 일단은 만족해봅니다...ㅋㅋㅋ
반응형