Простой в использовании, но по-прежнему требуются серьезные знания в области науки о данных

Мне очень хотелось протестировать один из многих недавно представленных на рынке инструментов, ориентированных на «гражданских специалистов по данным», таких как DataRobot, H20 Driverless AI, Amazon SageMaker и новый продукт Microsoft в облаке под названием Microsoft Azure Machine Learning Studio (Studio). Эти инструменты обещают ускорить окупаемость проектов в области науки о данных за счет упрощения построения моделей машинного обучения. В конечном итоге это позволит инженерам по обработке данных, программистам, бизнес-аналитикам и другим людям, не имеющим степени доктора философии, начать отказываться от огромных возможностей моделирования, которыми компании стремятся воспользоваться, но ограничены в их возможностях из-за нехватки навыков в области науки о данных.

Поэтому я открыл учетную запись Azure и потратил несколько часов на создание нескольких моделей машинного обучения с нуля, используя их образцы данных. Здесь я опишу свой опыт, чтобы показать вам, насколько легко использовать этот инструмент в надежде, что другие быстро поймут его сильные и слабые стороны. Я думаю, что являюсь представительным кандидатом на проведение этого обзора, поскольку сегодня я не работающий специалист по данным. Однако я аспирант по науке о данных в Калифорнийском университете в Беркли, имею степень CS, прошел несколько курсов по статистике и машинному обучению на уровне выпускников и могу программировать на Python.

Позвольте мне начать с того, что я действительно, правда…. как Microsoft Azure Machine Learning Studio. Это делает процесс работы в области науки о данных, то есть создания, тестирования и развертывания прогнозной модели для ваших данных, намного проще и нагляднее как для начинающих, так и для более опытных пользователей в области науки о данных. Studio проясняет весь процесс, визуально проводя вас через размышления об источниках данных, подключая данные к потенциальным кандидатам в алгоритмы модели, выполняя очистку и преобразование данных, выбирая функции, обучая модель, тестируя ее, выбирая лучшую модель и даже развертывая новую. блестящая рабочая модель машинного обучения в виде веб-службы в Azure для использования другими. В конце концов, у вас остается как рабочая модель, доступная через API-интерфейсы, так и визуальное документированное представление вашей модели, чтобы другие могли увидеть и продолжить настройку. Ух ты!

Как вы также увидите, Studio настолько проста в использовании, что наука о данных кажется обманчиво простой. Studio действительно упрощает процесс, но так же, как чашки Reese с арахисовым маслом требуют двух отличных вкусов, чтобы сделать самые продаваемые конфеты в Америке (по данным Nielsen), вам понадобится как более простой процесс создания модели (шоколад), так и арахисовое масло внутрь. И это арахисовое масло - здоровая доза статистических знаний для определения характеристик, выбора и интерпретации моделей и даже некоторых навыков программирования (для более сложной адаптации данных).

Мой первый эксперимент

Чтобы провести тест-драйв продукта, я сразу же приступил к делу и последовал некоторым хорошо продуманным рецептам, которые есть у Microsoft для создания моделей, и не стал читать документацию до тех пор, пока мне это не понадобилось. Вы можете создать эксперимент по моделированию машинного обучения с нуля или использовать существующий пример эксперимента в качестве шаблона из Azure AI Gallery. Дополнительные сведения см. В разделе Копирование примеров экспериментов для создания новых экспериментов с машинным обучением. Мы рассмотрим процесс создания эксперимента с нуля.

Мой первый модельный эксперимент был очень простым и использовал данные из одного из 39 наборов данных, предоставленных UC Irvine, Amazon, IMDB и т. Д. Это модель линейной регрессии для прогнозирования цен на автомобили на основе различных переменных, таких как марка и технические характеристики.

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

Студия машинного обучения Azure прекрасно интерактивна и наглядна. Вы перетаскиваете наборы данных и модули анализа на интерактивный холст, соединяя их вместе, чтобы сформировать эксперимент, который вы запускаете в Студии машинного обучения. Чтобы повторить проект модели, вы редактируете эксперимент, сохраняете копию, если хотите, и снова запускаете ее. Когда вы будете готовы, вы можете преобразовать свой обучающий эксперимент в прогнозирующий, а затем опубликовать его как API веб-службы Azure, чтобы к вашей модели могли получить доступ другие пользователи.

Для начала я сначала зашел в Студию машинного обучения Azure по адресу https://studio.azureml.net/, где меня попросили войти в систему, используя учетную запись Microsoft, рабочую или учебную учетную запись. После входа в систему вы попадаете на домашнюю страницу, которая выглядит следующим образом.

Базовый макет представлен на следующих вкладках слева:

· ПРОЕКТЫ - коллекции экспериментов, наборов данных, записных книжек и других ресурсов, представляющие один проект.

· ЭКСПЕРИМЕНТЫ - эксперименты, которые вы создали или сохранили.

· ВЕБ-СЕРВИСЫ - модели веб-сервисов, которые вы развернули в ходе своих экспериментов.

· НОУТБУКИ - записные книжки Jupyter, которые вы создали

· НАБОРЫ ДАННЫХ - наборы данных, которые вы загрузили в Studio.

· ОБУЧЕННЫЕ МОДЕЛИ - Модели, которые вы обучили в экспериментах и ​​сохранили.

· НАСТРОЙКИ - набор параметров, которые вы можете использовать для настройки своей учетной записи и ресурсов.

На верхнем уровне рекомендуется следующий рабочий процесс для проведения эксперимента и, в конечном итоге, его публикации как веб-службы:

  1. Создать модель
  • Получите данные
  • Подготовьте данные
  • Определить особенности

2. Обучите модель

  • Выберите и примените алгоритм

3. Оцените и протестируйте модель.

  • Прогнозируйте цены на газ для новых автомобилей

4. Опубликуйте модель как облачный сервис.

Получить данные

Создайте новый эксперимент, нажав + НОВЫЙ в нижней части окна Студии машинного обучения. Выберите ЭКСПЕРИМЕНТПустой эксперимент, и я назвал эксперимент" Автомобильный прогноз цен ". Есть много других готовых экспериментов, из которых вы можете выбрать, но я выбрал это на первый взгляд.

Слева от холста эксперимента находится палитра образцов наборов данных и модулей, по которым вы можете выполнять поиск. Я выбрал набор данных с надписью Данные о ценах на автомобили (сырые), а затем перетащил этот набор данных на холст эксперимента. Конечно, Studio также поддерживает загрузку вашего собственного набора данных во многих форматах.

Одна действительно приятная особенность, которую ценят специалисты по данным, - это возможность быстро взглянуть на столбцы данных и их распределение, чтобы понять, с какими данными мы имеем дело. Чтобы увидеть, как выглядят эти данные, вы можете просто щелкнуть выходной порт в нижней части набора данных, а затем выбрать Визуализировать.

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

В этом наборе данных каждая строка представляет автомобиль, а переменные, связанные с каждым автомобилем, отображаются в виде столбцов. Мы спрогнозируем цену в крайнем правом столбце (столбец 26, озаглавленный «Цена»), используя переменные для конкретного автомобиля. Обратите внимание на гистограммы каждого столбца и подробности о распределении данных на правой панели. Этот быстрый просмотр, казалось, потребовал больше времени, чтобы найти его в других инструментах, которые я использовал.

Подготовьте данные

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

Studio упрощает этот процесс. Они предоставляют модуль, который полностью удаляет столбец normalized-loss (Select Columns in Dataset), а затем мы добавляем еще один модуль, который удаляет любую строку, в которой отсутствуют данные.

Сначала мы вводим «выбрать столбцы» в строке поиска слева и перетаскиваем на холст модуль Выбрать столбцы в наборе данных. Затем мы подключаем выходной порт набора данных Данные о ценах на автомобили (сырые) с входным портом модуля Выбрать столбцы в наборе данных, просто щелкнув и проведя линию между две точки.

Нажимая на модуль Выбрать столбцы в наборе данных, мы запускаем селектор столбцов на панели Свойства этого модуля. Используя С ПРАВИЛАМИ и начав с настроек ВСЕ КОЛОННЫ, выполнив несколько шагов, мы можем исключить имя столбца, в данном случае normalized-loss column, и модуль по-прежнему будет проходить через все остальные столбцы. Studio позволяет вам дважды щелкнуть, чтобы добавить комментарий к модулю путем ввода текста, чтобы вы могли сразу увидеть, что модуль делает в вашем эксперименте. В данном случае я добавил комментарий «Исключить нормализованные потери».

Аналогичным образом, чтобы удалить строки с отсутствующими данными, перетащите модуль Очистить отсутствующие данные на холст эксперимента и подключите его к модулю Выбрать столбцы в наборе данных. На панели Свойства выберите Удалить всю строку в разделе Режим очистки. Эти параметры указывают Очистить отсутствующие данные, чтобы очистить данные, удалив строки, в которых есть отсутствующие значения. Затем я дважды щелкнул по модулю и ввел комментарий «Удалить строки с отсутствующими значениями».

Определите особенности

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

В нашем пошаговом обзоре мы будем придерживаться примера Microsoft и предположим набор функций, которые могут позволить нам прогнозировать цену:

{марка, тип кузова, колесная база, объем двигателя, мощность в лошадиных силах, максимальная частота вращения, расход топлива на шоссе, цена}

Чтобы добавить эти функции, мы перетаскиваем модуль Выбрать столбцы в наборе данных на холст и соединяем выход столбца Очистить отсутствующие данные с его входом. Мы дважды щелкаем модуль и вводим Выбрать функции для прогнозирования в качестве дескриптора. Затем нажмите селектор Запустить столбец на панели Свойства и выберите с правилами. Мы можем начать с Без столбцов и один за другим мы добавляем имена столбцов (функции) в список модели. По завершении нажмите кнопку с галочкой (OK). Этот модуль создает отфильтрованный набор данных только тех функций (и связанных данных), которые мы хотим передать алгоритму обучения, который мы добавим дальше.

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

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

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

Https://docs.microsoft.com/en-us/azure/machine-learning/studio-module-reference/feature-selection-modules#bkmk_howto

В качестве реальной истории того, как сложность выбора функций может проявляться в моделировании, вот пример выбора функций, выполненный двумя корпоративными архитекторами в Центре передового опыта Microsoft Data Insight. В нем описывается путь, который они прошли, чтобы перенести свою модель линейной регрессии Excel для финансовых прогнозов в Studio. В конечном итоге им удалось получить более точные прогнозы от Studio, и они смогли опубликовать модель как веб-сервис, что сделало ее более доступной - три ура для Studio!

Https://docs.microsoft.com/en-us/azure/machine-learning/studio/linear-regression-in-azure

Но имейте в виду, что им нужно было кое-что изучить и настроить, чтобы понять, использовать ли методы регрессии Онлайн-градиентный спуск или Обычные наименьшие квадраты, а также они обнаружили, что им необходимо настроить вес регуляризации L2 в зависимости от размера их набора данных. . Они также рассказали, как они начали использовать Выбор функций на основе фильтров для улучшения выбора исходных элементов данных и что они также намеревались протестировать дополнительные алгоритмы, такие как Байесовский Или Усиленные деревья решений для сравнения производительности с линейной регрессией, которую мы обсудим в следующем разделе. Чтобы действительно добиться наилучших результатов, требуется время, тестирование и обучение работе с данными - даже с таким простым инструментом, как Studio.

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

Обучение модели - выбор и применение алгоритма

Теперь мы готовы обучать модель. В этом примере мы делаем то, что называется машинным обучением с учителем, и существует множество доступных алгоритмов, которые могут предложить прогнозируемую силу, которую мы ищем. Например, существуют модели классификации, которые предсказывают, к какой категории может относиться предметная строка (автомобиль или грузовик?), Есть алгоритмы регрессии, которые предсказывают числовой ответ (например, будущая цена акций). В MLS встроено 25 типов моделей для обнаружения аномалий, классификации, регрессии и кластеризации, а также доступно множество других модулей с открытой библиотекой.

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

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

Studio позволит нам использовать наши данные как для обучения модели, так и для ее тестирования, разделив данные на отдельные наборы данных для обучения и тестирования. Для этого перетащите модуль данных S plit на холст эксперимента и подключите его к выходу модуля Выбрать столбцы в наборе данных.

Щелкните модуль Разделить данные, чтобы выделить его и разделить данные на две части, используя 75% данных для обучения и оставшиеся 25% для оценки, как показано.

На этом этапе мы должны запустить эксперимент, чтобы в модулях S выбрать столбцы в наборе данных и Разделить данные были данные и последние определения столбцов, которые необходимо передать при оценке модели. Это делается нажатием кнопки запуска в нижней части экрана.

Теперь пора добавить алгоритм обучения, который мы хотим использовать, развернув Категория машинного обучения в левой части холста и развернув Инициализировать модель. Выберите модуль линейной регрессии и перетащите его на холст. Также найдите и перетащите модуль Обучение модели на холст эксперимента. Подключите выход модуля Линейная регрессия к входу Обучить модель и подключите данные обучения (левый порт) модуля Разделить данные. к модели поезда, как показано.

Щелкните модуль Обучение модели, затем нажмите Запуск средства выбора столбца на панели Свойства, а затем выберите столбец цена. . Цена - это значение, которое наша модель будет прогнозировать. Переместите цену из доступных столбцов в список выбранных столбцов.

Наконец-то мы можем запустить эксперимент. Теперь у нас есть обученная регрессионная модель, которая может делать прогнозы цен.

Прогнозируйте цены на новые автомобили

Теперь, когда мы обучили модель, мы можем использовать ее для оценки других 25 процентов данных, чтобы увидеть, насколько хорошо работает наша модель. Мы делаем это, перетаскивая модуль Score Model на холст эксперимента и подключая к нему выходные данные Train Model. Затем мы подключаем выход тестовых данных (правый порт) модуля S plit Data к модулю Score Model, как показано.

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

Решаете, подходит ли наша модель?

Последний шаг перед публикацией какой-либо модели для использования - это проверка качества результатов. Для этого мы перетаскиваем модуль E Оценка модели на холст и просто подключаем его к выходным данным модели оценки. Теперь, когда вы снова запустите этот эксперимент, вы сможете визуализировать статистические результаты.

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

В этом случае для каждого из представленных результатов меньший размер лучше, поскольку это указывает на прогнозы, которые более точно соответствуют данным (меньше ошибок). Исключением является коэффициент детерминации (также называемый R в квадрате), который мы стремимся сделать как можно ближе к 1,0 в качестве показателя точности модели. Эта модель имеет точность прогноза 0,91 для подгонки данных к линии. Я хотел бы сказать вам, что это довольно хорошо, но на самом деле ответ таков: это зависит от ваших данных и того, что вы пытаетесь предсказать, а также от последствий ошибки. Чтобы понять, насколько это сложно, вы можете прочитать следующее от Герцога https://people.duke.edu/~rnau/rsquared.htm. Гражданским специалистам по данным потребуется дополнительная помощь от Microsoft в этой области.

Опубликовать модель как облачный сервис

Одна действительно приятная особенность заключается в том, насколько легко Studio позволяет запустить вашу модель в производство. Для тех из нас, кто не является инженерами по обработке данных или ИТ и имеет опыт публикации модели в облаке в качестве API для использования другими, это значительно упрощает выполнение вашей работы.

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

Вы можете узнать больше о том, как развернуть свою модель здесь:



Масштабируемость и производительность

При развертывании возникают вопросы о том, на что я развертываюсь - какие аппаратные ресурсы я могу использовать, какова моя гарантия уровня обслуживания, выделенное или многопользовательское облако, безопасность и т. Д.?

Служба машинного обучения Azure является мультитенантной, и вычислительные ресурсы, используемые на серверной части, могут различаться и оптимизированы для обеспечения производительности и предсказуемости. Studio можно развернуть на бесплатном уровне с наборами данных не более 10 ГБ или на стандартном платном уровне, который позволяет использовать гораздо больше платных ресурсов и хранилище BYO.



Одна из актуальных проблем в науке о данных - использование графических процессоров для достижения очень высокой производительности вычислений. Я действительно вижу, что Azure предлагает графические процессоры для приложений с интенсивными вычислениями, но я не вижу способа напрямую указать графические процессоры для Studio, поскольку это многопользовательская служба. Возможно, способ гарантировать необходимую производительность вычислений - это платное соглашение об уровне обслуживания, которое является частью стандартного платного уровня, или у Microsoft могут быть другие методы обеспечения доступа к графическому процессору, которые не очевидны в том, что я прочитал.

Резюме

Microsoft проделала выдающуюся работу по созданию облачной службы, которая разъясняет, упрощает и обеспечивает целостность процесса построения моделей машинного обучения. Их процесс визуально представляет собой простой и понятный метод сбора данных, предлагает инструменты для очистки данных и выбор моделей. Studio требует обучения и оценки модели и не позволит вам продолжить, если предыдущие шаги не будут выполнены правильно. В конечном итоге Studio даже упрощает развертывание моделей в виде веб-службы.

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

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

Я думаю, что Studio будет хорошо работать для многих пользователей, которые хотят создавать модели, в том числе для гражданских специалистов по данным, которые ищут решение перетаскивания с предварительно созданными алгоритмами, для более продвинутых корпоративных пользователей, которые могут включить работу Studio в еще более широкую экосистему машинного обучения Microsoft Azure. Услуга. Этот сервис позволяет специалистам по обработке данных работать в среде Python, обеспечивает больший контроль над алгоритмами машинного обучения, развертыванием и поддерживает платформы машинного обучения с открытым исходным кодом, такие как PyTorch, TensorFlow и scikit-learn. Я с нетерпением жду совместной работы с этим продуктом.

Об авторе

Стив Дилле - лидер по управлению продуктами и маркетингу в Кремниевой долине, входивший в руководящие группы компаний, в результате чего было совершено 5 успешных приобретений компаний и одно IPO в секторах управления данными, аналитики, бизнес-аналитики и больших данных. Совсем недавно он был директором по маркетингу в SparkPost, где сыграл важную роль в переходе компании от локального отправителя электронной почты большого объема к ведущему облачному сервису API электронной почты, основанному на прогнозной аналитике, увеличив его ARR с 13 миллионов долларов до более чем 50 миллионов долларов. В настоящее время он накапливает глубокие знания в области науки о данных, искусственного интеллекта и машинного обучения, получая степень магистра в области информации и науки о данных в Калифорнийском университете в Беркли. Его прошлое образование включает степень магистра делового администрирования в Школе бизнеса Бута Чикагского университета и степень бакалавра компьютерных наук / математики в Университете Питтсбурга. Он работал разработчиком программного обеспечения в NCR, менеджером по продукту в HP, директором по хранилищам данных в Sybase (SAP) и вице-президентом по продукту или директором по маркетингу во многих других стартапах и компаниях среднего размера.