我想通过使用Scikit计算f1_score来评估机器学习系统--对我的预测进行学习。然而,结果并不如预期的那样。调用confusion_matrix显示
[[ 3 11]
[ 5 31]]如果手工计算f1评分为2*(精确性*回忆)/(精确+回忆),则得到2*(3/8 * 31/42)/(3/8 + 31/42) = 0.497。但是调用f1_score(y_true,y_pred,average=)会产生0.7949的结果。有人能解释一下吗?
即使当真正的标签混合在一起时,我用不变的预测值1来调用f1_score,我也会得到高分,而不是我所期望的警告的0。我怀疑f1_score不是我所期望的avg=“二进制”,但我不能把我的头脑围绕在它上面。
我的科学学习版本是0.21.3。
谢谢你的帮助。
发布于 2020-01-11 16:00:36
手工计算精度和召回值时出错。
精度= TruePositives / (TruePositives + FalsePositives)
召回= TruePositives / (TruePositives + FalseNegatives)
请修改你的计算!当你改正的时候,你会得到0.7949的价值!
https://stackoverflow.com/questions/59695888
复制相似问题