吴恩达《机器学习》第十一章:机器学习系统的设计

十一、机器学习系统的设计

11.1 首先要做什么

在这里插入图片描述
       ~~~~~~       比如:对于一个垃圾邮件分类系统,我如何做才能对垃圾邮件进行分类?
       ~~~~~~       监督学习:建立1个单词组,里面存放垃圾邮件中经常出现的单词,比如:deal、buy、discount…,这里单词的个数就是特征数,x=[0,1,1,0,…]T代表对应单词是否出现,根据这个作为样本进行输入,y=1/0表示是否为垃圾邮件;往往在实际中会将单词组中单词的个数增加至上万;

Q:如何让你设计的这个分类器误差更小呢?
在这里插入图片描述
一般而言,会随机地使用这些方法;

11.2 误差分析

在这里插入图片描述

  • 先快速设计出一个简单粗暴的算法,尽管效果可能不是那么好,训练、交叉验证和测试它;
  • 画出学习曲线,看是增加数据还是增加特征;
  • 误差分析:看那些被错误分类地样本,具有什么样的特征,它们之间有什么共同点,从而决定是否对算法现有特征进行修改;
    在这里插入图片描述
    通过那些分类错误的样本,很容易找出算法的不足所在,然后集中精力处理它们;
    在这里插入图片描述
    单一规则的数值评价指标,比如:交叉验证错误率,来评估算法;
    在优化过程中,以这个指标为依据判断此次优化是否有效;

不要花大量时间在第一步上构造,在错误样本中找解决方案往往更高效;别担心算法太简单or不高效,先用算法弄出结果,再误差分析,根据评价指标以及误差分析来优化算法,从而确定该添加什么,该放弃什么;

11.3 不对称性分类得误差评估

考虑一种情况——偏斜类情况:
错误率 > 样本中某类样本的占比,比如错误率1% > 癌症检测样本中得癌症的人占比0.5%;
这样即使我把全部数据预测为不得癌症(y=0),我也只有0.5%的错误率,看起来算法表现得很好;
=> 获得更低的错误率 有时候并不代表 分类模型的质量得到提高,比如偏斜类情况;
在这里插入图片描述
解决偏斜类问题:
在这里插入图片描述

查准率 precision:即准确率,对于我们预测的所有患癌症的病人中,他们有多大概率真正患有癌症;precision=真阳性/预测阳性;(预测阳性=真阳性+假阳性)

召回率 recall:如果所有的病人确实得了癌症,有多大比率我们正确预测到他们得了癌症;recall=真阳性/实际阳性;(实际阳性=真阳性+假阴性);

       ~~~~~~       两个值越高越好,比如我预测所有y都为0,显然召回率为0,因为真阳性为0 ,一下就能看出来这是偏斜类情况;但是此时,查准率为无穷大,我们需要权衡二者来得到我们想要的信息;

11.4 查准率和召回率的权衡

在这里插入图片描述
高阈值,高查准率,低召回率;
低阈值,低查准率,高召回率;

Q:如何自动选取阈值?才能更好地权衡二者
通常不知道哪种好,所以需要一个评估度量值;
在这里插入图片描述
F1值(调和平均):F1=2PR/(P+R),二者中任意一个不为0,F值能很好的结合以上特点进行权衡;

11.5 机器学习数据

在这里插入图片描述

       ~~~~~~       不同的算法随着样本数量的增加,其精确度的变化幅度也会不一样,有的算法可能一开始精确度低,等样本数量上来后,精确度提高很大幅度;

大量数据只在一些情况下有作用;
在这里插入图片描述
在这里插入图片描述
       ~~~~~~       如果你有大量的数据,你设计了一种带有很多参数的学习算法,那么这将会是一个很好的方式来提供一个高性能的学习算法;(数据量远大于参数的话,过拟合的可能性不大);

原文地址:https://www.cnblogs.com/Luweir/p/14147215.html