분류모델 평가
회귀모델 평가
: 실제값
: 예측값
: 평균값
# 함수 불러오기
from sklearn.metrics import mean_squared_error
# 평가하기
print('MSE: ', mean_squared_error(y_test, y_pred))
# 함수 불러오기
from sklearn.metrics import mean_squared_error
# 평가하기
print('RMSE: ', mean_squared_error(y_test, y_pred) ** 0.5)
# 같은 방법임
print('RMSE: ', mean_squared_error(y_test, y_pred, squared=False))
# 함수 불러오기
from sklearn.metrics import mean_absolute_error
# 평가하기
print('MAE: ', mean_absolute_error(y_test, y_pred))
# 함수 불러오기
from sklearn.metrics import mean_absolute_percentage_error
# 평가하기
print('MAPE: ', mean_absolute_percentage_error(y_test, y_pred))
SST: Sum squared Total(전체오차)
SSR: Sum squared Regression(전체오차 중 회귀식이 잡아낸 오차)
SSE: Sum squared Error(전체 오차 중 회귀식이 잡아내지 못한 오차)
SST = SSE + SSR

# 함수 불러오기
from sklearn.metrics import r2_score
# 평가하기
print('R2: ', r2_score(y_test, y_pred))
# 참고: score 메서드 사용 r2와 같음
model.score(x_test, y_test)

# 모듈 불러오기
from sklearn.metrics import confusion_matrix
# 성능 평가
print('혼동행렬:\n',confusion_matrix(y_test, y_pred))

# 혼동행렬 시각화
plt.figure(figsize=(5,3))
sns.heatmap(confusion_matrix(y_test, y_pred),
annot=True,
cmap='Blues',
cbar=False,
annot_kws={'size':15})
plt.show()

# 모듈 불러오기
from sklearn.metrics import accuracy_score
# 성능 평가
print('정확도:', accuracy_score(y_test, y_pred))
# 참고: 평가 성능 (정확도)
model.score(x_test, y_test)
>
0.84
# 참고: 학습 성능 (정확도)
model.score(x_train, y_train)
>
0.8885714285714286
# 모듈 불러오기
from sklearn.metrics import precision_score
# 성능 평가
# 기본
print('정밀도: ',precision_score(y_test, y_pred))
# 이진분류라 생각하고 1에 대한 precision 출력
print('정밀도: ',precision_score(y_test, y_pred, average='binary'))
# 0 과 1 일때 둘다 출력
print('정밀도: ',precision_score(y_test, y_pred, average=None))
# 평균
print('정밀도: ',precision_score(y_test, y_pred, average='macro'))
# 가중치 평균
print('정밀도: ',precision_score(y_test, y_pred, average='weighted'))
# 모듈 불러오기
from sklearn.metrics import recall_score
# 성능 평가
print('재현율: ',recall_score(y_test, y_pred, average=None))
# 모듈 불러오기
from sklearn.metrics import f1_score
# 성능 평가
print('f1: ',f1_score(y_test, y_pred, average=None))

# 모듈 불러오기
from sklearn.metrics import classification_report
# 성능 평가
print(classification_report(y_test, y_pred))