Class AttributeWiseCDFNormalization<V extends NumberVector>

  • Type Parameters:
    V - vector type
    All Implemented Interfaces:
    Normalization<V>, ObjectFilter
    Direct Known Subclasses:
    AttributeWiseBetaNormalization

    public class AttributeWiseCDFNormalization<V extends NumberVector>
    extends java.lang.Object
    implements Normalization<V>
    Class to perform and undo a normalization on real vectors by estimating the distribution of values along each dimension independently, then rescaling objects to the cumulative density function (CDF) value at the original coordinate.

    This process is for example also mentioned in section 3.4 of

    Effects of Feature Normalization on Image Retrieval
    S. Aksoy, R. M. Haralick

    but they do not detail how to obtain an appropriate function `F`.

    Since:
    0.6.0
    Author:
    Erich Schubert
    • Constructor Detail

      • AttributeWiseCDFNormalization

        public AttributeWiseCDFNormalization​(java.util.List<? extends DistributionEstimator<?>> estimators)
        Constructor.
        Parameters:
        estimators - Distribution estimators
    • Method Detail

      • findBestFit

        protected Distribution findBestFit​(java.util.List<V> col,
                                           AttributeWiseCDFNormalization.Adapter adapter,
                                           int d,
                                           double[] test)
        Find the best fitting distribution.
        Parameters:
        col - Column of table
        adapter - Adapter for accessing the data
        d - Dimension
        test - Scatch space for testing goodness of fit
        Returns:
        Best fit distribution
      • constantZero

        protected boolean constantZero​(java.util.List<V> column,
                                       AttributeWiseCDFNormalization.Adapter adapter)
        Test if an attribute is constant zero.
        Parameters:
        column - Column
        adapter - Data accessor.
        Returns:
        true if all values are zero
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object