我有两个Weka实例,打印时如下所示:
0.44,0.34,0.48,0.5,0.3,0.33,0.43,cp
0.51,0.37,0.48,0.5,0.35,0.36,0.45,cp
我正在尝试使用内置的欧几里德距离函数来获取它们的距离。我的代码:
EuclideanDistance e = new EuclideanDistance(neighbours);
double x = e.distance(neighbours.instance(0), neighbours.instance(1));
其中neighbor是Instances类型的对象,索引0和1的对象是我引用的两个实例。
我有点困惑,因为x返回值1.5760032627255223但是,通过单独计算,我期待0.09798。 cp是类标签,但在我的代码中,我确实指定了data.setClassIndex(data.numAttributes() - 1);
有什么建议吗?
答案 0 :(得分:1)
默认情况下,Weka的EuclideanDistance
指标会规范化范围以计算距离。如果您不想这样,请致电e.setDontNormalize(true)
。