AI 이론/Machine Learning

[prediction] Car_Purchasing_Data 실습

jasonshin 2021. 12. 15. 17:55

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

 

pd.read_csv('Car_Purchasing_Data.csv', encoding='ISO-8859-1')

 

1. X, y 분리
X = car_df.loc[ : , 'Gender':'Net Worth']

y = car_df['Car Purchase Amount']

 

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()

X = scaler.fit_transform(X)

 

y= y.values.reshape(500,1)


2. 모두 숫자로 변경되었으니, train / test 용 데이터로 분리한다. 
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=3)

3. 인공지능 모델링
from sklearn.ensemble import RandomForestRegressor
regressor = RandomForestRegressor(random_state=50)

3-1. 학습
regressor.fit(X_train, y_train)

3-2. 예측

y_pred = regressor.predict(X_test)

4. MSE(mean squared error 평균제곱오차) 구함 => 성능평가를 위해서! 

y_test = y_test.reshape(125, )
error = y_test - y_pred
(error ** 2).sum()
(error ** 2).mean()

5. 차트로 확인
plt.plot(y_test.values)
plt.plot(y_pred)
plt.legend(['Real', 'Pred'])
plt.savefig('chart1.jpg')
plt.show()

6. 인공지능 적용

1) array로 밸류값 입력

new_data = np.array([0,38, 78000, 15000, 480000])

new_data.shape

(5,)

2) 밸류값 2차원으로 리쉐입

new_data= new_data.reshape(1, 5)

 

3) 밸류값 스케일러 

new_data = scaler_X.transform(new_data)

 

4) 예측

regressor.predict(new_data)

 

y_pred = regressor.predict(new_data)

 

5) 스케일링한 예측값을 다시 원래 단위로 환산

scaler_y.inverse_transform(y_pred.reshape(1,1))

반응형