@Reference(authors="Hans-Peter Kriegel, Peer Kr\u00f6ger, Erich Schubert, Arthur Zimek",title="Outlier Detection in Arbitrarily Oriented Subspaces",booktitle="Proc. IEEE Int. Conf. on Data Mining (ICDM 2012)",url="https://doi.org/10.1109/ICDM.2012.21",bibkey="DBLP:conf/icdm/KriegelKSZ12") @Reference(title="Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography",authors="M. A. Fischler, R. C. Bolles",booktitle="Communications of the ACM 24(6)",url="https://doi.org/10.1145/358669.358692",bibkey="DBLP:journals/cacm/FischlerB81") public class RANSACCovarianceMatrixBuilder extends java.lang.Object implements CovarianceMatrixBuilder
This is an experimental adoption of RANSAC to this problem, not a generic RANSAC implementation!
While using RANSAC for PCA at first sounds like a good idea, it does not work very well in high-dimensional spaces. The problem is that PCA has O(n²) degrees of freedom, so we need to sample very many objects, then perform an O(n³) matrix operation to compute PCA, for each attempt.
References:
RANSAC for PCA was a side note in:
Hans-Peter Kriegel, Peer Kröger, Erich Schubert, Arthur Zimek
Outlier Detection in Arbitrarily Oriented Subspaces
In: Proc. IEEE International Conference on Data Mining (ICDM 2012)
The basic RANSAC idea was explained in:
Random sample consensus: a paradigm for model fitting with applications to
image analysis and automated cartography
M. A. Fischler, R. C. Bolles
Communications of the ACM 24(6)
Modifier and Type | Class and Description |
---|---|
static class |
RANSACCovarianceMatrixBuilder.Parameterizer
Parameterization class
|
Modifier and Type | Field and Description |
---|---|
(package private) int |
iterations
Number of iterations to perform
|
(package private) RandomFactory |
rnd
Random generator
|
Constructor and Description |
---|
RANSACCovarianceMatrixBuilder(int iterations,
RandomFactory rnd)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double[][] |
processIds(DBIDs ids,
Relation<? extends NumberVector> relation)
Compute Covariance Matrix for a collection of database IDs.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
processQueryResults, processQueryResults, processRelation
int iterations
RandomFactory rnd
public RANSACCovarianceMatrixBuilder(int iterations, RandomFactory rnd)
iterations
- Number of iterations (attempts) to tryrnd
- random generatorpublic double[][] processIds(DBIDs ids, Relation<? extends NumberVector> relation)
CovarianceMatrixBuilder
processIds
in interface CovarianceMatrixBuilder
ids
- a collection of idsrelation
- the database usedCopyright © 2019 ELKI Development Team. License information.