无法与Elki一起使用预先计算的距离

时间:2014-08-28 09:19:49

标签: cluster-analysis data-mining k-means elki

我正在尝试与Elki一起使用预先计算的距离,但由于某种原因无法使其正常工作。我已阅读此处的说明:http://elki.dbs.ifi.lmu.de/wiki/HowTo/PrecomputedDistances以及SO:ELKI - input distance matrix上的这个问题。

不幸的是,我仍然无法让ELKI工作。

这是我在bash shell中运行的命令:

java -jar  elki.jar -verbose  -dbc.filter FixedDBIDsFilter -dbc.startid 0 -dbc.in elki_dummy_ids -algorithm clustering.kmeans.KMeansLloyd -algorithm.distancefunction external.FileBasedDoubleDistanceFunction -distance.matrix elki_sample_dist_ut.txt -kmeans.k 3

这些是参数中文件的内容:

$cat elki_dummy_ids
0
1
2


$cat elki_sample_dist_ut.txt
0 0 0.0000
0 1 0.8876
0 2 0.8571
1 1 0.0
1 2 0.9059
2 2 0.0

我也尝试使用下三角距离矩阵:

$cat elki_sample_dist_lt.txt
0 0 0.0000
1 0 0.8876
1 1 0.0
2 0 0.8571
2 1 0.9059
2 2 0.0

但也没有运气。 我一直收到这个错误(截断 - 但如果你需要完整的错误信息,请告诉我):

  

未处理以下参数:   [external.FileBasedDoubleDistanceFunction,-distance.matrix,   elki_sample_dist_ut.txt]任务未完全配置:

     

参数algorithm.distancefunction的值错误。读:   de.lmu.ifi.dbs.elki.distance.distancefunction.external.FileBasedDoubleDistanceFunction。   预期:距离函数确定数据库之间的距离   对象。实施   de.lmu.ifi.dbs.elki.distance.distancefunction.PrimitiveDistanceFunction   已知类(默认包   de.lmu.ifi.dbs.elki.distance.distancefunction):

我正在使用 OpenJDK运行时环境(IcedTea 2.4.7)(7u55-2.4.7-1ubuntu1) Elki 0.6.0

有人可以指出我在这里缺少的东西吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

k-means 不能与预先计算的距离一起使用。

因为它计算从点到质心的距离,这是您以前不知道的,因此无法预先计算。

另外,k-means 仅用于数字数据,平方欧几里德距离。否则它可能无法收敛。 均值最小化平方偏差,不会最小化任意距离

你可能正在寻找PAM,k-medoids,DBSCAN,OPTICS,HAC ......这些算法可以与其他距离一起工作,只需要成对距离。