V
- the type of NumberVector handled by this AlgorithmD
- distance type@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<?>,D extends NumberDistance<D,?>> extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
* H.-P. Kriegel, P. Kröger, E. Schubert, A. Zimek:
Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data
In: Proceedings of the 13th Pacific-Asia Conference on Knowledge Discovery
and Data Mining (PAKDD), Bangkok, Thailand, 2009
Modifier and Type | Class and Description |
---|---|
static class |
SOD.Parameterizer<V extends NumberVector<?>,D extends NumberDistance<D,?>>
Parameterization class.
|
static class |
SOD.SODModel
SOD Model class
|
Modifier and Type | Field and Description |
---|---|
private double |
alpha
Alpha (discriminance value).
|
private int |
knn
Neighborhood size.
|
private static Logging |
LOG
The logger for this class.
|
private boolean |
models
Report models.
|
private SimilarityFunction<V,D> |
similarityFunction
Similarity function to use.
|
Constructor and Description |
---|
SOD(int knn,
double alpha,
SimilarityFunction<V,D> similarityFunction,
boolean models)
Constructor with parameters.
|
Modifier and Type | Method and Description |
---|---|
private static double[] |
computePerDimensionVariances(Relation<? extends NumberVector<?>> relation,
Vector center,
DBIDs neighborhood)
Compute the per-dimension variances for the given neighborhood and center.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
private DBIDs |
getNearestNeighbors(Relation<V> relation,
SimilarityQuery<V,D> simQ,
DBIDRef queryObject)
Provides the k nearest neighbors in terms of the shared nearest neighbor
distance.
|
OutlierResult |
run(Relation<V> relation)
Performs the SOD algorithm on the given database.
|
private double |
subspaceOutlierDegree(V queryObject,
Vector center,
BitSet weightVector)
Compute SOD score.
|
makeParameterDistanceFunction, run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private int knn
private double alpha
private SimilarityFunction<V extends NumberVector<?>,D extends NumberDistance<D,?>> similarityFunction
private boolean models
public SOD(int knn, double alpha, SimilarityFunction<V,D> similarityFunction, boolean models)
knn
- knn valuealpha
- Alpha parametersimilarityFunction
- Shared nearest neighbor similarity functionmodels
- Report generated modelspublic OutlierResult run(Relation<V> relation)
relation
- Data relation to processprivate DBIDs getNearestNeighbors(Relation<V> relation, SimilarityQuery<V,D> simQ, DBIDRef queryObject)
relation
- the database holding the objectssimQ
- similarity functionqueryObject
- the query object for which the kNNs should be determinedprivate static double[] computePerDimensionVariances(Relation<? extends NumberVector<?>> relation, Vector center, DBIDs neighborhood)
relation
- Data relationcenter
- Center vectorneighborhood
- Neighborsprivate double subspaceOutlierDegree(V queryObject, Vector center, BitSet weightVector)
queryObject
- Query objectcenter
- Center vectorweightVector
- Weight vectorpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<OutlierResult>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<OutlierResult>