Зачем изучать машинное обучение?

Машинное обучение — это особая ветвь ИИ, которая фокусируется на методах автоматизации принятия решений (обучения). Расширенные цели машинного обучения позволяют компьютерам делать это без явного программирования на основе правил. Если вы инженер данных, вы можете поддержать свою организацию, преодолев разрыв между необработанными данными и специалистами по данным, которые стремятся включить эти данные в модели машинного обучения. В ситуациях с большими данными вам может даже потребоваться разработать эти алгоритмы для ваших специалистов по данным в производственной среде в масштабе. Таким образом, базовое понимание концепций машинного обучения в сочетании с вашим опытом работы с данными позволит вам преодолеть этот пробел. В следующем введении в машинное обучение предполагается, что вы используете Python и библиотеки Pandas и scikit-learn.

Контролируемое обучение против неконтролируемого обучения

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

Цели контролируемого обучения

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

  1. Классифицировать категорию
  2. Предсказать значение
  3. *Кластер, как точки данных*

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

Библиотеки науки о данных

Две распространенные библиотеки, с которыми вы можете столкнуться, включают библиотеки scikit-learn и Spark MLlib. В целом ваши специалисты по данным предпочтут scikit-learn, так как он существует дольше и получил более широкое распространение. Тем не менее, возможности Spark для работы с большими данными могут быть предпочтительным реалистичным готовым вариантом, если вы работаете в больших масштабах. В конце статьи краткое описание алгоритмов каждой библиотеки.

Требования к оборудованию

Обычно сложная обработка модели на ЦП может отнимать много времени. Инженеры по машинному обучению потенциально могут сократить это время обработки, используя процессоры GPU. Графические процессоры лучше подходят для обработки моделей, поскольку они содержат больше ядер меньшего размера, которые могут выполнять небольшие задачи параллельно со многими потоками, что характерно для машинного обучения. В дополнение к переключению с ЦП на ГП инженер по машинному обучению должен знать, когда распределять обработку модели по многим серверам и не будут ли накладные расходы на распределение более значительными, чем масштабирование на более крупную машину.

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

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

  • Удаление ненужных переменных
  • Устранение выбросов
  • Кодирование категориальных значений
  • Обработка пропущенных значений
  • Масштабирование функций
  • Уменьшение функций

Устранить переменные

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

Устранение выбросов

Существует несколько методов, которые можно использовать для устранения выбросов для ваших переменных. Распространенным методом является использование межквартильного диапазона. Выброс рассчитывается как 1,5-кратный межквартильный размах. Все, что находится за пределами этого диапазона, будет отбрасываться.

Кодировать

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

Масштабирование функций

Масштабирование функций пытается нормализовать диапазон значений для различных функций, чтобы функция с большим диапазоном не имела ненужного веса в модели. Например, модель с весом и ростом людей в качестве характеристик должна нормализовать общий диапазон веса [100–300 фунтов] и общий диапазон роста [4–6 футов].

Сокращение функций

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

Выбор модели

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

Собираем все вместе

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

  1. Создание меток (классификация) или значений (прогноз) из ваших данных
  2. Реализуйте распространенные алгоритмы машинного обучения из таких библиотек, как mllib и scikit-learn.
  3. Понимание компромиссов между оборудованием и инфраструктурой для данной модели
  4. Подготовьте данные для эффективных вычислений в этих алгоритмах
  5. Используйте показатели успеха машинного обучения, чтобы решить, какую модель использовать в рабочей среде.

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