딥러닝

딥러닝(tensorflow)을 이용한 자동차 구매 가격 예측

HooSL 2022. 3. 28. 17:14

https://dbfoot.tistory.com/170

 

머신러닝을 이용한 자동차 구매 가격 예측과 joblib이용해 모델 저장하기

다음과 같은 컬럼을 가지고 있는 데이터셋을 읽어서, 어떠한 고객이 있을때, 그 고객이 얼마정도의 차를 구매할 수 있을지를 예측하여, 그 사람에게 맞는 자동차를 보여주려 합니다. 컬럼 : Custom

dbfoot.tistory.com

여기서 이어집니다.

 

필요한 라이브러리를 import합니다.

import tensorflow.keras
from keras.models import Sequential
from keras.layers import Dense
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf

 

딥러닝 모델링

model = Sequential()
X_train.shape

model.add(Dense(units=20,activation='relu',input_dim = 5))
model.add(Dense(units=10,activation='relu'))

# 리그레션 문제의 액티베이션 function은 linear 사용
model.add(Dense(units=1,activation='linear'))

model.summary()

옵티마이저는 'adam' 으로 하고, 로스펑션은 'mean_squared_error' 로 세팅하여 컴파일 합니다.

model.compile(optimizer='adam',loss='mean_squared_error')

학습을 진행합니다.

epoch_history = model.fit(X_train,y_train,batch_size=20,epochs=20)

게임 로딩되는것처럼 쭉쭉 차면서 학습이 됩니다.

 

EVALUATING THE MODEL

테스트셋으로 예측 해보기

y_pred=model.predict(X_test)
y_test
y_pred

 

MSE : 오차를 구하고, 제곱한 후 평균을 구합니다. (Mean Squared Error)

((y_test-y_pred)**2).mean()

 

실제값과 예측값을 plot으로 나타냅니다.

plt.plot(y_test)
plt.plot(y_pred)
plt.legend(['Rear','Pred'])
plt.show()

예시를 들어보겠습니다.

 

유저가 앱을 통해서 데이터 입력했습니다
이 사람은 얼마 정도의 차를 구매할수있는지 예측하세요

 

여자이고 나이는 38살 연봉은 90,000달러 카드빚은 2,000달러이고,
자산은 500,000만 달러 입니다.

이 사람의 얼마짜리 차를 구매할 여력이 될까요?

 

new_data = np.array([0,38,90000,2000,500000])
new_data=new_data.reshape(1,5)
new_data=scaler_X.transform(new_data)
y_pred = model.predict(new_data)

위 예시의 예측값입니다.

scaler_y.inverse_transform(y_pred)