2013-06-11 2 views
-1

Я работаю над кластеризацией терминов с использованием k-средств и NGD (нормализованное расстояние Google). У меня есть матрица расстояний в качестве входа алгоритма k-средних. Можно ли запустить k-средство в этой ситуации? Не могли бы вы предложить какой-либо исходный код?java k-означает кластеризацию с использованием матрицы расстояния

Спасибо заранее,

Насса

ответ

-1

Ну вы могли бы использовать WEKA-Means здесь я нашел something

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

+0

И как именно это помогает с алгоритмом, который не использует двухточечные расстояния (матрица или нет) вообще? –

1

K- означает, что не может использоваться с матрицами расстояний.

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

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

Однако существуют варианты из k-средств, которые не имеют этого ограничения, в частности K-medoids aka PAM (посмотрите его в Википедии). Они не используют кластерные центры, а вместо этого - медоиды (отсюда и название), которые являются точками вашего набора данных.

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