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

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

Итак, какое ключевое слово играет главную роль при выборе алгоритма? Все просто: сами функции. Вы просто пытаетесь выбрать лучший алгоритм (или транслятор) для вашего конкретного набора функций.

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

Концепция границы решения

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

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

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

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

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

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

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

Линейные модели

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

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

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

В эту категорию входят следующие алгоритмы:

  • Линейная регрессия
  • Логистическая регрессия
  • SVM
  • Нейронные сети

Модели на основе дерева

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

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

Существует несколько популярных древовидных моделей, таких как деревья решений, случайные леса и деревья с градиентным усилением. Деревья решений просты и легко интерпретируются, а случайные леса объединяют несколько деревьев для повышения точности и уменьшения переобучения. С другой стороны, Gradient Boosted Trees итеративно улучшают дерево решений, чтобы свести к минимуму ошибки и повысить точность.

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

В эту категорию входят следующие алгоритмы:

  • Древо решений
  • Случайный лес (методы ансамбля)
  • XGBoost (методы ансамбля)
  • LightGBM (методы ансамбля)
  • GradientBoosting (методы ансамбля)
  • AdaBoost (методы ансамбля)
  • CatBoost (методы ансамбля)

Модели на основе расстояния

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

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

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

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

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

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

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

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

Исследовательский анализ данных (EDA)

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

Хотя для EDA нет четкого процесса, мы можем обобщить основные шаги, чтобы выявить ценные идеи.

Шаг 1. Сводная статистика и визуализации

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

Шаг 2. Визуализируйте данные

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

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

Теперь давайте прокомментируем, как результаты этих двух шагов повлияют на выбор модели.

Выбросы

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

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

Если выбросы сохраняются, возникает вопрос, как с ними справиться. Один из способов справиться с выбросами — удалить их из набора данных. Однако такой подход может быть рискованным, поскольку может привести к потере ценной информации.

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

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

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

Распределение данных и корреляция

Распределение данных и корреляция между функциями и целевой переменной являются решающими факторами при выборе подходящей модели. Следует помнить о двух ключевых факторах: нормальности и корреляции.

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

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

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

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

Отсутствующие значения

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

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

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

Другой вариант — использовать модель, которая может обрабатывать пропущенные значения внутри, например Наивный байесовский метод или XGBoost. Однако важно отметить, что sklearn реализация алгоритма Naive Bayes не допускает пропущенных значений, поэтому может потребоваться ручная реализация.

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

Разработка функций

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

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

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

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

Обработка пропущенных значений

Вот несколько советов, о которых следует помнить при обработке пропущенных значений:

  1. Вменение пропущенных значений категорией «Неизвестно» при работе с категориальными переменными будет более полезным для древовидных моделей. Это связано с тем, что древовидные модели могут хорошо обрабатывать категориальные переменные и не полагаются на линейную связь между переменными.
  2. Вменение пропущенных значений средним значением или медианой будет более полезным для линейных моделей, чем для древовидных. Линейные модели основаны на линейной взаимосвязи между переменными, и вменение средних или медианных значений помогает сохранить эту взаимосвязь.
  3. Модели, которые могут обрабатывать отсутствующие значения, могут быть уязвимы, а отсутствие обработки отсутствующих значений может привести к снижению производительности. Например, Наивная байесовская модель — это модель, которая может обрабатывать отсутствующие значения, но отсутствующие значения могут повлиять на производительность модели, если они не обрабатываются должным образом.

Обработка выбросов

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

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

Масштабирование и нормализация

  • Влияние на древовидные модели:

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

  • Влияние на линейные модели:

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

  1. Более быстрое обучение: нормализация может ускорить процесс обучения за счет уменьшения количества итераций, требуемых алгоритмом оптимизации.
  2. Лучшие результаты: нормализация может повысить точность модели за счет уменьшения влияния выбросов и обеспечения того, чтобы все функции были в одинаковом масштабе.
  • Влияние на модели, основанные на расстоянии:

На модели на основе расстояния, такие как k-ближайших соседей (k-NN) и Машины опорных векторов (SVM), сильно влияет масштаб признаков. Вот несколько причин, по которым масштабирование необходимо для моделей, основанных на расстоянии:

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

Обработка категориальных переменных

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

  • Влияние на линейные модели:

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

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

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

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

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

Рекомендации по развертыванию

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

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

Вопросы удобства использования

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

Объяснимость против. Предсказуемость

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

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

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

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