de.lmu.ifi.dbs.elki.algorithm.statistics
Class RankingQualityHistogram<O,D extends NumberDistance<D,?>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<R>
      extended by de.lmu.ifi.dbs.elki.algorithm.AbstractDistanceBasedAlgorithm<O,D,CollectionResult<DoubleVector>>
          extended by de.lmu.ifi.dbs.elki.algorithm.statistics.RankingQualityHistogram<O,D>
Type Parameters:
O - Object type
D - Distance type
All Implemented Interfaces:
Algorithm, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="Ranking Quality Histogram")
@Description(value="Evaluates the effectiveness of a distance function via the obtained rankings.")
public class RankingQualityHistogram<O,D extends NumberDistance<D,?>>
extends AbstractDistanceBasedAlgorithm<O,D,CollectionResult<DoubleVector>>

Evaluate a distance function with respect to kNN queries. For each point, the neighbors are sorted by distance, then the ROC AUC is computed. A score of 1 means that the distance function provides a perfect ordering of relevant neighbors first, then irrelevant neighbors. A value of 0.5 can be obtained by random sorting. A value of 0 means the distance function is inverted, i.e. a similarity. TODO: Add sampling


Nested Class Summary
static class RankingQualityHistogram.Parameterizer<O,D extends NumberDistance<D,?>>
          Parameterization class.
 
Field Summary
static OptionID HISTOGRAM_BINS_ID
          Option to configure the number of bins to use.
private static Logging logger
          The logger for this class.
(package private)  int numbins
          Number of bins to use.
 
Fields inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractDistanceBasedAlgorithm
DISTANCE_FUNCTION_ID
 
Constructor Summary
RankingQualityHistogram(DistanceFunction<? super O,D> distanceFunction, int numbins)
          Constructor.
 
Method Summary
 TypeInformation[] getInputTypeRestriction()
          Get the input type restriction used for negotiating the data query.
protected  Logging getLogger()
          Get the (STATIC) logger for this class.
 HistogramResult<DoubleVector> run(Database database, Relation<O> relation)
           
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractDistanceBasedAlgorithm
getDistanceFunction
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm
makeParameterDistanceFunction, run
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final Logging logger
The logger for this class.


HISTOGRAM_BINS_ID

public static final OptionID HISTOGRAM_BINS_ID
Option to configure the number of bins to use.


numbins

int numbins
Number of bins to use.

Constructor Detail

RankingQualityHistogram

public RankingQualityHistogram(DistanceFunction<? super O,D> distanceFunction,
                               int numbins)
Constructor.

Parameters:
distanceFunction - Distance function to evaluate
numbins - Number of bins
Method Detail

run

public HistogramResult<DoubleVector> run(Database database,
                                         Relation<O> relation)

getInputTypeRestriction

public TypeInformation[] getInputTypeRestriction()
Description copied from class: AbstractAlgorithm
Get the input type restriction used for negotiating the data query.

Specified by:
getInputTypeRestriction in interface Algorithm
Specified by:
getInputTypeRestriction in class AbstractAlgorithm<CollectionResult<DoubleVector>>
Returns:
Type restriction

getLogger

protected Logging getLogger()
Description copied from class: AbstractAlgorithm
Get the (STATIC) logger for this class.

Specified by:
getLogger in class AbstractAlgorithm<CollectionResult<DoubleVector>>
Returns:
the static logger

Release 0.4.0 (2011-09-20_1324)