机器学习系统设计这一章节包含四个小节,分别是:
- 确定执行的优先级
- 误差分析
- 精确率和召回率的权衡
- 机器学习数据
在建立一个机器算法之前,先使用一个最粗的学习算法经行测试,得到一个大致的结果。这个测试的过程将会在你之后的设计中帮助你节省大量的时间。
你也可以简单粗暴的选取一些特征,不必做太多降维之类的工作,来设计你的第一个机器学习算法。
总而言之,不要担心你的第一个算法太简单或者误差太大。一旦你做出了你的第一个算法,你就可以使用强有力的工具帮助你找到接下来该怎么做的方法。
第一步,先根据你的运算结果,进行误差分析。然后以此决定接下来的优化方法。
第二步,已有的算法和相应的价值评估体系可以帮助你试验新的算法。
那么什么是价值评估体系呢,简单来说就是三个值:
- 精确率,predicted
- 召回率,recall
- F值,F1score
这三个值可以用预测癌症的例子来进行直观的理解。
精确率,等于True positive/predicted positive,也就是说,我们预测得了癌症的人中,预测正确的概率。我们希望这个率尽可能大,毕竟被预测得了癌症的人身心都会受到很大摧残,预测错的代价就会很大。
召回率,等于True positive/actual positive,也就是说,真正得了癌症的人中,我们把他预测出来的概率。我们有时候也会希望这个值尽可能的大。
那么如何权衡这两个值呢,F值=2RP/(R+P),有了这个值,你就不用担心无法评估倾斜度很高的算法(例如精确率高但是召回率很低,就像一个算法,总是预测没有得癌症)。