У меня есть матрица расстояний, и я хочу использовать эту матрицу расстояний при кластеризации своих данных.
Я прочитал документацию ELKI, и там говорится, что я могу перезаписать метод distance
при расширении класса AbstractNumberVectorDistanceFunction
.
Однако класс distance
возвращает координаты. Так от координаты х до координаты у. Это хлопотно, потому что матрица расстояний заполнена только значениями расстояния, и мы используем индексы, чтобы найти значение расстояния от index x
до index y
. Вот код из документации:
public class TutorialDistanceFunction extends AbstractNumberVectorDistanceFunction {
@Override
public double distance(NumberVector o1, NumberVector o2) {
double dx = o1.doubleValue(0) - o2.doubleValue(0);
double dy = o1.doubleValue(1) - o2.doubleValue(1);
return dx * dx + Math.abs(dy);
}
}
У меня вопрос, как правильно использовать матрицу расстояний при кластеризации с ELKI.