机器学习-评估方法与性能度量


学习模型的泛化能力须要进行评估,现将主要的评估方法和性能度量总结以下html

评估方法

留出法(hold-out)

将数据集D划分为互斥的两部分,一个做为训练集S,另外一个做为测试集T,其中T的规模大约为D的1/5到1/3。该法的优势在于足够明了,缺点在于若令S较大,T较小,则使用T进行测试的结果可能不够准确;若是令T较大,S和D的规模会相差较大,用S训练得出的模型可能和用D训练得出的模型差异较大。通常的,每每不会单次使用留出法,而是屡次随机划分S和T,将屡次评估结果的平均值做为最终的评估结果。另外,为保证T和D的分布一致,可能须要分层采样。bootstrap

交叉验证法(cross validation)

将数据集D划分为大小类似的k个互斥子集,而后进行k(一般取五、10,20)次评估,每次评估时,使用\(D_i\)子集做为测试集,剩余k-1个子集做为训练集,最终的评估结果为k次评估的平均值。一般该验证法会随机划分屡次子集,最终结果取其平均值。交叉验证法相比留出法的优势是:可以保证全部样本都参与了训练和测试。app

自助法(bootstrapping)

对具备m个样本的数据集D进行有放回随机抽取m次,获得一个新的数据集\(D\prime\),将\(D\prime\)用做训练集,D \(D\prime\)(D中没有被抽到\(D\prime\)中的样本组成的集合)用做测试集。该法的优势在于避免留出法和交叉验证法因为训练集S和样本集D规模不一样引起的误差。显然,\(D\prime\)和D的分布状况不一样,会致使误差,一般数据集较小时使该法有用,数据量足够多时,留出法和交叉验证法更为经常使用。机器学习

评估度量指标

用于回归问题的度量方法有:性能

  • 均方偏差:\(E(f;D)= \frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2\)

用于分类问题的度量方法有:学习

  • 错误率:\(E(f;D)= \frac{1}{m}\sum_{i=1}^m \amalg (f(x_i) \neq y_i)\)
  • 精度:\(acc(f;D)= \frac{1}{m}\sum_{i=1}^m \amalg (f(x_i) = y_i)=1-E(f;D)\)

二分类问题的度量方法

用以下符号表示测试结果(课程中和书籍中的TNFP表示方式太绕,此处使用很好理解的“正负”的表示方式):测试

  • 正正:正例被判断为正例
  • 正负:正例被判断为负例
  • 负正:负例被判断为正例
  • 负负:负例被判断为负例

准确率为:\(P=\frac{正正}{正正+负正}\),查全率为:\(R=\frac{正正}{正正+正负}\),准确率表示的是预测为正例中真正正例的比例,查全率表示的是全部正例中被预测为正例的比例。准确率和查全率此消彼长,在实际应用中衡量取舍,如电商推荐相似产品看中准确率,找出谁是犯罪分子更看中查全率。一般用F1(准确率和查全率的调和平均数)度量综合准确率和查全率:
\[F1=\frac{1}{2}(\frac{1}{P}+\frac{1}{R})=\frac{2PR}{P+R}= \frac{2*正正}{总样本+正正-负负}\]
可加入参数\(\beta\)调整准确率和查全率的权重:
\[F_\beta=\frac{1}{1+\beta^2}(\frac{1}{P}+\frac{\beta^2}{R}) = \frac{(1+\beta)^2PR}{\beta^2P + R}\]
\(\beta\)大于1时查全率有更大影响,当\(\beta\)小于1时,准确率有更大影响。spa

ROC和AUC

在二分类问题中,除了准确率和查全率,还可使用TPR(True Positive Rate)和FPR(False Positive Rate)度量。其中:
\[TPR=\frac{正正}{正正+正负}\]
\[FPR=\frac{负正}{负正+负负}\]
即:TPR表示全部正例被正确预测为正例的比例(也就是查全率),FPR表示负例被错误的预测为正例的比例。不一样于精确率和查全率,精确率和查全率此消彼长,若是想把尽量多的甜西瓜挑出来(提升查全率),就难免会出现把更多的生瓜当甜瓜的状况(精确率降低),而TPR和FPR并非此消彼长,而是同向变化。htm

该概念常应用于医学检测,假设某种疾病的判断标准为:若是检查结果大于某阈值,则认为患病,不然为不患病,TPR表示确诊率,FPR表示误诊率,当医生下结论很是谨慎时,TRP较高,同时也把更多的非患病者诊断为了患病者,即FPR也高了。将测试样本排序,最多是正例的样本放到首位,最不多是正例的样本放到末位,初始阈值设为最大,即全部的样本均预测为反例,此时TPR和FPR都是0,逐步下降阈值会获得多组TPR和FPR,当阈值降到最低,即全部的样本都被预测为正例,此时TPR和FPR都是1,以TPR为纵轴、FPR为横轴绘制的曲线叫作ROC(Receiver Operation Characteristic),大体以下图(实际状况中,因为阈值个数有限,曲线不会以下图这般平滑)所示:
ROC.png-12.3kB
可见,给定一组坐标,TPR较高而FPR较低为是更为理想的结果,能够用ROC曲线下方面积来度量,容易知道:面积越大,结果越是理想,该面积被称为AUC(Area Under ROC Curve)
\[AUC=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)(y_{i+1} + y_i)\]blog


参考:

  • 《机器学习工程师》网易云课堂出品
  • 《机器学习》 周志华著
  • ROC曲线与AUC值
相关文章
相关标签/搜索