Previous topic

medpy.features.utilities.join

Next topic

medpy.features.histogram.triangular_membership

This Page

medpy.features.histogram.fuzzy_histogram

medpy.features.histogram.fuzzy_histogram(a, bins=10, range=None, normed=False, membership='triangular', smoothness=None, guarantee=False)[source]

Compute a fuzzy histogram. The percentage of a value’s membership in a bin is computed using the selected membership function. This functions stays as near as possible to the numpy.histogram behaviour.

Parameters:

a : array_like

Input data; The histogram is computed over the flattened array (with ravel()).

bins : int

The number of equal-width bins in the given range (10, by default).

range : (float, float)

The lower and upper range of the bins; If not provided, range is simply (a.min(), a.max()); Values outside the range are ignored.

normed : bool

If False, the result will contain the number of samples in each bin; If True, the result is the value of the probability density function at the bin, normalized such that the integral over the range is 1.

membership : string

Select the type of the fuzzy membership function; See package description for available options.

smoothness : float

The smoothness of the fuzzy function; See package description and the membership functions for more details.

guarantee : bool

Guarantee that all values contribute equally to the histogram; when this value is set, the range term is ignored; see package descriptions for details.

Returns:

hist : array

The values of the histogram. See normed and weights for a description of the possible semantics.

bin_edges : array of dtype float

Return the bin edges (length(hist)+1).

Notes

See package description for more details on the usage.

Examples

>>> import numpy as np
>>> from medpy.features import fuzzy_histogram
>>> a = np.asarray([1,2,3,3.2,3.4,3.5,7.5,7.6,7.8,8,9,10])
>>> np.histogram(a, bins=4)
(array([4, 2, 2, 4]), array([  1.  ,   3.25,   5.5 ,   7.75,  10.  ]))
>>> fuzzy_histogram(a, bins=4)
(array([ 3.4       ,  2.04444444,  2.04444444,  3.4       ]), array([  1.  ,   3.25,   5.5 ,   7.75,  10.  ]))
>>> fuzzy_histogram(a, bins=4, membership='sigmoid')
(array([ 3.34304743,  2.15613626,  2.15613626,  3.34304743]), array([  1.  ,   3.25,   5.5 ,   7.75,  10.  ]))