Используйте Amazon AutoGluon для прогнозирования дефолта по кредиту

Фон

9 января 2020 года Amazon представила AutoGluon, библиотеку с открытым исходным кодом, которая позволяет разработчикам легко создавать модели автоматического машинного обучения (AutoML). В последнее время AutoML стал горячей темой в сфере машинного обучения. Многие высокотехнологичные компании представили свои наборы инструментов AutoML, включая Mircosoft, Google и Facebook. Он позволяет специалистам по обработке данных автоматизировать задачи машинного обучения путем развертывания машинного обучения в самом машинном обучении и обладает такими преимуществами, как высокая точность, простота развертывания и экономия времени. AutoML также очень универсален, поскольку он может обрабатывать множество задач с данными, таких как классификация изображений, языковая обработка и табличное прогнозирование. По данным Gartner, к 2020 году будет автоматизировано более 40% задач по обработке и анализу данных.

У Amazon уникальное видение и большие надежды на AutoGluon. По словам Amazon, его цель - «демократизировать машинное обучение и сделать глубокое обучение доступным для всех разработчиков». Многочисленные функции AutoGluon доказали, что Amazon действительно «демократизирует» сложную задачу машинного обучения и дает возможность учиться каждому:

  • AutoGluon может легко обучать и развертывать высокоточные модели.
  • Для этого требуется всего несколько строк кода.
  • AutoGluon можно настроить для конкретных случаев использования.
  • Библиотека использует автоматическую настройку гиперпараметров, выбор модели, поиск архитектуры и обработку данных.

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

В этой статье мой коллега Иян Чжан и Я протестируют возможности AutoGluon и сравнят его производительность с другими популярными методами машинного обучения. Нашим эталонным тестом будет классический случайный лес, а также XGBoost (экстремальное повышение градиента), которое также является преобладающим методом контролируемого обучения. Он отличается оптимальным распределением вычислительных ресурсов, что способствует его высокой скорости выполнения и чрезвычайно высокой точности. XGBoost считается лучшим алгоритмом для победителей в соревнованиях по данным Kaggle.

Основной задачей для сравнения производительности модели будет прогнозирование дефолта по ссуде, которое включает в себя прогнозирование того, не погаснет ли лицо с заданными характеристиками по банковской ссуде. Эта задача долгое время была одной из самых популярных тем в области науки о данных.

Подготовка данных

Наш набор табличных данных был получен с веб-сайта Kaggle. Он состоит из 30 000 наблюдений за людьми, которые в настоящее время находятся в долгах, и их базовой информации, включая идентификационные данные, пол, образование, брак, возраст и кредит. Набор данных также содержит статус погашения, сумму выписки по счету и сумму предыдущего платежа за последовательные 6 месяцев, а также индикатор по умолчанию в течение следующего месяца. Исходный набор данных уже был очень чистым. Мы фиктивно закодировали категориальные переменные (что требуется для работы XGBoost), то есть преобразовали категориальные переменные в серию дихотомических переменных только с уровнями 0 и 1.

Случайный лес

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

В нашем тесте мы установили количество деревьев равным 100 и критерием «Джини», что означает примесь джини:

# Random Forest
rm = RandomForestClassifier(
                             random_state=123,
                             criterion='gini',
                             n_estimators=100,
                             verbose=False)
rm.fit(X_train,y_train)

Матрица путаницы и важность функций кратко изложены ниже. Мы достигли показателя точности 81,77% при использовании случайного леса.

XGBoost

XGBoost является преемником случайного леса и считается жемчужиной ансамблевых алгоритмов машинного обучения на основе дерева решений. Первоначально он был разработан в Вашингтонском университете в 2016 году Тианки Ченом и Карлосом Гестрином и быстро завоевал огромную популярность в индустрии обработки данных. XGBoost улучшает Gradient Boosting Machines за счет оптимизации системы и алгоритмических улучшений.

В тесте, проведенном специалистом по обработке данных Vishal Morde, производительность XGBoost значительно превосходит традиционные алгоритмы с точки зрения точности и эффективности вычислений. результат показан на следующем графике:

Поскольку XGBoost имеет отличную производительность, когда речь идет о проблемах прогнозирования с табличными данными, мы считаем, что в этом случае он может стать сильным соперником AutoGluon. Мы запустили XGBoost, чтобы построить модель для прогнозирования дефолта по ссуде:

# XGBoost Classifier
X_train, X_test, y_train, y_test= train_test_split(X,y, test_size=0.2, random_state=123)
model = xgb.XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,colsample_bynode=1, colsample_bytree=1, gamma=0,learning_rate=0.3, max_delta_step=0, max_depth=3,min_child_weight=1, missing=None, n_estimators=10, n_jobs=1,nthread=None, objective='binary:logistic', random_state=0,reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=123,verbosity=1)
model.fit(X_train,y_train)
preds = model.predict(X_test)

XGBoost помог нам достичь показателя точности 82,00%. Следующие графики представляют матрицу путаницы и важность функции.

АвтоГлюон

Как упоминалось ранее, Amazon утверждает, что AutoGluon исключительно хорошо справляется с различными задачами с данными, которые включают изображения, текст и табличные данные. В нашем исследовании мы сосредоточились на прогнозировании с использованием табличных данных. В отличие от случайного леса и XGBoost, AutoGluon заботится о выборе модели и настройке гиперпараметров. Первый шаг, который необходимо сделать, - это использовать машинное обучение для определения нескольких моделей, подходящих для данной задачи. После определения моделей AutoGluon снова использует ML для оптимизации гиперпараметров каждой модели. Например, если AutoGluon «думает», что случайный лес является хорошей моделью для задачи, он затем определит количество деревьев решений в лесу, а также количество функций, учитываемых при разделении узла. Вот наш код для AutoGluon:

# AutoGluon Classifier
predictor = task.fit(train_data=train_data, label=label_column, output_directory=dir)
y_pred = predictor.predict(test_data_nolab) 

В нашем тесте AutoGluon использовала следующие модели. Производительность каждой модели и соответствующее время вычислений сведены в следующие два графика:

Окончательная оценка точности AutoGluon составляет 82,96% - впечатляющее число. Мы также создали матрицу путаницы для модели. Обратите внимание, что точность можно дополнительно повысить, настроив модель, для чего требуется более совершенное оборудование.

Однако время вычислений намного больше по сравнению с двумя предыдущими моделями. Также стоит упомянуть, что когда мы выполняли команду, мы продолжали получать следующее предупреждение:

Warning: Model is expected to require 25.288658239618677 percent of available memory...

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

Заключение

Для оценки трех моделей мы учитываем не только производительность модели на основе показателя точности и показателя AUC, но также время вычислений и сложность построения модели. Мы считаем, что все они необходимы для стандартного проекта в области науки о данных. Результат представлен ниже:

AutoGluon имеет лучшую точность модели с точки зрения как показателя AUC, так и показателя точности. Кроме того, мы обнаружили, что AutoGluon было чрезвычайно легко построить, поскольку для его завершения требовалось всего несколько строк кода и не требовалось никакой настройки гиперпараметров. Однако одним из его основных недостатков является то, что для вычислений требуется гораздо больше времени, чем у XGBoost. В зависимости от конкретных требований при выборе моделей следует искать компромисс между временем и точностью. Несмотря на это, мы очень уверены в потенциале AutoGluon в том, что касается автоматизированных задач машинного обучения. Он представляет собой поворотный момент в индустрии науки о данных: не только эксперты по данным, но и люди, не обладающие навыками программирования, теперь могут создавать эффективные модели для удовлетворения различных потребностей.

Итак, заменит ли AutoGluon и другой AutoML специалист по данным? Ответ неоднозначен: некоторые задачи наверняка будут полностью автоматизированы, что приведет к снижению спроса на специалистов по данным в будущем. В частности, функции работы, которые сосредоточены на настройке и оптимизации модели, с большей вероятностью будут заменены AutoML. По словам Джастина Хо, известного китайского специалиста по данным, те, кто владеет только навыками настройки моделей, потеряют свое конкурентное преимущество, поскольку AutoML в будущем достигнет более зрелой стадии. Однако мы все еще сомневаемся, что он сможет полностью заменить специалистов по данным по пяти основным причинам:

  1. В обучении без учителя нет четкой меры для оценки качества результатов. Обучение без учителя считается успешным, если оно предоставляет информацию, которую можно использовать в дальнейшем анализе. Кроме того, этот процесс требует значительных знаний предметной области. AutoML не может предоставить достаточную помощь на этом этапе.
  2. По словам Марсии Оливейры, старшего специалиста по данным в Skim Technologies, на сегодняшний день не разработан эффективный AutoML для обучения с подкреплением.
  3. AutoML не может очень хорошо работать со сложными данными, такими как сетевые данные и веб-данные.
  4. Очень немногие AutoML могут обрабатывать функции.
  5. AutoML не может полностью автоматизировать процесс создания бизнес-идей и принятия решений.

Следующий график иллюстрирует наш прогноз того, что AutoML может достичь в стандартном рабочем процессе проекта в будущем. Мы считаем, что только ограниченная часть задач может и будет автоматизирована. Обратите внимание: чем глубже синий цвет, тем больше вероятность того, что задача будет автоматизирована.

В конце концов, наука о данных - это искусство, которое требует сочетания бизнес-идей и методов обработки данных для решения проблем в реальном мире. Хотя AutoML может заменить людей в определенных процессах, есть много других областей, в которых нужны творческий подход и знания специалистов в области данных. Каким бы «умным» ни был AutoML, это всего лишь инструмент, помогающий повысить производительность модели. Кроме того, он направлен на то, чтобы избавить специалистов по данным от утомительной «рутинной работы», такой как настройка гиперпараметров и очистка данных, позволяя им сосредоточиться на других более важных задачах. По этой причине AutoML следует рассматривать как друга специалистов по обработке данных, а не как врага. Как специалисты по обработке данных, мы должны знать о тенденциях развития AutoML и укреплять наши возможности, которые невозможно полностью заменить с помощью AutoML. Самое главное, мы должны использовать возможности AutoML, продолжая раскрывать его истинный потенциал и заставляя его лучше служить человечеству.

Предостережения

Хотя AutoGluon от Amazon кажется лучшим выбором в нашем тесте, есть еще несколько предостережений, на которые следует обратить внимание:

  • Наш тест только подтвердил, что AutoGluon лучше, чем XGBoost в этой конкретной задаче с использованием заданных данных. То есть AutoGluon может быть не лучшим выбором, если мы используем другой набор данных или изменим характер задачи.
  • Хотя AutoGluon немного лучше XGBoost с точки зрения точности, большую часть времени он требует больших вычислительных ресурсов, чем XGBoost.
  • Впечатляющая производительность AutoGluon может быть результатом чистой удачи.

Авторы





Ссылка

[1]: Шивани. (2 августа 2019 г.). Рост автоматизированного машинного обучения. Https://www.cisin.com/coffee-break/technology/the-growth-of-automated-machine-learning-automl.html

[2]: Амбика Чоудхури. (14 января 2019 г.). Как Amazon AutoGluon может автоматизировать модели глубокого обучения с помощью всего нескольких строк кода. Https://analyticsindiamag.com/how-amazons-autogluon-can-automate-deep-learning-models-with-just-a-few-lines-of-codes/

[3]: Джейсон Браунли. (21 августа 2019 г.). Нежное введение в XGBoost для прикладного машинного обучения. Https://machinelearningmastery.com/gentle-introduction-xgboost-applied-machine-learning/

[4]: Уилл Кёрсен. (30 августа 2018 г.). Реализация и объяснение случайного леса в Python. Https://towardsdatascience.com/an-implementation-and-explanation-of-the-random-forest-in-python-77bf308a9b76

[4]: Вишал Морде. (7 апреля 2019 г.). Алгоритм XGBoost: Да здравствует она! Https://towardsdatascience.com/https-medium-com-vishalmorde-xgboost-algorithm-long-she-may-rein-edd9f99be63d

[5]: Марсия Оливейра. (Март 2019 г.). 3 причины, почему AutoML пока не заменит специалистов по данным. Https://www.kdnuggets.com/2019/03/why-automl-wont-replace-data-scientists.html

[6]: Машинное обучение UCI. Невыполнение набора данных клиентов кредитной карты. Https://www.kaggle.com/uciml/default-of-credit-card-clients-dataset