依然是课程笔记, 感谢杨晓春老师的指导~
绪论-概念
有监督学习无监督学习半监督学习增强学习, 假设空间与特征向量的空间映射, 概念学习
-
[本课程] 有监督学习: 有具体案例的先例, 由此可总结出经验对之后做出预测(如分类…)
-
无监督学习: 无经验和预先的提示, 只根据事物共同的特点划分的方法(如聚类…)
-
半监督学习: 数据有的有标记, 有的没标记
-
增强学习: 一边学一变强, 练得越多, 做得越好
-
机器学习:
{
任
务
T
:
一
个
或
多
个
经
验
E
性
能
P
\begin{cases}任务T:一个或多个\\经验E\\性能P\end{cases}
⎩⎪⎨⎪⎧任务T:一个或多个经验E性能P
-
术语
- 训练集
- 测试集
- 标记
- 特征/属性
- 实例: 没标记的数据
- 样例: 有标记的数据
- 任务
{
分
类
:
离
散
值
(
好
瓜
坏
瓜
.
.
冬
瓜
南
瓜
西
瓜
)
回
归
:
连
续
值
(
瓜
的
成
熟
度
)
聚
类
:
无
标
记
信
息
(
把
西
瓜
分
成
几
堆
)
\begin{cases}分类: 离散值(好瓜坏瓜..冬瓜南瓜西瓜)\\回归: 连续值(瓜的成熟度)\\聚类: 无标记信息(把西瓜分成几堆)\end{cases}
⎩⎪⎨⎪⎧分类:离散值(好瓜坏瓜..冬瓜南瓜西瓜)回归:连续值(瓜的成熟度)聚类:无标记信息(把西瓜分成几堆)
- 泛化能力: 学到的模型对新样本的拟合能力
- 独立同分布假设: 样本之间互不关联, 独立获得
- 三个性质假设:
- 内涵性: 模型所做的假设应该符合常理
- 简化性: 模型的假设接近事实, 但不要太繁琐, 先主要后次要
- 发散性: 模型的推导基于一定假设, 但不受限于假设, 有特例也可以搞.
-
特征向量的空间映射理解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R39D4Tjj-1610881344180)(2020-04-21-16-13-04.png)]
-
概念学习: 一种经典的归纳学习.从特殊的训练样本中推导出一种模型. 输出boolean值. 譬如好瓜坏瓜的判断: 注意假设空间里都是好瓜
- 假设空间:
- 版本空间: 和训练集一致的样本集合
- 归纳偏好: 对于某堆样例, 学习到好几个模型, 选择模型的时候希望对哪种样本好, 就选哪种模型, 称这种选择为归纳偏好
- 奥卡姆剃刀: 如无必要, 勿增实体, 越简单越好.
- NoFreeLunch定理(NFL): 算法的好坏是相对的, 而不是绝对的->认为所有假设(f映射)同样好, 但是实际上并不一定.
决策树
决策树的概念表示和适用条件, 基本算法与最优分类属性的确定(信息增益,增益率,基尼指数), 3种机器学习算法, 决策树的评价, 决策树属性值连续或缺失时的应对方法
- 概念: 决策树学习是以实力为基础的归纳学习, 适用于对离散数据的近似
- 表示: f(x)用树来表示, 叶节点表示一个类别, 内部节点表示属性上的一个测试. 分类时从根节点验证到叶节点
- 适用条件:
- 实例是 属性-值 对
- 输出的目标函数f(x)是离散的
- 析取表达式^
- 训练数据可包含缺失属性值
- 基本算法: (自顶向下的递归方法, 为了产生泛化能力强的模型, 构造熵值下降最快的树, 到叶子节点的熵值为零)
- 输入: 训练集(输入特征向量(D维向量)+对应标签), 属性集(特征取值空间)
- 过程:
- 如果训练集所有样本类别相同(都是好瓜或者都是坏瓜), 将node标记为叶节点return;
- 如果属性集中没有属性或者所有样本在属性集上取值相同(譬如具有该属性的所有瓜都是坏瓜), 将node类别标记为训练集中样本数最多的类, return;
- 按每个属性的取值最优划分为不同分支, 每个分支递归划分; 结束条件是训练集中在当前分支节点包含的样本集合是空. 将分枝节点标记为叶节点, 类别为样本中最多的类.
- 最优分类属性的确认:
- 衡量指标: 信息增益, 增益率, 基尼指数
- 信息增益Gain:
- 信息量: 某事件发生的概率小, 则他的信息量大
- 信息熵Ent: 事件X的信息量的期望,度量样本集合纯度最常用的指标, 概率为0, 信息熵值最小为0 不确定性越大, 熵越大,在信息理论中用bit表示, 熵越小, 表示其的编码长度越小(频繁出现用短编码表示, 不频繁出现的用长编码表示)
- 信息增益Gain: 得知信息A的信息, 使类X的信息的不确定性减少(熵减)的程度
G
a
i
n
(
D
,
a
)
=
E
n
t
(
D
)
−
∑
v
=
1
V
∣
D
V
∣
∣
D
∣
E
n
t
(
D
V
)
Gain(D,a)=Ent(D)-\sum_{v=1}^V \frac{|D^V|}{|D|}Ent(D^V)
Gain(D,a)=Ent(D)−v=1∑V∣D∣∣DV∣Ent(DV)
- 增益率Gain_ratio: 信息增益对可取值数目较多的属性有偏好, 为了弱化这种偏好, 将增益率除以属性的可能数目
G
a
i
n
r
e
t
i
o
=
G
a
i
n
(
D
,
a
)
I
V
(
a
)
,
其
中
,
属
性
a
取
值
越
多
,
I
V
(
a
)
越
大
Gain_retio=\frac{Gain(D,a)}{IV(a)}, 其中, 属性a取值越多,IV(a)越大
Gainretio=IV(a)Gain(D,a),其中,属性a取值越多,IV(a)越大
- 存在的问题: 增益率对可取值数目较少的属性有偏好
- 解决: c4.5算法
- 基尼指数Gini: 样本集中随机抽取两个样本, 其标记不一致的概率, 基尼值越小, 数据纯度越高
G
i
n
i
(
D
)
=
∑
k
=
1
∣
y
∣
∑
k
′
!
=
k
p
k
p
k
′
=
∑
k
=
1
∣
y
∣
p
k
(
1
−
p
k
)
−
1
−
∑
k
=
1
∣
y
∣
p
k
2
Gini(D)=\sum_{k=1}^{|y|}\sum_{k'!=k}p_kp_{k'}=\sum_{k=1}^{|y|}p_k(1-p_k)-1-\sum_{k=1}^{|y|}p_k^2
Gini(D)=k=1∑∣y∣k′!=k∑pkpk′=k=1∑∣y∣pk(1−pk)−1−k=1∑∣y∣pk2
属
性
a
的
基
尼
指
数
:
G
i
n
i
i
n
d
e
x
(
D
,
a
)
=
∑
v
=
1
v
∣
D
v
∣
∣
D
∣
G
i
n
i
(
D
v
)
属性a的基尼指数:Gini_index(D,a)=\sum_{v=1}^v\frac{|D^v|}{|D|}Gini(D^v)
属性a的基尼指数:Giniindex(D,a)=v=1∑v∣D∣∣Dv∣Gini(Dv)应选择使划分后基尼指数最小的属性作为最优划分属性
- 使用CART算法使用基尼指数作为划分属性;算法的停止条件是节点中的样本数不小于给定值, 或样本集的基尼指数小于给定值, 或者没有更多特征
- 3种机器学习方法:
- ID3: 使用信息增益进行特征选择, 取值多的属性容易使数据更纯, 训练得到一颗庞大且矮的树
- C4.5: 信息增益率
- CART: 基尼指数
一个属性的信息增益(率)或基尼指数越大, 表明这个属性对样本的熵减少的能力越强
- 决策树的评价: 所有叶节点对熵加权求和, 值越小, 样本分类越精确–损失函数(经验误差)
C
(
T
)
=
∑
t
∈
l
e
a
f
N
t
H
(
t
)
C(T)=\sum_{t \in leaf}N_tH(t)
C(T)=t∈leaf∑NtH(t).
- 欠拟合:(学得很差,没学会一般)譬如, 误以为所有绿色都是树叶, 绿色的树也是树叶
- 过拟合:(学得太好,特殊当一般)譬如, 误以为树叶都有锯齿, 没有锯齿的就不是树叶 , 决策树的分支太多有大概率过拟合
- 应对方法: 数据集拆分为训练集, 验证集, 测试集, 划分时要保持数据分布的一致性. 测试误差作为泛化误差的近似 , 测试集与验证集互斥
- hold-out留出法: 数据集分为训练集和测试集,
训
练
:
测
试
=
2
:
1
5
:
1
训练:测试=2:1~5:1
训练:测试=2:1 5:1, 若干次留出法去平均值作为测试结果.
- 困境: 训练样本数目永远小于实际样本规模, 需要尽可能合适地划分训练集和测试集之间的比例(譬如3:1)
- cross validation交叉验证: 数据集分k组, 取k-1组训练, 1组测试. 可做k次,取平均值. 一般k取10(10折交叉验证)
- 困境: 训练样本比实际数据集小, 通常取不同的k划分p次, 算这些k折交叉验证结果的均值
- bootstrapping自助法: 数据集有m个样本, 就有放回采样m次, 组成训练集D(包含重复数据, 不一定所有数据都被采样,大约1/3的样本不会被采)
, 没被采样的做测试集.
- 困境: 改变了初始数据集的数据分布, 所以实际往往用holdout和cross validation处理
- 决策树属性值连续或缺失时的应对方法
- 属性值连续: (某属性的取值不是固定的某几个值, 而是任意地取一系列值)连续属性离散化(找一个划分点(中位数), 小于它的分到一组, 大于它的分到另一组; 然后用离散属性划分法考察这些划分点, 选增益大的做划分.
- 与离散属性不同, 如果当前节点划分属性是连续属性, 后续划分依旧可用该属性划分.
- 属性值缺失: (样本的属性缺失. 可用不缺失部分训练, 但是数据浪费很大.) 先计算无缺失值样本的占比
ρ
\rho
ρ, 再算无缺失样本中某类的占比
p
k
^
\hat{p_k}
pk^, 再算无缺失样本中属性A为某值a的占比
r
v
^
\hat{r_v}
rv^.基于没有缺失值的样本来估算训练集的信息增益(
ρ
\rho
ρ乘无缺失样本中某属性取某值的信息增益(无缺失值的样本集熵减
r
v
^
\hat{r_v}
rv^乘所有某属性取值的样本熵之和)). 对所有属性计算信息增益, 挑个大的划分.
- 给定划分属性, 若样本在该属性上的值缺失: 样本以不同概率划分到不同的子节点中.
决策树的剪枝----对付过拟合
剪枝的两种策略(预剪枝和后剪枝), 分类性能度量(精度,错误率)
- 预剪枝: 在决策树生成时对每个结点划分前后估计, 如果它不能提升决策树的泛化性能,就不划了, 把它做叶节点(只划分可以提升泛化值的结点)
- 优点: 降低过拟合风险, 减少训练时间和测试时间
- 缺点: 局部优化, 划分少把可能提升模型性能的划分扼杀在摇篮里, 带来了欠拟合的风险
- 后剪枝: 先从训练集生成一颗完整决策树, 从叶到根进行考察. 对于每个非叶节点, 如果把它换成叶节点后可带来泛化性能的提升或剪枝后精度没有变化, 则把它换成叶子节点, 标记为其中样本属性最多的属性.
- 优点: 比预剪枝保留更多分枝, 减小欠拟合风险, 泛化性能比预剪枝好
- 缺点: 训练时间开销大(因为先构建, 再剪枝) ps:时机训练若对时间没有要求, 后剪枝显然比预剪枝好
- 性能度量
- 精度: 分对的样本占比
- 验证集精度: 分对的在验证集中的占比—>决定是否继续划分
- 错误率: 分错的样本占比
写不完了, 挖坑不填orz
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)