Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

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

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm<V,OutlierResult>
          extended by de.lmu.ifi.dbs.elki.algorithm.outlier.SOD<V,D>
Type Parameters:
V - the type of NumberVector handled by this Algorithm
D - the type of Distance used by this Algorithm
All Implemented Interfaces:
Algorithm<V,OutlierResult>, 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,?>,D extends Distance<D>>
extends AbstractAlgorithm<V,OutlierResult>

Author:
Arthur Zimek

Nested Class Summary
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_PARAM.
static OptionID ALPHA_ID
          OptionID for ALPHA_PARAM
 DoubleParameter ALPHA_PARAM
          Parameter to indicate the multiplier for the discriminance value for discerning small from large variances.
private  int knn
          Holds the value of KNN_PARAM.
static OptionID KNN_ID
          OptionID for KNN_PARAM
private  IntParameter KNN_PARAM
          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  SharedNearestNeighborSimilarityFunction<V,D> similarityFunction
          The similarity function.
static AssociationID<SOD.SODModel<?>> SOD_MODEL
          The association id to associate a subspace outlier degree.
static AssociationID<Double> SOD_SCORE
          The association id for the raw scores.
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
SOD(Parameterization config)
          Constructor, adhering to Parameterizable
 
Method Summary
private  KNNList<DoubleDistance> getKNN(Database<V> database, Integer queryObject)
          Provides the k nearest neighbors in terms of the shared nearest neighbor distance.
protected  OutlierResult runInTime(Database<V> database)
          Performs the SOD algorithm on the given database.
 
Methods inherited from class de.lmu.ifi.dbs.elki.algorithm.AbstractAlgorithm
isTime, isVerbose, run, setTime, setVerbose
 
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debugFine, debugFiner, debugFinest, exception, progress, verbose, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SOD_MODEL

public static final AssociationID<SOD.SODModel<?>> SOD_MODEL
The association id to associate a subspace outlier degree.


SOD_SCORE

public static final AssociationID<Double> SOD_SCORE
The association id for the raw scores.


KNN_ID

public static final OptionID KNN_ID
OptionID for KNN_PARAM


KNN_PARAM

private final IntParameter KNN_PARAM
Parameter to specify the number of shared nearest neighbors to be considered for learning the subspace properties., must be an integer greater than 0.

Default value: 1

Key: -sod.knn


knn

private int knn
Holds the value of KNN_PARAM.


ALPHA_ID

public static final OptionID ALPHA_ID
OptionID for ALPHA_PARAM


ALPHA_PARAM

public final DoubleParameter ALPHA_PARAM
Parameter to indicate the multiplier for the discriminance value for discerning small from large variances.

Default value: 1.1

Key: -sod.alpha


alpha

private double alpha
Holds the value of ALPHA_PARAM.


similarityFunction

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

Constructor Detail

SOD

public SOD(Parameterization config)
Constructor, adhering to Parameterizable

Parameters:
config - Parameterization
Method Detail

runInTime

protected OutlierResult runInTime(Database<V> database)
                           throws IllegalStateException
Performs the SOD algorithm on the given database.

Specified by:
runInTime in class AbstractAlgorithm<V extends NumberVector<V,?>,OutlierResult>
Parameters:
database - the database to run the algorithm on
Returns:
the Result computed by this algorithm
Throws:
IllegalStateException - if the algorithm has not been initialized properly (e.g. the setParameters(String[]) method has been failed to be called).

getKNN

private KNNList<DoubleDistance> getKNN(Database<V> database,
                                       Integer 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
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

Release 0.3 (2010-03-31_1612)