决策树与随机森林python

1. 决策树概念

决策树算法以树状结构表示数据的分类的结果。每个决策点实现一个具有离散输出的测试函数,记为分支。先树结构再决策。即可分类又可回归。

2.决策树结构-以打篮球为例

在这里插入图片描述
根节点:只有输出分支,没有输入分支。图中为age;
叶子节点:作出分类/回归结果的节点;只有输入没有输出分支;图中为爱打篮球/不爱打篮球;
非叶子节点: 除去叶子节点,其他还没得出分类label的节点为非叶子节点;决策过程的中间节点。 如 male;
分支:树叉。

3.决策树构建

思路:随着树深度的增加,节点的熵迅速地降低。选择以熵下降速度最快的节点作为决策点,可以保证得到最矮决策树。

3.1 熵,基尼系数Gini, 误判率

熵:属性或物品内部混乱程度/不确定性
在这里插入图片描述
如果发生事件A的概率很小,则事件A发生的不确定性很高,则熵很高,利用ln函数转化,则可以得到比较大的值且为负号。比如0.1,ln(0.1)的值趋向负无穷,0.1*ln(0.1)也趋向负无穷。 另外ln1=0, lnx<0,if x小于1。故熵公式再加个负号。
Gini系数:越大,则不确定性越大;
熵的值介于0-1;Gini 的值域介于0-0.5;
在这里插入图片描述

3.2 两个过程

在这里插入图片描述

3.21 训练过程-以今天打不打篮球为例

步骤:计算最初熵值,遍历所有可以作为决策的条件,选择熵值下降最快的节点作为决策节点;
以这个思想算一下以下数据集(14行,4个特征);
该数据集是根据天气outlook,温度,湿度,风等判断是否外出打篮球。
最初熵值:play中no有5个,yes为9个,则最初熵值为0.940.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 决策树算法

在这里插入图片描述

信息增益

计算公式:
在这里插入图片描述
节点A的属性有N个,
节点A的熵计算其实是以与属性相关的样本数/总样本数作为权重,计算各分属性的熵的加权平均。

信息增益存在一个致命的问题:对可取值数目较多的属性有所偏好。
即如果特征中加入ID,等不存在实际意思的列但又具有唯一标示,则算计算出来的熵为0,使用该特征可以最大化信息增益。

处理方式:将其除以某个数,这个数在属性的可取值多的情况下,取值也很大,这样就抵消了一部分因为属性的可取值的数目带来的影响。

信息增益率

因此引入 C4.5信息增益率:
在这里插入图片描述
在这里插入图片描述
但是,由于IV(a)变化的比Gain(D,a)快
所以信息增益率对可取值数目较少的属性有所偏好。
对于ratio我的理解是,对信息增益/分支本来总的信息增益,得到的是比较均衡的比例,即这个熵的下降针对节点A(选不选的那个节点)的总的熵来说,比例是不是够大;

cart算法-Gini系数

预防过拟合现象的两种方法:
在这里插入图片描述
预剪枝:可以设定决策树的深度d,当分支到树高度为d时停止剪枝;
后剪枝:先构造好决策树,再挑一些分支进行处理。对cart评价公式加入惩罚项,叶子越大惩罚力度越大,alpha可以任选,a越大时,则偏好叶子节点少的,反之。

如果待预测分类是离散型数据,则CART生成分类决策树。
如果待预测分类是连续性数据,则CART生成回归决策树。
CART分类树预测分类离散型数据,采用基尼指数选择最优特征,同时决定该特征的最优二值切分点。

5.从决策树到随机森林

随机森林是很多决策树组成的,但不同在于它的决策树是随机生成的,随机可理解为两层随机性:
1.数据随机选择(即利用bootstrap有放回的采样)
目的:使某些树选不到异常样本点;
2.特征的随机选择
目的:使某些决策树可以将可能影响决策树性能的特征剔除;
好处:
随机抽样和随机抽取特征可以很好地防止过拟合现象;
随机抽取特征也可以克服特征维度过高问题;

6.python实例 调参

reference:信息增益与信息增益率https://blog.csdn.net/u013164528/article/details/44359677?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158617588919726869008331%2522%252C%2522scm%2522%253A%252220140713.130056874…%2522%257D&request_id=158617588919726869008331&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-all_SOOPENSEARCH-1
笔记的视频讲解版本:
https://www.bilibili.com/video/BV1Ps411V7px?p=5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值