决策树挑西瓜

本文介绍了决策树的基础知识,包括ID3算法的理论基础,如信息熵、信息增益和增益率。还详细展示了如何使用Python实现决策树,包括数据处理、计算信息熵和信息增益,以及利用sklearn库建立和训练模型。
摘要由CSDN通过智能技术生成

决策树介绍

基本介绍

决策树(decision tree)是一种基本的分类与回归方法。其主要算法有:ID3、C4.5、CART。以及进化后的C4.5算法C5.0、分类有极大提升的Tsallis等算法。这些算法的区别就在于选择最优特征的方式。但C5.0的核心原理与C4.5是相同的,它对于C4.5的改进在于计算速率,尤其是对于大数据,C4.5的速度非常慢,而C5.0对大数据运算效率极高。但C5.0一直是商用算法,之前一直未开源,但官方提供了可将C5.0构建的分类器嵌入到自己组织中的C源码。

处理流程

  1. 构建策略:   随着树的深度增加,节点的熵迅速降低。熵降低 的速度越快越好,可以得到高度最矮的决策树

  2. 决策树 决策树的基本流程遵循“分而治之”策略。

  3. 伪代码

> 这里是引用

  • 结束递归的三个条件 ①样本全部属于同一类别; ②此属性集合为孔或者此时所有样本的哥哥属性值相同; ③数据集在某一个属性上没有样本;

理论基础

  • 纯度(purity) 对于一个分支结点,如果该结点所包含的样本都属于同一类,那么它的纯度为1;纯度越高越好,尽可能多的样本属于同一类

  • 信息熵(information entropy)
    假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,…,|y|),则D的信息熵定义为:
    在这里插入图片描述

    显然,Ent(D)值越小,D的纯度越高。因为0<=pk<= 1,故log2 pk<=0,Ent(D)>=0.
    极限情况下,考虑D中样本同属于同一类,则此时的Ent(D)值为0(取到最小值)。当D中样本都分别属于不同类别时,Ent(D)取到最大值log2
    |y|.

  • 信息增益(information gain) 假定离散属性a有V个可能的取值{a1,a2,…,aV}.
    若使用a对样本集D进行分类,则会产生V个分支结点,记Dv为第v个分支结点包含的D中所有在属性a上取值为av的样本。不同分支结点样本数不同,我们给予分支结点不同的权重:|Dv|/|D|,
    该权重赋予样本数较多的分支结点更大的影响、由此,用属性a对样本集D进行划分所获得的信息增益定义为:
    在这里插入图片描述

    其中,Ent(D)是数据集D划分前的信息熵,∑v=1
    |Dv|/|D|·Ent(Dv)可以表示为划分后的信息熵。“前-后”的结果表明了本次划分所获得的信息熵减少量,也就是纯度的提升度。显然,Gain(D,a)
    越大,获得的纯度提升越大,此次划分的效果越好。

  • 增益率(gain ratio)
    基于信息增益的最优属性划分原则——信息增益准则,对可取值数据较多的属性有所偏好。C4.5算法使用增益率替代信息增益来选择最优划分属性,增益率定义为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值