В этой статье используются python, pandas и sci kit learn.

Пожалуй, лучше всего они говорят об этом на своем сайте:

Auto-sklearn освобождает пользователя машинного обучения от выбора алгоритма и настройки гиперпараметров. Он использует недавние преимущества в байесовской оптимизации, метаобучении и построении ансамблей.

Если вам это не нравится, имейте в виду, что он также обрабатывает предварительную обработку данных: фиктивная кодировка (функции должны быть типа category, а не object в pandas, вменяет пропущенные значения (обрабатывает NaN за вас!), запускает PCA и другие меры предварительной обработки. Класс работает так же, как оценщик из научного набора: научитесь: он подходит, он предсказывает. Если вы хотите знать естественные науки и математику, стоящие за проекта, не стесняйтесь проверить их статью о autoML - она ​​приятно читается и дает много информации о состоянии поля. Однако мы здесь не для того, чтобы скучать по лесу за деревьями, мы здесь потому что вы хотите быстро реализовать инструмент для собственного проекта.

Небольшое отступление: вот как он работал с набором данных MID по сравнению с другими моделями, в которых я прогнозировал порядковую переменную с 22 категориями. Без настройки гиперпараметров или выбора модели автоматическое обучение работало примерно так же, как моя лучшая модель, предварительная обработка и поиск сетки.

Так что сначала получите посылку. У него есть некоторые требования, самые жесткие из тех, что вам нужны для операционной системы Linux. Если у вас нет Linux, но вы все еще хотите попробовать его, настроить виртуальную машину проще, чем когда-либо. Теперь посмотрим на реальный код:

from autosklearn.regression import AutoSklearnRegressor
from autosklearn.classification import AutoSklearnClassifier

Выбирайте в зависимости от проекта. Затем давайте настроим экземпляр:

AutoML = AutoSklearnClassifier(
    include_estimators=["random_forest", ], 
    exclude_estimators=None,
include_preprocessors=["no_preprocessing", ], 
    exclude_preprocessors=None)
time_left_for_this_task=60,
    per_run_time_limit=30,
)

Давайте пройдемся по этому вопросу. По умолчанию auto-sklearn просматривает большинство оценщиков и препроцессоров в skikit learn. Первые два параметра положительно или отрицательно определяют, какие оценщики вы хотите использовать. Поэтому, если вы хотите, чтобы функция auto-sklearn выполняла поиск в меньшем пространстве (это может быть важно для этих поисков по мета-сеткам!), Вы можете ограничить оценщики, явно указав список в include_estimators. Или вы можете исключить тех, кто определенно не хочет, чтобы их проверяли exclude_estimators. Предоставленный код ограничивает пространство поиска оценщика только случайными моделями леса. Препроцессоры работают примерно так же; вход параметра no_preprocessing запрещает auto-sklearn вообще выполнять какую-либо предварительную обработку ваших данных.

Следующие два параметра определяют временные рамки задачи, которые могут предотвратить проблемы, когда время выполнения абсолютно нереально. Здесь общее время задачи установлено на 60 минут, и ни один отдельный запуск не может превышать 30 минут. Имейте в виду, что github с функцией auto-sklearn рекомендует общее время задачи в день - планируйте заранее! Однако с использованием auto-sklearn он работал с моими данными всего за пару минут.

Отсюда вы просто подходите и прогнозируете, как любой другой оценщик, где X - ваши особенности, а y - ваша цель.

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
 
AutoML.fit(X_train, y_train)
preds = AutoML.predict(X_test)
 
print(metrics.accuracy_score(y_true=y_test, y_pred=preds)

Если вы хотите узнать больше о пространстве поиска для соответствия, вы также можете запустить print(automl.show_models()), чтобы распечатать показания моделей, которые внесли свой вклад в окончательные прогнозы. Первое число в верхнем левом углу - это общий вес, полученный моделью при подгонке автосклейки; модели хранятся в .show_models как список кортежей. Для получения более подробной информации о моделях вы также можете заглянуть в их руководство.