• 斯坦福21秋季:实用机器学习【第5章】


    5.1 Bias & Variance

    概念描述
    公式计算
    由公式转换结果可知:Ed = 偏差 + 方差 + 数据本身的噪声
    图示
    降低方差偏差
    最后的噪声一般是数据本身的特征,所以需要对数据进行处理

    5.2 Bagging P151

    Bagging
    subset 子集

    Bagging算法,又称装袋算法,是一种团体学习算法。最初由Leo Breiman于1996年提出。Bagging算法可与其他分类、回归算法结合,提高其准确率、稳定性的同时,通过降低结果的方差,避免过拟合的发生。
    Bagging原理图
    分别构造多个弱学习器,多个弱学习器相互之间是并行的关系,可以同时训练,最终将多个弱学习器结合。

    特点在于随机采样,那么什么是随机采样(自组采样)呢?
    随机采样(bootstrap sample)从n个数据点中有放回地重复随机抽取一个样本(即同一个样本可被多次抽取),共抽取n次。创建一个与原数据大小相同得数据集,但有些数据点会缺失(大约1/3),有些会重复。

    举例说明:
    原数据集:[‘a’, ‘b’, ‘c’, ‘d’]
    随机采样1:[‘c’, ‘d’, ‘c’, ‘a’]
    随机采样2:[‘d’, ‘d’, ‘a’, ‘b’]

    bagging对于弱学习器没有限制,这和Adaboost一样。但是最常用的一般也是决策树和神经网络。

    Combine learners by averaging the out puts (regression) or majority voting (classification):bagging的集合策略也比较简单,对于分类问题,通常使用简单投票法,得到最多票数的类别或者类别之一为最终的模型输出。对于回归问题,通常使用简单平均法,对T个弱学习器得到的回归结果进行算术平均得到最终的模型输出。
    代码
    replace = true 随机采样
    predict返回在第一个维度做均值
    Apply
    bagging适合应用到不稳定的学习器当中,bagging主要起到降低方差的效果,在采样过程中的均值一般保持一致。
    对比
    如图,在决策树中变化明显,但在线性回归中因为本来就比较稳定,所以变化不多

    5.3 Boosting

    相关参考博文:
    https://blog.csdn.net/starter_____/article/details/79328749
    https://blog.csdn.net/weixin_39923623/article/details/110586085
    https://zhuanlan.zhihu.com/p/87685747
    集成学习:通过构建并结合多个机器学习器来完成学习任务,首先通过训练集数据训练得到若干个个体学习器,再通过一定的结合策略,最终形成一个强学习器,达到博采众长的目的。

    Boosting算法:首先使用初始权重从训练集中训练出一个弱学习器,根据弱学习器的学习误差率来更新样本的权重,提高之前弱学习器学习率较高的训练样本点的权重,使得这些误差率高的样本在后面的弱学习器中得到更多的重视。如此循环,直到得到指定数量的学习器,再通过结合策略进行整合,得到最终的强学习器。Boosting算法属于集成学习的一种
    步骤描述
    按顺序学习N个弱模型,多个弱模型组成一个比较强的模型,Bagging是降低方差,Boosting是降低偏差。

    先训练一个模型,把做的不好的样本重新拿出来。
    计算细节
    在残差上训练,用真实值yi减去预测值,每个Ht是把之前没有拟合好的残差重新去拟合,也用到了学习率的概念,虽然Ht能够完全拟合,但也不要太相信他。
    代码示例
    使用效果图
    决策树本身是比较强的,所以这里用的层数较少的决策树,在Learner增加的时候,没有过拟合,说明了GBDT的一定效果,第二张图,训练误差小于验证误差即说明过拟合。

    Stacking

    概述
    和Bagging类似,但是bagging每次是在不同的数据上训练同一个模型,但stacking是在同一数据上训练不同模型。

    对第一层的模型要求应该是:效果准确,结构不同。所以我们应当选择的是结构不同的强模型。
    效果
    多层Stacking
    使用多层,由图可以看到,在L2的输入中,不仅有L1预测得到的结果concat,而且有原始的训练集数据。
    过拟合问题
    使用同样的数据集多次提取特征,通常会很容易出现过拟合现象,在这里可以采取重复K折的方式。通过划分,对每一块数据,使用其它的数据进行训练,训练出的模型用于当前数据预测值,重复在所有数据块上训练,得到了的便是在所有数据集上的结果,也可以进行多层的训练,最后取平均,这样可以进一步降低方差,但是时间开销显然也很大了。
    结果展示
    总结对比

  • 相关阅读:
    前端中表单的使用
    计算机毕业设计ssm社区流浪动物救助系统2r32k系统+程序+源码+lw+远程部署
    大型DOM结构是如何影响交互性的
    IDEA中创建编写JSP
    使用R语言进行聚类分析
    Mybatis中的关系映射
    【计算机组成&体系结构】存储系统基本概念
    《每天5分钟用Flask搭建一个管理系统》第5章:表单处理
    linux——(4)磁盘与文件系统管理
    Nginx版本升级
  • 原文地址:https://blog.csdn.net/qq_35481726/article/details/126184881