cleanUrl: "using-custom-scoring-function-in-cross-val-score"
description: "Scikit-learn의 cross_val_score 메서드에서 custom scoring function을 사용하는 방법에 대해 알아봅니다."

scoring 함수 만들기

예시

def smape(target, pred):
    mask = (target != 0)| (pred != 0)
    t, p = target[mask], pred[mask]
    return 200 / len(t) * (np.abs(t - p) / (np.abs(t) + np.abs(p))).sum()

def smape_score(estimator, X, y):
    y_hat = estimator.predict(X)
    return smape(y, y_hat)

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestRegressor

#
# Assume X and y are somehow defined here.
#
model = RandomForestRegressor()
cross_val_score(model, X, y, scoring=smape_score)  # Pass scoring funciton itself.