Python

[파이썬] XGBRegressor 모델 성능 평가 지표 - 결정계수, RMSE, MAPE

weweGH 2025. 3. 13. 21:58
반응형

XGB Regressor 성능 평가 지표
XGB Regressor 성능 평가 지표


XGBRegressor 모델 성능 평가 지표 - 결정계수, RMSE, MAPE


들어가며


XGBRegressor를 활용하여 모델을 생성했다면, 모델의 성능을 평가해야 합니다. 결정계수, RMSE, MAPE 등을 출력하는 방법을 소개합니다. 내장 데이터셋인 iris를 예제로 사용합니다.


모델 성능 평가 지표


예제 데이터로 sklearn의 iris 데이터를 활용하겠습니다.

from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
df_iris = pd.DataFrame(iris.data, columns=iris.feature_names)
print(len(df_iris))
df_iris.head()

df_iris.head
df_iris.head


임의로 sepal length를 예측 변수로 설정하고, train_test_split으로 train 데이터셋과 test 데이터셋으로 분리합니다. 분리한 train 데이터셋인 X_train, y_train으로 XGBRegressor 모델을 생성합니다.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df_iris.drop(['sepal length (cm)'], axis=1), df_iris['sepal length (cm)'], test_size=0.2, random_state=156)

from xgboost import XGBRegressor
xgb_reg = XGBRegressor()
xgb_reg.fit(X_train, y_train)
반응형

sklearn의 metrics로 결정계수, RMSE, MAE, MAPE를 출력합니다.

from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error, accuracy_score, mean_absolute_percentage_error

y_pred = xgb_reg.predict(X_test)

print("R2: {:.2f}".format(r2_score(y_test, y_pred)))
print("R2: {:.2f}".format(xgb_reg.score(X_test, y_test)))
print("rmse: {:.2f}".format(mean_squared_error(y_test, y_pred, squared = False))) # squared=True: mse를 의미
print('mae: {:.2f}'.format(mean_absolute_error(y_test, y_pred)))
print('mape: {:.2f}'.format(mean_absolute_percentage_error(y_test, y_pred)))

r2, rmse, mae, mape
r2, rmse, mae, mape


반응형