机器学习决策树

bep-feijin bep-feijin     2023-01-10     705

关键词:

1、决策树简介

1.1 决策树概述

决策树算法是一种基于树形结构的分类算法,它能从给定的无序的训练样本中,提炼出树型的分类模型,树形中包含判断模块和终止模块。它是一种典型的分类算法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。决策树是一种监督学习,因此需要提前给出类别标签和数据集合。

决策树的原理:每个决策树都表述了一种树型结构,它由它的分支来对该类型的对象依靠属性进行分类。每个决策树可以依靠对源数据库的分割进行数据测试。这个过程可以递归式的对树进行修剪。 当不能再进行分割或一个单独的类可以被应用于某一分支时,递归过程就完成了。

常用的决策树算法有ID3,C4.5这两种算法本质上是一样的。ID3此算法的目的在于减少树的深度,但是忽略了叶子数目的研究。C4.5算法在ID3的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。

技术分享图片

流程图形式的决策树

 

1.2 ID3算法

基本的ID3 算法通过自顶向下构造决策树来进行学习。

构造过程是从“哪一个属性将在树的根结点被测试?”这个问题开始的。

为了回答这个问题,使用统计测试来确定每一个实例属性单独分类训练样例的能力。

(1)分类能力最好的属性被选作树的根结点的测试。

(2)然后为根结点属性的每个可能值产生一个分支,并把训练样例排列到适当的分支(也就是,样例的该属性值对应的分支)之下。

(3)然后重复整个过程,用每个分支结点关联的训练样例来选取在该点被测试的最佳属性。

这形成了对合格决策树的贪婪搜索(greedy search ),也就是算法从不回溯重新考虑以前的选择。

ID3 算法的核心问题是选取在树的每个结点要测试的属性。

我们希望选择的是最有助于分类实例的属性。那么衡量属性价值的一个好的定量标准是什么呢?这里将定义一个统计属性,称为“信息增益(information gain )”,用来衡量给定的属性区分训练样例的能力。ID3算法通过计算每个属性的信息增益,认为信息增益高的是好属性,每次划分选取信息增益最高的属性为划分标准,重复这个过程,直至生成一个能完美分类训练样例的决策树。

1.3 信息增益

 划分数据集的原则就是将无序的数据变得更加有序,组织数据的一种方式就是用信息论度量信息。

在划分数据集之前和之后信息所发生的变化称为信息增益。通过计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。

熵(entropy):度量随机变量的不确定性。
定义:假设随机变量X的可能取值有x1,x2, ... , xn,对于每一个可能的取值xi,其概率 P(X=xi) = p, ( i = 1,2, ... , n)
因此随机变量X的熵:
 (H=-sum_n^i=1p(x_i)log_2p(x_i))

 推广到样本集合D,随机变量X是样本的类别,即,假设样本有K个类别,每个类别的概率是技术分享图片,其中|Ck|表示类别k的样本个数,|D|表示样本总数

则对于样本集合D来说熵(经验熵)为:

(H(D)=-sum_k=1^Kfracleft | C__k ight |left | D ight |log_2fracleft | C__k ight |left | D ight |)

 对信息增益的理解:对于待划分的数据集D,其 entroy(前)是一定的,但是划分之后的熵 entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) -  entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D

#计算给定数据集的熵
from math import log

def calcShannonEnt (dataSet):
    numEntroiese = len(dataSet)
    labelCounts = 
    #为所有可能的分类创建字典,
    for featVec in dataSet:
        currentLabel = featVec[-1]
        if currentLabel not in labelCounts.keys():
            labelCounts[currentLabel] = 0
        labelCounts[currentLabel] += 1
    shannonEnt = 0.0
    for key in labelCounts:
        prob = float(labelCounts[key]) / numEntroiese
        shannonEnt -=prob * log(prob,2)
    return shannonEnt

  

机器学习决策树

1、决策树简介1.1决策树概述决策树算法是一种基于树形结构的分类算法,它能从给定的无序的训练样本中,提炼出树型的分类模型,树形中包含判断模块和终止模块。它是一种典型的分类算法,首先对数据进行处理,利用归纳... 查看详情

机器学习--决策树

目录DecisionTreePre:TreeconstructionInformationGain信息增益1.信息增益的计算MeasuringconsistencyinadatasetUsingresursiontoconstructadecisiontreePlottingtressinMatplotlibDecisionTreePre:如下图所示,决策树包含判断模块、终止模块。其中终止模块表示 查看详情

机器学习笔记-决策树

决策树(DecisionTree)决策树学习,建立一颗树结构的模型。此模型由一系列逻辑决策构成。在此结构中决策点代表某个属性上的决策,分支表示决策选择项,树的叶子节点是一系列联合决策的结论。决策树通过分而治之(Divideandconq... 查看详情

《机器学习实战》-决策树(代码片段)

目录决策树决策树简介决策树的构造信息增益划分数据集递归构建决策树在Python中使用Matplotlib注解绘制树形图Matplotlib注解构造注解树测试和存储分类器测试算法:使用决策树执行分类使用算法:决策树的存储示例:使用决策树... 查看详情

机器学习—决策树

importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.treeimportDecisionTreeClassifierfromsklearn.preprocessingimportStandardScalerfromsklearn.model_selectionimporttrain_test_splitfro 查看详情

机器学习---算法---决策树

.../blog.csdn.net/qq_43208303/article/details/84837412 决策树是一种机器学习的方法。决策树的生成算法有ID3,C4.5和CART等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶... 查看详情

机器学习决策树

...种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy=系统的凌乱程度,使用算法ID3, C4.5和 查看详情

机器学习决策树理论第二卷

决策树内容来至于《统计学习与方法》李航,《机器学习》周志华,以及《机器学习实战》PeterHarringTon,相互学习,不足之处请大家多多指教!本卷的大纲为1CART算法1.1CART回归树1.2CART分类树2CART剪枝3总结1CART算法CART分类与回归树(classi... 查看详情

机器学习——决策树

...策树一、了解决策树  决策树(DecisionTree)是一类常见的机器学习算法,属于非参数的监督学习方法,主要用于分类和回归,也可以用于特征提取。  决策树就是一棵树(很像流程图),其内包含一个根... 查看详情

机器学习实战教程:决策树实战篇(代码片段)

一、前言上篇文章机器学习实战教程(二):决策树基础篇_M_Q_T的博客-CSDN博客讲述了机器学习决策树的原理,以及如何选择最优特征作为分类特征。本篇文章将在此基础上进行介绍。主要包括:决策树构建决... 查看详情

机器学习算法学习02:决策树的学习以及应用决策树解决cora数据集论文分类问题(代码片段)

机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题文章目录机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题1.前言2.算法分析2.1算法概述2.2算法优化3.算法代码3.... 查看详情

机器学习实战精读--------决策树

感觉自己像个学走路的孩子,每一步都很吃力和认真!机器根据数据集创建规则,就是机器学习。决策树:从数据集合中提取一系列规则,适用于探索式的知识发现。决策树本质:通过一系列规则对数据进行分类的过程。决策树... 查看详情

机器学习之路--决策树(代码片段)

...使用不熟悉的数据集合,并从中提取一系列规则,在这些机器根据数据集创建规则是,就是机器学习的过程。二,相关知识1决 查看详情

机器学习--决策树

 基本流程:  决策树:    根结点:属性测试,包含样本全集    内部结点:属性测试,根据属性测试的结果被划分到子结点中    叶结点:决策结果  划分选择:如何选择最优划分属性。目标是结点的"纯度"越... 查看详情

机器学习_决策树(代码片段)

       查看详情

ai机器学习-决策树算法-概念和学习过程

1.概念决策树是通过一系列规则对数据进行分类的过程,它提供一种在什么条件下会得到什么值的类似规则的方法。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。分类决策树模型是... 查看详情

机器学习3—决策树学习笔记

 机器学习实战第三章决策树#计算给定数据集的熵#导入log运算符frommathimportlogdefcalcShannonEnt(dataSet):#获取数据集的行数numEntries=len(dataSet)#设置字典的数据结构labelCounts={}#提取数据集的每一行的特征向量forfeatVecindataSet:#获取特征... 查看详情

机器学习——决策树(代码片段)

1、介绍决策树是一种依托决策而建立起来的一种树。在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象/分类,树中的每一个分叉路径代表某个可能的属性值... 查看详情