评估机器学习模型:指标解释

Photo by Ken Treloar on Unsplash

Photo by Ken Treloar on Unsplash

1. 机器学习模型开发和评估的流程

机器学习模型开发和评估的流程

机器学习模型开发和评估的流程

2. 分类模型的评估指标

2.1 准确率

\[ Acc = 正确分类样本数量 / 总样本数量 \]

2.2 混淆矩阵

混淆矩阵

混淆矩阵

未归一化的混淆矩阵

未归一化的混淆矩阵

归一化后的混淆矩阵

归一化后的混淆矩阵

2.3 ROC 曲线

ROC 曲线是一种研究机器学习泛化性能的工具,它用到了两个重要的指标:真正例率(TPR)和假正例率(FPR)。在测试数据上,机器学习模型会得出一个预测值或概率值,然后我们用分类阈值(threshold)\(x\) 与预测值或概率值进行比较,比如大于 \(x\) 判为正例,小于 \(x\) 判为负例。

\[ TPR = TP / (TP + FN) \]

\[ FPR = FP / (FP + TN) \]

当分类阈值最大时,没有一个点划为正例,此时 TP 和 FP 都等于零,真正例率和假正例率都为零,对应 ROC 曲线的 A 点;最理想的情况是 B 点,此时的真正例率为 1 而假正例率为 0;分类阈值最小时,所有的样本都划为正例,故 TN 和 FN 都都等于零,则真正例率和假正例率都为 1。

ROC 曲线

ROC 曲线

AUC(area under curve),即曲线下的面积,AUC 是度量 ROC 曲线的一种方法,好的模型 ROC 曲线下的面积会很大,因此 AUC 越大越好。

2.4 查准率和召回率

疾病诊断为例,查准率指的是诊断结果中有多少是真正患病的,召回率指的是有多少真正患病者被诊断出来了,F-1 值则是查准率和召回率的调和平均值。查准率和召回率是评估分类模型中最常见的一组指标,在工程实践中通常用不同阈值与模型得出的预测值或概率值进行比较,然后比较这几组查准率和召回率的优劣。

\[ Precision = TP / (TP + FP) \]

\[ Recall = TP / (TP + FN) \]

\[ F1-score = \frac{2 * Precision * Recall}{Precision + Recall} \]

P-R 曲线的生成方法与 ROC 类似

P-R 曲线的生成方法与 ROC 类似

3. 回归模型的评估指标

3.1 均方差

回归模型中用得最多的度量指标是均方差(mean square error)

\[ \frac{1}{n}\sum{(y_i - \hat{y}_i)}^2 \]

3.2 Root Mean Squared Log Error

\[ \text{RMSLE} = \sqrt{ \frac{1}{n} \sum^{n}_{j=1}{( \log(y_j + 1) - \log( \hat{y}_j + 1 ) )^{2}}} \]

3.3 灵敏度和特异度

灵敏度(Sensitivity),跟真正例率的定义一样,指真正例中被模型发现的比率,所以灵敏度又可以称为召回率。

特异度(specificity),指真负例中被模型发现的比率,也可以看做是负样本的召回率。

3.4 R-Squared

在线性回归以及广义线性回归中,R-squared 误差的大小意味着模型的拟合度的好坏。R-squared 误差取值范围为 0 到 1,这个值越接近 1 说明模型的拟合度越好。

  • TSS:Total Square Sum / 总离差平方和
  • RSS:Residual Square Sum / 残差平方和
  • ESS:Explain Square Sum / 解释平方和

\[ R-Squared = 1 - RSS / TSS \]

\[ R-Squared = 1 - \frac{\sum(y_i-\hat{y_i})^2}{\sum{(y_i-\bar{y_i})}^2} \]

推荐阅读

  1. https://zh.wikipedia.org/wiki/ROC曲线
  2. https://github.com/yanyachen/MLmetrics
  3. https://en.wikipedia.org/wiki/Sensitivity_and_specificity
  4. em.hzu.edu.cn/uploadfile/20051017163341988.ppt
  5. http://www.investopedia.com/terms/r/r-squared.asp
觉得还不错?帮我赞助点域名费吧:)