错误的欧几里德距离H2O计算R

时间:2017-08-20 12:16:02

标签: r distance h2o euclidean-distance

我使用H和R来计算2个data.frames之间的欧氏距离:

set.seed(121)

#create the data
df1<-data.frame(matrix(rnorm(1000),ncol=10))
df2<-data.frame(matrix(rnorm(300),ncol=10))
#init h2o
h2o.init()

#transform to h2o
df1.h<-as.h2o(df1)
df2.h<-as.h2o(df2)

如果我使用正常计算,即第一行:

distance1<-sqrt(sum((df1[1,]-df2[1,])^2))

如果我使用H2O库:

distance.h2o<-h2o.distance(df1.h[1,],df2.h[1,],"l2")

print(distance1)
print(distance.h2o)

distance1和distance.h2o不一样。有人知道为什么吗?谢谢!

1 个答案:

答案 0 :(得分:2)

似乎h2o.distance计算平方和,而不是取平方根:所以取平方根得到标准结果。

distance.h2o <- h2o.distance(df1.h[1,],df2.h[1,],"l2") 
sqrt(distance.h2o)
相关问题