compute_sample_weight#
- sklearn.utils.class_weight.compute_sample_weight(class_weight, y, *, indices=None)[源代码]#
按类别估计不平衡数据集的样本权重。
- 参数:
- class_weightdict、dict列表、“平衡”或无
与形式中的类关联的权重
{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}]
.的
"balanced"
模式使用y的值自动调整与输入数据中的类别频率成正比的权重:n_samples / (n_classes * np.bincount(y))
.对于多输出,y每列的权重将相乘。
- y形状(n_samples,)或(n_samples,n_outputs)的{类数组,稀疏矩阵}
每个样本的原始类标签数组。
- indices形状类似数组(n_subsample,),默认=无
子样本中使用的索引数组。长度可以小于
n_samples
对于子样本,或等于n_samples
在具有重复索引的自举子样本的情况下。如果None
,将根据完整样本计算样本重量。只"balanced"
被支撑用于class_weight
如果提供的话。
- 返回:
- sample_weight_vect形状的nd数组(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 ])