Class DropEigenPairFilter

  • All Implemented Interfaces:
    EigenPairFilter

    @Title("Drop EigenPair Filter")
    public class DropEigenPairFilter
    extends java.lang.Object
    implements EigenPairFilter
    The "drop" filter looks for the largest drop in normalized relative eigenvalues.

    Let \( s_1 \ldots s_n \) be the eigenvalues.

    Let \( a_k := 1/(n-k) \sum_{i=k..n} s_i \)

    Then \( r_k := s_k / a_k \) is the relative eigenvalue.

    The drop filter searches for \(\operatorname{arg\,max}_k r_k / r_{k+1} \)

    Since:
    0.5.0
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  DropEigenPairFilter.Par
      Parameterization class.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static double DEFAULT_WALPHA
      The default value for walpha.
      private double walpha
      The noise tolerance level for weak eigenvectors
    • Constructor Summary

      Constructors 
      Constructor Description
      DropEigenPairFilter​(double walpha)
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DEFAULT_WALPHA

        public static final double DEFAULT_WALPHA
        The default value for walpha. Not used by default, we're going for maximum contrast only.
        See Also:
        Constant Field Values
      • walpha

        private double walpha
        The noise tolerance level for weak eigenvectors
    • Constructor Detail

      • DropEigenPairFilter

        public DropEigenPairFilter​(double walpha)
        Constructor.
        Parameters:
        walpha -
    • 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