机器学习复习笔记

机器学习复习笔记

第一章 绪论

基本术语

  • 监督学习:分类、回归
    分类: 离散值
    二分类:好瓜;坏瓜
    多分类:冬瓜;南瓜;西瓜
    回归:连续值
    如:瓜的成熟度/瓜的价格
  • 无监督学习: 聚类
    聚类: 无标记信息
    如:按某些特征把物体归为一类,例如:绿皮、红心的都是西瓜
  • 半监督学习: 两者结合

假设空间: 模型属于由输入空间到输出空间的映射的集合
在这里插入图片描述
归纳偏好:学习过程中对某种类型假设的偏好称作归纳偏好。它可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”

第二章 模型评估

一、经验误差和过拟合

  • 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点当做所有样本的一般性质,导致泛化性下降。
  • 欠拟合:对训练样本的一般性质尚未学好

如何解决?

过拟合:

  • 优化目标加正则项
  • early stop

欠拟合:

  • 决策树:扩展分支
  • 神经网络:增加训练轮数

二、 评估方法
在这里插入图片描述

划分训练集和测试集的方法:留出法、交叉验证法、自助法

留出法

  • 直接将数据集划分为两个互斥的集合
  • 训练/测试集划分要尽可能保持数据分布的一致性
  • 一般若干次随机划分、重复实验取平均值
  • 训练/测试样本比例通常为2:1~4:1

交叉验证法
将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值为10。
在这里插入图片描述
在这里插入图片描述
自助法:
以自助采样法为基础,对数据集D有放回采样m次得到训练集D’ ,D-D’用作测试集。

  • 实际模型与预期模型都使用m个训练样本
  • 约有1/3的样本没在训练集中出现
  • 从初始数据集中产生多个不同的训练集,对集成学习有很大的好处
  • 自助法在数据集较小、难以有效划分训练/测试集时很有用;由于改变了数据集分布可能引入估计偏差,在数据量足够时,留出法和交叉验证更常用。

三、 性能度量
在这里插入图片描述
对于分类任务,错误率和精度是最常用的两种性能度量:

  • 错误率:分错样本占样本总数的比例

  • 精度:分对样本占样本总数的比例
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    偏差与方差

  • 偏差(bias):描述模型输出结果的期望与样本真实结果的差距。

  • 方差(var):描述模型对于给定值的输出稳定性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三章 线性模型

线性回归:最小二乘法
二分类任务:对数几率回归、线性判别分析
多分类任务:一对一、一对其余、多对多

3.5 多分类学习

在这里插入图片描述

一对一
  • 拆分阶段
    N个类别两两配对(N(N-1))/2个二类任务)
    各个二类任务学习分类器(N(N-1)/2个二类分类器)

  • 测试阶段
    新样本提交给所有分类器预测(N(N-1)/2个分类结果)
    投票产生最终分类结果(被预测最多的类别为最终类别)

一对其余
  • 任务拆分
    某一类作为正例,其他反例(N个二类任务);
    各个二类任务学习分类器(N个二类分类器);
  • 测试阶段
    新样本提交给所有分类器预测(N个分类结果);
    比较各个分类器预置信度(置信度最大类别作为最终类别);
两种策略比较

在这里插入图片描述
在这里插入图片描述

第四章 决策树

4.1 基本流程

什么是决策树?
分类决策树模型是一种描述对实例进行分类的是树形结构。决策树由结点有向边组成。结点由内部结点叶节点。内部节点表示一个特征或属性,叶节点表示一个类
在这里插入图片描述

4.2 划分选择

决策树学习的关键在于如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支节点和包含的样本尽可能属于同一类别,即节点的纯度越来越高。

经典的属性划分方法:

  • 信息增益:ID3;
  • 增益率:C4.5;
  • 基尼指数:CART;
信息增益

信息熵“是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为   p k ( K = 1 , 2 , . . . , ∣ y ∣ ) , \ pk(K=1,2,...,|y|),  pk(K=1,2,...,y),   D \ D  D的信息熵定义为 E n t ( D ) = − ∑ m = 0 ∣ y ∣ p k log ⁡ 2 p k Ent(D)=-\sum_{m=0}^{\lvert y \rvert } pk\log_{2}pk Ent(D)=m=0ypklog2pk 其中   E n t ( D ) \ Ent(D)  Ent(D)的值越小,则D的纯度越高。
计算信息熵时约定:若   p = 0 \ p=0  p=0,则   p log ⁡ 2 p = 0 \ p\log_{2}p = 0  plog2p=0;
  E n t ( D ) \ Ent(D)  Ent(D)的最小值为0,最大值为   log ⁡ 2 ∣ y ∣ \ \log_{2}\lvert y\rvert  log2y
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
存在问题
信息增益对可取值数目较多的属性有所偏好。

增益率

在这里插入图片描述
在这里插入图片描述

基尼指数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

剪枝处理

为什么剪枝

  • ”剪枝“是决策树学习算法对付”过拟合“的主要手段;
  • 可通过”剪枝“来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致的过拟合。

剪枝的策略

  • 预剪枝
  • 后剪枝

判断决策树泛化能力是否提升的方法

  • 留出法:预留一部分数据用作”验证集“以进行性能评估。

4.3.1 预剪枝

定义:通过提前停止树的构建而对树剪枝,一旦停止,节点就是树叶,该树叶持有子集元组最频繁的类。

停止决策树生长最简单的方法有:

  1. 定义一个高度,当决策树达到该高度时就停止决策树的生长
  2. 达到某个节点的实例具有相同的特征向量,即使这些实例不属于
    同一类,也可以停止决策树的生长。
  3. 定义一个阈值,当达到某个节点的实例个数小于阈值时就可以停
    止决策树的生长。或定义一个阈值,通过计算每次扩张对系统性
    能的增益,并比较增益值与该阈值大小来决定是否停止决策树的
    生长。
    不足:阈值不好设置,过大决策树过于简单;过小,有多余树枝,
    过于茂盛。

预剪枝的优缺点:

  • 降低过拟合风险(优点)
  • 显著减少训练时间和测试时间开销(优点)
  • 欠拟合风险:有些分支的当前划分虽然不能提升泛化性能,但在其基础上进行的后续划分却有可能导致性能显著提高。预剪枝基于”贪心“本质禁止这些分支展开,带来了欠拟合风险。

4.3.2 后剪枝

定义:先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶节点。

后剪枝的优缺点:

  • 后剪枝比预剪枝保留了更多的分支,欠拟合风险小,泛化性能往往优于预剪枝决策树;(优点)
  • 训练时间开销大:后剪枝过程是在生成完全决策树之后进行的,需要自底向上对所有非叶节点逐一考察。(缺点)

第八章 集成学习

在这里插入图片描述
在这里插入图片描述

8.1 个体与集成 —— 简单分析

Boosting和Bagging区别:

Boosting: 个体学习器间存在强依赖关系,必须串行生成的序列化方法;
串行:下一个分类器只在前一个分类器预测不够准的实例上进行训练或检测。
目标:主要生成偏差比其组成部分更低的强模型。
Bagging: 个体学习器间不存在强依赖关系,可同时生成的并行化方法。
并行:所有的弱分类器都给出各自的预测结果,通过组合把这些预测结果转化为最终结果。
目标:获得一个方差比其组成部分更小的继承模型。

8.2 Boosting

在这里插入图片描述

AdaBoost算法

思想:训练不同的弱分类器组成强分类器
应用:两类问题、多类单标签问题、多类多标签问题、大类单标签问题,回归问题;
通过改变数据分布来迭代训练分类器。

步骤:

  1. 先通过对N个训练样本的学习得到第一个弱分类器;
  2. 将分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过
    对这个样本的学习得到第二个弱分类器;
  3. 将1和2都分错了的样本加上其他的新样本构成另一个新的N个的训练
    样本,通过对这个样本的学习得到第三个弱分类器
  4. 最终经过提升的强分类器。即某个数据被分为哪一类要通过…的多
    数表决。

在这里插入图片描述

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值