决策树 Decision Tree

决策树 Decision Tree

一、学习决策树

1、决策树模型

2、学习算法

二、 特征选择

1、香农熵

2、信息增益

3、划分数据集

三、决策树的生成

1、ID3算法

2、C4.5算法

四、决策树的拟合度优化

1、欠拟合和过拟合

2、决策树剪枝

五、CART算法
六、sklearn实现决策树
七、分类模型的评估指标

1、二分类决策树中的样本不不均衡问题

2、混淆矩阵

八、决策树算法评价
一、学习决策树

1、决策树模型

决策树(Decision Tree)是一种实现分治策略略的层次数据结构。它是一种有效的非参数学习方法,并可以用于分类和回归。我们主要讨论分类的决策树。

树模型是有监督学习类算法中应用广泛的一类模型,同时可应用于分类问题和回归问题,其中用于解决分类问题的树模型常被称为分类树,而用于解决回归类问题的树模型被称作回归树。树模型通过递归式切割的方法来寻找最佳分类标准,进而最终形成规则。

分类决策树模型表示一种基于特征对实例例进行分类的树形结构(包括二叉树和多叉树)。

决策树由结点(node)和有向边(directed edge)组成,树中包含三种结点:
根结点(root node):包含样本全集。没有⼊入边,但有零条或多条出边;
内部结点(internal node):对应于属性测试条件,恰有一条⼊入边,和两条或多条出边;
叶结点(leaf node)或终结点(terminal node):对应于决策结果,恰有一条入边,但没有出
边。
在这里插入图片描述

2、学习算法

假设 X是表示特征的随机变量量, Y是表示类的随机变量量,则条件概率分布可表示为P(Y|X)。 取值X给定划分条件下的区域的集合, Y取值于类的集合。各叶结点(区域)上的条件概率往往会偏向某一个类,即属于某一类的概率较大。决策树在分类时会将该结点的实例强行分到条件概率大的那一类去。

决策树学习本质上是从训练数据集中归纳出一组分类规则,也称为 “树归纳”。对于给定的训练数据集,存在许多对它无错编码的树。而为了简单起见,我们感兴趣的是从中选出 “最小” 的树,这里的树的大小用树的结点数和决策节点的复杂性度量。从另一个角度看,决策树学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模型有无数个,我们选择的模型应该是不仅能对训练数据有很好的拟合,而且对未知数据也有很好的预测。

树的学习算法是 “贪心算法”,从包含全部训练数据的根开始,每一步都选择最佳划分。依赖于所选择的属性是数值属性还是离散属性,每次将数据划分为两个或 n个子集,然后使用对应的子集递归地进行划分,知道所有训练数据子集被基本正确分类,或者没有合适的特征为止,此时,创建一个树叶结点并标记它,这就生成了一颗决策树。
综上,决策树学习算法包含特征选择、决策树的生成与决策树的剪枝。由于决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型。其中决策树的生成只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。

二、 特征选择

1、香农熵

决策树学习的关键在如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别, 即结点的 “纯度” (purity)越来越高。在分类树中,划分的优劣用不纯度量(impurity-measure)定量分析。

在信息论与概率统计中,熵是表示随机变量不确定性的度量。这里我们使用的熵,也叫作香农熵,这个名字来源于信息论之父 克劳德·香农。熵函数是一个标准的凸函数。熵越高,信息的不纯度就越高,则混合的数据就越多。

1)熵
∅ ( p , 1 − p ) = − p l o g 2 p − ( 1 − p ) l o g 2 ( 1 − p ) \varnothing (p,1-p)=-plog_2p-(1-p)log_2(1-p) (p,1p)=plog2p(1p)log2(1p)
2)基尼指数(Gini index)
∅ ( p , 1 − p ) = 1 − ∑ i = 1 m p i 2 \varnothing (p,1-p)=1-\sum_{i=1}^{m}p_i^2 (p,1p)=1i=1mpi2
3)误分类误差(Classification error)
∅ ( p , 1 − p ) = 1 − m a x ( p , 1 − p ) \varnothing (p,1-p)=1-max(p,1-p) (p,1p)=1max(p,1p)
2、信息增益

全局最优树没有办法简单高效的获得,因此此处我们仍然要以局部最优化方法来指导建模过程,并通过优化条件的设置,最终在每一步都是局部最优的条件下逐步至尽可能全局最优的结果。而在信息熵指数的指导下,决策树生成过程的局部最优条件也非常好理解:即在选取属性测试条件(attribute test condition)对某结点(数据集)进行切分的时候,尽可能选取使得该结点对应的子节点信息熵最小的特征进行切分。换而言之,就是要求父节点信息熵和子节点总信息熵之差要最大。
I ( c h i n d ) = ∑ v = 1 v ∣ D v ∣ ∣ D ∣ E n t ( D v ) I(chind)=\sum_{v=1}^{v}\frac{\left | D^v \right |}{\left | D \right |}Ent(D^v) I(chind)=v=1

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值