一 序
继续之前贪心NLP课程。之前的60节开始介绍的Python高及功能,争取春节假期期间补上。
二 模型的评价
在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价
本文针对二元分类器。
准确率Accuracy
acc:
准确率就是:正确的数/总数
当我们的样本不平衡(正样本和负样本比例差距很大)的时候,准确率就不适合用来评估模型。
老师举例子,肺癌假设1000人来检查,假设5个是确诊的,995是健康的。
那么即使我不做任何处理,对于新的数据,直接根据概率计算为健康的,准确率为99.5%。这样虽然准确率很高,但是没没有任何价值。
为了弥补准确率的不足,学习召回率。
这里,假设1000个人有10个得癌症的,召回了10个,其中真正得癌症的有8个。
P(Positive)和N(Negative) 表示模型的判断结果
T(True)和F(False) 表示模型的判断结果是否正确
FP:假正例
FN:假负例
TP:真正例
TN:真负例.
准确率Precision=
召回率(Recall)=
召回率针对的是数据集中的所有正例,精确率针对的是模型判断出的所有正例.
召回率与精确率是一个互斥的关系,需要寻找到一个平衡点。一般情况下准确率高、召回率就低,召回率低、准确率高。
P精确率和R召回率指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。
F-Measure是Precision和Recall加权调和平均:
当参数=1时,就是最常见的F1-Measure了:
多分类的情况类似,每个分离计算完求平均。
还有其他指标灵敏度等,ROC和PR曲线。老师没有讲。
最后的例子,以垃圾邮件为例,计算精确率,召回率