学习笔记
PART2 Advanced Learning Algorithms week4
1.1 决策树模型
1.关键术语:根节点、决策节点(确定走向)、叶子节点
1.2 学习过程
1.决策树的学习过程有几个关键的步骤,首先,是如何决定哪个特征作为决策节点的判断依据,以达到最大的纯度或是最小的杂质。
2.其次的关键步骤在于,我们何时决定停止分裂?
*限定深度是为了使得我们的决策树不会过于笨重和大,且防止其过拟合,以下是深度的规定方式
2.1 纯度 measuring purity
1.熵entropy是一种衡量纯度的方式
2.熵entropy的公式
*我们这里规定0log0=0
*这里的log需要使用2作为底而不是e,从而达到entropy的取值范围为[0,1]
2.2 选择拆分信息增益
1.熵的减少也称为信息增益,我们一般在选择什么特征作为决策节点的时候会尽量减小熵
2.如何实现选择不同特征作为决策节点时的信息增益最大?
*首先计算不同特征作为决策节点时得到的左节点和右节点的熵
*加权平均计算熵
*选择最低的平均加权熵
3.新概念(尽管不会对我们的拆分选择产生影响),我们会计算根节点的熵(即根节点的纯度),减去拆分后的加权平均熵(拆分后的纯度),得到的结果便称为信息增益(我们的纯度增加了多少)。这一概念的计算可以帮助我们判断进一步拆分节点是否有必要,用于判断何时停止拆分节点。
4.如图所示是信息增益的计算公式information gain=H(p1_root)-(w_left*p1_left+w_right*p1_right)
2.3 整合
1.决策树的建立过程
2.4 独热编码 using one-hot encoding of categorical features
1.通过将拥有k个离散值的特征分解为k个二进制的特征,从而进行与之前一样的决策树决策分解
2.5 连续值特征应用于决策树 continuous valued features
1.对于连续值特征,我们一般对其所有的样本范围进行统计,计算不同值作为决策阈值时的信息增益,得到最好的阈值对应的信息增益,同时与其他的特征的信息增益进行对比。如果连续值的信息增益是最大的,就将其阈值作为决策节点。
2.关于阈值的选择,我们有一个惯例是对所有的值进行排序,选择中间的值作为阈值。
2.6 回归树 regression tree
1.决策树会根据叶子节点的平均值进行预测
2.如何决定拆分的特征?
*在构建回归树时,我们不是减少熵,而是尽量减小每个数据子集的加权方差
*方差检测数据变化的范围,越小说明数据变化范围小
*我们通过root_varience-(w_left*p+w_right*p)
,获得减少的方差,我们一般会选择能使得我们的方差结果减少的越大的那个特征作为决策节点
3.1 使用多个决策树 using multiple decision tree
1.单一决策树对于样本的改变比较敏感,比如,仅仅改变某一样本的某一特征,就会导致根节点的信息增益发生改变,从而导致完全不一样的结果,因此使用多个决策树是比较稳妥的选择
2.如图是多个决策树,对某一样本的预测值可能会产生多个不一样的结果,我们用投票决定的方式获取最终的预测
3.2 有放回抽样 sampling with replacement
1.通过有放回抽样的方式,我们构建一个新的数据集
3.3 随机森林 random forest algorithm
1.B是我们创建的决策树的数量,一般为100比较合适,取值范围为[64,228]
,B很大,不会损害我们的结果。但当B大于某一个值的时候,反而会导致收益缩减,它事实上没有表现的那么好,只会减慢速度。
2.随机森林法,在每个决策节点,只采用部分的特征值计算信息增益,可以防止过拟合,但比较而言更适合大的数据量
3.4 XGBoost 增强的决策树
1.XGBoost决策树不同于随机森林和反向决策树的地方在于,它的训练样本,会更集中于之前没有预测正确的数据
2.XGBoost决策树的优点
3.XGBoost决策树的使用,如果使用分类方法,可以是XGBClassifier
,如果是回归预测,可以是XGBRegressor
3.5 何时使用决策树
1.
*结构化的数据上,决策树表现的不错(不论结构化数据内存储的是连续的还是离散的值)
*但决策树不适用于非结构的数据,如图像、视频、文本等
*决策树的运算速度很快
Labs
- decision tree