Найти тему
Властелин машин

Какие есть функции скоринга в Scikit-learn и как сделать свою

На простом примере рассмотрим, где найти метрики измерения качества модели и как создать собственный "оценщик", поддерживаемый в функциях кросс-валидации и подбора гиперпараметров модели из sklearn. Сначала создадим демонстрационный набор данных:

Разделим датасет на выборки:

-2

Создадим экземпляр модели:

-3

Для вывода метрик качества на кросс-валидации можно воспользоваться функцией cross_validate:

-4

В параметре scoring передаются метрики для оценивания, полный их список в sklearn можно найти здесь.

Следует отметить, что в cross_validate, GridSearchCV, RandomizedSearchCV в scoring можно передавать и списки метрик:

-5

Вместе с тем зачастую возникает необходимость создать пользовательский метод оценки качества и передать его в перечисленные функции. Для этого следует воспользоваться make_scorer, в которую передается кастомный оценщик и направление оптимизации (большие или меньшие значения). Допустим, в качестве пользовательской метрики вы хотите использовать формулу f1+0.5*accuracy:

-6

Сравним с ручным подсчетом:

-7

-8