吴恩达机器学习
学习视频参考b站:吴恩达机器学习
本文是参照视频学习的随手笔记,便于后续回顾。
决策树
决策树模型(Decision Tree Model)
猫分类示例
通过决策树模型判断是否为猫
一些术语:根结点,决策节点(包括根结点),叶子结点
决策树算法是在所有的决策树模型中选一个效果很好的
学习过程(Decision Tree Learning)
步骤&决策
步骤1.决定根结点用什么特征
步骤2.决定什么特征放在左节点
步骤3.决定什么特征放在右结点
决策1.如何选择特征来分开各个结点
提高纯度/降低纯度(想到什么子集尽量靠近猫或狗)
通过下面介绍熵(下一个小标题),来估计杂质和减少杂质,以提高纯度选择特征作为节点
决策2.什么时候停止分类
①当一个节点100%是一类
②当再分一个结点的时候达到树的最大高度
③当纯度提高分数低于阈值
④当例子数量在一个结点低于阈值
纯度估计(measuring purity)
熵(Entropy)
根据不同的P1寻找对应的熵值(熵值越高越不纯)
熵函数H()定义
0log(0)定义为0
选择拆分结点(使用熵)
信息增益=根结点熵值-加权平均左右子树的两个熵
选信息增益最大值较好
整合
决策树学习的步骤
if(未达到四个判断结束条件之一){
1.所有例子从根结点开始
2.计算所有可能的特征信息增益,选择最高的
3.通过特征值划分数据集,分为左右分支
}
递归算法,根结点有10个示例,当计算左右结点时是5个示例
使用特征值分类的one-hot编码(using one-hot encoding of categorical features-解决多值问题)
通过把Ear shape特征分为三个特征:Pointy ears、Floopy ears、Oval ears,1和0表示有无
这样每个特征值都只有两个值了
one-hot encoding
可以把其他特征值的值也用1、0表示,这样就有一串特征值输入的01串
连续特征值的值
增加了一个动物体重的特征,如何分割权重的特征?
如果设置以8磅为分界线,那么就将数据集分为两个,左边两只猫,右边三只猫五只狗
熵值计算如图(两只猫是2/10)
如果以9磅、13磅等等为分界线呢?
如果有10个示例,应该测9个阈值的信息增益,最后选择信息增益大的
回归树(Regression Trees)
把决策树概括为回归算法,这样就可以预测数字
通过计算该分类下所有动物体重的方差,来作为分类参数(类似P1)
计算信息增益,选择最大的较好
接下来的步骤和决策树类似,分别决定左右分支结点的分隔特征
使用多个决策树
将是个样例中的一只猫替换成一只狗,决策树就会发生很大变化,根结点特征从耳朵形状变成有没有胡须,这就导致了算法没有健壮性
因此要构建决策树集合
同一个样例通过每个集合给的不同反馈,投票(多的为结果),得到最终结果
有放回抽样(samping with replacement)
每次取一个token后都放回,这样就可以取到相同的token0
例如将是个猫狗放入黑盒子里,每次抽取一个,抽完后放回,抽10次
虽然抽10次可能抽不到全部的样例,但这样构建了一个新的数据集
随机森林算法(Random forest algorithm)
用替换生成的数据集来生成决策树,然后重复这个操作,得到多个决策树
预测时,让示例经过所有决策树预测,经投票后,多数的为最终结果
循环次数B不要太大,一般小于100
对于上面的算法,很多生成的决策树都比较相似或相同,因此下面提出了算法改进
在每一个结点,将要选用特征值分解数据集时,选择一个随机子集,允许算法从这个子集中选择特征值
XGBoost增强决策树
在一个决策树生成后,下一个生成树取数据集的概率不是相等的,而是提高上一个生成树没能选到的示例的概率
这样像是在集中注意学习改正上一个生成树的错误,生成更好的决策树
像是下图没打钩的三个示例有更高的可能被选中,将注意力集中在没被选中的样例上
对于XGBoot需要的替换数据集并不需要太多
XGBoot实现起来很麻烦,很多人都调库
决策树 VS. 神经网络
决策树:
适合使用决策树:
特征明显,结构化的数据
不适合使用决策树:
无结构化的(像是图像,音频,文本)
决策树优点是很高效
小型决策树人类容易解释,但决策树大起来,就不好观察每个结点如何分类了
一般都用XGBoot决策树,有个缺点是比单个决策树更昂贵
神经网络
非结构和结构化数据都适合使用神经网络
神经网络的缺点是慢,需要大量计算训练
神经网络的优点是可以和迁移学习一起使用,建立一个更强大的机器学习系统(多个模型),使用神经网络更容易
多个神经网路可以用梯度下降训练,决策树一次只生成一个
Summary
本周主要学习以下内容
1.决策树模型,创建决策树的步骤,通过信息增益选择结点特征值
2.解决多值问题的one-hot编码,如何分割带权重的特征值,回归树
3.使用多个决策树,有放回抽样,随机森林算法,XGBoot增强决策树
4.决策树与神经网络的比较