2012-04-02 2 views
2

Я пытаюсь реализовать алгоритм кластеризации K-средних в трех измерениях. Теперь требование состоит в том, что я хочу, чтобы гибкость определяла мою собственную метрику расстояния в любом конкретном измерении. Например, для измерения размера 1 я хотел бы определить простую меру евклидовой дистанции, по измерениям 2 Я хочу определить свою собственную дистанционную меру и так далее.Переопределение метрики расстояния в алгоритмах кластеризации

Существует ли реализация JAVA для кластеризации K-средних, которая позволяет мне переопределить метрику расстояния по любому измерению по моему выбору?

Благодаря Абхишек S

ответ

3

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

В самом деле, ELKI у людей даже есть Tutorial on adding a custom distance function, которые в значительной степени отвечают на ваш вопрос, не так ли?

1

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

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