org.apache.spark.mllib.evaluation
Class RankingMetrics<T>

Object
  extended by org.apache.spark.mllib.evaluation.RankingMetrics<T>
All Implemented Interfaces:
java.io.Serializable, Logging

public class RankingMetrics<T>
extends Object
implements Logging, scala.Serializable

::Experimental:: Evaluator for ranking algorithms.

Java users should use RankingMetrics$.of to create a RankingMetrics instance.

param: predictionAndLabels an RDD of (predicted ranking, ground truth set) pairs.

See Also:
Serialized Form

Constructor Summary
RankingMetrics(RDD<scala.Tuple2<Object,Object>> predictionAndLabels, scala.reflect.ClassTag<T> evidence$1)
           
 
Method Summary
 double meanAveragePrecision()
          Returns the mean average precision (MAP) of all the queries.
 double ndcgAt(int k)
          Compute the average NDCG value of all the queries, truncated at ranking position k.
static
<E,T extends Iterable<E>>
RankingMetrics<E>
of(JavaRDD<scala.Tuple2<T,T>> predictionAndLabels)
          Creates a RankingMetrics instance (for Java users).
 double precisionAt(int k)
          Compute the average precision of all the queries, truncated at ranking position k.
 
Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.spark.Logging
initializeIfNecessary, initializeLogging, isTraceEnabled, log_, log, logDebug, logDebug, logError, logError, logInfo, logInfo, logName, logTrace, logTrace, logWarning, logWarning
 

Constructor Detail

RankingMetrics

public RankingMetrics(RDD<scala.Tuple2<Object,Object>> predictionAndLabels,
                      scala.reflect.ClassTag<T> evidence$1)
Method Detail

of

public static <E,T extends Iterable<E>> RankingMetrics<E> of(JavaRDD<scala.Tuple2<T,T>> predictionAndLabels)
Creates a RankingMetrics instance (for Java users).

Parameters:
predictionAndLabels - a JavaRDD of (predicted ranking, ground truth set) pairs
Returns:
(undocumented)

precisionAt

public double precisionAt(int k)
Compute the average precision of all the queries, truncated at ranking position k.

If for a query, the ranking algorithm returns n (n < k) results, the precision value will be computed as #(relevant items retrieved) / k. This formula also applies when the size of the ground truth set is less than k.

If a query has an empty ground truth set, zero will be used as precision together with a log warning.

See the following paper for detail:

IR evaluation methods for retrieving highly relevant documents. K. Jarvelin and J. Kekalainen

Parameters:
k - the position to compute the truncated precision, must be positive
Returns:
the average precision at the first k ranking positions

meanAveragePrecision

public double meanAveragePrecision()
Returns the mean average precision (MAP) of all the queries. If a query has an empty ground truth set, the average precision will be zero and a log warining is generated.

Returns:
(undocumented)

ndcgAt

public double ndcgAt(int k)
Compute the average NDCG value of all the queries, truncated at ranking position k. The discounted cumulative gain at position k is computed as: sum,,i=1,,^k^ (2^{relevance of ''i''th item}^ - 1) / log(i + 1), and the NDCG is obtained by dividing the DCG value on the ground truth set. In the current implementation, the relevance value is binary.

If a query has an empty ground truth set, zero will be used as ndcg together with a log warning.

See the following paper for detail:

IR evaluation methods for retrieving highly relevant documents. K. Jarvelin and J. Kekalainen

Parameters:
k - the position to compute the truncated ndcg, must be positive
Returns:
the average ndcg at the first k ranking positions