Перевод статьи подготовлен специально для студентов курса «Промышленный 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
Теперь давайте разберемся, как использовать 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, и какие параметры мы можем использовать. Теперь давайте подробно обсудим, за что эти параметры отвечают.
train
: должен содержать местоположение вашего датасета или, если вы загрузили его в dataframe, то имя dataframe. В нашем случае мы загрузили его в dataframe с именем «df», поэтому мы дадим ему значение «df».target
: содержит имя целевой переменной. В нашем случае она называется «TenYearCHD».test
: содержит тестовый датасет. Также мы можем оставить его пустым (и использовать ””), если у вас нет никакого тестового датасета, чтобы AutoVIML разделил датасет на обучающий и тестовый.sample_submission
: мы оставим его пустым, чтобы он автоматически создавал представление в локальном каталоге.hyper_param
: Мы будем использовать RandomizedSearchCV, потому что он в три раза быстрее, чем Grid Search CV. Дадим ему значение «RS».feature_reduction
: Установим значение true, чтобы учитывать самую важную предикторную переменную для создания модели.scoring_parameter
: вы можете задать свой собственный параметр для скоринга, либо он будет выбран в соответствии с моделью. Здесь мы используем «Weighted-f1».KMeans_featurizer
: этот параметр должен стоять в значении true для линейного классификатора и false для XGboost или случайного классификатора, иначе есть риск переобучения.boosting_flag
: используется для бустинга. Поставим значение false.binning_flag
: по умолчанию стоит в значении false, но может быть установлен в true, когда мы хотим преобразовать верхние численные переменные в двоичные.add_poly
: установим в false.stacking_flag
: по умолчанию стоит в false. Если поставим значение true, то будет добавлена дополнительная функция, которая является производной от предсказаний другой модели. Оставим в значении false.Imbalanced_flag
: если стоит значение true, то проверит данные на сбалансированность и уберет дисбаланс методом SMOTING.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 – простой способ создать эффективные модели машинного обучения, основываясь на вашем датасете.