Class HellingerHistogramNormalization<V extends elki.data.NumberVector>

  • Type Parameters:
    V - vector type
    All Implemented Interfaces:
    elki.datasource.bundle.BundleStreamSource, Normalization<V>, elki.datasource.filter.ObjectFilter, elki.datasource.filter.StreamFilter

    public class HellingerHistogramNormalization<V extends elki.data.NumberVector>
    extends AbstractVectorStreamConversionFilter<V,​V>
    implements Normalization<V>
    Normalize histograms by scaling them to unit absolute sum, then taking the square root of the absolute value in each attribute, times the normalization constant \(1/\sqrt{2}\).

    \[ H(x_i)=\tfrac{\sqrt{|x_i|/\Sigma}}{\sqrt{2}} \quad\text{ with } \Sigma=\sum\nolimits_i |x_i| \]

    Using Euclidean distance (linear kernel) and this transformation is the same as using Hellinger distance: HellingerDistance

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Constructor Detail

      • HellingerHistogramNormalization

        public HellingerHistogramNormalization()
        Constructor.
    • Method Detail

      • filterSingleObject

        protected V filterSingleObject​(V featureVector)
        Description copied from class: AbstractStreamConversionFilter
        Normalize a single instance. You can implement this as UnsupportedOperationException if you override both public "normalize" functions!
        Specified by:
        filterSingleObject in class AbstractStreamConversionFilter<V extends elki.data.NumberVector,​V extends elki.data.NumberVector>
        Parameters:
        featureVector - Database object to normalize
        Returns:
        Normalized database object
      • convertedType

        protected elki.data.type.SimpleTypeInformation<? super V> convertedType​(elki.data.type.SimpleTypeInformation<V> in)
        Description copied from class: AbstractStreamConversionFilter
        Get the output type from the input type after conversion.
        Specified by:
        convertedType in class AbstractStreamConversionFilter<V extends elki.data.NumberVector,​V extends elki.data.NumberVector>
        Parameters:
        in - input type restriction
        Returns:
        output type restriction