Package elki.outlier.intrinsic
Class ISOS<O>
- java.lang.Object
-
- elki.outlier.intrinsic.ISOS<O>
-
- Type Parameters:
O- Object type.
- All Implemented Interfaces:
elki.Algorithm,OutlierAlgorithm
@Title("ISOS: Intrinsic Stochastic Outlier Selection") @Reference(authors="Erich Schubert, Michael Gertz", title="Intrinsic t-Stochastic Neighbor Embedding for Visualization and Outlier Detection: A Remedy Against the Curse of Dimensionality?", booktitle="Proc. Int. Conf. Similarity Search and Applications, SISAP 2017", url="https://doi.org/10.1007/978-3-319-68474-1_13", bibkey="DBLP:conf/sisap/SchubertG17") public class ISOS<O> extends java.lang.Object implements OutlierAlgorithmIntrinsic Stochastic Outlier Selection.Reference:
Erich Schubert, Michael Gertz
Intrinsic t-Stochastic Neighbor Embedding for Visualization and Outlier Detection: A Remedy Against the Curse of Dimensionality?
Proc. Int. Conf. Similarity Search and Applications, SISAP 2017- Since:
- 0.7.5
- Author:
- Erich Schubert
-
-
Field Summary
Fields Modifier and Type Field Description protected elki.distance.Distance<? super O>distanceDistance function used.protected elki.math.statistics.intrinsicdimensionality.DistanceBasedIntrinsicDimensionalityEstimatorestimatorEstimator of intrinsic dimensionality.protected intkNumber of neighbors (not including query point).private static elki.logging.LoggingLOGClass logger.protected doublephiExpected outlier rate.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static voidadjustDistances(elki.database.ids.DBIDRef ignore, elki.database.ids.DoubleDBIDListIter ki, double max, double id, elki.database.ids.ModifiableDoubleDBIDList dists)protected doubleestimateID(elki.database.ids.DBIDRef ignore, elki.database.ids.DoubleDBIDListIter it, double[] p)Estimate the local intrinsic dimensionality.elki.data.type.TypeInformation[]getInputTypeRestriction()static voidnominateNeighbors(elki.database.ids.DBIDIter ignore, elki.database.ids.DBIDArrayIter di, double[] p, double norm, elki.database.datastore.WritableDoubleDataStore scores)Vote for neighbors not being outliers.OutlierResultrun(elki.database.relation.Relation<O> relation)Run the algorithm.static elki.math.DoubleMinMaxtransformScores(elki.database.datastore.WritableDoubleDataStore scores, elki.database.ids.DBIDs ids, double logPerp, double phi)Transform scores-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface elki.outlier.OutlierAlgorithm
autorun
-
-
-
-
Field Detail
-
LOG
private static final elki.logging.Logging LOG
Class logger.
-
distance
protected elki.distance.Distance<? super O> distance
Distance function used.
-
k
protected int k
Number of neighbors (not including query point).
-
estimator
protected elki.math.statistics.intrinsicdimensionality.DistanceBasedIntrinsicDimensionalityEstimator estimator
Estimator of intrinsic dimensionality.
-
phi
protected double phi
Expected outlier rate.
-
-
Constructor Detail
-
ISOS
public ISOS(elki.distance.Distance<? super O> distance, int k, elki.math.statistics.intrinsicdimensionality.DistanceBasedIntrinsicDimensionalityEstimator estimator)
Constructor.- Parameters:
distance- Distance functionk- Number of neighbors to considerestimator- Estimator of intrinsic dimensionality.
-
-
Method Detail
-
getInputTypeRestriction
public elki.data.type.TypeInformation[] getInputTypeRestriction()
- Specified by:
getInputTypeRestrictionin interfaceelki.Algorithm
-
run
public OutlierResult run(elki.database.relation.Relation<O> relation)
Run the algorithm.- Parameters:
relation- data relation.- Returns:
- outlier detection result
-
adjustDistances
protected static void adjustDistances(elki.database.ids.DBIDRef ignore, elki.database.ids.DoubleDBIDListIter ki, double max, double id, elki.database.ids.ModifiableDoubleDBIDList dists)
-
estimateID
protected double estimateID(elki.database.ids.DBIDRef ignore, elki.database.ids.DoubleDBIDListIter it, double[] p)Estimate the local intrinsic dimensionality.- Parameters:
ignore- Object to ignoreit- Iteratorp- Scratch array- Returns:
- ID estimate
-
nominateNeighbors
public static void nominateNeighbors(elki.database.ids.DBIDIter ignore, elki.database.ids.DBIDArrayIter di, double[] p, double norm, elki.database.datastore.WritableDoubleDataStore scores)Vote for neighbors not being outliers. The key method of SOS.- Parameters:
ignore- Object to ignoredi- Neighbor object IDs.p- Probabilitiesnorm- Normalization factor (1/sum)scores- Output score storage
-
transformScores
public static elki.math.DoubleMinMax transformScores(elki.database.datastore.WritableDoubleDataStore scores, elki.database.ids.DBIDs ids, double logPerp, double phi)Transform scores- Parameters:
scores- Scores to transformids- DBIDs to processlogPerp- log perplexityphi- Expected outlier rate- Returns:
- Minimum and maximum scores
-
-