compute_class_weight#

sklearn.utils.class_weight.compute_class_weight(class_weight, *, классы, y, sample_weight=None)[источник]#

Оценить веса классов для несбалансированных наборов данных.

Параметры:
class_weightdict, "balanced" или None

Если "balanced", веса классов будут заданы n_samples / (n_classes * np.bincount(y)) или их взвешенный эквивалент, если sample_weight предоставлено. Если задан словарь, ключи являются классами, а значения — соответствующими весами классов. Если None указан, веса классов будут равномерными.

классыndarray

Массив классов, встречающихся в данных, как указано в np.unique(y_org) с y_org исходные метки классов.

yarray-like формы (n_samples,)

Массив исходных меток классов для каждого образца.

sample_weightarray-like формы (n_samples,), по умолчанию=None

Массив весов, которые назначаются отдельным образцам. Используется только когда class_weight='balanced'.

Возвращает:
class_weight_vectndarray формы (n_classes,)

Массив с class_weight_vect[i] вес для i-го класса.

Ссылки

Эвристика "balanced" вдохновлена статьей "Logistic Regression in Rare Events Data", King, Zen, 2001.

Примеры

>>> import numpy as np
>>> from sklearn.utils.class_weight import compute_class_weight
>>> y = [1, 1, 1, 1, 0, 0]
>>> compute_class_weight(class_weight="balanced", classes=np.unique(y), y=y)
array([1.5 , 0.75])