apache/spark — pull request #2667 by coderxiang (2014-10-06 05:34:33+00:00)
Title: SPARK-3568 [mllib] add ranking metrics

Add common metrics for ranking algorithms (http://www-nlp.stanford.edu/IR-book/), including:
- Mean Average Precision
- Precision@n: top-n precision
- Discounted cumulative gain (DCG) and NDCG

The following methods and the corresponding tests are implemented:

```
class RankingMetrics(predictionAndLabels: RDD[(Array[Double], Array[Double])]) {
/* Returns the precsion@k for each query */
lazy val precAtK: RDD[Array[Double]]

/* Returns the average precision for each query */
lazy val avePrec: RDD[Double]

/*Returns the mean average precision (MAP) of all the queries*/
lazy val meanAvePrec: Double

/*Returns the normalized discounted cumulative gain for each query */
lazy val ndcg: RDD[Double]

/* Returns the mean NDCG of all the queries */
lazy val meanNdcg: Double
}
```