- PVSM.RU - https://www.pvsm.ru -
В конце февраля этого года Хабр взорвала статья [1] про открытый курс машинного обучения от сообщества Open Data Science. Наш MVP, Mikhail_Komarov [2], решил поэкспериментировать и пройти его с использованием Azure ML для реализации некоторых алгоритмов. Под катом вы найдёте разбор для 3 части курса «Классификация, деревья решений и метод ближайших соседей».
Далее повествование будет вестись от имени автора.
Идея этого материала возникла по мере прохождения курса «Открытый курс машинного обучения». Задачу для себя я ставил так: «Есть эталонные решения на Python, часть этих решений можно портировать на Azure ML, при этом портирование осуществить таким образом, чтобы максимально использовать функционал Azure ML. Каким образом это сделать?»
В первую очередь я задумался над форматом: насколько подробный материал будет интересен для вас. В одной из обзорных статей Azure ML [3] прозвучали пожелания: больше теории, кода и не надо шаг за шагом.
Итак, благодаря формату открытого курса теория у нас уже есть в изначальной статье [4]. Большое спасибо создателям, код на Python тоже есть здесь [5]. Поэтому переходим сразу к сути решения на Azure ML.
Сначала решим задачу импорта данных как новый DataSet. К сожалению, на Azure ML ограниченный функционал импорта, поэтому мы заранее меняем разделитель элементов в файлах для соответствия стандартному CSV. В Azure ML есть такой же пробный DataSet, но мы будем использовать из курса.
С учётом того, что в задании строят дерево, дерево с подбором параметров, лес и лес с подбором параметров, мы создаём вот такую структуру.
Чтобы не тратить время на частности и сосредоточиться на главном, предлагаю вам взять за основу мой эксперимент [6] из галереи и при необходимости изменить его. Если вы не хотите заводить бесплатную учётную запись, вы можете попробовать без неё, просто удалив модуль на Python.
Я остановлюсь на некоторых деталях, которые помогут понять работу эксперимента в облаке Azure ML.
1. Чистка данных, замена пропущенных числовых значений на их медиану и модуль, также работают для текстовых полей.
2. Делаем категориальные признаки. Отметим, что Azure ML в автоматическом режиме парсит категориальные признаки в столбцы с нулями и единицами.
3. Так как в Azure ML нет алгоритма простого дерева, то для первого приближения возьмём Two-Class Boosted Decision Tree
и в параметрах установим одно дерево.
4. Теперь посмотрим результат работы, модуль Evaluate Model
.
5. Получим следующий набор результатов.
Это картина в целом, но есть ещё детали, такие как подбор параметров и кросс-валидация.
Детали реализации подбора параметров можно посмотреть в Tune Model Hyperparameters
. Не забудьте установить в параметрах модели Parameter Range
.
Спасибо за внимание и лёгкого облака!
Михаил Комаров [7] — занимается поддержкой существующих и реализацией новых систем, направленных на повышение эффективности работы в корпоративном сегменте. До работы в крупном корпоративном секторе работал тренером по информационным технологиям. Общий опыт работы в сфере ИТ составляет более 20 лет. Из интересов, виртуализация, инфраструктура, анализ данных и машинное обучение. MVP по Cloud and Data Center Management c 2011 года.
Хочу отметить помощь Евгения Григоренко в работе над экспериментом и Елизаветы Швец за решение общих вопросов и подготовку публикации.
Автор: Schvepsss
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/algoritmy/255476
Ссылки в тексте:
[1] статья: https://habrahabr.ru/company/ods/blog/322626/
[2] Mikhail_Komarov: https://habrahabr.ru/users/mikhail_komarov/
[3] статей Azure ML: https://habrahabr.ru/company/microsoft/blog/325728/
[4] изначальной статье: https://habrahabr.ru/company/ods/blog/322534/
[5] здесь: https://github.com/Yorko/mlcourse_open/tree/master/jupyter_notebooks/topic3_decision_trees_knn/[solution]_hw3_decision_trees.ipynb
[6] мой эксперимент: https://gallery.cortanaintelligence.com/Experiment/Habrahabr-ods-hw3-2
[7] Михаил Комаров: https://habrahabr.ru/users/Mikhail_Komarov/
[8] Azure можно попробовать бесплатно: https://azure.microsoft.com/ru-ru/free/?wt.mc_id=AID570629_QSG_BLOG_139069
[9] Источник: https://habrahabr.ru/post/328826/
Нажмите здесь для печати.