模型评估是对训练好的模型性能进行评估,机器学习的任务有回归,分类和聚类,(见博客:机器学习基础概念),针对不同的任务有不同的评价指标,下文详解.
序号 | 一级指标 | 真实值 | 模型预测值 | 说明 |
---|---|---|---|---|
1 | TP | True | Positive | 真正,即真实值和预测值均是正 样本,表示预测正确 |
2 | TN | True | Negative | 真负,即真实值和预测值均为负样本 ,表示预测正确 |
3 | FN | False | Negative | 假负,即真实值为正,预测值为负,表示预测错误,若正 表示通过,该参数可表示误拒率 |
4 | FP | False | Positive | 假正,即真实值为负,预测值为正,表示预测错误,若正 表示通过,该参数可表示误入率 |
序号 | 二级指标 | 计算 | 说明 |
---|---|---|---|
1 | 准确率(ACC) | Accuracy= T P + T N T P + T N + F P + F N \frac{TP+TN}{TP+TN+FP+FN} TP+TN+FP+FNTP+TN | 分类模型预测正确的结果占总观测样本的比例,即所有预测结果中,预测正确的比例 |
2 | 精确率(PPV) | Precision= T P T P + F P \frac{TP}{TP+FP} TP+FPTP | 模型预测为Positive所有结果中,模型预测正确的比例,从预测角度出发,取出一类预测结果,评估预测准确率 |
3 | 灵敏度(TPR) | Sensitivity=Recall= T P T P + F N \frac{TP}{TP+FN} TP+FNTP | 真实值是Positive所有结果中,模型预测正确的比例,从真实值角度出发,取出一类结果,评估预测准确率,查全率 |
4 | 特异度(TNR) | Specificity= T N T N + F P \frac{TN}{TN+FP} TN+FPTN | 真实值是Negative所有结果中,模型预测正确的比例 |
F 1 S c o r e F_1 Score F1Score是精度和召回率的调和平均数,通过该方法,取值较小会分配更高的权重,因此,只有当召回率和精度都很高时,分类器才会获得较高的 F 1 F_1 F1分数.
【F1 Score】
计算:
F 1 S c o r e = 2 1 P + 1 R = 2 P R P + R F_{1}Score=\frac{2}{\frac{1}{P}+\frac{1}{R}}=\frac{2PR}{P+R} F1Score=P1+R12=P+R2PR
其中,P为Precision,R为Recall,该参数综合了Precision和Recall的结果,取值范围[0, 1],0表示模型预测效果最差,1表示模型预测效果最好.
混淆矩阵是监督学习中的可视化工具,用于比较分类结果即预测结果和实际数据的匹配度,行表示预测类别,列表示实际类别.
混淆矩阵 | 真实值 | ||
Positive | Negative | ||
预测值 | Positive | TP | FP |
Negative | FN | TN |
以人脸识别为例,人脸识别图片中的人脸是否在人脸库中,约定如下:若在则记为合法
,不在则记为非法
,人脸库共有250张人脸.
【(1) 混淆矩阵】
混淆矩阵 | 真实值 | ||
合法 | 非法 | ||
预测值 | 合法 | 100 | 40 |
非法 | 60 | 50 |
【(2) 二级指标】
序号 | 二级指标 | 计算 | 说明 |
---|---|---|---|
1 | 准确率(ACC) | Accuracy= T P + T N T P + T N + F P + F N = 150 250 \frac{TP+TN}{TP+TN+FP+FN}=\frac{150}{250} TP+TN+FP+FNTP+TN=250150=60% | 分类模型预测正确的结果占总观测样本的比例,即所有预测结果中,预测正确的比例 |
2 | 精确率(PPV) | Precision= T P T P + F P = 100 100 + 40 \frac{TP}{TP+FP}=\frac{100}{100+40} TP+FPTP=100+40100=71.4% | 模型预测为Positive所有结果中,模型预测正确的比例,从预测角度出发,取出一类预测结果,评估预测准确率 |
3 | 灵敏度(TPR) | Sensitivity=Recall= T P T P + F N = 100 100 + 60 \frac{TP}{TP+FN}=\frac{100}{100+60} TP+FNTP=100+60100=62.5% | 真实值是Positive所有结果中,模型预测正确的比例,从真实值角度出发,取出一类结果,评估预测准确率 |
4 | 特异度(TNR) | Specificity= T N T N + F P = 50 40 + 50 \frac{TN}{TN+FP}=\frac{50}{40+50} TN+FPTN=40+5050=55.5% | 真实值是Negative所有结果中,模型预测正确的比例 |
接受者操作特征曲线(Reciver Operating Characteristic Curve,ROC)曲线用于描述二分类系统性能(分类器阈值是变化的),反应敏感性和特异性连续变化的综合指标,ROC曲线上的点反应对同一信号刺激的感受性.ROC三种形式:
曲线面积(Area Under Curve,AUC)模型评价中定义为ROC曲线下的面积,取值[0, 1],由于ROC曲线一般在 y = x y=x y=x上方,因此AUC取值[0.5, 1],值越大,表明分类器效果越好.AUC三种取值:
序号 | AUC取值 | 描述 |
---|---|---|
1 | 1 | 100%准确预测分类器,存在至少一个阈值可实现100%预测,实际不存在 |
2 | (0.5, 1) | 该情况优于随机猜测,设定合适的阈值,预测准确度高达90% |
3 | 0.5 | 该情况和正常的猜硬币一样,没有预测价值 |
4 | (0, 0.5) | 比随机猜测效果还差,若反预测,则预测效果优于随机猜测 |
精度平均值(Average Precision, AP)表征模型对某一类别物品评估的平均精度,即2.2节中二级指标:精度的平均值.
A P = ∑ P r e c i s i o n c N u m b e r c AP = \frac{\sum Precision_{c}}{Number_{c}} AP=Numberc∑Precisionc
其中,Precision为模型精度,见2.2节,c为某一物品类别,Number为某类物品验证集数量.
如有验证集自行车有200张图片,计算每张图片的精度,然后求200张图片精度的平均值,即为精度平均值.
A P = ∑ P r e c i s i o n b i k e 20 0 b i k e AP = \frac{\sum Precision_{bike}}{200_{bike}} AP=200bike∑Precisionbike
平均精度的均值(Mean Average Precision, mAP)即所有类别的平均精度.如10个类别,计算10个类别的平均精度的平均值.
m A P = ∑ i n A P i n mAP=\frac{\sum_i^n AP_{i}}{n} mAP=n∑inAPi
其中,AP为某一类别物品的平均识别精度,i为某一物品,n为物品种类数量.
如10个类别,计算10个类别的平均精度的平均值.
m A P = ∑ i 10 A P i 10 mAP=\frac{\sum_i^{10} AP_{i}}{10} mAP=10∑i10APi
方差(Variance, Var),反映数据集中数据离散程度。
V a r = 1 n ∑ i = 1 n ( y r e a l − μ ) 2 Var ={\frac{1}{n}\sum_{i=1}^{n}(y_{real}-\mu)^2} Var=n1i=1∑n(yreal−μ)2
其中, n n n为数据集数据数量, y r e a l y_{real} yreal训练数据集即真实的数据集, μ = 1 n ∑ i = 1 n y i \mu=\frac{1}{n}\sum_{i=1}^{n}y_i μ=n1∑i=1nyi为数据集均值.
标准差(Standard Deviation, SD)方差的平方根,反映数据集中数据离散程度.
S D = 1 n ∑ i = 1 n ( y r e a l − μ ) 2 SD=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{real}-\mu)^2} SD=n1i=1∑n(yreal−μ)2
其中, n n n为数据集数据数量, y r e a l y_{real} yreal训练数据集即真实的数据集, μ = 1 n ∑ i = 1 n y i \mu=\frac{1}{n}\sum_{i=1}^{n}y_i μ=n1∑i=1nyi为数据集均值.
平均绝对误差(Mean Absolute Error, MAE),反映预测值和真实值的误差,更接近于实际情况.
M A E = 1 n ∑ i = 1 n ∣ ( y r e a l − y p r e d i c t ) ∣ MAE=\frac{1}{n}\sum_{i=1}^{n}|(y_{real}-y_{predict})| MAE=n1i=1∑n∣(yreal−ypredict)∣
其中, n n n为数据集数据数量, y r e a l y_{real} yreal训练数据集即真实的数据集, y p r e d i c t y_{predict} ypredict模型预测数据集.
平均平方误差(Mean Squared Error, MSE)即均方误差,评价数据的变化程度,MSE越小,说明预测模型描述实验数据的准确率越高, 表示:
M S E = 1 n ∑ i = 1 n ( y r e a l − y p r e d i c t ) 2 MSE=\frac{1}{n}\sum_{i=1}^{n}(y_{real}-y_{predict})^2 MSE=n1i=1∑n(yreal−ypredict)2
其中, n n n为数据集数据数量, y r e a l y_{real} yreal训练数据集即真实的数据集, y p r e d i c t y_{predict} ypredict模型预测数据集,神经网络中的梯度下降方法中优化的数据就是均方误差.
均方根误差(Root Mean Squared Error)是均方根误差的算数平方根, 应用广泛,但是,它使用平均误差,对异常点(outliers)较敏感,如果回归器对某个点的回归值不理性,误差就会很大,从而对RMSE的值影响较大,平均值是非鲁棒性的,在训练神经网络模型时,为提高神经网络的鲁棒性(Robust),引入滑动平均模型,控制模型跟新速度,提高模型健壮性.
R M S E = 1 n ∑ i = 1 n ( y r e a l − y p r e d i c t ) 2 RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{real}-y_{predict})^2} RMSE=n1i=1∑n(yreal−ypredict)2
其中, n n n为数据集数据数量, y r e a l y_{real} yreal训练数据集即真实的数据集, y p r e d i c t y_{predict} ypredict模型预测数据集.
(1) 模型评估分为分类模型和回归模型评估,评估指标分别针对模型训练结束和训练过程中;
(2) 分类模型评估是模型训练结束后的评估,主要指标是 F 1 F_1 F1分数和ROC曲线和AUC曲线;
(3) 回归模型评估是模型训练过程的评估,这个评估是在训练时使用的手段,如训练神经网络过程中,梯度下降使用的均方误差进行优化,使用滑动平均模型提高模型鲁棒性;
(4) 机器学习训练分类模型的过程是先回归,回归评估(优化),在分类,分类优化,最后评估分类模型;
[参考文献]
[1]https://blog.csdn.net/Orange_Spotty_Cat/article/details/80520839
[2]http://www.cnblogs.com/guoyunzhe/p/6063495.html
[3]https://blog.csdn.net/tanzuozhev/article/details/79109311
[4]http://m.elecfans.com/article/712572.html
[5]https://www.cnblogs.com/zongfa/p/9431807.html
[6]https://blog.csdn.net/qq_31821675/article/details/82025527
[7]https://www.cnblogs.com/zongfa/p/9783972.html