class_weight.compute_class_weight报错:传入3个参数仅接受1个的解决方法
修复方案
这个错误是因为新版本scikit-learn中compute_class_weight函数的参数传递规则发生了变化,不再支持旧的位置参数传递方式,必须显式指定关键字参数。
修改类别权重计算的代码行,将位置参数改为关键字参数:
class_weights = class_weight.compute_class_weight( class_weight="balanced", classes=classes_to_predict, y=samples_df.bird.values )
补充说明
class_weight="balanced":指定使用平衡权重的计算方式,会根据样本中各类别的数量自动调整权重,少数类会获得更高的权重。classes=classes_to_predict:传入所有需要预测的类别列表,确保和样本标签的类别范围一致。y=samples_df.bird.values:传入样本的真实标签数据。
修改后后续的class_weights_dict转换代码可以保持不变,正常运行。
内容的提问来源于stack exchange,提问作者Kukkik
相关产品推荐
相关产品推荐

