de.lmu.ifi.dbs.elki.algorithm.outlier
Class SOD<V extends NumberVector<V,?>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<OutlierResult>
      extended by de.lmu.ifi.dbs.elki.algorithm.outlier.SOD<V>
Type Parameters:
V - the type of NumberVector handled by this Algorithm
All Implemented Interfaces:
Algorithm, OutlierAlgorithm, InspectionUtilFrequentlyScanned, Parameterizable

@Title(value="SOD: Subspace outlier degree")
@Description(value="Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data")
@Reference(authors="H.-P. Kriegel, P. Kr\u00f6ger, E. Schubert, A. Zimek",
           title="Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data",
           booktitle="Proceedings of the 13th Pacific-Asia Conference on Knowledge Discovery and Data Mining (PAKDD), Bangkok, Thailand, 2009",
           url="http://dx.doi.org/10.1007/978-3-642-01307-2")
public class SOD<V extends NumberVector<V,?>>
extends AbstractAlgorithm<OutlierResult>
implements OutlierAlgorithm


Nested Class Summary
static class SOD.Parameterizer<V extends NumberVector<V,?>>
          Parameterization class.
static class SOD.SODModel<O extends NumberVector<O,?>>
           
protected static class SOD.SODProxyScoreResult
          Proxy class that converts a model result to an actual SOD score result.
 
Field Summary
private  double alpha
          Holds the value of ALPHA_ID.
static OptionID ALPHA_ID
          Parameter to indicate the multiplier for the discriminance value for discerning small from large variances.
private  int knn
          Holds the value of KNN_ID.
static OptionID KNN_ID
          Parameter to specify the number of shared nearest neighbors to be considered for learning the subspace properties., must be an integer greater than 0.
private static Logging logger
          The logger for this class.
private  SharedNearestNeighborSimilarityFunction<V> similarityFunction
          The similarity function.
 
Constructor Summary
SOD(int knn, double alpha, SharedNearestNeighborSimilarityFunction<V> similarityFunction)
          Constructor with parameters.
 
Method Summary
 TypeInformation[] getInputTypeRestriction()
          Get the input type restriction used for negotiating the data query.
private  KNNList<DoubleDistance> getKNN(Relation<V> database, SimilarityQuery<V,IntegerDistance> snnInstance, DBID queryObject)
          Provides the k nearest neighbors in terms of the shared nearest neighbor distance.
protected  Logging getLogger()
          Get the (STATIC) logger for this class.
 OutlierResult run(Relation<V> relation)
          Performs the SOD algorithm on the given database.
 
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
 
Methods inherited from interface de.lmu.ifi.dbs.elki.algorithm.outlier.OutlierAlgorithm
run
 

Field Detail

logger

private static final Logging logger
The logger for this class.


KNN_ID

public static final OptionID KNN_ID
Parameter to specify the number of shared nearest neighbors to be considered for learning the subspace properties., must be an integer greater than 0.


ALPHA_ID

public static final OptionID ALPHA_ID
Parameter to indicate the multiplier for the discriminance value for discerning small from large variances.


knn

private int knn
Holds the value of KNN_ID.


alpha

private double alpha
Holds the value of ALPHA_ID.


similarityFunction

private SharedNearestNeighborSimilarityFunction<V extends NumberVector<V,?>> similarityFunction
The similarity function.

Constructor Detail

SOD

public SOD(int knn,
           double alpha,
           SharedNearestNeighborSimilarityFunction<V> similarityFunction)
Constructor with parameters.

Parameters:
knn - knn value
alpha - Alpha parameter
similarityFunction - Shared nearest neighbor similarity function
Method Detail

run

public OutlierResult run(Relation<V> relation)
                  throws IllegalStateException
Performs the SOD algorithm on the given database.

Parameters:
relation - Data relation to process
Throws:
IllegalStateException

getKNN

private KNNList<DoubleDistance> getKNN(Relation<V> database,
                                       SimilarityQuery<V,IntegerDistance> snnInstance,
                                       DBID queryObject)
Provides the k nearest neighbors in terms of the shared nearest neighbor distance.

The query object is excluded from the knn list.

Parameters:
database - the database holding the objects
snnInstance - similarity function
queryObject - the query object for which the kNNs should be determined
Returns:
the k nearest neighbors in terms of the shared nearest neighbor distance without the query object

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<OutlierResult>
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<OutlierResult>
Returns:
the static logger

Release 0.4.0 (2011-09-20_1324)