四、模型评估指标

大数据分析技术领域不仅包含数据和算法,还有测试和验证等重要环节,其主要职能是对算法产生的模型(或称为学习器),就其预测的准确性、使用数据的测试集进行验证,用以评判学习器的性能。性能不好的学习器,要考虑调整参数,或者更改算法;而性能良好的学习器,其良好程度如何、是否达到满意程度等都需要相关指标精确表达。下面以 KNN 算法为例,就 Orange 平台所采用的测试验证模块的主要使用方法及指标含义详细说明。
(一)模 块 1. 混淆矩阵模块 混淆矩阵模块的名称是 Confusion Matrix,其模块图标是 ,其矩阵的表达如表 2-4-3所示。 表 2-4-3 Confusion Matrix 矩阵表 如在汽车推荐算例中,产生的混淆矩阵模块如图 2-4-7 所示。

 图 2-4-7 汽车数据案例的 KNN 混淆矩阵模块

图 2-4-7 显示了四个目标属性的分类情况,测试集数据共 518 个,其中沿对角线四个数据是各类的预测正确率。可以看出,unacc 类的正确率最高,达 97.7%,只有 2.3%被预测为acc。而 good 类的正确率最低,只有 29.2%,而 62.5%被预测为 acc,8.3%被预测为 unacc。可见,该算法在此场景的应用有待商榷,还需要其他算法的应用对比。 按预测样本数量来表达,即可参见图 2-4-8。

 图 2-4-8 汽车数据案例的 KNN 混淆矩阵(按样本数)

2. 测试模块测试模块的名称是 Test and Score,其模块图形是 。仍然以汽车推荐算例为例,其界面如图 2-4-9 所示。

 图 2-4-9 汽车数据案例测试模块

(二)指 标 从图 2-4-9 中可以看出,对测试集验证的主要指标有:AUC、CA、F1、Precision 和 Recall。在介绍这几个指标的含义及应用之前,需要介绍以下两个公式。 指模型对负例预测的错误率,值越小越好。 指模型对正例预测的正确率,值越大越好。 (1)CA:Computer Accuracy 的简称,指模型的计算精度。其计算公式为是指所有预测准确的样本量除以测试集的样本总量。 (2)Precision:称之为精确度。其计算公式为,是指在所有预测为正例的样本中,被预测准确的样本占比多少。实际上,精确率是针对预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。 对于二分类模型来说,可以直接调用以上公式进行计算;对于多分类模型来说,要用Macro Average 规则来进行计算,即将多分类模型分解为多个二分类模型,分别依据以上公式计算各个精确度,然后取平均值即可。 比如上例是个四分类模型,则 acc 类 的 , good 类 的 ,unacc 类的 ,vgood 类的 。则总的 (3)recall:称之为召回率。其计算公式为,是指正确预测出的正例数占样本中总正例数的比例。实际上,召回率是针对原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。 (4)F1:预测的调和平均率。其计算公式为 ,从公 式中可以看出,F1 是求精准率和召回率的调和平均数的指标。通过对二者求调和平均数,能够更好地反映学习器预测效能的实际平均情况。 (5)AUC:Area Under Curve 的简称,表示 ROC 曲线下的面积。ROC 是 Receiver Operating Characteristic 的缩写,一般称之为“接受者操作特性曲线”。而 ROC 又与以下两个概念相关: 在一个二分类模型中,对于不同的阈值,可以得到连续的两值。为了形象化这一变化,在此引入 ROC,ROC 曲线可以用于评价一个分类器。在 Orange 中本例的 ROC 曲线如图 2-4-10 所示。

 图 2-4-10 汽车数据案例 ROC 曲线

曲线由两个变量 1-Specificity 和 Sensitivity 绘制,1-Specificity=FPR,即假正类率。Sensitivity 即是真正类率。TPR(True positive rate)反映了正类覆盖程度。这个组合以 1-Specificity 对 Sensitivity,即是以代价(costs)对收益(benefits)。 而 AUC 表示 ROC 中曲线下的面积,用于判断模型的优劣。如图 2-4-10 所示,连接对角线的面积刚好是 0.5,对角线的含义也就是随机判断预测结果,正负样本覆盖应该都是 50%。另外,ROC 曲线越陡越好,所以理想值是 1,即正方形。AUC 的值一般介于 0.5 和 1 之间。 AUC 评判标准可参考如下: ● 0.5~0.7:效果较低。 ● 0.7~0.85:效果一般。 ● 0.85~0.95:效果很好。 ● 0.95~1:效果非常好。