Scikit-learn проблема с пользовательской метрикой make_scorer

Я провожу анализ оттока. я использовал

      randomcv = RandomizedSearchCV(estimator=clf,param_distributions = params_grid,
                          cv=kfoldcv,n_iter=100, n_jobs=-1, scoring='roc_auc')

и все было хорошо, но потом я попробовал использовать настраиваемую функцию оценки таким образом

      def gain_fn(y_true, y_pred):
    tp = np.where((y_pred==1) & (y_true==1), 40000, 0)
    fp = np.where((y_pred==1) & (y_true==0), -1000, 0)
    return np.sum([tp,fp])

scorer_fn = make_scorer(gain_fn, greater_is_better = True)

randomcv = RandomizedSearchCV(estimator=clf,param_distributions = params_grid,
                          cv=kfoldcv,n_iter=100, n_jobs=-1, scoring=scorer_fn)

но он всегда возвращает ноль в качестве ответа. Кажется, что y_pred всегда равен нулю. Любое предложение? Спасибо!

0 ответов

Другие вопросы по тегам