[머신러닝] Prediction- Regression, MSE 성능평가
1. X, y 분리
X = df.iloc[ : ,1 : ]
y= df['mpg']
1-1. 카테고리컬 데이터 처리
X = pd.get_dummies(X, columns=['origin'])
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.linear_model import LinearRegression
regressor = LinearRegression()
3-1. 학습
regressor.fit(X_train, y_train)
3-2. 예측
y_pred = regressor.predict(X_test)
4. MSE(mean squared error 평균제곱오차) 구함 => 성능평가를 위해서!
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))