1. 데이터 전처리

앞서 분석했던 Python 분석 자료에 Tensorflow를 이용한 딥러닝 모델을 적용하여 분석해보겠습니다.

1) 필요 패키지 불러오기

분석에 필요한 패키지를 불러옵니다.

from tensorflow import keras

2) 데이터 준비

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)

3) 모델링

다음과 같이 모델을 구축합니다. 초기 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')

4) 스코어링

준비된 테스트 데이터를 만들어진 모델에 학습시킵니다.