Class HistogramJitterFilter<V extends NumberVector>

  • Type Parameters:
    V - Vector type
    All Implemented Interfaces:
    BundleStreamSource, ObjectFilter, StreamFilter

    @Description("Add uniform Jitter to a dataset, while preserving the total vector sum.")
    public class HistogramJitterFilter<V extends NumberVector>
    extends AbstractVectorStreamConversionFilter<V,​V>
    Add jitter, preserving the histogram properties (same sum, nonnegative).

    For each vector, the total sum of all dimensions is computed.
    Then a random vector of the average length jitter * scale is added and the result normalized to the original vectors sum. The individual dimensions are drawn from an exponential distribution with scale jitter / dimensionality, so it is expected that the error in most dimensions will be low, and higher in few.

    This is designed to degrade the quality of a histogram, while preserving the total sum (e.g., to keep the normalization). The factor "jitter" can be used to control the degradation amount.

    Since:
    0.5.5
    Author:
    Erich Schubert