AutoVIML: Автоматизированное машинное обучение

Автор оригинала: Himanshu Sharma
  • Перевод

Перевод статьи подготовлен специально для студентов курса «Промышленный ML на больших данных»


Машинное обучение обладает преимуществом обучения алгоритмов, которые автоматически улучшаются, используя полученный опыт. Существует N различных алгоритмов и методов машинного обучения, и вам, как правило, нужно попробовать множество из них, чтобы найти лучшую модель прогнозирования для вашего датасета -  ту, которая будет иметь наивысшую точность.

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

AutoVIML – это открытый пакет Python, который упрощает машинное обучение. Что он делает, так это визуализирует ваши данные с помощью различных моделей машинного обучения и находит лучшую модель с наибольшей точностью для данного датасета. Нет необходимости делать предварительную обработку датасета перед передачей его в AutoVIML, он автоматически очищает ваши данные, помогает вам классифицировать переменные, выполняет сокращение функций, может обрабатывать данные различных типов – текстовые, числовые, даты и т.д. с помощью одной модели.

В этой статье мы узнаем, как пользоваться AutoVIML, чтобы сократить время и усилия, затрачиваемые на создание моделей машинного обучения. Мы посмотрим, как различные параметры, которые мы используем в AutoVIML, влияют на прогноз.

Устанавливаем AutoVIML

Как и любую другую python-библиотеку, autoviml мы будем устанавливать через pip.

pip install autoviml

Импортируем AutoVIML

from autoviml.Auto_ViML import Auto_ViML

Загружаем датасет

Для освоения AutoVIML подойдет любой датасет. В этой статье я использую датасет с данными сердечных заболеваний, который вы можете скачать с Kaggle. В нем есть различные атрибуты и целевая переменная. 

import pandas as pd
df = pd.read_csv('heart_d.csv')
df
Dataset Used(Source: By Author)
Dataset Used(Source: By Author)

Теперь давайте разберемся, как использовать autoviml для создания модели прогнозирования с этим датасетом, и какие параметры есть в AutoVIML.

#Basic Example with all parameters
model, features, trainm, testm = Auto_ViML(
    train,
    target,
    test,
    sample_submission,
    hyper_param="GS",
    feature_reduction=True,
    scoring_parameter="weighted-f1",
    KMeans_Featurizer=False,
    Boosting_Flag=False,
    Binning_Flag=False,
    Add_Poly=False,
    Stacking_Flag=False,
    Imbalanced_Flag=False,
    verbose=0,
)

Из кода выше видно, как создать модель с помощью AutoVIML, и какие параметры мы можем использовать. Теперь давайте подробно обсудим, за что эти параметры отвечают.

  1. train: должен содержать местоположение вашего датасета или, если вы загрузили его в dataframe, то имя dataframe. В нашем случае мы загрузили его в dataframe с именем «df», поэтому мы дадим ему значение «df».

  2. target: содержит имя целевой переменной. В нашем случае она называется «TenYearCHD». 

  3. test: содержит тестовый датасет. Также мы можем оставить его пустым (и использовать ””), если у вас нет никакого тестового датасета, чтобы AutoVIML разделил датасет на обучающий и тестовый.

  4. sample_submission: мы оставим его пустым, чтобы он автоматически создавал представление в локальном каталоге.

  5. hyper_param: Мы будем использовать RandomizedSearchCV, потому что он в три раза быстрее, чем Grid Search CV. Дадим ему значение «RS».

  6. feature_reduction: Установим значение true, чтобы учитывать самую важную предикторную переменную для создания модели.

  7. scoring_parameter: вы можете задать свой собственный параметр для скоринга, либо он будет выбран в соответствии с моделью. Здесь мы используем «Weighted-f1».

  8. KMeans_featurizer: этот параметр должен стоять в значении true для линейного классификатора и false для XGboost или случайного классификатора, иначе есть риск переобучения.

  9. boosting_flag: используется для бустинга. Поставим значение false.

  10. binning_flag: по умолчанию стоит в значении false, но может быть установлен в true, когда мы хотим преобразовать верхние численные переменные в двоичные.

  11. add_poly: установим в false.

  12. stacking_flag: по умолчанию стоит в false. Если поставим значение true, то будет добавлена дополнительная функция, которая является производной от предсказаний другой модели. Оставим в значении false.

  13. Imbalanced_flag: если стоит значение true, то проверит данные на сбалансированность и уберет дисбаланс методом SMOTING.

  14. Verbose: обычно используется для вывода выполняемых шагов. Поставим значение 3.

Теперь давайте используем все эти параметры для нашего датасета и создадим наиболее эффективную модель с высокой точностью при помощи AutoVIML.

model, features, trainm, testm = Auto_ViML(
    train=df,
    target="TenYearCHD",
    test="",
    sample_submission="",
    hyper_param="RS",
    feature_reduction=True,
    scoring_parameter="weighted-f1",
    KMeans_Featurizer=False,
    Boosting_Flag=True,
    Binning_Flag=False,
    Add_Poly=False,
    Stacking_Flag=True,
    Imbalanced_Flag=True,
    verbose=3
)

Давайте проанализируем полученный результат.

1. Часть анализа данных

2. Чистка данных и отбор признаков

3. Балансировка данных и создание моделей

4. Отчет о классификации и матрица смежности

5. Визуализации моделей

6. Важность признаков и прогностическая вероятность

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

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

Узнать подробнее о курсе

Читать ещё:

OTUS. Онлайн-образование
Цифровые навыки от ведущих экспертов

Комментарии 3

    0
    У рассмотренной в статье библиотеки есть практически полный аналог: PyCaret, MaxRokatansky публиковал статью о нем на хабре: Представляем PyCaret: открытую low-code библиотеку машинного обучения на Python, ссылка на нее была бы уместна и в этой статье тоже, как аналога и для сравнения.
      0
      Отличная идея. Добавил ссылку на статью
      0

      А насколько AutoVIML хорош в процессе Dataprep, как он очищает от outliers? Хорошо AutoVIML выбрал для нас самую лучшую модель (RF sklearn), в продакшен мы идем с AutoVIML или RF sklearn если так, то как туда перетащить пайплайны для Dataprep?

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое