模型构建以后,接下来就需要对模型的性能、与目标的切合度等进行一些评估,模型评估是模型开发过程中不可或缺的一部分。在构建模型的过程中,会产生一些评估指标, 如精确度、ROC、RMSE等,这些指标是重要而且基础的,但不是唯一和最终指标, 除了 这些指标外,我们还应该评估模型对业务的提示或商业目标的达成等方面的贡献。一个好的模型不但要有好的技术指标,更要为解决实际问题提供帮助,有时后者显得更为重要。
Spark中常用的几个评估算法如下。 1 )均方差(MSE, Mean Squared Error): 式中: prec 为预测值,act 为实际值,n为总样本数。 2)均方根差(RMSE, Root Mean Squared Error):
3 )平均绝对值误差(MAE, Mean Absolute Error):
在了解正确率、准确率之前,我们先看一个所谓的混淆矩阵(confusion matrix),如下图所示。
混淆矩阵为是一个简单矩阵,用于展示一个二分类器的预测结果,其中T为True、F为False、N为 Negative、P为Postitive。
- 真正(TP):被模型预测为正的正样本数;可以称作判断为真的正确率;
- 真负(TN):被模型预测为负的负样本数;可以称作判断为假的正确率;
- 假正(FP): 被模型预测为正的负样本数;可以称作误报率;
- 假负(FN):被模型预测为负的正样本数;可以称作漏报率。
正确率( Accuracy),反映了分类器对整个样本的判定能力一能将 正的判定为正,负的判定为负: A= (TP + TN)/(P+N)= (TP + TN)/(TP+ FN + FP + TN)
错误率(Error):E=(FP+ FN)/(P+N)= (FP+ FN)/(TP+ FN+ FP + TN)
准确率(Precision), 反映了被分类器判定的正例中真正的正例样本的比重: P= TP/(TP+FP)
召回率(Recall),反映了被正确判定的正例占总的正例的比重: R = TP/(TP+FN)=1-FN/T
F1-Measure: F1 = 2P*R/(P+R)
真阳性率(TPR)代表分类器预测的正类中实际正实例占所有正实例的比例: TPR= TP/(TP+FN)
假阳性率(FPR)代表分类器预测的正类中实际负实例占所有负实例的比例: FPR= FP/(FP+TN)
以_上这些都属于静态的指标,当正负样本不平衡时会存在严重的问题。极端情况下,比如正负样本比例为1:99 (有些领域并不少见),那么一个分类器只要把所有样本都判为负,它就拥有了99%的精确度,但这时的评价指标是不具有参考价值的。另外,很多分类器都不是简单地给出一个正或负(0或1 )的分类判定,而是给出一个分类的倾向程度,比如贝叶斯分类器输出的分类概率。对于这些分类器,当你取不同阈值时,就可以得到不同的分类结果及分类器评价指标,依此人们又发明出ROC曲线以及AUC(ROC曲线包围面积)指标来衡量分类器的总体可信度。ROC曲线将FPR和TPR定义为x和y轴,这样就描述了真阳性和假阳性在不同决策阈值下的关系。AUC越大说明模型性能越好,ROC曲线如