Далее повествование будет вестись от имени автора.
Идея этого материала возникла по мере прохождения курса «Открытый курс машинного обучения». Задачу для себя я ставил так: «Есть эталонные решения на Python, часть этих решений можно портировать на Azure ML, при этом портирование осуществить таким образом, чтобы максимально использовать функционал Azure ML. Каким образом это сделать?»
В первую очередь я задумался над форматом: насколько подробный материал будет интересен для вас. В одной из обзорных статей Azure ML прозвучали пожелания: больше теории, кода и не надо шаг за шагом.
Итак, благодаря формату открытого курса теория у нас уже есть в изначальной статье. Большое спасибо создателям, код на Python тоже есть здесь. Поэтому переходим сразу к сути решения на Azure ML.
Сначала решим задачу импорта данных как новый DataSet. К сожалению, на Azure ML ограниченный функционал импорта, поэтому мы заранее меняем разделитель элементов в файлах для соответствия стандартному CSV. В Azure ML есть такой же пробный DataSet, но мы будем использовать из курса.
С учётом того, что в задании строят дерево, дерево с подбором параметров, лес и лес с подбором параметров, мы создаём вот такую структуру.
Чтобы не тратить время на частности и сосредоточиться на главном, предлагаю вам взять за основу мой эксперимент из галереи и при необходимости изменить его. Если вы не хотите заводить бесплатную учётную запись, вы можете попробовать без неё, просто удалив модуль на Python.
Детали работы в облаке
Я остановлюсь на некоторых деталях, которые помогут понять работу эксперимента в облаке Azure ML.
1. Чистка данных, замена пропущенных числовых значений на их медиану и модуль, также работают для текстовых полей.
2. Делаем категориальные признаки. Отметим, что Azure ML в автоматическом режиме парсит категориальные признаки в столбцы с нулями и единицами.
3. Так как в Azure ML нет алгоритма простого дерева, то для первого приближения возьмём
Two-Class Boosted Decision Tree
и в параметрах установим одно дерево. 4. Теперь посмотрим результат работы, модуль
Evaluate Model
.5. Получим следующий набор результатов.
Это картина в целом, но есть ещё детали, такие как подбор параметров и кросс-валидация.
Детали реализации подбора параметров можно посмотреть в
Tune Model Hyperparameters
. Не забудьте установить в параметрах модели Parameter Range
.Спасибо за внимание и лёгкого облака!
Полезные ссылки
- Курс на Microsoft Virtual Academy «Microsoft Azure Machine Learning Jump Start».
- Экзамен по Azure ML.
- Бесплатная книга по Azure.
- Бесплатная книга по Azure ML.
- Курсы по Data Science от Microsoft (edx).
- Официальный блог по Azure ML.
- Не зависимая Data Science Virtual Machine в Azure на GitHub в Marketplace.
Автор
Михаил Комаров — занимается поддержкой существующих и реализацией новых систем, направленных на повышение эффективности работы в корпоративном сегменте. До работы в крупном корпоративном секторе работал тренером по информационным технологиям. Общий опыт работы в сфере ИТ составляет более 20 лет. Из интересов, виртуализация, инфраструктура, анализ данных и машинное обучение. MVP по Cloud and Data Center Management c 2011 года.
Хочу отметить помощь Евгения Григоренко в работе над экспериментом и Елизаветы Швец за решение общих вопросов и подготовку публикации.
Напоминаем, что Azure можно попробовать бесплатно.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (7)
Mikhail_Komarov
18.05.2017 13:08+1Относительно, чего хватает не хватает это индивидуально.
Думаю нужно попробовать и посмотреть различные проекты из блога или из курсов.
Сила еще в том что за минуту из модели делаем web службу.
Читаем по Azure (книга)
https://blogs.msdn.microsoft.com/microsoft_press/2016/09/01/free-ebook-microsoft-azure-essentials-fundamentals-of-azure-second-edition/
Читаем по Azure ML (книга)
https://aka.ms/AzureML_pdf
Смотрим курсы по треку DS от Microsoft (edx)
https://academy.microsoft.com/en-us/professional-program/data-science/
Блог по AzureML от Microsoft
https://blogs.technet.microsoft.com/machinelearning/cotique
19.05.2017 00:05Относительно, чего хватает не хватает это индивидуально.
Это вы здорово подметили. И, да, хотелось бы узнать ваше индивидуальное мнение.Алсо спасибо за ссылки. Не хотите их в сам пост добавить, кстати?
Mikhail_Komarov
19.05.2017 06:34Спасибо за комментарий, ресурсы в ближайшее время ссылки переедут в пост. По честному я в начале пути и для меня было немного удивительно, отсутствие возможности выбора разделителя при импорте текстового файла. В принципе там есть такая возможность, но она доступна когда импортируешь данные из облака, как обычно есть там где пока не нужно:)
cotique
У меня возникло такое впечатление, что Azure ML – это скорее игрушка, нежели полноценный инструмент датасаентиста. В основном причина в упомянутых вами ограничениях. Михаил, хотелось бы получить ваш комментарий по этому поводу. Каких возможностей не хватает Azure ML (или всего в достатке)?
И было бы круто почитать про обычный Azure, особенно про то, как разобраться в его (не очень-то юзер-френдли) интерфейсе (и не впасть при этом в отчаяние).
codezombie
Azure ML (как и его облачные братья от AWS и GCP) вполне серьезный инструмент data scientist'a.
Про ограничения я ничего не понял: понятно, что они есть — толщина dataset'а, длина вектора фич и т.п. (довольно большие величины). Но в статье про них не написано, а те ограничение, которые указаны в статье — в csv разделитель запятая, а не другой символ, и BDT приходится использовать вместо простого дерева — ограничения конкретного модуля, а не платформы. Хотите читать GBs данных из HBase/NoSQL/MSSQL? — используйте модуль Import Data. Не устраивает формат? — добавьте R/Python-скрипт и трансформируйте в нужный.Про user-friendly: удобнее всего, конечно, писать код (я серьезно). Но писав продолжительное время на R, я без проблем освоил Azure ML (может обратная ситуация тоже возможна, уже не узнаю). Но это проблема общая для IT-мира: если ты не понимаешь на уровень абстракции ниже, то довольно сложно понять, как эта штука работает.
codezombie
Чего в Azure ML сейчас не хватает (мне) так это:
В остальном Azure ML, если знаешь что хочешь (со мной это редко) — удобный инструмент как для соревнований, так и для production-сервисов.
codezombie
Через пару недель MS проводит мероприятие, где среди прочего будут мастер-классы по ML/DL (разумеется, с закосом, как это сделано Azure (для кого-то это неприемлимо)) https://events.techdays.ru/Future-Technologies/2017-06/
Я думаю, что там многое можно услышать-спросить, из того, что было написано выше.