id3决策树 鸢尾花 python_机器学习-决策树及ID3 python实现

a85e5cf0f04f48d9afd12e1f014e5297.png

目录:

  • 决策树概述
  • 特征选取
  • ID3决策树算法
  • Python实现ID3 决策树

决策树概述

分类决策树模型时一种描述对实例进行分类的树形结构。决策树由结点node)和有向边directed edge)组成。结点有两种类型:内部结点(圆点)和叶结点(方框),内部结点表示一个特征或属性,叶结点表示一个类别。

cd1ca64038e4dbe762c9c882a73ddd6b.png

根节点包含样本全集,从根节点到每个叶节点的路径对应了一个判定测试序列,其基本流程遵循简单而直观的“分而治之”的思想。

  • 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失值不敏感,可以处理不相关特征数据
  • 缺点:可能会产生过度匹配的问题。
  • 使用数据类型:数值型标称型

决策树的生成是一个递归的过程。导致递归结束的情况有三种:

  1. 当前节点包含的样本全属于同一类别
  2. 当前样本属性集为空,或者当前所有样本在所有属性上取值相同
  3. 当前节点包含的样本集为空

第一种情况很好理解。第二种情况当程序遍历完所有划分样本数据的属性后,没有属性可以划分;或者样本的所有属性取值都相同,但是此时样本的类别可能不同,我们将该结点设定为所含样本最多的类别。第三种情况也不难理解,不过对第三种情况的处理,是将该结点的类别设定为其父结点所含样本最多的类别。

决策树学习常用的算法有ID3、C4.5与CART

特征选取:

信息熵(information entropy),是衡量样本集合纯度的最常用的一种指标。

在D上的概率分布。

条件熵

表示在已知随机变量
X的条件下随机变量 Y的不确定性。当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和条件经验熵。

信息增益:特征A对训练数据集D的信息增益

,定义为集合D的经验熵
与特征A给定条件下D的经验条件熵
之差。

信息增益表示由于特征A而使得对数据集的分类不确定性减少的程度。

根据信息增益的特征选取准则是:对训练数据集D,计算其每个特征的信息增益,比较大小,选择信息增益最大的特征作为划分子集的依据。

ID3决策树算法:

ID3算法的核心是在决策树各个结点上应用信息增益准则

具体的算法:

输入:训练集D和属性集A;

输出:决策树T

① 从根结点开始,计算所有特征属性的信息增益;

② 选择信息增益最大的特征属性作为最优划分属性,由该特征的不同取值建立子结点;

③ 递归调用1,2,直到递归结束;

④ 输出决策树。

Python实现ID3决策树:

输入样本集和特征集:

def 

计算经验熵:

from 

计算最大信息增益的特征属性:

def 

去除特征,划分子集

#按照给定特征划分数据集

构造决策树:

def 

参考文献:

《机器学习》周志华著

《统计学习方法》李航著

《machine learning in action》Peter Harrington

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值