17.机器学习系统的设计

主要内容

  1. 具体例子——垃圾邮箱分类器

  2. 构建学习算法的推荐方法

  3. 误差分析

  4. 类偏斜的误差度量

  5. 机器学习的数据

一、 具体例子——垃圾邮箱分类器

1.1以垃圾邮箱分类器来描述机器学习系统设计方法

  1. 要建立一个垃圾邮箱Spam分类器,要进行监督学习,将垃圾邮箱的特征提取出来,然后希望通过这些特征能够区分垃圾邮箱

  2. 对于spam分类器,通常选取spam中词频最高的100个词来做特征

    在这里插入图片描述

    在这里插入图片描述

1.2 为了构建分类器算法,可能有很多策略:

  1. 收集更多的数据,让我们有更多的垃圾邮件和非垃圾邮件的样本

  2. 基于邮件的路由信息开发一系列复杂的特征

  3. 基于邮件的正文信息开发一系列复杂的特征,包括考虑截词的处理

  4. 为探测刻意的拼写错误开发复杂的算法

二、构建学习算法的推荐方法

  1. 从一个简单的能快速实现的算法开始, 实现该算的并用交叉验证集数据测试这个算法
  2. 绘制学习曲线,决定是增加更多数据,或者添加更多特征,还是其他选择
  3. 进行误差分析:人工检查交叉验证集中我们算法中产生预测误差的实例,看这些实例是否有某种系统化趋势

三、误差分析

  • 同样以上面的垃圾邮箱分类为例子,误差分析要做的就是检验交叉验证机中算法产生错误预测的所有邮件,看能否将这些错误邮件按照类分组,然后看分类器对哪一组邮件的预测误差最大,并着手优化
  • 看那些被错误分类地样本,具有什么样的特征,它们之间有什么共同点,从而决定是否对算法现有特征进行修改;
  • 误差分析并不总能帮助我们判断应该采取怎样的行动。有时我们需要尝试不同的模型,然后进行比较,在模型比较时,用数值来判断哪一个模型更好更有效,通常我们是看交叉验证集的误差
  • 在误差分析的时候,不能单纯依靠直觉,而是用数字体现
  • 不要花大量时间在第一步上构造算法上,在错误样本中找解决方案往往更高效;别担心算法太简单or不高效,先用算法弄出结果,再误差分析,根据评价指标以及误差分析来优化算法,从而确定该添加什么,该放弃什么

四、类偏斜的误差度量

4.1 类偏斜的概念

  • 类偏斜的情况表现为 训练集中有非常多的同一种类的实例,只有很少或没有其他类的实例,如对于一个分类问题,结果仅有两类y=0和y=1,其中一类样本非常多、另一类非常少

  • 对于偏斜数据集,如果单纯考虑准确率,会导致有时候模型预测的结果,还不如全部判断为1或者全部判断0 的结果好。 所以需要引入另外一些辅助度量指标——查准率和查全率

  • 例如:

    -在这里插入图片描述

    • 获得更低的错误率 有时候并不代表 分类模型的质量得到提高,比如偏斜类情况(因为总是预测结果为y=0的算法显然不是一个很好的算法)

4.2 查准率和召回率

  • 对于一个二分类问题,我们将实例分为正类(positive)和负类(negative),得到算法预测的结果分为下面四种情况:

    1. 正确肯定(True Positive,TP):预测为真,实际为真
    2. 正确否定(True Negative,TN):预测为假,实际为假
    3. 错误肯定(False Positive,FP):预测为真,实际为假
    4. 错误否定(False Negative,FN):预测为假,实际为真
  • 查准率 precision: 即准确率,对于我们预测的所有患癌症的病人中,他们有多大概率真正患有癌症;precision=真阳性/预测阳性=TP/(TP+FP);(预测阳性=真阳性+假阳性 )

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

    在这里插入图片描述

  • 查准率和召回率 两个值越高表示模型越好,无论数据集是否偏斜,需要满足precision 和 recall 都很高才可以保证该算法的实用性

  • 在上面提到的假设我的模型预测所有y都为0,显然召回率为0,因为真阳性为0 ,即偏斜类情况;但是此时,查准率为无穷大,所以并不能说明该模型是个好的算法模型,我们需要权衡查准率和召回率二者来得到评估

4.3 查准率和召回率的权衡

  • 关于阈值: 在二分类问题中,分类结果是0/1,我们需要选择一个阈值,大于阈值的值分类为1,小于阈值的分类为0

    在这里插入图片描述

  • 查准率和召回率与阈值之间的关系

    在这里插入图片描述

    • 阈值threshould 设定越高,查准率Precision越高、召回率Recall越低。因为判断的准、但有更多正例被漏掉。
    • 阈值threshould 设定越低,查准率Precision越低、召回率Recall越高。因为找的全,但有更多负例被错判为正例。
  • 帮助选择一个好的阈值的评估度量值——F_1值(调和平均)

    在这里插入图片描述

    • F1=2PR/(P+R),F值能很好的结合以上特点进行权衡,选择选择使F1值最大的阈值

五、机器学习的数据

  • 对于机器学习,通常可以选择很多不同的算法进行预测,随着训练集数据规模增大,模型准确性Accuracy一般会提高:

    在这里插入图片描述

    • 事实上,单纯增大数据集并不能解决一切问题。 如果数据集中含的信息很少(比如想对房价进行预测,但是只有面积数据。这时候即使增加数据、或者对模型在面积这个feature上进行多项式处理,也起不到好的效果)
    • 大量的数据,在设计的是一种带有很多参数的学习算法下,那么这将会是一个很好的方式来提供一个高性能的学习算法;(数据量远大于参数的话,过拟合的可能性不大);
  • 结论为:

    • 如果模型欠拟合,即偏差bias大: 那就要增加特征(对神经网络增加hidden units);

    • 如果模型过拟合,即方差variance大: 那就要增大数据集,使得Jcv ≈ Jtrain ,从而降低过拟合。

如果觉得文章对你有帮助的话,可以给我点赞鼓励一下我哦,欢迎收藏文章
关注我,我们一起学习,一起进步!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值