给定 2 Array[Double]包含离散的概率分布,如何在 Scala 中实现赫林格距离?
Array[Double]
def hellingerSimilarity(a1: Array[Double], a2: Array[Double]): Double = { }
我正在尝试使用scala.math.sqrt函数,但仅适用于单个Double而不适用于Array。我已经习惯了 Python 的成对指标,Scala/Spark 中是否有类似的库?
scala.math.sqrt
Double
Array
下面只是 scala 代码中的数学公式:
def hellingerSimilarity(a1: Array[Double], a2: Array[Double]): Double = { val tupleSum = a1.zip(a2).map(x => pow(sqrt(x._1) - sqrt(x._2),2)).reduce(_+_) (1/sqrt(2)) * sqrt(tupleSum) }
1 回答
下面只是 scala 代码中的数学公式: