2013-09-03 2 views
0

Я пытаюсь реализовать k означает группировку.K означает clustring find k самых удаленных точек в java

У меня есть набор точек с координатами (x, y), и я использую эвклидово расстояние для нахождения расстояния. Я вычислить расстояние между всеми точками в матрице

расстояние [I] [J] - расстояние между точками г и J

, когда я выбрать [1] [3] наиболее удаленных от Pt 1 как 3.

тогда, когда я ищу самый дальний из 3, я могу получить [3] [j], но [1] [j] может быть минимальным.

[пт J далеко pt3, но близко к 1]

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

+0

Почему вы не сортируете пары [i] [j] в порядке возрастания? В прошлый раз, когда я изучал интеллектуальную обработку данных, я считаю, что это решение ... сортировать, а затем находить k-самые большие или k-самые маленькие значения. –

ответ

0

Обратите внимание, что k-самые дальние точки не всегда дают лучший результат: они явно не лучшие оценки центра кластера.

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

Возможно, вы захотите взглянуть на k-mean ++, который является известной хорошей эвристикой для инициализации k-инициализации.

Смежные вопросы