В быстро развивающемся ландшафте машинного обучения автоматизированные инструменты стали незаменимыми как для опытных специалистов по данным, так и для новичков в этой области. Одной из таких мощных библиотек, которая набирает популярность, является 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.
Преимущества ФЛАМЛ:
- Экономия времени: FLAML автоматизирует выбор и настройку модели, экономя драгоценное время за счет устранения необходимости экспериментировать вручную.
- Удобный для пользователя: простой в использовании интерфейс FLAML делает его доступным как для новичков, так и для экспертов, требуя минимальных знаний о сложных алгоритмах.
- Производительность: FLAML часто предоставляет модели, которые не хуже или даже лучше, чем модели, настроенные вручную, благодаря эффективной оптимизации гиперпараметров.
- Масштабируемость: FLAML эффективно обрабатывает большие наборы данных и сложные модели с помощью параллельных вычислений, обеспечивая быструю обработку.
Недостатки FLAML:
- Ограниченные алгоритмы: FLAML поддерживает популярные алгоритмы, но может не охватывать все нишевые варианты, требуя от пользователей поиска конкретных алгоритмов в другом месте.
- Риск переобучения. Тщательное определение пространства гиперпараметров имеет решающее значение для предотвращения переобучения при использовании FLAML.
- Меньше настройки: автоматизация FLAML может ограничивать параметры тонкой настройки, ограничивая его адаптируемость к уникальным требованиям.
- Зависимость от качества данных: производительность FLAML зависит от качества входных данных; зашумленные или необъективные данные могут повлиять на результаты.
Заключение
Несмотря на все преимущества и недостатки, FLAML остается мощным инструментом для быстрого построения и оптимизации моделей машинного обучения, особенно для пользователей, которым важна скорость и простота рабочего процесса. Пользователям важно взвесить преимущества и недостатки в зависимости от их конкретного варианта использования и требований, прежде чем включать FLAML в свои проекты машинного обучения.