compute_sample_weight#

sklearn.utils.class_weight.compute_sample_weight(class_weight, y, *, индексы=None)[источник]#

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

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

Weights associated with classes in the form {class_label: weight}. Если не задано, предполагается, что все классы имеют вес один. Для многомерных задач можно предоставить список словарей в том же порядке, что и столбцы y.

Обратите внимание, что для многомерного вывода (включая многометочную классификацию) веса должны быть определены для каждого класса каждого столбца в своем собственном словаре. Например, для четырехклассовой многометочной классификации веса должны быть [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] вместо [{1:1}, {2:5}, {3:1}, {4:1}].

The "balanced" режим использует значения y для автоматической настройки весов обратно пропорционально частотам классов во входных данных: n_samples / (n_classes * np.bincount(y)).

Для многомерного выхода веса каждого столбца y будут умножены.

y{array-like, разреженная матрица} формы (n_samples,) или (n_samples, n_outputs)

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

индексыarray-like формы (n_subsample,), по умолчанию=None

Массив индексов для использования в подвыборке. Может иметь длину меньше, чем n_samples в случае подвыборки, или равно n_samples в случае бутстрап-подвыборки с повторяющимися индексами. Если None, вес выборки будет рассчитан по всей выборке. Только "balanced" поддерживается для class_weight если это предоставлено.

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

Массив с весами выборок, применёнными к исходному y.

Примеры

>>> from sklearn.utils.class_weight import compute_sample_weight
>>> y = [1, 1, 1, 1, 0, 0]
>>> compute_sample_weight(class_weight="balanced", y=y)
array([0.75, 0.75, 0.75, 0.75, 1.5 , 1.5 ])