决策树与随机森林
- 既可以做分类也可以做回归问题
决策树算法以树形结构表示数据分类的结果。每个决策点实现一个具有离散输出的测试函数,记为分支。
根节点 非叶子节点 (即为决策点) 叶子节点 (代表分类后所获得的分类标记) 分支 (代表测试的结果)
1、训练阶段
从给定的训练数据集DB,构造出一颗决策树<br /><br />2、 分类阶段从根开始,按照决策树的分类属性逐层往下划分,直到叶节点,获得概念(决策、分类)结果
熵
P(X,Y) = P(X)* P(Y) X和Y 两个事件相互独立 Log(XY) = Log(X)+ Log(Y)
H(X),H(Y)当成他们发生的不确定性
P(几率越大)→ H (X)值越小
P(几率越小)→ H (X)值越大
熵 是无序性(或不确定性)的量度指标。
Gini系数
熵 、 Gini系数 值越大,表示越混乱
构造决策树,当系统的信息熵降为0时,就没必要往下构造决策树了,此时叶子节点都是纯的(这只是理想情况)。最坏的情况下,决策树的高度为属性(决策变量)的个数,叶子节点不纯(这意味着我们要以一定的概率来做出抉择)
构造树的基本想法是随着树深度的增加,节点的熵迅速地降低。熵降低的速度越快越好,这样我们有希望得到一颗高度最矮的决策树。决策树过高容易造成过拟合的情况。
ID3:信息增益 gian(x) = 熵的变化
C4.5:信息增益率
- 是ID3算法的扩展
- 能处理连续型的属性。首先讲连续型属性离散化,把连续型属性的值分成不同的区间,依据是比较每个分裂点的Gian值的大小。
- 缺少数据的考虑:在构建决策树时,可以简单地忽略缺失数据,即在计算增益时,仅考虑有属性的值记录
CART:Giini系数
评价函数: (损失函数 : 叶子节点个数 x 熵值)
剪枝
预剪枝
在构建决策树的过程中,提前停止
后剪枝
决策树构建好,然后开始裁剪
叶子节点个数越多,损失越大 (加入了惩罚系数,对过拟合的现象有一定解决)
随机森林
随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。
随机森林的双重随机性
- 数据选择随机性
- 特征选择随机
采样方式
**Bootstraping**:有放回的采样**Bagging** :有返回的采样N个样本一共建立分类器
