我使用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不一样。有人知道为什么吗?谢谢!
答案 0 :(得分:2)
似乎h2o.distance
计算平方和,而不是取平方根:所以取平方根得到标准结果。
distance.h2o <- h2o.distance(df1.h[1,],df2.h[1,],"l2")
sqrt(distance.h2o)