Как работает make_scorer при использовании настраиваемых потерь с прогнозируемыми вероятностями в скоринге GridSearchCV?
Я использовал пользовательскую функцию потерь в качестве метода оценки в
GridSearchCV
. Мой набор данных классифицирован двоично, и я предсказываю на его основе вероятности, поэтому я установил
needs_proba=True
в .
def custom_loss(y_true, y_pred):
return mean_squared_log_error(y_true, y_pred, squared=False)
model = GridSearchCV(model_pipe,
param_grid=param_grid,
cv=StratifiedKFold(n_splits=5, random_state=73, shuffle=True),
n_jobs=-1,
scoring=make_scorer(custom_loss, greater_is_better=True, needs_proba=True),
refit=True,
)
В документе есть следующее описание
needs_proba
:
Если True, для двоичного y_true, функция оценки должна принимать 1D y_pred (т. Е. Вероятность положительного класса, shape(n_samples,)).
Эта часть: «Предполагается, что функция оценки принимает 1D y_pred», для меня не совсем ясна.
Рассмотрение представляет собой одномерный массив ([1 0 0]) и представляет собой двумерный массив вероятностей ([0,9 0,1], [0,2 0,8], [0,3 0,7]).
make_scorer
автоматически учитывает положительные вероятности от
y_pred
(
y_pred[:,1]
) позвонить в
custom_loss
функции и сравните их с
y_true
?
Спасибо!