딥러닝 질문있습니다.
대학원 붙을 확률 예측 만들 때
제가 정확도를 높이기 위해서 코드를 다음과 같이 짰습니다.
import numpy as np
import tensorflow as tf
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(x데이터)
x데이터 = scaler.transform(x데이터)
input_data = np.array
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation='swish'), #()안에 들어가는 64 = 노드(히든레이어)의 개수
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(128, activation='swish'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(64, activation='swish'), #2의 배수, 2의 제곱수 tf.keras.layers.Dense(128, activation='swish'), #2의 배수, 2의 제곱수
tf.keras.layers.Dense(1, activation='sigmoid'), #정수 예측 힘듬, 거의 실수 예측 #sigmoid = 0~1사이의 결과를 뱉고 싶으면 사용 ㄱㄱ
])
optimizer = tf.keras.optimizers.Adam(learning_rate=0.0001) # 학습률 조정
model.compile(optimizer=optimizer , loss='binary_crossentropy', metrics=['accuracy']) #바이너리크로센트로피 = 결과가 0과 1사이의 분류 / 확률 문제에 사용
early_stopping = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience=15, restore_best_weights=True)
model.fit( np.array(x데이터), np.array(y데이터), epochs=1000) #epochs = 학습을 몇 번 시키고 싶은지에 따라 숫자 알아서 넣으면 됨
#예측
input_data = np.array([[800, 3.24, 1], [300, 5.2, 5]])
input_data_scaled = scaler.transform(input_data)
# 예측값 = model.predict( np.array([ [800,3.24,1], [300, 5.2, 5] ] ))
print(예측값)
이렇게 하고 출력을 하니 에폭시 1000번째 까지 쭉 출력하다가 갑자기
예측값이 [[1.] [1.]] 와 같이 뜹니다.
예측값이 1에 너무 가까워서 저렇게 뜨는 건지, 아니면 코드에 오류가 있는 건지
도무지 모르겠어서 질문 드립니다.