V
- the type of NumberVector handled by this Algorithm@Title(value="SOD: Subspace outlier degree") @Description(value="Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data") @Reference(authors="Hans-Peter Kriegel, Peer Kr\u00f6ger, Erich Schubert, Arthur Zimek", title="Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data", booktitle="Proc. Pacific-Asia Conf. on Knowledge Discovery and Data Mining (PAKDD 2009)", url="https://doi.org/10.1007/978-3-642-01307-2_86", bibkey="DBLP:conf/pakdd/KriegelKSZ09") @Alias(value="de.lmu.ifi.dbs.elki.algorithm.outlier.SOD") public class SOD<V extends NumberVector> extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
Reference:
Hans-Peter Kriegel, Peer Kröger, Erich Schubert, Arthur Zimek:
Outlier Detection in Axis-Parallel Subspaces of High Dimensional Data
Proc. Pacific-Asia Conf. on Knowledge Discovery and Data Mining (PAKDD 2009)
Modifier and Type | Class and Description |
---|---|
static class |
SOD.Parameterizer<V extends NumberVector>
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> |
similarityFunction
Similarity function to use.
|
ALGORITHM_ID
Constructor and Description |
---|
SOD(int knn,
double alpha,
SimilarityFunction<V> similarityFunction,
boolean models)
Constructor with parameters.
|
Modifier and Type | Method and Description |
---|---|
private static double[] |
computePerDimensionVariances(Relation<? extends NumberVector> relation,
double[] 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> simQ,
DBIDRef queryObject)
Get 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,
double[] center,
long[] weightVector)
Compute SOD score.
|
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> similarityFunction
private boolean models
public SOD(int knn, double alpha, SimilarityFunction<V> 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> 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, double[] center, DBIDs neighborhood)
relation
- Data relationcenter
- Center vectorneighborhood
- Neighborsprivate double subspaceOutlierDegree(V queryObject, double[] center, long[] 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>
Copyright © 2019 ELKI Development Team. License information.