compute_class_weight#
- sklearn.utils.class_weight.compute_class_weight(class_weight, *, classes, y, sample_weight=None)[source]#
估算不平衡数据集的类别权重。
- 参数:
- class_weightdict, “balanced” or None
如果为“balanced”,类权重将由
n_samples / (n_classes * np.bincount(y))给出,如果提供了sample_weight,则为它们的加权等效值。如果给定一个字典,键是类,值是相应的类权重。如果给定None,类权重将是统一的。- classesndarray
数据中出现的类的数组,由
np.unique(y_org)给出,其中y_org是原始类标签。- yarray-like of shape (n_samples,)
每个样本的原始类标签数组。
- sample_weightshape 为 (n_samples,) 的 array-like, default=None
分配给单个样本的权重数组。仅当
class_weight='balanced'时使用。
- 返回:
- class_weight_vectndarray of shape (n_classes,)
数组,其中
class_weight_vect[i]是第 i 个类的权重。
References
“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])