Comment calculer la similarité en cosinus entre 2 Spark Vector. J'utilise le nouveau package ml.
Spark 2.1.1
MODIFIER:
Spark fournit RowMatrix qui peut être utilisé pour calculer la similarité mais accepte mllib.vector
pas un ml.vector
.
Est-il possible de convertir des vecteurs à partir de différents packages? Existe-t-il une implémentation utilisant ml.vector
?
Réponses:
1 pour la réponse № 1Le moyen le plus simple de convertir un mllib
vecteur à un ml
vecteur est d'utiliser le Vectors.fromML
méthode, voir Documentation Vecteurs. Exemple:
val mlVector = org.apache.spark.ml.linalg.Vectors.dense((Array(1.0,2.0,3.0)))
println(mlVector.getClass())
val mllibVector = org.apache.spark.mllib.linalg.Vectors.fromML(mlVector)
println(mllibVector.getClass())
Donne une sortie:
class org.apache.spark.ml.linalg.DenseVector
class org.apache.spark.mllib.linalg.DenseVector