k размер выборки для обучения классификатора ближайшего соседа для каждого класса
Может ли кто-нибудь сказать мне, должны ли размеры выборки обучения для каждого класса быть равными?
Могу ли я принять этот сценарий?
class1 class2 class3
samples 400 500 300
или все классы должны иметь одинаковые размеры выборки?
2 ответа
Результаты KNN в основном зависят от 3 вещей (за исключением значения N):
- Плотность ваших тренировочных данных: у вас должно быть примерно одинаковое количество образцов для каждого класса. Не нужно быть точным, но я бы сказал, что несоответствие не более 10%. В противном случае границы будут очень размытыми.
- Размер всего учебного набора: вам нужно иметь достаточно примеров в тренировочном наборе, чтобы ваша модель могла обобщаться до неизвестных образцов.
- Шум: KNN очень чувствителен к шуму от природы, поэтому вы хотите максимально избегать шума в тренировочном наборе.
Рассмотрим следующий пример, в котором вы пытаетесь выучить пончик в 2D-пространстве.
Имея другую плотность в ваших тренировочных данных (скажем, у вас больше тренировочных образцов внутри пончика, чем снаружи), граница вашего решения будет смещена, как показано ниже:
С другой стороны, если ваши классы относительно сбалансированы, вы получите гораздо более точную границу принятия решения, которая будет близка к фактической форме пончика:
В общем, я бы посоветовал попытаться сбалансировать ваш набор данных (просто как-нибудь его нормализовать), а также принять во внимание 2 других пункта, которые я упомянул выше, и у вас все будет хорошо.
В случае, если вам приходится иметь дело с несбалансированными данными обучения, вы также можете рассмотреть возможность использования алгоритма WKNN (просто оптимизация KNN), чтобы назначить более сильный вес вашему классу, который имеет меньше элементов.
k Метод ближайшего соседа не зависит от размеров выборки. Вы можете использовать свой пример размеров выборки. Например, см. Следующую статью о наборе данных KDD99 с k-ближайшим соседом. KDD99 - это значительно разбалансированный набор данных больше, чем ваш примерный набор данных.