h2o.kmeans()是否根据欧几里德距离进行预测?

时间:2018-03-22 14:32:17

标签: cluster-analysis k-means h2o euclidean-distance

我使用h2o.kmeans()创建了一个聚类模型。建模数据集首先由R中的scale()标准化。

模型有五个簇,质心坐标为:

CENTROID    X1  X2  X3  X4  X5  X6  X7  X8  X9  X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22
1   -0.646544   -0.6322714  -0.5101907  -0.2980412  -1.6182105  -1.7939725  -1.8194372  -1.82349    -1.8174061  -1.8069266 -2.2213561   -2.2618561  -2.2170297  -2.2004509  -2.196722   -2.2267695  -2.2536694  -2.2653944  -2.1599764  -2.2074994 -1.9114193   -2.78E-16
2   -0.2505012  -0.2582746  -0.2542313  -0.3205136  0.2912933   0.3239872   0.3236214   0.3231876   0.3234663   0.309818 0.362641   0.3800735   0.3615138   0.3542787   0.350817    0.3583391   0.375764    0.3715018   0.3533203   0.3533025   0.2651153 3.72E-15
3   0.4237044   0.4421857   0.408422    0.6620773   0.2371281   0.2592748   0.2597783   0.2782299   0.258803    0.3129833   0.4157714 0.3704712 0.3948566   0.4137049   0.4289137   0.4229101   0.3904031   0.4323851   0.3984215   0.442518    0.5278553   1.00E+00
4   2.2426614   2.2450805   2.0475964   1.5666675   0.2249847   0.2887632   0.3391117   0.3224008   0.3375972   0.3617759 0.5063836 0.4805747   0.5226613   0.5097081   0.5196333   0.5136624   0.4780912   0.4686772   0.4743151   0.5357567   0.5734882 8.24E-01
5   4.4718381   4.5243432   4.8917335   5.223828    0.2374653   0.3096633   0.3215417   0.3326531   0.3189998   0.414707    0.5065842 0.5113028 0.558864    0.5482378   0.543278    0.5436269   0.5204451   0.5341745   0.5096259   0.6486469   0.6595461   9.89E-01

当使用模型对新数据进行预测时,大多数结果都是有意义的,它返回质心与数据点的欧氏距离最短的聚类;然而,有时(约5%)预测是关闭的。例如,对于如下数据点:

X1  X2  X3  X4  X5  X6  X7  X8  X9  X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22
-0.2001578  -0.2485784  -0.3008685  -0.005366991    0.2624246   0.3142725   0.3074037   0.3221539   0.3033765   0.3403944 0.3557642 0.3810387   0.4848038   0.2788213   0.544491    0.2838926   0.2899755   0.3963652   0.2594092   0.3083141   0.463528    1

预测是第3组;但是,数据点和质心之间的欧氏距离是:

cluster 1: 10
cluster 2: 1.11
cluster 3: 1.39
cluster 4: 4.53
cluster 5: 9.97.

根据上述计算,数据点应分配给群集2,而不是3。

这是一个bug还是h2o.kmeans()使用其他方法代替欧几里德距离进行预测?

谢谢。

1 个答案:

答案 0 :(得分:1)

是的,如K-Means documentation所述,它使用欧几里德距离。

如果您能提供可重现的示例,表明这是一个错误,请提交bug report。谢谢!