В чем разница между need_proba и need_threshold в функции make_scorer scikit-learn?

Разница между ними не очень хорошо объяснена в make_scorerдокументация. Я заметил, что если needs_probaили установлено значение True, функция подсчета очков получает pred_probaвместо y_pred. Однако установить их оба в True невозможно. Выдает ошибку как

      ValueError: Set either needs_proba or needs_threshold to True, but not both

Документация для говорит :

Например, medium_precision или площадь под кривой ROC нельзя вычислить, используя только дискретные прогнозы.

что я понял, поскольку для need_threshold должно быть установлено значение True, если скоринг равен medium_precision или roc_auc_score. Однако это работает одинаково независимо от того, имеет ли need_threshold значение True или False.

Можете ли вы помочь мне понять разницу между ними и использованием needs_threshold?

1 ответ

Согласно примечанию ниже на странице документов, needs_thresholdпытается для decision_functionпрежде чем вернуться к predict_proba. Для показателей ранжирования, таких как roc_auc_scoreа также average_precision, разницы не будет.

Я полагаю, вам может понадобиться метрика, которая принимает либо исходные выходные данные функции принятия решения, либо (откалиброванные?) выходные данные вероятности. Например, в SVC решающей функцией является расстояние (со знаком) от разделяющей плоскости, которое может потребоваться для вычисления среднего среди неправильно классифицированных примеров, тогда как вам также может понадобиться метрика, использующая вероятности результирующего класса (после калибровка Platt, которая происходит внутри, когда SVC probability=True).

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