决策树

决策树原理
适用场景:决策树能够生成清晰的基于特征(feature)选择不同预测结果的树状结构,希望更好的理解手上的数据的时候往往可以使用决策树,在实际应用中,受限于它的简单性,决策树更大的用处是作为一些更有用的算法的基石,例如:随机森林。
决策树优缺点
优点:

  1. 计算复杂度不高,输出结果易于理解,
  2. 对中间值的缺失不敏感,
  3. 可以处理不相关特征数据。

缺点:可能会产生过度匹配问题。
适用数据类型:数值型和标称型。
决策树的一般流程

  1. 收集数据:可以使用任何方法
  2. 准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化
  3. 分析数据:可以使用任何方法,构造树完成之后,我们应该检查图像是否符合预期
  4. 训练算法:构造树的数据结构
  5. 测试算法:使用经验树计算错误率
  6. 使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义

创建分支的伪代码函数createBranch()如下所示:

检测数据集中的每个子项是否属于同一分类:
	If so return 类标签;
 	Else    
		寻找划分数据集的最好特征
		划分数据集
		创建分支节点      
			for 每个划分的子集
				调用函数createBranch并增加返回结果到分支节点中     
		return 分支节点 

信息增益
熵定义为信息的期望值,在明晰这个概念之前,我们必须知道信息的定义。如果待分类的事 务可能划分在多个分类之中,则符号xi的信息定义为
2 ( ) log ( ) ii
其中p(xi)是选择该分类的概率。
为了计算熵,我们需要计算所有类别所有可能值包含的信息期望值,通过下面的公式得到:
在这里插入图片描述
计算给定数据集的香农熵
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
划分数据集
按照给定特征划分数据集
在这里插入图片描述
选择好的数据集划分方式
在这里插入图片描述
递归构建决策树
在这里插入图片描述
创建树的函数代码
在这里插入图片描述
使用文本注解绘制树节点
在这里插入图片描述
在这里插入图片描述
获取叶节点的数目和树的层数
在这里插入图片描述
plotTree函数
在这里插入图片描述
在这里插入图片描述
使用决策树的分类函数
在这里插入图片描述
使用pickle模块存储决策树
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值