我编写的分类器脚本运行良好,最近添加了权重平衡。由于我使用“sklearn”库添加了权重估计函数,因此得到以下错误:
compute_class_weight() takes 1 positional argument but 3 were given
这个错误在文档中没有意义。脚本应该有三个输入,但是不确定为什么它说只期望一个变量。完整的错误和代码信息如下所示。显然,这只在VS代码中失败。我在Jupyter笔记本中测试过,工作正常。所以这似乎是VS代码编译器的问题。有人注意到吗?(我正在使用Python 3.8和其他最新的库)
from sklearn.utils import compute_class_weight
train_classes = train_generator.classes
class_weights = compute_class_weight(
"balanced",
np.unique(train_classes),
train_classes
)
class_weights = dict(zip(np.unique(train_classes), class_weights)),
class_weights
在木星笔记本里
4条答案
按热度按时间biswetbf1#
在花了很多时间之后,我就是这样修复它的。我仍然不知道为什么,但是当代码修改如下时,它工作得很好。我是在看到一个类似但略有不同的问题的this解决方案后得到这个想法的。
wmomyfyw2#
我用重新编码配置解决了这个问题。
zyfwsgd63#
你需要使用旧版本的sklearn比你有。对我来说,它的工作与scikit-learn版本0.24.2罚款。
oxiaedzo4#
只要按照这个:Why doesn't class_weight.compute_weight() work?
在赋值相关值时,只需要使用class_weight,classes,y项。