使用逻辑回归二分类时accuracy_score报错问题求助
解决逻辑回归二分类中accuracy_score的类型不匹配报错
这个报错的核心原因是**y_pred是连续值(比如概率),而y_test是二进制类别标签(0/1)**,accuracy_score要求两者都是类别标签类型,无法处理混合类型的输入。
解决方法分两种情况:
情况1:直接获取类别标签
如果你之前用了predict_proba()获取概率值,换成predict()方法直接输出类别标签即可:
from sklearn.metrics import accuracy_score # 替换成predict()得到类别 y_pred = model.predict(X_test) print("Accuracy : ", accuracy_score(y_test, y_pred))
情况2:将概率值转换为类别标签
如果已经得到了概率输出,手动设置阈值(通常用0.5)把连续概率转成0/1的类别:
from sklearn.metrics import accuracy_score # 获取第二类的概率(假设你的正类是1) y_pred_proba = model.predict_proba(X_test)[:, 1] # 阈值转换为类别 y_pred = (y_pred_proba >= 0.5).astype(int) print("Accuracy : ", accuracy_score(y_test, y_pred))
额外检查
如果上述方法仍报错,确认y_test的类型:如果它是浮点型(比如0.0/1.0),可以转换为整数类型:
y_test = y_test.astype(int)
内容的提问来源于stack exchange,提问作者Genni_1002
相关产品推荐
相关产品推荐

