1

为了“方便”,我尝试使用 sklearn.utils.class_weight,compute_class_weight 函数

但是,我得到“类应该包括所有可以在 y 中的有效标签”错误;尽管如此,我 100% 确信我给出了所有的类标签。

print(np.unique('y_train'), ' classes in training set')
>>> 86  classes in training set

所以这没有问题;拿镜头:

print(len(y_train), 'train samples')
>>> 6914 train samples

只是为了确保形状:

y_train.shape
>>> (6914, 1)

所以是的,我有一个训练样本向量;而且我知道四五个班级完全占主导地位,所以我想增加一些班级权重。

from  sklearn.utils.class_weight import compute_class_weight

class_weights = compute_class_weight('balanced', classes = np.unique(y_train), y = y_train)
>>> ValueError: classes should include all valid labels that can be in y

我在这里。这里有什么问题?

4

1 回答 1

2

解决了。不管怎么说,还是要谢谢你。

形状(many, one)是个问题,np.ravel()它不再是个问题。

from  sklearn.utils.class_weight import compute_class_weight
class_weights = compute_class_weight('balanced', classes = np.unique(y_train), y = np.ravel(y_train))
于 2019-09-13T16:21:10.377 回答