我尝试训练和测试几个scikit-learn模型,并试图打印出准确度。只有其中一些模型能正常工作,其他模型会失败并显示以下错误:
ValueError: Classification metrics can't handle a mix of binary and continuous targets.
这个错误是什么意思?我该如何修改下面的代码以成功评估失败的模型?
...
这是脚本的输出:
...
这是labelsTrain变量:
...
错误发生在cross_val_score函数期间:
...
回答:
您注释掉的所有模型都不是分类器,而是回归模型,对于回归模型来说,准确度是没有意义的。
您会得到这个错误,因为这些回归模型不产生二元结果,而是连续(浮点数)值(正如所有回归模型所做的那样);因此,当scikit-learn尝试通过比较一个二元数(真实标签)与一个浮点数(预测值)来计算准确度时,它会不出意外地给出错误。而错误信息本身就清楚地暗示了这一原因:
Classification metrics can't handle a mix of binary and continuous target