机器学习系统设计 ---- Machine Learning System Design

构建一个机器学习算法的过程:

  1. 快速构建一个简单的算法,并用交叉验证集来测试这个算法的性能。
  2. 画出学习曲线,检查算法是否有高方差或高偏差的问题,从而选择相应的应对方法。
  3. 误差分析,查看使算法出现误差的实例,分析这些实例是否有某种系统化的趋势。

评估算法性能

偏斜类(skewed classes):训练集中的大多数实例属于一类,其他类占得很少或没有。

类偏斜的情况下我们就不能单纯使用误差来评判算法的效果。应使用新的评估度量值。

TP:预测为真,实际为真

FP:预测为真,实际为假

FN:预测为假,实际为真

TN:预测为假,实际为假

查准率:TP / (TP + FP)   Precision,越高越好

查全率:TP / (TP + FN)   Recall,越高越好

构成PR曲线:准不准,全不全(右凸,higher recall, lower precision,调整阈值)

 如何自动选择阈值:计算F1值,F1 Score = 2PR / (P + R),取最高值对应的阈值。

 

TPR:TP / (TP + FN)

FPR:FP / (TN + FP)

 构成ROC曲线:灵敏度,特异度(左凸)

数据问题

获得大量的数据在很多情况下是获得高性能学习算法的一个很好的方式,但是不要盲目的去收集大量的数据。

一种比较好的方式:我们有大量的数据(低方差,避免过拟合),并且我们训练了一种带有很多参数(低偏差)的学习算法,那么很多时候能训练出一个高性能的算法。

 

posted on 2017-09-14 17:04  J_K_Guo  阅读(357)  评论(0编辑  收藏  举报