dataeval.core.ber_knn

dataeval.core.ber_knn(embeddings, class_labels, k)

An estimator for Multi-class Bayes error rate using KNN test statistic basis.

Parameters:
embeddings : ArrayND[float]

Array of image embeddings. Can be an N dimensional list, or array-like object.

class_labels : Array1D[int]

Array of class labels for each image. Can be a 1D list, or array-like object.

k : int

Number of nearest neighbors for KNN estimator

Returns:

Mapping with keys:

  • upper_bound: float - The upper bound of the Bayes Error Rate

  • lower_bound: float - The lower bound of the Bayes Error Rate

Return type:

BERResult

References

[1] Learning to Bound the Multi-class Bayes Error (Th. 3 and Th. 4)

Examples

>>> import sklearn.datasets as dsets
>>> from dataeval.core import ber_knn
>>> images, labels = dsets.make_blobs(n_samples=50, centers=2, n_features=2, random_state=0)
>>> ber_knn(images, labels, 1)
{'upper_bound': 0.04, 'lower_bound': 0.020416847668728033}