Class 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
    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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
    • Constructor Detail

      • RelativeEigenPairFilter

        public RelativeEigenPairFilter​(double ralpha)
        Constructor.
        Parameters:
        ralpha -
    • 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 interface EigenPairFilter
        Parameters:
        eigenValues - the array of eigenvalues, must be sorted descending
        Returns:
        the number of eigenvectors to keep