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

СОДЕРЖАНИЕ

  1. Несбалансированные и сбалансированные наборы данных
  2. Мультиклассовая классификация
  3. K-NN - заданная матрица расстояний (или) подобия.
  4. Различия в тренировочном и тестовом наборе
  5. Влияние выбросов
  6. Стандартизация шкалы и столбца
  7. Интерпретируемость модели
  8. Важность функции
  9. Категориальные особенности
  10. Вменение отсутствующего значения
  11. Проклятие размерности
  12. Компромисс смещения и отклонения

Чтобы узнать, как работает K-NN, прочтите наш предыдущий блог, а также посетите его здесь.

1. Случай дисбаланса против набора данных баланса

Во-первых, мы хотим знать, что такое набор данных о дисбалансе?

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

Если количество положительных классов и отрицательных классов примерно одинаково. в данном наборе данных. Затем мы можем указать наш набор данных в Наборе данных баланса.

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

Как обойти проблему несбалансированного набора данных?

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

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

Недостаточная выборка

Предположим, у меня есть набор данных «N» с 1000 точками данных. И у ’N’ два класса: один - n1, а другой - n2. У этих двух классов есть два разных отзыва: положительный и отрицательный. Здесь n1 - положительный класс и имеет 900 точек данных, а n2 - отрицательный класс и имеет 100 точек данных, поэтому мы можем сказать, что n1 - класс большинства, потому что n1 имеет большое количество точек данных, а n2 - класс меньшинства, потому что n2 имеют меньшее количество точек данных. Чтобы обработать этот несбалансированный набор данных, я создам новый набор данных с именем m. Здесь я возьму все (100) n2 точек данных как есть, и я случайным образом возьму (100) n1 точек данных и помещу в набор данных под названием m ’. Это уловка сэмплирования и называется недовыборкой.

Вместо использования n1 и n2 мы используем для моделирования m и n2.

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

Передискретизация

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

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

Избыточная выборка снижает доминирование одного класса из набора данных.

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

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

2. Мультиклассовая классификация

Рассмотрим. В наборе данных MNIST метка класса Y ∈ {0,1} называется двоичной классификацией.

Задача классификации с более чем двумя классами называется мультиклассовой классификацией. Рассмотрим в наборе данных MNIST метку класса Y ∈ {0,1,2,3,4,5}.

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

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

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

Вместо этого можно использовать эвристические методы для разделения задачи классификации на несколько классов на несколько наборов данных двоичной классификации и обучения каждой модели двоичной классификации. одна из таких техник - One-Vs-Rest.

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

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

  • Проблема двоичной классификации 1: красный vs [синий, зеленый]
  • Проблема двоичной классификации 2: синий против [красный, зеленый]
  • Проблема двоичной классификации 3: зеленый против [красный, синий]

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

Чтобы узнать о One-Vs-Rest в научно-учебном пособии, посетите здесь.

3. K-NN как заданная матрица расстояний (или) подобия.

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

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

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

4. Отличия обучающего и тестового наборов.

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

Мы хотим проверить распределение поезда и тестового набора, прежде чем строить модель.

Но как мы можем узнать, что обучающие и тестовые наборы имеют разное распределение?

Рассмотрим наш набор данных, разделенный на набор для обучения и тестирования, и оба содержат x и y, где x как заданные точки данных, а y как метка.

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

рассмотрим, что в нашем новом наборе поездов будет x ’= concat (x, y) и y’ = 1, а в новом наборе тестов будет x ’= concat (x, y) и y’ = 0. Для этого нового набора данных примените двоичные классификаторы, такие как K-NN. После применения бинарного классификатора, если мы получили результаты, как показано ниже

Случай 1:

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

Случай 2:

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

Случай 3:

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

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

5. Влияние выбросов

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

Рассмотрим изображение выше, если мы применим K = 1, затем возьмем 1-NN, тогда поверхность принятия решения изменится. Когда K мало, влияние выброса на модель больше. Когда K велико, влияние выбросов менее подвержено модели.

Методы удаления выбросов в K-NN

Фактор локального выброса (LOF): Фактор локального выброса основан на концепции локальной плотности, где местоположение задается k ближайшими соседями, расстояние до которых используется для оценки плотности.

Чтобы понять LOF, давайте рассмотрим несколько основных определений.

K-расстояние (Xi): расстояние до k-го ближайшего соседа Xi от Xi.

Окрестность Xi: множество всех точек, принадлежащих K-NN точки Xi.

Предположим, что K = 5, тогда Окрестность Xi становится, Набор всех точек, которые принадлежат 5-NN Xi, то есть {x1, x2, x3, x4, x5}

Расстояние достижимости (Xi, Xj):

расстояние-досягаемость (Xi, Xj) = max {k-расстояние (Xj), расстояние (Xi, Xj)}

В принципе, если точка Xi находится в пределах k соседей точки Xj, расстояние досягаемости (Xi, Xj) будет k-расстоянием до Xj. В противном случае это будет реальное расстояние между Xi и Xj. Это просто «сглаживающий фактор». Для простоты считайте это обычным расстоянием между двумя точками.

Локальная плотность достижимости (LRD): чтобы получить Lrd для точки, мы сначала вычислим расстояние достижимости точки a до всех ее k ближайших соседей и возьмем среднее значение этого числа. Тогда Lrd является просто обратной величиной среднего расстояния достижимости Xi от его соседа.

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

Фактор локального выброса (LOF): LOF - это в основном умножение среднего Lrd точек в окрестности Xi и обратного Lrd точки xi.

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

Когда мы применяем LOF, которая является большой точкой LOF, эта точка считается выбросом, в противном случае - второстепенным.

6. Стандартизация шкалы и столбца

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

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

Эта разница в единицах приводит к тому, что алгоритмы на основе расстояния, такие как KNN, не работают оптимально, поэтому необходимо изменить масштаб функций, которые имеют разные единицы измерения, чтобы они имели одинаковый масштаб (или) единицы измерения. . Для изменения масштаба функций можно использовать множество способов. В этой истории я расскажу о нескольких способах масштабирования, а именно: Min-Max Scaling, Standard Scaling.

Перед построением модели необходимо изменить масштаб (или) стандартизировать функции.

7. Интерпретируемость модели

Модель лучше интерпретируема, чем другая модель, если ее решения легче понять человеку, чем решения другой модели.

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

K-NN интерпретируется, когда размер d мал, как маленький k.

8. Важность функции

Функция "Важность" сообщает нам, какие важные функции в нашей модели. но K-NN не придает важности этой функции внутри компании.

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

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

  • Сначала выбирается лучшая отдельная функция (т. Е. С использованием некоторой целевой функции, такой как точность, AUC и т. Д.).
  • Затем формируются пары функций с использованием одной из оставшихся функций и этой лучшей функции, и выбирается лучшая пара.
  • Затем формируются триплеты функций с использованием одной из оставшихся функций и этих двух лучших функций, и выбирается лучший триплет.
  • Эта процедура продолжается до тех пор, пока не будет выбрано заранее определенное количество функций.

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

  • Сначала для всех n функций вычисляется целевая функция.
  • Затем каждая функция удаляется по одной, критериальная функция вычисляется для всех подмножеств с n-1 характеристиками, а худшая характеристика отбрасывается (т. Е. С использованием некоторой целевой функции, такой как точность, AUC и т. Д.).
  • Затем каждая функция среди оставшихся n-1 удаляется по одной, а худшая функция отбрасывается, чтобы сформировать подмножество с n-2 функциями.
  • Эта процедура продолжается до тех пор, пока не останется предопределенное количество функций.

9. Категориальные особенности

Во многих практических мероприятиях по науке о данных набор данных будет содержать категориальные переменные. Эти переменные обычно хранятся в виде текстовых значений, которые представляют различные характеристики. Некоторые примеры включают цвет («Красный», «Желтый», «Синий»), размер («Маленький», «Средний», «Большой») или географические обозначения (Штат или Страна).

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

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

Двоичное кодирование. Двоичное кодирование не так интуитивно понятно, как два вышеупомянутых подхода. Двоичное кодирование работает так:

  • Категории кодируются как порядковые, например, таким категориям, как красный, желтый, зеленый, присваиваются метки как 1, 2, 3 (допустим).
  • Эти целые числа затем преобразуются в двоичный код, так, например, 1 становится 001, а 2 становится 010 и так далее.

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

Если в данном наборе данных присутствуют текстовые функции, используйте методы обработки естественного языка, такие как Bag of words, TFIDF, Word2vec.

Чтобы узнать больше о категориальных характеристиках, посетите здесь

10. Вменение отсутствующего значения

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

Как исправить недостающие значения

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

Это полностью изученная проблема машинного обучения. Большую часть времени K-NN используется в методе вменения на основе модели, потому что он использует стратегию ближайшего соседа.

11. Проклятие размерности

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

Феномен Хьюза: при фиксированном размере наборов данных производительность уменьшается при увеличении размерности.

Функции расстояния [Евклидово расстояние]: интуиция расстояния в трехмерном пространстве не работает в пространствах высокой размерности.

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

По мере увеличения размерности для изображения выше dist max (Xi) ~ dist min (Xi).

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

Когда размер d высокий, а точки данных плотные, влияние измерения велико, когда точки данных разрежены, влияние измерения невелико.

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

12. Компромисс отклонения и отклонения

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

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

Ошибка обобщения = смещение² + отклонение + неснижаемая ошибка

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

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

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

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

Ошибка обобщения = ↓ Смещение² + ↓ дисперсия + Несводимая ошибка

Сильное смещение (или) недостаточное соответствие: когда ошибка поезда увеличивается, смещение также увеличивается.

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

использованная литература

  • Прикладной ИИ
  • Coursera
  • Data Camp

Спасибо за чтение и за ваше терпение. Сообщите мне, если в моем сообщении есть ошибки. Обсудим в комментариях, если что-то не так в посте или есть что добавить…

Удачного обучения !!