机器学习—决策树

1.决策树

使用特征不断的将数据集划分,划分后的数据集纯度更高,不确定性更小。

2.度量标准

信息增益、信息增益率、基尼系数
几个概念:
信息熵:度量某一属性的不确定性(纯度),熵越高,数据越混乱。
某一属性的熵:假设某一属性X的可能取值有x1,x2, … , xn。对于每一个可能的取值xi,其概率 P(X=xi) = pi , ( i = 1,2, … , n)。属性X的熵: H ( X ) = − ∑ i = 1 n p i log ⁡ 2 p i \mathrm{H}(\mathrm{X})=-\sum_{i=1}^{n} p_{i} \log _{2} p_{i} H(X)=i=1npilog2pi
样本集合D的熵:假设样本有k个类别,每个类别的概率是 ∣ C k ∣ ∣ D ∣ \frac{\left|C_{k}\right|}{|D|} DCk,其中 ∣ C k ∣ \left|C_{k}\right| Ck表示类别k的样本个数, ∣ D ∣ \left|D\right| D表示样本总数。则对于样本集合D来说熵为: H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ log ⁡ 2 ∣ C k ∣ ∣ D ∣ \mathrm{H}(\mathrm{D})=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=k=1KDCklog2DCk
信息增益(ID3算法):以某特征划分数据集前后的熵的差值。 划分前样本集合D的熵是一定的 H ( D ) H(D) H(D) ,使用某个特征A划分数据集D,计算划分后的数据子集的熵 H ( D ∣ A ) H(D \mid A) H(DA)。信息增益 g ( D , A ) \mathrm{g}(\mathrm{D}, \mathrm{A}) g(D,A)为: g ( D , A ) = H ( D ) − H ( D ∣ A ) \mathrm{g}(\mathrm{D}, \mathrm{A})=H(D)-H(D \mid A) g(D,A)=H(D)H(DA)
对信息增益的理解: 对于待划分的数据集D,其 H ( D ) H(D) H(D)是一定的,但是划分之后的熵 H ( D ∣ A ) H(D \mid A) H(DA)是不定的, H ( D ∣ A ) H(D \mid A) H(DA)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) - entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。
缺点:信息增益偏向取值较多的特征。当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较偏向取值较多的特征。
信息增益率(C4.5算法):以当前特征A作为随机变量划分数据集所得的信息增益 g ( D , A ) {g(D, A)} g(D,A)与该特征本身的信息熵 H A ( D ) {H_{A}(D)} HA(D)的比值。
g R ( D , A ) = g ( D , A ) H A ( D ) g_{R}(D, A)=\frac{g(D, A)}{H_{A}(D)} gR(D,A)=HA(D)g(D,A)
基尼系数(CART算法):Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。 Gini ⁡ ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 \operatorname{Gini}(\mathrm{p})=\sum_{k=1}^{K} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2} Gini(p)=k=1Kpk(1pk)=1k=1Kpk2
p k p_{k} pk表示选中的样本属于k类别的概率,则这个样本被分错的概率是 ( 1 − p k ) (1-p_{k}) (1pk)
CART是个二叉树,也就是当使用某个特征划分样本集合只有两个集合:1. 等于给定的特征值的样本集合 D 1 D_{1} D1 , 2 不等于给定的特征值的样本集合 D 2 D_{2} D2
对于每一种划分,都可以计算出基于划分特征= 某个特征值 将样本集合D划分为两个子集的纯度: Gini ⁡ ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ⁡ ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ⁡ ( D 2 ) \operatorname{Gini}(\mathrm{D}, \mathrm{A})=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)

3.步骤:

  1. 特征选择:使用某特征对数据集划分之后,各数据子集的纯度要比划分前的数据集D的纯度高。
  2. 决策树生成:选择哪个特征作为根节点;选择哪些特征作为子节点;什么时候停止并得到目标状态,即叶节点。
  3. 决策树剪枝:给决策树剪枝,不需要太多的判断,同样可以得到不错的结果,防止过拟合。
  • 预剪枝:在决策树构造时就进行剪枝。方法是,在构造的过程中对节点进行评估,如果对某个节点进行划分,在验证集中不能带来准确性的提升,那么对这个节点进行划分就没有意义,这时就会把当前节点作为叶节点,不对其进行划分。
  • 后剪枝:在生成决策树之后再进行剪枝。通常会从决策树的叶节点开始,逐层向上对每个节点进行评估。如果剪掉这个节点子树,与保留该节点子树在分类准确性上差别不大,或者剪掉该节点子树,能在验证集中带来准确性的提升,那么就可以把该节点子树进行剪枝。方法是:用这个节点子树的叶子节点来替代该节点,类标记为这个节点子树中最频繁的那个类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mrs.King_UP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值