首页 文章

Scala 中的 Hellinger 距离

提问于
浏览
0

给定 2 Array[Double]包含离散的概率分布,如何在 Scala 中实现赫林格距离

def hellingerSimilarity(a1: Array[Double], a2: Array[Double]): Double = {

}

我正在尝试使用scala.math.sqrt函数,但仅适用于单个Double而不适用于Array。我已经习惯了 Python 的成对指标,Scala/Spark 中是否有类似的库?

1 回答

  • 2

    下面只是 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)
    }
    

相关问题