美文网首页
数据分类预测之python决策树

数据分类预测之python决策树

作者: afansdie | 来源:发表于2019-07-08 22:06 被阅读0次

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

决策树方法在分类、预测、规则提取等领域有着广泛应用。机器学习研究者J.Ross Quinlan 提出了ID3算法以后,决策树在机器学习、数据挖掘领域得到了极大的发展,之后又提出了C4.5,成为了新的监督学习算法。另外还有CART分类算法,值得一提的是ID3和CART孙法都是采用类似的方法从训练样本中学习决策树。


接下来简单叙述一下这几个算法:

ID3算法:

其核心是在决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点所应采用的合适属性。

C4.5算法:

C4.5决策生成算法相对于ID3算法的重要改进是使用信息增益率来选择节点属性。C4.5算法可以克服ID3算法存在的不足:ID3适用于离散的描述属性,而C4.5算法即能够处理离散的描述属性,也可以处理连续的描述属性

CART算法:

CART决策树是一种十分有效的非参数分类和回归方法,通过构建树、修建树、评估树来构建一个二叉树。当终结点是连续变量时,该树为回归树;当终结点是分类变量,该树为分类树。


本文主要介绍一下ID3算法。

ID3算法的简介以及原理:

ID3算法给予信息熵来选择最佳测试属性。它选择当前样本集中具有最大信息增益值的属性作为测试属性;样本集的划分则依据测试属性的取值进行,测试属性有多少不同取值就将样本集划分为多少子样本集,同时决策树上相应于该样本集的节点长出新的叶子节点。

根据信息论理论,采用划分样本集的不确定性作为衡量划分好坏的标准,用信息增益值度量不确定性:信息增益值越大,不确定性越小,因此,在每个非叶节点选择信息增益最大的属性作为测试属性,这样可以得到当前情况下最纯的拆分,从而得到较小的决策树。

公式如图

显然E(A)越小,Gain(A)的值越大,说明测试属性A对于分类提供的信息越大,选择A之后对分类的不确定程度越小。

ID3的算法具体实现步骤如下:

1,对当前样本集合,计算所有属性的信息增益

2,选择信息增益最大的属性作为测试属性,把测试属性取值相同的样本划分到同一个子样本集;

3,若子样本集的类别属性只含有单个属性,则分支为叶子结点,判断其属性值并标上相应的符号,然后返回调用出;否则对子样本集递归调用本算法。


废话不多说,直接贴代码为证:

#-*- coding: utf-8 -*-

import pandasas pd

#参数初始化

inputfile ='path'

data = pd.read_excel(inputfile, index_col =u'序号')#导入数据

#数据如果是类别标签,需要转化为数据

#用1和-1分别代表各自标签

data[data ==u'标签A'] =1

data[data ==u'标签B'] =1

data[data ==u'标签B'] =1

data[data !=1] = -1

x = data.iloc[:,:3].as_matrix().astype(int)

y = data.iloc[:,3].as_matrix().astype(int)

from sklearn.treeimport DecisionTreeClassifieras DTC

dtc = DTC(criterion='entropy')#建立决策树模型,

dtc.fit(x, y)#训练模型

#导入相关函数,可视化决策树

from sklearn.treeimport export_graphviz

x = pd.DataFrame(x)

from sklearn.externals.siximport StringIO

x = pd.DataFrame(x)

with open("tree.dot", 'w')as f:

f = export_graphviz(dtc, feature_names = x.columns, out_file = f)

相关文章

  • 数据分类预测之python决策树

    决策树是一种树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性上的不同取...

  • 数据分析03 - 决策树

    标签(空格分隔): 数据分析 CART 创建决策树做分类 分类树如下: CART 回归树做预测

  • 决策树(decision tree)

    决策树是一个预测模型,也是一个分类器,代表对象属性和对象值的一种映射关系。决策树适用于小数据的分类。 决策树例子图...

  • 机器学习实战教程(三):决策树实战篇(c)

    四、使用决策树执行分类 依靠训练数据构造了决策树之后,我们可以将它用于实际数据的分类。在执行数据分类时,需要决策树...

  • 机器学习之决策树

    刚刚在kaggle上练习了决策树的回归训练, 预测房价决策树图示: 决策树通过分类的方法得到样本的预测值, 叶子结...

  • 《数据挖掘导论》CH5.1基于规则的分类器-读书笔记(2)

    5.1基于规则的分类器 形式:规则-预测类 if-then(和决策树区别,决策树规则有总分,规则分类是平行的,但是...

  • 决策树_测试和存储

    测试算法:使用决策树执行分类 依靠训练数据构造了决策树之后,我们可以将它用于实际数据的分类。在执行数据分类时,需要...

  • 学习决策树

    1决策树是什么? 百度百科: 决策树是一种数据挖掘分类算法、是直观运用概率分析的一种图解法、是一个预测模型。 由于...

  • 全面解析Apache Spark中的决策树

    ApacheSpark中的决策树 决策树是在顺序决策问题进行分类,预测和促进决策的有效方法。决策树由两部分组成: ...

  • 学习使用Microsoft决策树创建 OLAP 数据挖掘模型

    微软决策树-挖掘模型建立及应用;学习使用Microsoft决策树创建OLAP数据挖掘模型;深入理解决策树分类的数据...

网友评论

      本文标题:数据分类预测之python决策树

      本文链接:https://www.haomeiwen.com/subject/gkhzhctx.html