반응형
Lotto 기존 당첨번호를 불러와서 model 생성하기
1.Lotto 기존 당첨번호 파일 읽어오기
https://gomsfactory.tistory.com/2884
2.모델 호출 및 생성하기
1)모델 호출
# Main function to run everything
def main():
# Load and preprocess data
train_data, val_data, max_value = load_data()
# Get number of features from training data
num_features = train_data.shape[1] #6 로또 형태는 6개까지 선택
#train_data[888][6] > 888행, 6열
print("train_data 갯수 : ", train_data.shape[0]) #888 1110회 중 888회까지 훈련셋
print("train_data num_features : ", train_data.shape[1]) #6 로또 형태는 6개까지 선택
#val_data[222][6] > 222, 6열
print("val_data 갯수 : ", val_data.shape[0]) #222 1110회 중 888회 이후는 검증셋
print("val_data num_features : ", val_data.shape[1]) #6 로또 형태는 6개까지 선택
print("max_value : ", max_value) #로또 최대값은 45
print("num_features : ", num_features) #로또 형태는 6개까지 선택
# Create and compile model
# num_features = 6, max_value = 45
model = create_model(num_features, max_value)
2)모델 생성
# Function to create the model
# param : num_features = 6, max_value = 45
def create_model(num_features, max_value):
# Create a sequential model
model = keras.Sequential()
# Add an Embedding layer, LSTM layer, and Dense layer to the model
# 입력될 총 단어 수는 45 0~45, 임베딩 후 출력되는 크기는 6(node수)
model.add(layers.Embedding(input_dim=max_value+1, output_dim=6))
model.add(layers.LSTM(128))
model.add(layers.Dense(num_features, activation='softmax')) #softmax 다중분류 / # sigmoid 이진분류(0,1)
# Compile the model with categorical crossentropy loss, adam optimizer, and accuracy metric
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
- Keras에서 제공하는 Sequential 모델을 사용하여 정의
- 로또는 총 45개의 번호로 구성되어 있기에 max_values는 45입니다.
- Embedding Layer에서 input_dim은 0~45 범주이기에 0을 포함하여 max_value + 1로 지정됩니다. output_dim은 6숫자
- LSTM(Long Short-Term Memory) 층을 추가하는 것을 나타냅니다. LSTM은 순환 신경망(Recurrent Neural Network, RNN)의 한 종류로, 시퀀스 데이터를 처리하는 데 사용됩니다.
- LSTM 층의 출력 차원 수 : 128
- 최종결과값은 num_features : 6개 이고, 활성화함수는 softmax
감사합니다.
반응형
'Python > Python-Lotto' 카테고리의 다른 글
Lotto 자동생성기 - Model 예측하기 (0) | 2024.03.17 |
---|---|
Lotto 자동생성기 - Model 학습하기 (0) | 2024.03.17 |
Lotto 자동생성기 - 기존 당첨번호 파일 읽어오기 #2 (0) | 2024.03.16 |
Lotto 자동생성기 - 기존 당첨번호 가져오기 (0) | 2024.03.14 |