机器学习复习笔记
第一章 绪论
基本术语
- 监督学习:分类、回归
分类: 离散值
二分类:好瓜;坏瓜
多分类:冬瓜;南瓜;西瓜
回归:连续值
如:瓜的成熟度/瓜的价格 - 无监督学习: 聚类
聚类: 无标记信息
如:按某些特征把物体归为一类,例如:绿皮、红心的都是西瓜 - 半监督学习: 两者结合
假设空间: 模型属于由输入空间到输出空间的映射的集合
归纳偏好:学习过程中对某种类型假设的偏好称作归纳偏好。它可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”
第二章 模型评估
一、经验误差和过拟合
- 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点当做所有样本的一般性质,导致泛化性下降。
- 欠拟合:对训练样本的一般性质尚未学好
如何解决?
过拟合:
- 优化目标加正则项
- 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=0∑∣y∣pklog2pk 其中
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
log2∣y∣。
存在问题
信息增益对可取值数目较多的属性有所偏好。
增益率
基尼指数
剪枝处理
为什么剪枝
- ”剪枝“是决策树学习算法对付”过拟合“的主要手段;
- 可通过”剪枝“来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致的过拟合。
剪枝的策略
- 预剪枝
- 后剪枝
判断决策树泛化能力是否提升的方法
- 留出法:预留一部分数据用作”验证集“以进行性能评估。
4.3.1 预剪枝
定义:通过提前停止树的构建而对树剪枝,一旦停止,节点就是树叶,该树叶持有子集元组最频繁的类。
停止决策树生长最简单的方法有:
- 定义一个高度,当决策树达到该高度时就停止决策树的生长
- 达到某个节点的实例具有相同的特征向量,即使这些实例不属于
同一类,也可以停止决策树的生长。 - 定义一个阈值,当达到某个节点的实例个数小于阈值时就可以停
止决策树的生长。或定义一个阈值,通过计算每次扩张对系统性
能的增益,并比较增益值与该阈值大小来决定是否停止决策树的
生长。
不足:阈值不好设置,过大决策树过于简单;过小,有多余树枝,
过于茂盛。
预剪枝的优缺点:
- 降低过拟合风险(优点)
- 显著减少训练时间和测试时间开销(优点)
- 欠拟合风险:有些分支的当前划分虽然不能提升泛化性能,但在其基础上进行的后续划分却有可能导致性能显著提高。预剪枝基于”贪心“本质禁止这些分支展开,带来了欠拟合风险。
4.3.2 后剪枝
定义:先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶节点。
后剪枝的优缺点:
- 后剪枝比预剪枝保留了更多的分支,欠拟合风险小,泛化性能往往优于预剪枝决策树;(优点)
- 训练时间开销大:后剪枝过程是在生成完全决策树之后进行的,需要自底向上对所有非叶节点逐一考察。(缺点)
第八章 集成学习
8.1 个体与集成 —— 简单分析
Boosting和Bagging区别:
Boosting: 个体学习器间存在强依赖关系,必须串行生成的序列化方法;
串行:下一个分类器只在前一个分类器预测不够准的实例上进行训练或检测。
目标:主要生成偏差比其组成部分更低的强模型。
Bagging: 个体学习器间不存在强依赖关系,可同时生成的并行化方法。
并行:所有的弱分类器都给出各自的预测结果,通过组合把这些预测结果转化为最终结果。
目标:获得一个方差比其组成部分更小的继承模型。
8.2 Boosting
AdaBoost算法
思想:训练不同的弱分类器组成强分类器
应用:两类问题、多类单标签问题、多类多标签问题、大类单标签问题,回归问题;
通过改变数据分布来迭代训练分类器。
步骤:
- 先通过对N个训练样本的学习得到第一个弱分类器;
- 将分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过
对这个样本的学习得到第二个弱分类器; - 将1和2都分错了的样本加上其他的新样本构成另一个新的N个的训练
样本,通过对这个样本的学习得到第三个弱分类器 - 最终经过提升的强分类器。即某个数据被分为哪一类要通过…的多
数表决。