Перевод статьи подготовлен специально для студентов курса Промышленный 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 pddf = pd.read_csv('heart_d.csv')df
Dataset
Used(Source: By Author)
Теперь давайте разберемся, как использовать
autoviml
для создания модели прогнозирования с этим
датасетом, и какие параметры есть в AutoVIML.
#Basic Example with all parametersmodel, 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 простой способ создать эффективные модели машинного обучения, основываясь на вашем датасете.