Библиотека Python для быстрого расчета и отображения показателей производительности модели машинного обучения с доверительными интервалами.

Специалисты по данным тратят много времени на оценку производительности своих моделей машинного обучения. Распространенным средством для этого является отчет о классификации для задач классификации, например, встроенный в библиотеку scikit-learn (на которую ссылаются более 440 000 раз на Github). Точно так же для задач регрессии используется показатель r2, MSE или MAE.

Проблема с зависимостью от них заключается в том, что когда у нас есть несбалансированные и / или небольшие наборы данных в нашей тестовой выборке, объем данных, составляющих каждую точечную оценку, может быть очень маленьким. В результате любые оценки показателей оценки вряд ли будут истинным представлением того, что происходит в реальном мире. Вместо этого было бы гораздо лучше представить читателю диапазон значений из доверительных интервалов.

Мы можем легко создать доверительные интервалы для любой интересующей метрики, используя метод бутстрап, чтобы создать сотни выборок из исходного набора данных (с заменой), а затем отбросить самые крайние 5% значений, чтобы получить 95% доверительный интервал. , например.

Однако, когда наборы данных велики, запуск начальной загрузки, как описано выше, становится дорогостоящим вычислением. Даже относительно небольшая выборка из миллиона строк при повторной выборке 1000 раз превращается в набор данных из миллиарда строк, и вычисления занимают около минуты. Это не проблема при выполнении этих расчетов в автономном режиме, но инженеры часто работают в интерактивном режиме в блокноте Jupyter и хотят получить быстрые ответы. По этой причине Meta (также известная как Facebook) решила создать несколько быстрых реализаций этих вычислений для общих показателей машинного обучения, таких как точность и полнота, с использованием библиотеки numba, которая обеспечивает ускорение примерно в 23 раза. над обычным кодом параллельной обработки Python.

Продемонстрируем это на примерах задач классификации. Рассмотрим стандартный набор данных рукописных цифр, в котором мы строим модель машинного обучения для распознавания цифр.

Пока это стандартные вещи. Теперь мы можем использовать FRONNI для получения точности, отзыва, оценок f1 и соответствующих доверительных интервалов. Библиотека доступна в PyPi и для установки FRONNI просто запустите pip install.

pip install fronni

Теперь запустите отчет о классификации FRONNI, чтобы получить показатели точности, полноты и f1 для каждого класса вместе с их доверительными интервалами. Вы можете контролировать количество образцов начальной загрузки, используя параметр n.

Вуаля!, он дает вам верхнюю и нижнюю границы точности, отзыва и оценки f1 для каждого класса.

Пример вывода отчета о классификации FRONNI для классификатора цифр.

Точно так же модуль регрессии FRONNI дает доверительные интервалы RMSE, оценки r2 и MAE. Полную документацию можно найти в репозитории GitHub.