2017-08-20 3 views
3

J'utilise H2O avec R pour calculer la distance euclidienne entre 2 data.frames:calculs de distance euclidienne erronées H2O R

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) 

si j'utilise des calculs normaux, à savoir la première ligne:

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

et si j'utilise la bibliothèque H2O:

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

print(distance1) 
print(distance.h2o) 

le Distance1 et distance.h2o ne sont pas les mêmes. Est-ce que quelqu'un sait pourquoi? Merci!!

+4

'sqrt (distance.h2o)' – user20650

+0

résolu, mais le code correct est sqrt (h2o.distance). Merci pour tout!!! – Jesus

Répondre

1

Il semble que h2o.distance calcule la somme des carrés, sans prendre la racine carrée: prenez donc la racine carrée pour obtenir le résultat standard.

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