mapclassify.gadf

mapclassify.gadf(y, method='Quantiles', maxk=15, pct=0.8)[source]

Evaluate the Goodness of Absolute Deviation Fit of a Classifier Finds the minimum value of k for which gadf>pct

Parameters
yarray

(n, 1) values to be classified

method{‘Quantiles, ‘Fisher_Jenks’, ‘Maximum_Breaks’, ‘Natrual_Breaks’}
maxkint

maximum value of k to evaluate

pctfloat

The percentage of GADF to exceed

Returns
kint

number of classes

clobject

instance of the classifier at k

gadffloat

goodness of absolute deviation fit

See also

KClassifiers

Notes

The GADF is defined as:

\[GADF = 1 - \sum_c \sum_{i \in c} |y_i - y_{c,med}| / \sum_i |y_i - y_{med}|\]

where \(y_{med}\) is the global median and \(y_{c,med}\) is the median for class \(c\).

Examples

>>> import mapclassify as mc
>>> cal = mc.load_example()
>>> qgadf = mc.classifiers.gadf(cal)
>>> qgadf[0]
15
>>> qgadf[-1]
0.3740257590909283

Quantiles fail to exceed 0.80 before 15 classes. If we lower the bar to 0.2 we see quintiles as a result

>>> qgadf2 = mc.classifiers.gadf(cal, pct = 0.2)
>>> qgadf2[0]
5
>>> qgadf2[-1]
0.21710231966462412
>>>