Стать высококвалифицированным аналитиком данных!

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

Традиционно аналитик данных не должен знать машинное обучение (ML). Тем не менее, доступность ML стала проще, чем когда-либо прежде, вы будете удивлены тем, что обучать модели ML намного проще, чем то, что вы делаете в настоящее время изо дня в день — сбор данных, очистка данных, преобразование данных, метрики. генерация и визуализация данных.

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

Я проведу вас через серию постов, чтобы показать основы ML и практические примеры с Python scikit-learn package.

Почему машинное обучение?

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

Неудивительно, что Google Trend показывает следующее:

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

Ваш почтовый ящик Google использует модель машинного обучения для фильтрации спама и показа вам только хороших писем. Это называется спам-фильтр.

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

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

Что такое машинное обучение?

ML — это наука (и искусство) программирования компьютеров, чтобы они могли учиться на данных. — Орельен Жерон

Это область исследования, которая дает компьютерам возможность учиться без явного программирования. — Артур Самуэль

Это относится к автоматическому обнаружению значимых закономерностей в данных. - Сахлев-Шартц и Бен-Давид

Спам-фильтр — это модель машинного обучения, которая учится помечать спам из обычных хороших писем.

Как работает модель машинного обучения?

Возьмем в качестве примера спам-фильтр.

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

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

Затем вы передаете эти функции алгоритму машинного обучения для классификации спама и обычных писем.

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

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

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

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

Если обученная модель неправильно классифицировала 1 из 10 тестовых образцов, мы говорим, что модель имеет точность 90%. Если наша цель состоит в том, чтобы иметь точность 95%, наша модель не удовлетворяет нашим критериям оценки.

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

С вышеупомянутыми изменениями мы теперь получаем, что только 1 из 20 электронных писем классифицируется. Другими словами, наша модель имеет точность 95% — это цель, к которой мы стремились. Ура! Теперь мы можем развернуть этот обученный спам-фильтр вместе с решением для работы с электронной почтой, чтобы оно могло отфильтровывать спам.

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

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

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

Можем ли мы использовать язык программирования, чтобы делать то, что делает машинное обучение?

Вы можете задаться вопросом, например, если мы можем определить, чем спам отличается от обычных электронных писем, мы можем написать правила для их разделения. Если это так, то зачем нам ML?

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

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

Что еще более важно, модель ML можно использовать для изучения «правил». Обученная модель машинного обучения показывает, какие функции важны для различения двух типов.

Далее, во многих случаях написать свои правила просто невозможно. Возьмем, к примеру, преобразование речи в текст или распознавание изображений.

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

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

Контролируемое и неконтролируемое обучение

В зависимости от типа наблюдения, которое они получают во время обучения, существует две основные ветви алгоритмов машинного обучения:

  • Контролируемое обучение
  • Неконтролируемое обучение

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

Контролируемое обучение

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

Есть две контролируемые учебные задачи:

  • Классификация
  • Регрессия

Классификация

При классификации, как следует из названия, наша цель — классифицировать образцы по двум или более классам (например, спам и обычные). Описанная выше задача фильтрации спама по сути является задачей классификации.

В этой серии мы изучим следующие алгоритмы контролируемой классификации:

  • Деревья классификации
  • Случайные леса
  • Логистическая регрессия
  • Опорные векторные машины
  • XGBoost
  • K-ближайшие соседи
  • Наивный Байес
  • Полностью связанные нейронные сети

Регрессия

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

После того, как мы обучим приведенную выше регрессионную модель с помеченным набором входных выборок (точки на графике), мы получим обученную модель (линия на графике). Затем мы можем предсказать оценку счастья для неизвестных образцов, используя обученную модель. Например, каков показатель счастья для человека, зарабатывающего 70 тысяч? Это около 5,2.

В этой серии мы изучим следующие алгоритмы регрессии с учителем:

  • Линейная регрессия
  • Лассо-регрессия
  • Ридж-регрессия
  • Аналоги алгоритмов классификации (например, регрессия случайного леса)

Обучение без учителя

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

При неконтролируемом обучении система учится без учителя!

Допустим, у нас есть набор веб-сайтов, и мы хотим сгруппировать их в значимые группы.

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

Обратите внимание, что мы не помечаем никакие веб-сайты как новостные статьи, блоги или сайты компаний, как в примере со спам-фильтром.

В этой серии мы рассмотрим четыре основных типа алгоритмов обучения без учителя.

  • Кластеризация
  • Обнаружение аномалий
  • Снижение размерности
  • Изучение правила ассоциации

Таким образом, мы рассмотрели следующие темы в этом посте:

  • Что именно означает для машины обучение (т.е. что такое машинное обучение?)
  • Чем ML отличается от кодирования
  • Этапы обучения модели машинного обучения
  • Контролируемое и неконтролируемое обучение
  • Алгоритмы классификации и регрессии в обучении с учителем

Надеюсь, вам понравилось читать пост и вы узнали что-то новое.

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

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

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

Оставайтесь с нами для части 2.

Ссылки:

  • Практическое машинное обучение с помощью Scikit-Learn, Keras и Tensorflow
  • Понимание машинного обучения: от теории к алгоритмам