Scikit Learn 1.0: новые функции в библиотеке машинного обучения Python
7 ноября 2021 г.Scikit-learn - самая популярная бесплатная библиотека машинного обучения на Python с открытым исходным кодом для специалистов по анализу данных и специалистов по машинному обучению. Библиотека scikit-learn содержит множество эффективных инструментов для машинного обучения и статистического моделирования, включая классификацию, регрессию, кластеризацию и уменьшение размерности.
В этой статье я рад поделиться с вами пятью основными новыми функциями, представленными в новой версии scikit-learn (1.0).
ОГЛАВЛЕНИЕ
- Установите Scikit-learn v1.0 Новый гибкий график APIFeature Names SupportPearson's R Correlation CoefficientOneHot Encoder Улучшения Модели повышения градиента на основе гистограмм теперь стабильны
Установите Scikit-learn v1.0
Во-первых, убедитесь, что вы установили последнюю версию (с помощью pip):
Если вы используете conda, используйте следующую команду:
Примечание. Scikit-learn версии 1.0.0 требует python 3.7+, NumPy 1.14.6+ и scipy 1.1.0+. Необязательная минимальная зависимость - matplotlib 2.2.2+
А теперь давайте посмотрим на новые функции!
1. Новый гибкий API построения графиков
Scikit-learn 1.0 представил новый гибкий API построения графиков, такой как metrics.PrecisionRecallDisplay, metrics.DetCurveDisplay и Inspection.PartialDependenceDisplay.
Этот API построения графиков имеет два метода класса:
(а) from_estimator ()
Этот метод класса позволяет подобрать модель и одновременно построить график результатов.
Давайте рассмотрим пример использования PrecisionRecallDisplay для визуализации Precision и Recall.
(б) from_predicitons ()
В этом методе класса вы можете просто передать результаты прогноза и получить свои графики.
Давайте рассмотрим пример использования ConfusionMatrixDisplay для визуализации матрицы путаницы.
2. Поддержка имен функций (Pandas Dataframe)
В новой версии scikit-learn вы можете отслеживать имена столбцов фрейма данных pandas при работе с трансформаторами или оценщиками.
Когда вы передаете фрейм данных оценщику и вызываете метод подбора, оценщик сохранит имя функции в атрибуте feature_names_in_.
array (['возраст', 'дни', 'продолжительность'], dtype = объект)
Примечание. Поддержка имен функций доступна только в том случае, если имена столбцов в фрейме данных являются строками.
3. Коэффициент корреляции R Пирсона.
Это новая функция в выборе функций, которая может измерять линейную связь между каждой функцией и целью для задач регрессии. Он также известен как р. Пирсона.
Взаимная корреляция между каждым регрессором и целью вычисляется как
((X [:, i] - среднее (X [:, i])) * (y - среднее_y)) / (std (X [:, i]) * std (y)).
Примечание: где X - это характеристики набора данных, а y - целевая переменная.
В следующем примере показано, как можно вычислить r Пирсона для каждой функции и цели.
(20640, 8)
[0,68807521 0,10562341 0,15194829 -0,04670051 -0,02464968 -0,02373741 -0,14416028 -0,04596662]
4. Улучшения OneHot Encoder
Кодировщик OneHot в scikit-learn 1.0 может принимать значения, которых он раньше не видел. Вам просто нужно установить для параметра с именем handle_unknown значение 'ignore' (handle_unknown = 'ignore') при создании экземпляра преобразователя.
При преобразовании данных с неизвестной категорией все закодированные столбцы для этой функции будут иметь нулевые значения.
В следующем примере мы передаем неизвестную категорию при преобразовании данных.
[[0. 0.] [1. 0.] [0. 1.]]
Примечание. В обратном преобразовании неизвестная категория будет помечена как «Нет».
5. Модели повышения градиента на основе гистограмм теперь стабильны.
Два алгоритма контролируемого обучения, представленные в предыдущей версии scikit-learn 0.24 (HistGradientBoostingRegressor и HistGradientBoostingClassifier), больше не являются экспериментальными, и вы можете просто импортировать и использовать их как:
В scikit-learn 1.0.0 есть и другие новые функции, о которых я не упоминал в этой статье. Вы можете найти основные моменты других функций, выпущенных в scikit-learn 1.0.0, здесь.
Поздравляем, вы дочитали до конца эту статью! Надеюсь, вы узнали что-то новое, что поможет вам в следующем проекте машинного обучения.
Если вы узнали что-то новое или вам понравилось читать эту статью, поделитесь ею, чтобы другие могли ее увидеть. А пока до встречи в следующем посте!
Вы также можете найти меня в Twitter @Davis_McDavid.
И вы можете прочитать больше подобных статей здесь.
Оригинал