我需要使用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*err
和rating-prediction
来解决编译错误。它说"无法解析符号*"
答案 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)
我希望这会让你以正确的方式前进。