吴恩达公开课心得——机器学习的系统设计

设计机器学习系统时应该优先考虑的问题:

  1. 垃圾邮件识别中,输出很容易确定,是或者不是。特征怎么确定呢?一般选择某些关键字,在一个邮件中寻找这些关键字,找到即为1,没找到即为0,把这些1和0组成一个向量,就构成了一个输入。关键字的选择不仅应该包括垃圾邮件的特征,比如buy,deal,discount等等,也应该包括可以明确为非垃圾邮件的关键字,比如所在领域的转有名词等等。试想,如果只有垃圾邮件的特征,那么难免在工作邮件中也出现一两个特征单词,很容易被误判为垃圾邮件。有了非垃圾邮件关键字,就可以抵消一部分他们的影响。
  2. 那么问题来了,我们应该如何选择关键字呢?应该使用误差分析法。简单的说,就是先实现一个简单的算法,画出学习曲线来决定是需要更多特征值还是需要更多的数据等等。最后使用误差分析法,从交叉验证集中找出分类错误的例子,然后找出原因并进行统计,把出错最多的原因找出来,然后在算法中解决这类原因造成的错误。然后继续这个循环。
  3. 算法中最好给出一个数字化的评价指标,这样就可以直观的看出某个改进是否有效,帮助你更快的做出选择。

4. 误差度量值优化。举个例子,是否癌症的预测中,假如我们的算法能得到99%的正确率,你可能会说效果很好。可是如果测试集中实际只有0.5%的样本是癌症,那么我可以简单设计一个所有的样本都不是癌症的算法,那么这个算法的准确率至少99.5%,这个算法能说是一个更好的算法吗?对这种样本严重不成比例的问题,建议使用查准率和召回率来作为评价指标。查准率是指当我做出正面的判决时,患者确实得了癌症得比率;召回率是指,在所有实际上有癌症的患者中,我有多大比例能预测对,也就是说我会召回多大比例的癌症患者来治疗。

吴恩达公开课心得——机器学习的系统设计

刚才那个例子中,如果算法把所有人都判定为非癌症,那么显然召回率为0,因此可以认为不是一个好算法。

一般我们需要用一个数字来评估一个算法的优劣,查准率和召回率又不可偏废,那该如何取舍呢?

这里推荐使用F1 score: 2*P*R/(P+R)

5.之前一直强调,样本多并不一定对学习算法有帮助。但是事实证明,在某些条件下,样本多是有重要作用的。具体条件就是特征X已经包含了足够多的信息,使得该领域的专家能据此做出准确的判决,那么大量的数据是有效的,而且此时具体哪种算法就显得不那么重要了。比如完形填空。相反,假如你只有一个房子的面积信息,要你预测房价,这是任何人都无法做到的事情,因此再高明的算法,再多的数据也无法得到好的结果。


分享到:


相關文章: