AI/MachineLearning

머신러닝 - LinearRegression(MAE, MSE, RMSE, MAPE, R2 - Score)

oaho 2023. 2. 20. 16:32
반응형
회귀모델 성능 평가

 

1)  x, y 분리

  1. target 변수 명확히 지정
  2. target을 제외한 변수를 x 데이터프레임으로 선언
  3. y 데이터프레임은 target변수만을 가짐

target = 'Ozone'

x = data.drop(target, axis=1)
y = data.loc[:, target]

 

2) 학습용, 평가용 데이터 분리

 

1. 모듈 불러오기

from sklearn.model_selection import train_test_split

 

2. 7:3으로 분리

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=1)

 

3) 모델링 회귀 문제

알고리즘 : LinearRegression

평가방법 : mean_absolute_error

 

1. 모듈 불러오기

 

from sklearn.linear_model import LinearRegression 
from sklearn.metrics import mean_absolute_error

 

 

2. 선언하기

 

model = LinearRegression()

 

 

3. 학습하기

 

model.fit(x_train, y_train)

 

 

4. 예측하기

 

y_pred = model.predict(x_test)

 

 

5. 평가하기 ⭐⭐⭐

mean_absolute_error(y_test, y_pred)

=> 순서 지키기 !

 

 

회귀 성능 평가 방법

 

1. MAE(Mean Absolute Error) ⭐

: 평균 절대 잔차 -> 모든 데이터에 대해 예측값과 실제값의 차이에 대해 절대값을 구하고, 이 값을 모두 더한 후에 데이터의 개수만큼 나눔

from sklearn.metrics import mean_absolute_error

 

만약 MAE가 300이라면 두 값의 차이가 평균적으로 300이라고 예상할 수 있음.

 

 

2. MSE(Mean Squared Error) 

: 잔차제곱의 합 / 데이터의 개수

from sklearn.metrics import mean_squared_error

 

 

3. RMSE(Root Mean Squared Error)

: 평균제곱근 오차 -> 오차에 대해 제곱을 한 다음 모든값을 더하여 평균을 낸 후 제곱근을 구하는 방식

from sklearn.metrics import mean_squared_error

MAE와 유사, 만약 차이가 크게 나는 값에 대해서 패널티를 주고 싶다면 RMSE값을 사용하는 것이 더 좋음.

mse(y_test, y_pred)**0.5

 

4. MAPE(Mean Absolute Percentage Error)

from sklearn.metrics import mean_absolute_percentage_error

 

5. R2 - Score

: 두 개의 값의 증감이 얼마나 일관성을 가지는지 나타내는 지표

from sklearn.metrics import r2_score

=> SSR/SST

 

 

회귀 모델 평가)

  • 정확한 값을 예측하기는 사실상 어려움
  • 예측 값과 실제 값에 차이(=오차)가 존재할 것이라 예상함
  • 예측 값이 셀제 값에 가까울 수록 좋은 모델이라 할 수 있음

-> 예측한 값과 실제 값의 차이로 모델 성능 평가

 

 

머신러닝 - 분류모델

분류모델 성능 평가 절차 1. x, y 분리, 2. 학습용, 평가용 데이터 분리 방법이 회귀모델 분석방법이랑 같음(회귀모델에서 더 자세하게 설명함) 머신러닝 - LinearRegression 회귀 분석 절차 1) x, y 분리 t

oaho.tistory.com

 

반응형