В этой статье используются 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 как список кортежей. Для получения более подробной информации о моделях вы также можете заглянуть в их руководство.