본문 바로가기
Python/MachineLearning

Regression 2) Error, MSE, RMSE

by 하니__ 2024. 4. 13.

2024.04.13 - [MachineLearning] - Regression 1) .coef_ , .intercept_ , .predict( )

 

 

그리고 이제 오차를 구해보자

실제값 - 예측값을 해보면 오차가 나올것이고

 

오차가 작을수록 똑똑한 인공지능인 것이다

 

 

 

 

 
error = y_test - y_pred
error
15   -4011.719429
8     8653.750789
6     6259.747285
26    1296.361158
3     -860.270233
11   -7601.235196
Name: Salary, dtype: float64

 

 

오차가 8천도 있고 -860도 있어

오차의 평균치 부터 알아야 할것같다

 

하지만 그 전에

음수도 있고 양수도 있기때문에

 

오차를 제곱하여 부호를 먼저 없앤 후에 평균을 구하도록 하자

 

 

(error**2).mean()
31727520.866778105

 

오차를 제곱하여 평균을 구했다

 

이것을  MSE 라고 부르는데

본딧말은

Mean Squared Error

평균 제곱 오차 라는 뜻이다

 

 

 

np.sqrt( (error**2).mean() )

 

평균 제곱 오차를 제곱근을 구하는

np.sqrt(  )파라미터에 집어넣으면

 

RMSE ( Root Mean Squared Error )

평균 제곱근 오차라고 부른다

 

 

 

그럼 이제 눈으로 보기쉽게 얼마나 오차가 나는건지 차트로 그려 알아보자
 
y_test
15     67938.0
8      64445.0
6      60150.0
26    116969.0
3      43525.0
11     55794.0
Name: Salary, dtype: float64
y_pred
array([ 71949.71942864,  55791.24921078,  53890.25271456, 115672.63884167,
        44385.27023347,  63395.23519566])

 

y의 실제값과 y의 예측값을 가지고

 

차트를 그려보면 알 수 있을것이다

 

 

 

 

df_test = y_test.to_frame()
df_test['y_pred'] = y_pred

 

우선 실제값을 데이터프레임으로 변환하고

 

예측값도 추가하여 하나의 데이터프레임으로 만들어준뒤

 

 

 

 
 
df_test.reset_index(drop=True, inplace=True)

 

df_test.plot(kind= 'bar')
plt.show()
 
 
 
 
막대그래프 형태로 만들어서 확인하자
 
수치가 엄청 심하게 차이나는 것 같지는 않다
 
 

 

 

 

 

 

 

Regression 3) New 데이터의 예측값은?

새로운 데이터가 들어왔을때의 예측값 데이터의 내용은 다르지만 앞부분은 넘어가고 본편으로 넘어가겠다 「 운영비는 15만 달러, 마케팅비용 40만 달러, 연구개발비 13만 달러 ,회사위치는 florid

hani08.tistory.com