Новая версия Scikit-Learn (1.2.0–1) больше подходит для анализа данных
Примерно в декабре прошлого года Scikit-Learn выпустила крупное стабильное обновление (версия 1.2.0–1), и, наконец, я могу попробовать некоторые из новых функций. Теперь Scikit-Learn более совместим с Pandas, некоторые новые функции могут помочь нам с регрессией, а также с задачами классификации. Ниже я рассматриваю некоторые из новых обновлений с примерами того, как их использовать. Давайте начнём!
Совместимость с Pandas
Применение некоторой стандартизации данных перед их использованием для обучения модели ML, такой как регрессия или нейронная сеть, является распространённым методом, позволяющим убедиться, что различные функции с различными диапазонами приобретают одинаковую важность (если или когда это необходимо) для прогнозов. Scikit-Learn предоставляет различные API предварительной обработки, такие как StandardScaler, MaxAbsScaler и т.д. В более новой версии можно сохранить формат фрейма данных даже после предварительной обработки, как показано ниже:
Новая версия включает в себя возможность сохранить этот формат фрейма данных даже после стандартизации:
Раньше это изменило бы формат на массив Numpy:
Поскольку формат фрейма данных остаётся неизменным, нам не нужно следить за столбцами, как нам нужно было делать это раньше. Анализ и построение графиков становятся проще:
Даже когда мы создаём конвейер, каждый трансформатор в конвейере может быть сконфигурирован для возврата фреймов данных, как показано ниже:
Извлечение набора данных происходит быстрее и эффективнее
OpenML- это открытая платформа для обмена наборами данных, а Dataset API в Sklearn предлагает функцию fetch_openml для их извлечения. С обновлённым Sklearn этот процесс стал более эффективен с точки зрения использования памяти и времени.
Использование parser='pandas' значительно сокращает время выполнения и потребление памяти. Можно легко проверить потребление памяти, используя библиотеку psutil, как показано ниже:
Графики частичной зависимости: Категориальные характеристики
Графики частичной зависимости существовали и раньше, но только для числовых объектов. Теперь они были расширены и для категориальных объектов.
Как написано в документации Sklearn:
Графики частичной зависимости показывают зависимость между целевыми показателями и набором входных признаков, представляющих интерес, с незначительным превышением значений всех других входных признаков. Интуитивно мы можем интерпретировать частичную зависимость как ожидаемый целевой отклик в зависимости от интересующих входных характеристик.
Используя приведённый выше набор данных "titanic", мы можем легко построить график частичной зависимости категориальных признаков:
С помощью приведённого выше блока кода мы можем получить графики частичной зависимости, как показано ниже:
С версией 0.24 мы бы получали ошибку значения для категориальных переменных:
Построение графика остатков (регрессионные модели)
Для анализа производительности классификационной модели в Sklearn metrics API в старых версиях (0.24) существовали процедуры построения графиков, такие как PrecisionRecallDisplay , RocCurveDisplay. В новом обновлении можно сделать аналогичное для регрессионных моделей. Давайте посмотрим на пример ниже:
Хотя всегда можно построить подогнанную линию и остатки с помощью matplotlib или seaborn, после того, как мы определились с наилучшей моделью, здорово иметь возможность быстро проверять результаты непосредственно в среде Sklearn.
В новом Sklearn доступно ещё несколько улучшений / дополнений, но я обнаружил, что эти 4 основных улучшения чаще всего оказываются особенно полезными для стандартного анализа данных.
Ссылки на литературу
[2] Основные моменты выпуска Sklearn: Video
[3] Все графики и коды: My GitHub
Статья была взята из следующего источника: