
V - vector type@Title(value="HiCS: High Contrast Subspaces for Density-Based Outlier Ranking") @Description(value="Algorithm to compute High Contrast Subspaces in a database as a pre-processing step for for density-based outlier ranking methods.") @Reference(authors="Fabian Keller, Emmanuel M\u00fcller, Klemens B\u00f6hm", title="HiCS: High Contrast Subspaces for Density-Based Outlier Ranking", booktitle="Proc. IEEE 28th International Conference on Data Engineering (ICDE 2012)", url="http://dx.doi.org/10.1109/ICDE.2012.88") public class HiCS<V extends NumberVector<?>> extends AbstractAlgorithm<OutlierResult> implements OutlierAlgorithm
Fabian Keller, Emmanuel Müller, Klemens Böhm:
HiCS: High Contrast Subspaces for Density-Based Outlier Ranking
in: Proc. IEEE 28th Int. Conf. on Data Engineering (ICDE 2012), Washington,
DC, USA
| Modifier and Type | Class and Description |
|---|---|
static class |
HiCS.HiCSSubspace
BitSet that holds a contrast value as field.
|
static class |
HiCS.Parameterizer<V extends NumberVector<?>>
Parameterization class.
|
| Modifier and Type | Field and Description |
|---|---|
private double |
alpha
Alpha threshold.
|
private int |
cutoff
Candidates limit.
|
private static Logging |
LOG
The Logger for this class.
|
private int |
m
Monte-Carlo iterations.
|
private static int |
MAX_RETRIES
Maximum number of retries.
|
private OutlierAlgorithm |
outlierAlgorithm
Outlier detection algorithm.
|
private RandomFactory |
rnd
Random generator.
|
private GoodnessOfFitTest |
statTest
Statistical test to use.
|
| Constructor and Description |
|---|
HiCS(int m,
double alpha,
OutlierAlgorithm outlierAlgorithm,
GoodnessOfFitTest statTest,
int cutoff,
RandomFactory rnd)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
private ArrayList<ArrayDBIDs> |
buildOneDimIndexes(Relation<? extends NumberVector<?>> relation)
Calculates "index structures" for every attribute, i.e. sorts a
ModifiableArray of every DBID in the database for every dimension and
stores them in a list
|
private void |
calculateContrast(Relation<? extends NumberVector<?>> relation,
HiCS.HiCSSubspace subspace,
ArrayList<ArrayDBIDs> subspaceIndex,
Random random)
Calculates the actual contrast of a given subspace.
|
private Set<HiCS.HiCSSubspace> |
calculateSubspaces(Relation<? extends NumberVector<?>> relation,
ArrayList<ArrayDBIDs> subspaceIndex,
Random random)
Identifies high contrast subspaces in a given full-dimensional database.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
OutlierResult |
run(Relation<V> relation)
Perform HiCS on a given database.
|
makeParameterDistanceFunction, runclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrunprivate static final Logging LOG
private static final int MAX_RETRIES
private int m
private double alpha
private OutlierAlgorithm outlierAlgorithm
private GoodnessOfFitTest statTest
private int cutoff
private RandomFactory rnd
public HiCS(int m,
double alpha,
OutlierAlgorithm outlierAlgorithm,
GoodnessOfFitTest statTest,
int cutoff,
RandomFactory rnd)
m - value of malpha - value of alphaoutlierAlgorithm - Inner outlier detection algorithmstatTest - Test to usecutoff - Candidate limitrnd - Random generatorpublic OutlierResult run(Relation<V> relation)
relation - the databaseprivate ArrayList<ArrayDBIDs> buildOneDimIndexes(Relation<? extends NumberVector<?>> relation)
relation - Relation to indexprivate Set<HiCS.HiCSSubspace> calculateSubspaces(Relation<? extends NumberVector<?>> relation, ArrayList<ArrayDBIDs> subspaceIndex, Random random)
relation - the relation the HiCS should be evaluated forsubspaceIndex - Subspace indexesprivate void calculateContrast(Relation<? extends NumberVector<?>> relation, HiCS.HiCSSubspace subspace, ArrayList<ArrayDBIDs> subspaceIndex, Random random)
relation - Relation to processsubspace - SubspacesubspaceIndex - Subspace indexespublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<OutlierResult>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<OutlierResult>