Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private def precisionAtK(k: Int, actual: Array[Int], predicted: Array[Int]): Double = {
- val pred = predicted.take(k)
- val a = actual.length
- actual.intersect(pred).length / a : Double
- }
- def averagePrecisionAtK(k: Int) = {
- new Score[Array[Int]] with PerformanceScore {
- //TODO
- override def evaluate(data: DataSet[(Array[Int], Array[Int])]): DataSet[Double] = {
- val perUser = data.map { trueAndPred => precisionAtK(k, trueAndPred._1, trueAndPred._2)
- val pred = trueAndPred._2.take(k)
- val a = trueAndPred._1.length
- trueAndPred._1.intersect(pred).length / a : Double}
- }
- //val perUser = data.map(trueAndPred => 2)
- perUser.mean()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement