机器学习作业(第十八次课堂作业)
猜想
对于上述问题, 我首先认为是数据特殊导致。
编程证明
反复更改数据集。减少数据偶然性。
结果
事实是,无论如何更改数据集, sklearn都只显示数据 f1-score。
再猜想
如果恒有上述等式, 意味着FP=FN。
数学证明
结果
FP=FN恒成立。
结论
第一种结论正确。
问题到这里并没有结束
但是 第一种结论正确就意味着第二种不正确吗,第二种也可以对结果进行完美解释。如果想要理解清楚sklearn为何只显示一个, 最好办法就是看sklearn是如何定义classification_report。
sklearn源码链接
sklearn对于classification_report实现
sklearn官方解释
sklearn官方举例
‘micro’: 设置average='micro’时,Precision = Recall = F1_score = Accuracy。
注意:这是正确的, 微查准率、微查全率、微F1都等于Accuracy。
下例中为什么不等于?因为预测中有几个0,出现错误了(举一个通俗一点的例子, 已知所有物品分为1,2,3类, 你所预测的除1, 2,3类之外具有其他类, 就会出现Precision与Recall,F1_score ,Accuracy不等的现象)。
结论
周志华老师机器学习所阐述的原因也可以对结果进行完美解释,但结果的产生并不完全如周志华老师所说——求平均后结果一致。而是设置average='micro’时,Precision = Recall = F1_score = Accuracy恒成立。
心得
对待权威,不可一味相信,要敢于质疑权威。
要善于用数学去推导猜想,对学问应该持严谨态度。
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈