앞서 분석했던 Python 분석 자료에 Tensorflow를 이용한 딥러닝 모델을 적용하여 분석해보겠습니다.
분석에 필요한 패키지를 불러옵니다.
from tensorflow import keras
train_df_new는 분석데이터 train_target은 타겟 데이터로 데이터를 준비합니다. 분석에 사용되지 않는 ID는 제거합니다.
# 분석 데이터 준비
train_df_new=train_df[list(test_df)]
del train_df_new['Id']
train_target=train_df['SalePrice']
train_target=np.log(train_target)
다음과 같이 모델을 구축합니다. 초기 Keras.Sequential()에 변수갯수만큼 input_shape를 적용하고, 예측력을 좋게 하기 위해 여러개의 Dense를 적용하여 다음과 같이 모델을 구축합니다.
model = keras.Sequential()
model.add(keras.layers.InputLayer(input_shape=(23,)))
model.add(keras.layers.Dense(10, activation='relu'))
model.add(keras.layers.Dense(15, activation='relu'))
model.add(keras.layers.Dense(20, activation='relu'))
model.add(keras.layers.Dense(25, activation='relu'))
model.add(keras.layers.Dense(30, activation='relu'))
model.add(keras.layers.Dense(35, activation='relu'))
model.add(keras.layers.Dense(40, activation='relu'))
model.add(keras.layers.Dense(1))
다음과 같이 최적화 시킵니다. 회귀모델이므로 loss는 mse, optiomizer는 adam을 사용합니다.
model.compile(loss='mse',
optimizer='adam')
model.summary()
이제 모델을 학습시킵니다.
epochs = 500
history = model.fit(x=train_df_new, y=train_target, batch_size=20, epochs=epochs, verbose=2)
만들어진 모델을 다음과 같이 저장합니다.
model.save('model_v2.h5')
준비된 테스트 데이터를 만들어진 모델에 학습시킵니다.