Class RelativeEigenPairFilter
- java.lang.Object
-
- elki.math.linearalgebra.pca.filter.RelativeEigenPairFilter
-
- All Implemented Interfaces:
EigenPairFilter
@Title("Relative EigenPair Filter") @Description("Sorts the eigenpairs in decending order of their eigenvalues and returns those eigenpairs, whose eigenvalue is above the average (\'expected\') eigenvalue of the remaining eigenvectors.") public class RelativeEigenPairFilter extends java.lang.Object implements EigenPairFilter
The RelativeEigenPairFilter sorts the eigenpairs in descending order of their eigenvalues and marks the first eigenpairs who are a certain factor above the average of the remaining eigenvalues.It is closely related to the
WeakEigenPairFilter
, and differs mostly by comparing to the remaining Eigenvalues, not to the total sum.There are some situations where one or the other is superior, especially when it comes to handling nested clusters and strong global correlations that are not too interesting. These benefits usually only make a difference at higher dimensionalities.
- Since:
- 0.2
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RelativeEigenPairFilter.Par
Parameterization class.
-
Field Summary
Fields Modifier and Type Field Description static double
DEFAULT_RALPHA
The default value for ralpha.private double
ralpha
The noise tolerance level for weak eigenvectors-
Fields inherited from interface elki.math.linearalgebra.pca.filter.EigenPairFilter
PCA_EIGENPAIR_FILTER
-
-
Constructor Summary
Constructors Constructor Description RelativeEigenPairFilter(double ralpha)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
filter(double[] eigenValues)
Filters the specified eigenvalues into strong and weak eigenvalues, where strong eigenvalues have high variance and weak eigenvalues have small variance.
-
-
-
Field Detail
-
DEFAULT_RALPHA
public static final double DEFAULT_RALPHA
The default value for ralpha.- See Also:
- Constant Field Values
-
ralpha
private double ralpha
The noise tolerance level for weak eigenvectors
-
-
Method Detail
-
filter
public int filter(double[] eigenValues)
Description copied from interface:EigenPairFilter
Filters the specified eigenvalues into strong and weak eigenvalues, where strong eigenvalues have high variance and weak eigenvalues have small variance.- Specified by:
filter
in interfaceEigenPairFilter
- Parameters:
eigenValues
- the array of eigenvalues, must be sorted descending- Returns:
- the number of eigenvectors to keep
-
-