文章目录
1.决策树
1.1数模型
- 比如下面一家人我们想要进行分类,画出树状图的形式
- 可以按照年龄来分,也可以按照性别来分
- 其中从分类到具体人的过程就称为“决策”
- 所有的数据最终都会落到叶子节点,即可以做分类也可以做回归
- 决策树对判断顺序的把控非常严格,比如将下图年龄和性别顺序进行调换,那么结果就是截然不同的了
1.2树的组成
- 根结点:树模型最上面的点
- 非叶子节点与分支:中间过程
- 叶子节点:最终的决策结果
1.3决策树的训练与测试
- 训练阶段:从给定的训练集构造出来一棵树(从跟节点开始选择特征,如何进行特征切分)
- 测试阶段:根据构造出来的树模型从上到下走一遍
- 一旦构造好了决策树,那么分类或者预测任务就很简单了,只需要走一遍就可以了,那么难点就在于如何构造出来一棵树,这就没那么容易了,需要考虑的问题还有很多的
2.熵的作用
2.1如何切分特征(选择节点)
- 问题:根结点的选择该用哪个特征呢?接下来呢?如何切分呢?
- 想象一下:我们的目标应该是根结点就像一个老大似的,能更好的切分数据(分类的效果更好),根节点下面的节点自然就是二当家了
- 目标:通过一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出来最好的那个当成根节点,以此类推
2.2衡量标准-熵
- 熵:表示随机变量不确定性的度量,不确定性越大,得到的熵值也就越大(就是物体内部的混乱程度,比如杂货市场里面什么都有,就是混乱的,而专卖店只卖一个牌子,就稳定多了)
- 公式: H ( X ) = − ∑ p i ∗ l o g p i , i = 1 , 2 , … , n H(X)=-\sum pi*log_{pi},i=1,2,…,n H(X)=−∑pi∗logpi,i=1,2,…,n,其中 p i pi pi是概率
- A集合[1,1,1,1,1,2,2]
- B集合[1,2,3,4,5,6,7]
- 显然A集合的熵值低,因为A里面只有两个种类,相对稳定,而B的种类太多了,熵值就会大很多
- 在分类任务中我们希望通过节点分支后数据类别的熵值大的
- 在二分类中:概率为0.5的时候不确定性最大,因为在概率为0和1时,随机变量完全没有不确定性,就抛硬币的时候,在抛入空中的时候不确定性是最大的
- 信息增益:表示特征X使得类Y的不确定性减少的程度(分类后的专一性,希望分类后的结果是同类在一起)
2.3决策树构造实例
- 现在有下表的数据,是14天的打球情况
- 特征:4种环境变化
- 划分方式:4种
- 根据信息增益来判断谁当根节点
- 在历史数据中(14天),有9天打球,5天不打球,所以此时的熵应该为:
- − 9 14 l o g 2 9 14 − 5 14 l o g 2 5 14 = 0.940 -\frac 9 {14}log_2\frac 9 {14}-\frac 5 {14}log_2\frac 5 {14}=0.940 −149log2149−145log2145=0.940
- 4个特征逐一分析,先从outlook特征开始:
- Outlook=sunny时,熵值为0.971
- Outlook=overcast时,熵值为0
- Outlook=rainy时,熵值为0.971
- 根据数据统计,outlook取值分别为sunny,overcast,rainy的概率分别为: 5 14 , 4 14 , 5 14 \frac 5 {14},\frac 4 {14} ,\frac 5 {14} 145,144,145
- 熵值计算: 5 14 ∗ 0.971 + 4 14 ∗ 0 + 5 14 ∗ 0.971 = 0.693 \frac 5 {14}*0.971+\frac 4 {14}*0+\frac 5 {14}*0.971=0.693 145∗0.971+144∗0+145∗0.971=0.693(加权计算)
- 接下来用同样的方法,遍历其他三个特征
- gain(temperature)=0.029
- gain(humidity)=0.152
- gain(windy)=0.048
- 通过比较算出,当outlook时,系统的熵值从原始的0.940下降到0.693,增益为0.247
- 所以outlook就是根节点
- 在当前节点下面,再遍历一遍特征,找第二个节点
3.信息增益率与gini系数
- ID3:信息增益
- C4.5:信息增益率(解决ID3问题,考虑自身熵)
- CART:使用GINI系数来当做衡量标准
- GINI系数: G i n i ( p ) = ∑ k − 1 K P k ( 1 − p k ) = 1 − ∑ k − 1 K P k 2 Gini(p)=\sum_{k-1}^K P_k(1-p_k)=1-\sum_{k-1}^K P_k^2 Gini(p)=∑k−1KPk(1−pk)=1−∑k−1KPk2(和熵的衡量标准类似,计算方式不相同)
4.决策树剪枝策略
- 决策树拟合风险很大,理论上可以完全分得开数据(想象一下如果树足够庞大,每个叶子节点不就一个数据了吗)
- 剪枝策略:预剪枝,后剪枝
- 预剪枝:边建立决策树边进行剪枝的操作(更实用),限制深度,叶子节点个数叶子节点样本数,信息增益量等
- 后剪枝:当建立完决策树后来进行剪枝操作,通过一定的衡量标准 C α ( T ) = C ( T ) + α ∣ T l e a f ∣ C_\alpha(T)=C(T)+\alpha|T_{leaf}| Cα(T)=C(T)+α∣Tleaf∣,叶子节点越多,损失越大