k-ближайший сосед классификатор, но с использованием распределения? - PullRequest
0 голосов
/ 19 апреля 2011

Я строю классификатор для некоторых 2D-данных.

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

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

Clusters

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

Должен ли я придумать некоторые предполагаемые распределения Гаусса для моих кластеров?Если так, я не уверен, как я могу объединить это с классификатором ближайшего соседа?

Буду благодарен за любой ввод.

Приветствия

Ответы [ 2 ]

0 голосов
/ 12 сентября 2012

Зачем использовать для этого k-NN? любой линейный классификатор сделает свое дело. попробуйте решить ее с помощью SVM, и вы получите гораздо лучшие результаты. Если вы настаиваете на использовании kNN, вам явно необходимо масштабировать элементы и преобразовывать их в полярные, как указано здесь.

0 голосов
/ 11 мая 2011

Преобразуйте все свои точки в [r, angle] и масштабируйте r до диапазона от 0 до 90, до запуска ближайшего соседа.
Почему?NN использует евклидово расстояние между точками и центрами (в большинстве реализаций),
, но вы хотите, чтобы distance( point, centre ) было больше похоже на sqrt ((point.r - centre.r) ^ 2 + (point.angle - centre.angle)^ 2)
чем sqrt ((точка.x - центр.x) ^ 2 + (точка.y - центр.y) ^ 2).
Уменьшение r до 30?10?будет вес угол больше, чем г, что, кажется, то, что вы хотите.

...