使用数据Seq创建一个简单的函数来计算均方根误差[Seq [(Double,Double]]

时间:2016-04-26 14:29:30

标签: scala

我需要使用Seq[Seq[(Double,Double)]]作为输入创建一个简单的函数来计算均方根误差:

这是我的尝试:

  val getRMSE: (Seq[Seq[(Double, Double)]]) => Double = {
    (predictions) =>
      val mse = predictions
        .map {
          case (rating, prediction) =>
            val err = rating-prediction
            err*err
        }.mean()
      math.sqrt(mse)
  }

问题是如何使用err*errrating-prediction来解决编译错误。它说"无法解析符号*"

1 个答案:

答案 0 :(得分:0)

predictions的类型实际上是Seq[Seq[(Double, Double)]]。因此,当您在其上调用map时,您必须提供一个带有Seq[(Double, Double)]类型参数的函数,但是您从(Double, Double)传递函数。

case (rating, prediction) 

错误,将其更改为

case seqOfPairs: Seq[(Double, Double)] //actually ((Double, Double) is erased in compile time)

我希望这会让你以正确的方式前进。