机器学习实战之决策树最有特征的选取

本文介绍了机器学习中决策树的构建过程,重点讲解了特征选择的重要性,特别是通过计算香农熵(经验熵)和信息增益来评估特征的分类能力。以贷款申请数据为例,展示了如何利用Python实现信息增益计算,以选择最佳特征来构建决策树模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习了jack cui机器学习博客后,为了给自己留下一个理解的笔记,本人比较笨,以后方便查看。他的博客地址在下方,写得很好。

点击打开链接

决策树机器学习的一种分类方法,

拿相亲来说,决策树模型就是上面这一个,长方形为这个人的某个特征,决策树有内部节点和叶节点。内部节点就是这个长方形,是其特征。叶节点是椭圆,就是其得到的结果,是备胎还是值得考虑。而特征也是一个分类的规则条件。是将它继续划分到哪一边。每一个特征都会影响这个决策树分类的结果。

决策树的构建这一过程要分为3个步骤:

特征选择,决策树的生成和决策树的修剪。

使用决策树做预测需要一下过程:收集数据-->准备数据-->分析数据-->训练算法-->测试算法-->使用算法

1.特征选择:

特征选择就是选取具有分类能力的特征,如果某个特征对本次分类不会产生影响或则说产生的影响很低,那么我们就可以选择抛弃这个特征。这个特征就是没有分类能力的,无用特征。而在选取特征上,有一个方法就是计算某个特征的信息增益,然后看其信息增益的大小,越大的说明它对本次分类结果影响越大,反之亦然。

这里有一个实例,就是贷款申请的样本数据:


这次我们通过说给的数据学习一个贷款申请的决策树,用于对未来某个客户提出申请贷款时,我们可以根据这个人的一些特征数据考虑是否给这个人贷款。

那么我们要构建一个决策树模型,就应该选择分类能力大的特征,现在看上面那个表单,不会看到什么不同。这是就需要我们计算信息增益了,在计算信息增益之前,我们需要计算一个香农熵。

(1)香农熵(经验

根据此公式计算经验熵H(D),分析贷款申请样本数据表中的数据。最终分类结果只有两类,即放贷和不放贷。根据表中的数据统计可知,在15个数据中,9个数据的结果为放贷,6个数据的结果为不放贷。所以数据集D的经验熵H(D)为

所以H(D)经验熵为0.971

那么现在需要的一个就是条件熵,也就是某个特征的信息增益:


在上面我给的那个博客地址上已经讲得很好了,很容易理解

以贷款申请样本数据表为例进行说明。看下年龄这一列的数据,也就是特征A1,一共有三个类别,分别是:青年、中年和老年。我们只看年龄是青年的数据,年龄是青年的数据一共有5个,所以年龄是青年的数据在训练数据集出现的概率是十五分之五,也就是三分之一。同理,年龄是中年和老年的数据在训练数据集出现的概率也都是三分之一。现在我们只看年龄是青年的数据的最终得到贷款的概率为五分之二,因为在五个数据中,只有两个数据显示拿到了最终的贷款,同理,年龄是中年和老年的数据最终得到贷款的概率分别为五分之三、五分之四。所以计算年龄的信息增益,过程如下:




好了,现在就来解读整个代码,这也是我这个小白写笔记的原因,方便以后复习


在编写代码之前,我们先对数据集进行属性标注。

  • 年龄:0代表青年,1代表中年,2代表老年;
  • 有工作:0代表否,1代表是;
  • 有自己的房子:0代表否,1代表是;
  • 信贷情况:0代表一般,1代表好,2代表非常好;
  • 类别(是否给贷款):no代表否,yes代表是。
[python]  view plain   copy
  1. from math import log  
  2.   
  3. ''''' 
  4. 函数说明: 
  5. 创建测试数据集 
  6. Parameters(参数): 
  7.  
  8. returns: 
  9. dataSet:数据集 
  10. labels 分类属性 
  11. '''  
  12. def createDataSet():  
  13.      dataSet = [[0000'no'],                        #数据集  
  14.             [0001'no'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值