В этой статье я расскажу об AutoML, одной из функций, поставляемых с Oracle Cloud Data Science Service, и надеюсь, что это будет полезная статья с точки зрения осведомленности.
Как известно и упоминалось в моих предыдущих статьях, Oracle недавно добавила новый сервис под названием Data Science в облачные сервисы. Эта услуга была предложена пользователям в качестве платформы, на которой многие библиотеки уже установлены. Эта платформа, которая включает в себя множество функций, таких как разработка прототипов, разработка проектов, управление моделями, производство серийных моделей, содержит много новых функций. Несомненно, одной из самых интересных и полезных функций является функция AutoML.
AutoML стремится автоматизировать важные шаги, которые мы предпринимаем при разработке проектов машинного обучения / искусственного интеллекта / науки о данных. На изображении ниже представлены этапы разработки проектов машинного обучения / искусственного интеллекта / науки о данных.
С AutoML мы можем автоматизировать выбор алгоритмов, выбор функций и определение гиперпараметров алгоритмов. Таким образом, мы можем сократить время, затрачиваемое разработчиками на эти части. Кроме того, инфраструктура AutoML помогает разработчикам, которые не являются экспертами в разработке этих шагов, насколько это возможно.
AutoML состоит из трех разных модулей.
Автоматический выбор функций
Выбор модели (алгоритма)
Оптимизация гиперпараметров
Помимо автоматизации определенных рабочих процессов, инфраструктура AutoML также позволяет повысить качество и производительность создаваемых моделей и позволяет всем этапам рабочего процесса выполняться и масштабироваться параллельно.
Мы можем успешно использовать инфраструктуру AutoML в задачах классификации и регрессии.
Давайте посмотрим, как работает инфраструктура и как она дает результаты на примере приложения.
Прежде всего, мы можем пока использовать эту инфраструктуру только в облачной службе Oracle Cloud Infrastructure Data Science . Поскольку для использования этой инфраструктуры нам необходимо импортировать пакет ADS (Accelerated Data Science) . Этот пакет устанавливается внутри службы OCI Data Science и не имеет внешней установки. ADS — это пакет, который Oracle предлагает в облачной службе, и включает методы, которые позволят нам реализовать все требования для рабочих нагрузок AI / ML / DS.
Набор данных, который я буду использовать в качестве примера, — это набор данных iris, который поставляется в Sklearn. Сначала мы импортируем необходимые библиотеки и загружаем набор данных.
питон
1
from sklearn import datasets
2
import numpy as np
3
from ads.automl.driver import AutoML
4
from ads.automl.provider import OracleAutoMLProvider
5
from ads.dataset.factory import DatasetFactory
6
iris = datasets.load_iris()
8
df = pd.DataFrame(data= np.c_[iris['data'], iris['target']],columns= iris['feature_names'] + ['target'])
Чтобы использовать AutoML, мы преобразуем фрейм данных pandas в фрейм данных ADS. Этот процесс очень легкий и быстрый.
питон
xxxxxxxxxx
1
ml_engine = OracleAutoMLProvider()
2
train = DatasetFactory.open(df).set_target('target')
Да, мы преобразовали фрейм данных в фрейм данных ADS. Теперь мы реализуем процесс отправки полученных данных в метод AutoML. AutoML примерно ждет от нас списка алгоритмов. Этот список алгоритмов может использоваться как комбинация алгоритмов, написанных в списке ниже.
- AdaBoostClassifier
- DecisionTreeClassifier
- ExtraTreesClassifier
- KNeighborsClassifier
- LGBMClassifier
- LinearSVC
- Логистическая регрессия
- RandomForestClassifier
- SVC
- XGBClassifier
питон
xxxxxxxxxx
1
automl = AutoML(training_data=train,provider=ml_engine)
2
model, baseline = automl.train(model_list=[
4
'LogisticRegression',
5
'XGBClassifier',
6
'SVC'], time_budget=600)
Другим параметром, который мы можем определить в AutoML, является параметр time_budget. Эта переменная устанавливает верхний предел времени работы метода AutoML. В нашем примере выше мы видим, что 600 секунд (10 минут) даны как временные ограничения. Метод попытается вернуть нам результат в течение 600 секунд (10 минут).
Следует помнить, что можно попробовать разные комбинации, увеличив переменные time_budget. Помимо переменной time_budget, параметр min_features также может быть задан в методе AutoML. С помощью этого параметра может быть определено минимальное значение для числа признаков, которые будут использоваться в моделях, которые будут созданы. Этот параметр может быть числом int или переменной с плавающей точкой, или это может быть список имен свойств, которые должны быть перечислены.
Давайте посмотрим на результаты, полученные из AutoML.
Тренировка завершена (4,11 секунды)
Размер набора данных для обучения | (150, 4) |
Размер набора данных проверки | Никто |
резюме | 5 |
Целевая переменная | цель |
Метрика оптимизации | recall_macro |
Начальное количество функций | 4 |
Выбранное количество функций | 4 |
Избранные особенности | [sepal_length_ (cm), sepal_width_ (cm), petal_length_ (cm), petal_width_ (cm)] |
Выбранный алгоритм | SVC |
Сквозное истекшее время (секунды) | 4,11 |
Избранные гиперпараметры | {'C': 1.0, 'class_weight': нет, 'gamma': 0.25} |
Средняя оценка | 0,9667 |
AutoML n_jobs | 32 |
Версия AutoML | 0.3.1 |
Версия Python | 3.6.9 | Анаконда, Инк. | (по умолчанию, 30 июля 2019 г., 19:07:31) \ n [GCC 7.3.0] |
Да, как видно, лучший алгоритм SVC (Support Vector Classifier), лучший набор функций [sepal_length_ (cm), sepal_width_ (cm), petal_length_ (cm), petal_width_ (cm)] и лучшие гиперпараметры ('C'): 1.0, 'гамма': 0.25, 'class_weight': нет}. Мы видим, что лучшая полученная модель имеет точность 96,67%.
В установленный нами срок AutoML может попробовать больше комбинаций. Он может показать нам детали этого в том же выводе.
Результаты, полученные с помощью вывода модели AutoML, также доступны отдельно.
питон
xxxxxxxxxx
1
model.selected_model_params_
2
model.ranked_models_
3
automl.visualize_algorithm_selection_trials()
Эта инфраструктура может быть очень полезным механизмом тестирования не только для неопытных пользователей, но и для опытных пользователей.