Учебник по Azure: прогнозирование цен на бензин с помощью Azure Machine Learning Studio
Опубликовано: 2022-03-11Что, если бы вы могли предсказать, будут ли акции вашего выбора расти или падать в течение следующего месяца? Или если ваша любимая футбольная команда выиграет или проиграет свой следующий матч? Как можно делать такие прогнозы? Возможно, машинное обучение может дать часть ответа. Cortana, новый цифровой персональный помощник на базе Bing, поставляемый с Windows Phone 8.1, точно предсказал 15 из 16 матчей чемпионата мира по футболу 2014 года.
В этом руководстве по Azure мы рассмотрим функции и возможности машинного обучения Azure, решая одну из проблем, с которыми мы сталкиваемся в повседневной жизни.
С точки зрения разработчика машинного обучения задачи можно разделить на две группы — те, которые можно решить стандартными методами, и те, которые нельзя решить стандартными методами. К сожалению, большинство реальных жизненных проблем относится ко второй группе. Здесь в игру вступает машинное обучение. Основная идея состоит в том, чтобы использовать машины для поиска значимых закономерностей в исторических данных и использовать их для решения проблемы.
Эта проблема
Цены на газ, вероятно, уже являются одной из статей бюджета большинства людей. Постоянное повышение или понижение может повлиять на цены и на другие продукты и услуги. Есть много факторов, которые могут повлиять на цену газа, от погодных условий до политических решений и административных сборов, и до совершенно непредсказуемых факторов, таких как стихийные бедствия или войны.
План этого руководства по машинному обучению Azure состоит в том, чтобы исследовать некоторые доступные данные и найти корреляции, которые можно использовать для создания модели прогнозирования.
Студия машинного обучения Azure
Azure Machine Learning Studio — это интегрированная веб-среда разработки (IDE) для разработки экспериментов с данными. Он тесно связан с остальными облачными службами Azure, что упрощает разработку и развертывание моделей и служб машинного обучения.
Создание эксперимента
Существует пять основных шагов для создания примера машинного обучения. Мы рассмотрим каждый из этих шагов, разработав собственную модель прогнозирования цен на газ.
Получение данных
Сбор данных — один из самых важных шагов в этом процессе. Актуальность и ясность данных являются основой для создания хороших моделей прогнозирования. Студия машинного обучения Azure предоставляет несколько примеров наборов данных. Еще одну большую коллекцию наборов данных можно найти по адресу archive.ics.uci.edu/ml/datasets.html.
После сбора данных нам нужно загрузить их в Студию с помощью их простого механизма загрузки данных:
После загрузки мы можем просмотреть данные. На следующем рисунке показана часть наших данных, которые мы только что загрузили. Наша цель здесь — предсказать цену в столбце с надписью E95.
Наш следующий шаг — создать новый эксперимент, перетащив модули с панели слева в рабочую область.
Предварительная обработка данных
Предварительная обработка доступных данных включает настройку доступных данных в соответствии с вашими потребностями. Первый модуль, который мы здесь будем использовать, это «Описательная статистика». Он вычисляет статистические данные из доступных данных. Помимо модуля «Описательная статистика», одним из часто используемых модулей является «Очистить недостающие данные». Цель этого шага — придать смысл отсутствующим (нулевым) значениям, заменив их каким-либо другим значением или полностью удалив их.
Определение функций
Еще один модуль, применяемый на этом этапе нашего руководства, — это модуль «Выбор функций на основе фильтров». Этот модуль определяет функции набора данных, которые наиболее важны для результатов, которые мы хотим предсказать. В этом случае, как вы можете видеть на рисунке ниже, четыре наиболее важных функции для значений «E95» — это «EDG BS», «Нефть», «USD/HRK» и «EUR/USD».
Поскольку «EDG BS» является еще одним «выходным» значением, которое нельзя использовать для прогнозирования, мы выберем только два из оставшихся важных признаков — это цена на нефть и курс валюты в столбце USD/HRK.
Пример набора данных после обработки показан ниже:

Выбор и применение алгоритма
Наш следующий шаг — разделить имеющиеся данные с помощью модуля «Разделить». Первая часть данных (в нашем случае 80%) будет использоваться для обучения модели, а остальные — для оценки обученной модели.
Следующие шаги являются наиболее важными во всем процессе машинного обучения Azure. Модуль «Модель поезда» принимает два входных параметра. Во-первых, это необработанные данные обучения, а во-вторых, алгоритм обучения. Здесь мы будем использовать алгоритм «линейной регрессии». Выход модуля «Обучение модели» является одним из входных параметров модуля «Оценочная модель». Другой - остальные доступные данные. Score Model добавляет новый столбец в наш набор данных, Scored Labels. Значения в столбце «Оцененные метки» ближе к значениям соответствующих им значений E95, когда применяемый алгоритм обучения хорошо работает с доступными данными.
Модуль Evaluate Model дает нам оценку обученной модели, выраженную в статистических значениях. Если мы посмотрим на «Коэффициент детерминации», мы можем сделать вывод, что вероятность предсказания правильной цены с использованием этой модели составляет около 80%.
Теперь стоит попробовать использовать модуль «Нейросетевая регрессия». Нам нужно будет добавить новые модули «Обучение модели» и «Оценка модели» и подключить вывод к существующему модулю «Оценить модель».
Модуль «Нейронная сетевая регрессия» требует немного большей настройки. Поскольку это самый важный модуль всего эксперимента, именно на нем мы должны сосредоточить свои усилия, подстраивая и экспериментируя с настройками и выбором подходящего алгоритма обучения в целом.
В этом случае модуль Evaluate дает нам сравнение двух наших обученных моделей. Опять же, основываясь на коэффициенте детерминации, мы видим, что нейронные сети дают менее точные прогнозы.
На этом этапе мы можем сохранить выбранные обученные модели для использования в будущем.
Когда у нас есть обученная модель, мы можем приступить к созданию «Оценочного эксперимента». Это можно сделать, создав новый эксперимент с нуля или воспользовавшись помощником Студии машинного обучения Azure. Просто выберите обученную модель и нажмите «Создать эксперимент по оценке». Новые модули, которые нам нужны здесь, это «Ввод веб-службы» и «Вывод веб-службы». Мы добавим модуль «Столбцы проекта», чтобы выбрать наши входные и выходные значения. Входными значениями являются нефть и USD/HRK, а выходным значением является прогнозируемое значение в столбце «Оценочные метки» выходных данных «Модель оценки».
На рисунке ниже показан наш скоринговый эксперимент после этих нескольких корректировок и после подключения модулей «Ввод веб-сервиса» и «Вывод веб-сервиса» соответственно.
На этом этапе в игру вступает еще одна отличная вспомогательная функция. С помощью «Publish Web Service» вы можете создать простую веб-службу, размещенную в облачной инфраструктуре Azure.
Прогнозирование новых данных
Наконец, мы можем протестировать наш веб-сервис прогнозирования, используя простую тестовую форму.
Заключение
В этом простом руководстве по машинному обучению мы показали, как создать полнофункциональный веб-сервис прогнозирования. Студия машинного обучения Azure, интегрированная в платформу Azure, может быть очень мощным инструментом для создания экспериментов с данными. Помимо Machine Learning Studio, существуют и другие решения для машинного обучения, такие как Orange и Tiberious. Независимо от того, какая среда разработки вам нравится, я призываю вас изучить машинное обучение и найти своего внутреннего специалиста по данным.