В быстро развивающемся ландшафте машинного обучения автоматизированные инструменты стали незаменимыми как для опытных специалистов по данным, так и для новичков в этой области. Одной из таких мощных библиотек, которая набирает популярность, является FLAML (Fast and Light AutoML). FLAML — это удобная библиотека автоматизированного машинного обучения с открытым исходным кодом, которая позволяет пользователям без особых усилий создавать точные и эффективные модели машинного обучения для широкого круга задач. В этой статье мы углубимся в особенности и преимущества FLAML, изучая, как он упрощает рабочий процесс машинного обучения, обеспечивая при этом исключительные результаты.

Что такое FLAML?

FLAML — это библиотека автоматизированного машинного обучения на основе Python, предназначенная для оптимизации процессов выбора модели, оптимизации гиперпараметров и оценки. Основное внимание уделяется тому, чтобы сделать AutoML доступным для всех, независимо от их опыта в области науки о данных. Автоматизируя повторяющиеся задачи, FLAML позволяет пользователям сосредоточиться на анализе данных, выводах и решении проблем, а не тратить часы на точную настройку параметров модели вручную.

Чтобы начать работу с FLAML, в вашей системе должен быть установлен Python. FLAML можно установить через pip, что упрощает настройку.

pip install flaml

Например, у меня есть набор данных «movie_metadata», полученный от Kaggle, где целевой переменной является оценка IMDB, и есть другие переменные, которые влияют на эту оценку IMDB. Используя эти параметры, мы попытаемся предсказать, будет ли фильм успешным, средним или неудачным.

data=pd.read_csv('movie_metadata.csv')
data.head()

После этого мы можем импортировать библиотеку flaml и начать процесс автоматизированного машинного обучения.

from flaml import AutoML
automl = AutoML()

После импорта сначала мы должны выполнить тестовое разделение поезда.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0,stratify = y)

Мы можем создать параметры из приведенного ниже кода, похожего на flaml, чтобы определить, какую метрику мы используем, и определить «классификацию» в «задаче» в наборе данных классификации.

settings = {
    "time_budget": 5,
    "metric": 'accuracy', 
    "task": 'classification',
    "log_file_name": 'movies_experiment.log',
    "seed": 7654321,

После этого мы делаем подгонку к набору данных поезда.

automl.fit(X_train=X_train, y_train=y_train, **settings)

Процесс повторяет каждую модель, чтобы найти лучшую модель.

print('Best ML leaner:', automl.best_estimator)
print('Best hyperparmeter config:', automl.best_config)
print('Best accuracy on validation data: {0:.4g}'.format(1-automl.best_loss))
print('Training duration of best run: {0:.4g} s'.format(automl.best_config_train_time))

Мы видим, что лучшей моделью для моего набора данных является lgbm с точностью около 0,82.

from flaml.ml import sklearn_metric_loss_score
print('accuracy', '=', 1 - sklearn_metric_loss_score('accuracy', y_pred, y_test))
print('roc_auc', '=', 1 - sklearn_metric_loss_score('roc_auc', y_pred_proba, y_test))
print('log_loss', '=', sklearn_metric_loss_score('log_loss', y_pred_proba, y_test))

Мы можем видеть другие метрические оценки, такие как roc auc, и видеть потери журнала от автоматического моделирования, которое мы делали раньше.

from sklearn.metrics import classification_report
cr = classification_report(y_test,y_pred)
print(cr)

После этого мы можем показать наш отчет о классификации, чтобы увидеть другие показатели, такие как точность, отзыв и оценка f1.

Преимущества ФЛАМЛ:

  1. Экономия времени: FLAML автоматизирует выбор и настройку модели, экономя драгоценное время за счет устранения необходимости экспериментировать вручную.
  2. Удобный для пользователя: простой в использовании интерфейс FLAML делает его доступным как для новичков, так и для экспертов, требуя минимальных знаний о сложных алгоритмах.
  3. Производительность: FLAML часто предоставляет модели, которые не хуже или даже лучше, чем модели, настроенные вручную, благодаря эффективной оптимизации гиперпараметров.
  4. Масштабируемость: FLAML эффективно обрабатывает большие наборы данных и сложные модели с помощью параллельных вычислений, обеспечивая быструю обработку.

Недостатки FLAML:

  1. Ограниченные алгоритмы: FLAML поддерживает популярные алгоритмы, но может не охватывать все нишевые варианты, требуя от пользователей поиска конкретных алгоритмов в другом месте.
  2. Риск переобучения. Тщательное определение пространства гиперпараметров имеет решающее значение для предотвращения переобучения при использовании FLAML.
  3. Меньше настройки: автоматизация FLAML может ограничивать параметры тонкой настройки, ограничивая его адаптируемость к уникальным требованиям.
  4. Зависимость от качества данных: производительность FLAML зависит от качества входных данных; зашумленные или необъективные данные могут повлиять на результаты.

Заключение

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