挖掘建模--分类与预测--决策树

本文介绍了决策树的基本概念,它通过属性划分进行分类。重点讲述了ID3算法的实现步骤,包括计算信息增益、选择最佳属性及递归划分。ID3仅适用于离散属性,对于连续属性需先离散化。最后提到了利用graphviz工具可视化的展示。
摘要由CSDN通过智能技术生成

决策树是一个树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性上的不同取值将其划分成若干个子集。构造决策树的核心问题是在每一步如何选择适当的属性对样本做拆分,对一个分类问题,从已知类标记的训练样本中学习并构造出决策树是一个自上而下,分而治之的过程。

常用的决策树算法
决策树算法算法描述
ID3算法其核心是在决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点时所应采用的合适属性
C4.5算法相对于ID3的改进是使用信息增益率来选择节点属性,克服了ID3的不足:只适用于离散的描述属性,而C4.5既能够处理离散的描述属性,也可以处理连续的描述属性
CART算法非参数分类和回归方法,通过构建树,修建树,评估树来构建一个二叉树,当终结点是连续变量时为回归树,当终结点是分类变量时为分类树
ID3算法具体流程

决策树-ID3算法
实现步骤如下:
(1)对当前样本集合,计算所有属性的信息增益
(2)选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划分为同一个子样本集
(3)若子样本集的类别属性只含有单个属性,则分支为叶子节点,否则对子样本集递归调用本算法
ID3算法只能处理离散属性,对于连续性的属性,在分类前需要进行离散化。

#使用ID3决策树算法预测销量高低
import pandas as pd
#参数初始化
filename = 'C:/Users/ASUS/Desktop/Python/chapter5/demo/data/sales_data.xls'
data = pd.read_excel(filename,index_col = u'序号')
#数据是类别标签,要将他转换为数据
#用1来表示“好”,“是”,“高”这三个属性,用-1来表示“坏”,“否”,“低”
data[data == u'好'] = 1
data[data == u'是'] = 1
data[data == u'高'] = 1
data[data != 1] = -1
x = data.iloc[:,:3].astype(int)
y = data.iloc[:,3].astype(int)

from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy') #建立决策树模型,基于信息熵
dtc.fit(x,y) #训练模型

#导入相关函数,可视化决策树
#导出的结果是一个dot文件,需要安装graphviz才能将他转换为pdf或png格式
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO
with open("tree.dot",'w') as f:
  f = export_graphviz(dtc,feature_names = x.columns,out_file = f)


安装graphviz工具可视化生成的结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值