错误:“y_true 中的类数不等于 'y_score' 中的列数”

2024-01-19

我有一个不平衡的多类数据集,当我尝试计算 roc_auc_score 时,我收到此错误:ValueError:y_true 中的类数不等于“y_score”中的列数。

这是代码:

model = svm.SVC(kernel='linear', probability=True)
model.fit(X_train, y_train)
y_prob = model.predict_proba(X_test)
macro_roc_auc_ovr = roc_auc_score(y_test, y_prob, multi_class="ovr",
                              average="macro")

任何解决这个问题的建议。

谢谢


当我在每个折叠内都没有至少一个类的示例时,这个问题就发生在我身上。为了解决这个问题,我将 KFold 替换为 StratifiedKFold。

我觉得可能是你的split方法有问题。您可以要求分割进行分层,也可以将 stratify=y 传递给 train_test_split 方法(如果您正在使用的话)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:“y_true 中的类数不等于 'y_score' 中的列数” 的相关文章

随机推荐