【机器学习实战】——决策树&树回归

【摘要】
本文对应《机器学习实战》——第三章和第九章:决策树和树回归
对应周志华《机器学习》第四章:决策树
内容大纲
第三章:决策树简介、数据集中度量一致性、递归构造决策树、Matplotlib绘制树形图;
第九章:CART算法、回归与模型树、树剪枝算法以及Python中GUI的使用


第三章:决策树

【引言】决策树的概念就是:给定一组数据(正例和反例),根据一系列推断规则,将数据的分类结果反馈给用户。

目前最经常使用的数据挖掘算法便是决策树算法,也常用其来处理分类问题,最根本的原因是决策树并不需要很了解机器学习的相关知识,甚至只要明白最简单的二分类条件选择语句便可以构造一棵简单的决策树。

在决策树的流程图中,长方形代表判断模块,椭圆形代表终止模块,箭头被称作分支。决策树的主要优势在于数据形式非常容易理解。

决策树的一个重要任务是为了理解数据中所蕴涵的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取一系列规则。机器根据数据集创建规则的过程就是机器学习的过程


1、决策树的构造

决策树的基本概念及其构造规则

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

在构建决策树的时候,我们需要知道当前数据集上哪个特征在划分数据分类时起到了决定性的作用,为此我们需要评估每个特征。完成测试后,原始数据集就被划分为几个数据子集。这些子集会分布在第一个决策点的所有分支上(e.g:色泽:乌黑 D 1 ~ \tilde{D^1} D1~、青绿 D 2 ~ \tilde{D^2} D2~、浅白 D 3 ~ \tilde{D^3} D3~)。如果某个分支下的数据属于同一类型,则无需进一步对数据集进行分割;若数据子集内的数据不属于同一类型,则继续重复划分过程,知道所有具有相同类型的数据均在一个数据子集内。

决策树创建分支伪代码函数(递归函数)createBranch():

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

其划分步骤如下:

(1)收集数据:任何方法
(2)准备数据:树构造算法只适用于标称型数据,因此数值型数据需要使用连续属性离散化技术处理
(3)分析数据:任何方法,构造树完成后利用可视化观察图形是否符合预期
(4)训练算法:构造树的数据结构
(5)测试算法:使用经验树计算错误率
(6)使用算法:可适用于任何监督学习算法,且易于理解数据内涵

决策树的划分规则并不局限于二分法,因为可能会根据某个属性划分出多个可能的值。这里采用ID3算法,每次划分数据集时只选取一个特征属性,然后可能需要采用一些手段将二值数据、离散数据经过处理后再进行划分。


1.1信息增益

【《西瓜书》回顾】
①信息熵:是度量样本集合纯度最常用的一种指标。
E n t ( D ) = − ∑ k = 1 ∣ Y ∣ p k l o g 2 p k Ent(D) = -\sum_{k=1}^{|Y|}p_klog_2p_k Ent(D)=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值