关键词:
本篇以信息增益最大作为最优化策略来详细介绍决策树的决策流程。
首先给定数据集,见下图
注:本数据来源于网络
本篇将以这些数据作为训练数据(虽然少,但足以介绍清楚原理!),下图是决策树选择特征的流程
图中entropy代表决策树在根节点处的信息熵,Entropy(age)表示用age这个特征作为分支节点后的信息熵,同理,Entropy(income)和Entropy(credit)分别表示用收入和信用作为分支节点后计算出的信息熵,注意这里的信息熵并不是指某一次预测的实例选择某个特征后的分类不确定度,而是指一个总体的情况,针对的是n次预测(n足够大)。
信息增益就是用选择特征前后的信息熵做差,求得最大的信息增益作为我们要选择的特征。上图只是计算了根节点的特征选择情况,可以看出,选择特征age可以得到最大的信息熵,所以根节点的特征就选取age,根节点下面的子树的特征选择同理。
下面用程序来构建决策树
首先介绍环境:Windows系统,Python3.5.2,anaconda1.5.1,下面是代码。
from sklearn.feature_extraction import DictVectorizer import csv from sklearn import tree from sklearn import preprocessing from sklearn.externals.six import StringIO # Read in the csv file and put features into list of dict and list of class label #allElectronicsData = open('D:\PythonWorkspace\DecisionTree\AllElectronics.csv', 'r') #reader = csv.reader(allElectronicsData) #headers = reader.next() #D:\PythonWorkspace\DecisionTree\ with open("AllElectronics.csv","r") as csvfile: reader=csv.reader(csvfile) rows = [row for row in reader] headers=rows[0] readers=[] for i in range(1,len(rows)): readers.append(rows[i]) featureList = [] labelList = [] for row in readers: labelList.append(row[len(row)-1]) rowList = [] for i in range(1, len(row)-1): rowList.append(len(row[i]))#用字符串长度来标记对应的类别 featureList.append(rowList) print (labelList) print(featureList) clf = tree.DecisionTreeClassifier(criterion='entropy')#选择信息增益 clf = clf.fit(featureList, labelList)#训练模型 with open("allElectronicInformationGainOri.dot", 'w') as f: f = tree.export_graphviz(clf, feature_names=['age','income','student','credit_rating','class_buys_computer'], out_file=f)#可视化模型,以dot文件输出 newRowX = [11, 3, 3, 4]#找一个测试用例,因为训练数据本身就少,就捏造一个吧。。。 predictedY = clf.predict(newRowX) print("predictedY: " + str(predictedY))
这是可视化为pdf的结果
决策树(回归树)分析及应用建模
一、CART决策树模型概述(ClassificationAndRegressionTrees) 决策树是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似规则的方法。??决策树算法属于有指导的学习,即原数据必须... 查看详情
决策树系列决策树基础
...的结果是离散数据还是连续数据来划分的。今天要介绍的决策树就是分类算法中的一种。 在介绍机器学习和深度学习方法时,笔者将按照以下顺序来介绍相关理论:1.主要概念的定义2.模型工作原理3.最优 查看详情
机器学习笔记-决策树
决策树(DecisionTree)决策树学习,建立一颗树结构的模型。此模型由一系列逻辑决策构成。在此结构中决策点代表某个属性上的决策,分支表示决策选择项,树的叶子节点是一系列联合决策的结论。决策树通过分而治之(Divideandconq... 查看详情
决策树
决策树原理对一系列问题进行if/else推导,最终实现决策决策树构建#导入numpyimportnumpyasnp#导入画图工具importmatplotlib.pyplotaspltfrommatplotlib.colorsimportListedColormap#导入树模型和数据集加载工具fromsklearnimporttree,datasets#导入数据集拆分工... 查看详情
推荐系统系列3-基于决策树做推荐系统的方法
1、决策树概念 决策树是基于树的结构来进行决策的,这与人类的认知方法类似,例如:今天会下雨么?针对此问题我们首先会进行一系列的判断或者决策;今天阴天么,如果阴天,大概率会下雨;如果晴天,大概率不... 查看详情
详解决策树-剪枝十分钟机器学习系列笔记
决策树生成算法递归地产生决策树,直到不等你继续下去为止。这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,模型结构过于复杂,即出现过拟合现象直接来看优秀的决策树一般要求... 查看详情
实验四决策树算法及应用(代码片段)
博客班级机器学习作业要求实验四作业目标决策树算法及应用学号3180701124一、【实验目的】理解决策树算法原理,掌握决策树算法框架;理解决策树学习算法的特征选择、树的生成和树的剪枝;能根据不同的数据类型,选择不... 查看详情
决策树专题_以python为工具python机器学习系列
决策树专题_以python为工具【Python机器学习系列(十一)】文章目录1.关于信息熵的理解2.信息增益3.信息增益比4.基尼指数5.DecisionTreeClassifier()与DecisionTreeRegressor()6.决策树分类-葡萄酒分类_DecisionTreeClassifier7.决策树回归-加... 查看详情
机器学习决策树
1、决策树简介1.1决策树概述决策树算法是一种基于树形结构的分类算法,它能从给定的无序的训练样本中,提炼出树型的分类模型,树形中包含判断模块和终止模块。它是一种典型的分类算法,首先对数据进行处理,利用归纳... 查看详情
常见机器学习算法原理+实践系列4(决策树)
决策树分类决策树算法借助于树的分支结构实现分类,决策树在选择分裂点的时候,总是选择最好的属性作为分类属性,即让每个分支的记录的类别尽可能纯。常用的属性选择方法有信息增益(InformationGain),增益比例(gainratio... 查看详情
实验四决策树算法及应用(代码片段)
...与信息学院AHPU-机器学习实验-计算机18级作业要求实验四决策树算法及应用作业目标(1)理解决策树算法原理,掌握决策树算法框架;(2)理解决策树学习算法的特征选择、树的生成和树的剪枝;(3)能根据不同的数据类型,... 查看详情
机器学习实战基础(二十八):决策树概述(代码片段)
概述决策树是如何工作的 决策树(DecisionTree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适... 查看详情
实验四决策树算法及应用(代码片段)
...计算机18级作业要求实验四学号3180701128【实验目的】理解决策树算法原理,掌握决策树算法框架;理解决策树学习算法的特征选择、树的生成和树的剪枝;能根据不同的数据类型,选择不同的决策树算法;针对特定应用场景及数... 查看详情
数据挖掘入门系列教程(三点五)之决策树(代码片段)
数据挖掘入门系列教程(三点五)之决策树本来还是想像以前一样,继续学习《Python数据挖掘入门与实践》的第三章“决策树”,但是这本书上来就直接给我怼了一大串代码,对于决策树基本上没有什么介绍,可直接把我给弄懵... 查看详情
sklearn专题一:决策树(代码片段)
目录决策树1概述1.1决策树是如何工作的1.2sklearn中的决策树2 DecisionTreeClassifier与红酒数据集2.1 重要参数2.1.2 random_state& splitter2.1.3 剪枝参数2.1.4 目标权重参数2.2 重要属性和接口3.DecisionTreeRegressor3.1重要参数,属性及接... 查看详情
机器学习实战精读--------决策树
...吃力和认真!机器根据数据集创建规则,就是机器学习。决策树:从数据集合中提取一系列规则,适用于探索式的知识发现。决策树本质:通过一系列规则对数据进行分类的过程。决策树算法核心:构建精度高,数据规模小的决... 查看详情
机器学习系列(三十六)——回归决策树与决策树总结
参考技术A回归决策树树是用于回归的决策树模型,回归决策树主要指CART算法,同样也为二叉树结构。以两个特征预测输出的回归问题为例,回归树的原理是将特征平面划分成若干单元,每一个划分单元都对应一个特定的输出。... 查看详情
机器学习之决策树
一、决策树概述 前面我们讲的kNN算法,虽然可以完成很多分类任务,但它最大的缺点是无法给出数据的内在含义,而决策树的主要优势就在于数据形式非常容易理解。决策树算法能够读取数据集合,决策树的一个重要任... 查看详情