Хакатон По Машинному Обучению: Приходите. Обучите Модель. Победить

Стандартный план для любого хакатона ↓

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

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

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

Нет вода (если вы не знакомы с Azure ML, то лучше прочитать «воду» или какой-нибудь вводный материал), длинные определения и подобные длинные вступления — это как раз то, что вам нужно для победы на хакатоне.



Будь проще

1) Захватывать найти кофемашину.

2) У вас есть только 2 дня, так что не оградить сад сложные модели: их легко переучить, и их изготовление занимает много времени.

Возьмите самое наивное предположение и итеративно усложните его.

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

Это делается с помощью пунктов меню «Сохранить как набор данных», «Сохранить модель» в контекстном меню Azure ML Studio (это веб-IDE).

Таким образом, у вас будут пары набор данных–обученная_модель для каждой итерации.

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

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



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Сотрудничество

Создайте рабочее пространство уже сейчас! Перейдите на сайт Manage.windowsazure.com, выберите Azure ML и создайте более быструю рабочую область.

Один для всей команды, а не личный для каждого! Собирайте электронные письма от всех участников и расширяйте Рабочее пространство между ними.



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Внесите свой вклад в глобальное потепление

Ниже показано, как выглядит простой график обучения в Azure ML.

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Но это не так! Это то, что вы будете делать дома: запускать, пить чай, идти гулять, приходить, смотреть, что произошло, думать, чесать плечо, запускать снова, пить чай.

На хакатоне нет на это времени! Проверьте сразу все алгоритмы, которые могут подойти.

Именно «все» — это Azure, а не ваш домашний ноутбук! Дата-центры Azure согреют атмосферу западного побережья США, но процесс обучения моделей будет работать! Вот пример того, как это должно выглядеть с использованием 5 алгоритмов двухклассовой классификации.



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Сравнение моделей, обученных на алгоритме логистической регрессии (синяя кривая) и машине опорных векторов (красная кривая):

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Перекрестная проверка

Включите перекрестную проверку уже! И включайте правильно: с набором данных валидации, со складками, обозначающими метрику, которую вы хотите максимизировать (т. е.

как показано на иллюстрации с перекрестной проверкой).

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

.

Результаты для каждой складки:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Параметры развертки

Ключевое влияние на производительность ( производительность ) модели предоставляются параметрами алгоритма машинного обучения.

Так для нейронной сети это количество скрытых слоев нейронов, начальные веса, для дерева решений — количество деревьев, количество листьев на дереве.

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

Сделайте что-нибудь необычное в Новом году! А на хакатоне используйте встроенный модуль Sweep Parameters.

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Настройки модуля:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Справедливое разделение данных

Разделите тестовую и обучающую выборку (модуль Сплит).

В зависимости от объема доступных данных в науке о данных принято оставлять в тестовом наборе от 10% до 30% данных.

Нет заниматься самообманом тренируйте модель на тестовом наборе, не используйте ее для проверки результатов перекрестной проверки.

Тестовый набор данных нужен вам только для одного — проверки окончательной модели.



Ускорьте свое обучение

Чем быстрее ваша модель обучается, тем больше гипотез вы успеете проверить.

Используйте модули из раздела «Выбор функций», чтобы не только сократить время обучения, но и получить наиболее релевантные предикторы и обобщить модель (улучшить ее производительность на реальных данных).

Таким образом, используя модуль выбора признаков на основе фильтров в задаче определения настроения твитов, я сократил количество предикторов со 160 тыс.

до 20 тыс.



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Результат — посмотрите количество предикторов (столбцов) до и после фильтрации:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

А модуль линейного дискриминанта Fisher помог мне уменьшить набор данных Iris с матрицы 4xN до 2xN, где N — количество наблюдений.



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Результат — посмотрите количество предикторов (столбцов) до и после фильтрации:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить



Ускорьте свое обучение.

Часть 2

Azure ML может запускать ваши сценарии R/Python. Итак, из коробки есть поддержка ~400 пакетов R, экспорт в блокноты Python и это только начало.

Но(!) не пишите сценарии R/Python просто потому, что вам лень разбираться, какие модули, встроенные в Azure ML, делают то же самое.

Встроенные модули: оптимизированы для Azure ML (скорее всего, большинство из них написано на C++, что звучит как «это быстро»); работа внутри них потенциально распараллелена и выполняется распределенно (поскольку заранее известно, какие модули выполняют задачи по параллельному использованию данных, а какие нет); Алгоритмы машинного обучения, реализованные во встроенных модулях, также потенциально могут быть ЛСМЛ -история (выполняется распределенно по кластеру).

Не умоляя вашего таланта программирования, отмечу, что ваш чудесно написанный скрипт на Python вряд ли будет выполнен таким образом, потому что для Azure ML такой скрипт — это чёрный ящик.



Особенности проектирования

Понимайте свои данные! Для этого в Azure ML есть как инструменты визуализации, так и возможность использовать ggplot2. Кроме того, не пренебрегайте модулем описательной статистики «Описательная статистика», который может многое рассказать о данных на любом этапе работы с экспериментом.



Предварительная обработка

Размечайте данные правильно — используйте модуль «Редактор метаданных».

Модуль «Очистить недостающие данные» поможет вам справиться с недостающими данными (удалить их, заменить на значение по умолчанию, медиану или режим).

Раздел «Обнаружение аномалий» и простая визуализация помогут вам обнаружить выбросы.

Нормализовать (по крайней мере, попытаться) все числовые данные, распределение которых не является нормальным, с помощью модуля «Нормализация».

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



Техники джедаев



Техники джедаев: усиление и накопление

Перейдем непосредственно к терминологии: Повышение (бустинг) – подход, при котором результатом является взвешенная/эмпирически рассчитанная оценка нескольких различных моделей.

Укладка (стекинг) — подход, аналогичный бустингу: у вас также есть несколько моделей, обученных на данных, но никакой эмпирической формулы у вас уже нет — вы строите метамодель на основе оценок исходных моделей.

Это очень крутые методы, которые в полной мере используют ученые данных 80-го уровня с Kaggle. В Azure ML нет встроенных модулей, реализующих повышение или стекирование (или просто объединение в пакеты).

Их реализация не очень сложна, но имеет свой длинный список тонкостей.

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

Принципиальная схема реализованного стекирования:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

1-й уровень:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Уровень 2:

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Реализация подходов бустинга и стекинга в Azure ML — тема отдельной интересной статьи.

которые не могут быть раскрыты в рамках настоящей статьи.

Но(!) на второй день хакатона ты сможешь меня найти (Нижний правый на странице спикеров хакатон; Я буду выглядеть так же плохо, как на фото) и обязательно Я покажу вам, как добавить штабелирование в вашу модель.

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



Методы джедая: кластер Hadoop/HBase/Spark.

Я не шучу: вам нужен кластер! Но не спешите покупать оборудование и начинать развертывать/администрировать всю экосистему Hadoop, богатую программными продуктами.

Это долго, дорого и.

хорошо.

А нам нужно быстро и хорошо, т. е.

HDInsight. Azure HDInsight – облачный сервис, предоставляющий кластер Hadoop/HBase/Spark по требованию.

Мастер создания кластера занимает 2 минуты; само создание кластера происходит в Azure 1 кружка кофе ~10 минут.

Хакатон по машинному обучению: Приходите.
</p><p>
 Обучите модель.
</p><p>
 Победить

Но самое приятное то, что HBase (точнее, запросы Hive) поддерживается в качестве одного из источников данных в Azure ML. Так что если данных много и вам нужно делать к ним сложные запросы, то не раздумывая разворачивайте кластер HBase в Azure и загружайте данные в Azure ML прямо оттуда.



Методы джедаев: виртуальная машина науки о данных

Используйте один из образов виртуальных машин, доступных на виртуальной машине Azure — образ Data Science VM, предварительно установленный вместе с Revolution R Open, Anaconda Python, Power BI и многие другие .

Не ограничивайтесь любимым человеком: возьмите виртуальную машину с необходимым объемом памяти (доступно до 448 ГБ ОЗУ), количеством ядер (доступно до 32 ядер) и, при необходимости, SSD-накопителем.

В общем, создайте себе комфортные условия работы.



Посмотрите через плечо.

Стройте заговоры.

Найдите нефть!



Не участвуйте ради призов

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

Общайтесь и делитесь опытом! (Самый хитрый все равно победит.) Если говорить о общении, то оно состоится завтра.

Московская встреча по науке о данных – отличное мероприятие в самом приятном формате для специалистов по обработке данных и тех, кто интересуется этой сферой.

Теги: #хакатон #azure ml #победит самый хитрый #Большие данные #Microsoft Azure #Машинное обучение

Вместе с данным постом часто просматривают: