决策树算法——处理一些特殊的分类

wyu123 wyu123     2022-09-23     399

关键词:

在之前的决策树算法中我们已经讲解了从数据集构造决策树算法的功能模块。

首先是创建数据集,然后计算香农熵,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。第一次划分好之后,数据将被向下传递到树分支的一个节点,在这个节点上我们可以再次划分数据,所以我们可以采用递归的原则处理数据集。

递归的结束条件是:遍历完所有划分的数据集的属性,或者每个分支下的所有实例都具有相同的分类。如果所有实例具有相同的分类,则得到一格叶子节点或者终止块。

根据特征来划分属性,我们知道每划分一次分类就会消耗一格特征值,如果我们使用完所有的特征但是类别还没有划分完那么我们就采用多数表决的方法来确定叶子节点。

比如说我们使用完所有的特征值之后划分,得到的最后的数据集是下面这个样子的:
[[‘yes’],[‘yes’],[‘maybe’]]

但是我们现在已经没有特征值了,那么我们就不能用计算香农熵的方法计算最大信息增益,这个时候就用投票表决的方式来分类。

那么我们发现 我们的数据集中 ‘yes’是两个,’maybe’是一个那么我们就按照这个来把它们分开。
下面我们来完成代码:

def majorityCnt(classList): # 传入的参数是已经划分完所有特征之后剩余的数据集,
#例如[[‘yes‘],[‘yes‘],[‘maybe‘]]
    classCount={} #参数是已经划分完所有特征之后剩余的数据集,
    #例如[[‘yes‘],[‘yes‘],[‘maybe‘]]
    classCount={} #创建一个字典
    for vote in classList:  
        if vote not in classCount.keys():
            classCount[vote] = 0
        classCount[vote] += 1
        # 根据上述的语句,以及我们的例子,我们最终可以得到的结果如下: {‘yes‘:2,‘maybe‘:1}
        sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1),reverse=True)#这个语句比较复杂,我们在下面详细讲解一下。
# 使用字典iteritems
    return sortedClassCount[0][0]

下面我们来分析在这段代码中比较复杂的代码:

sorted(classCount.iteritems(), key=operator.itemgetter(1),reverse=True)

在这里我们使用iteritems()这个函数得到我们字典中的所有元素,就是一组一组的键-值对。
之后我们定义一个叫做key的函数,这个名字可以任意取,大家都是这么定义的,之后我们通过itemgetter这个函数对我们字典中的元素进行排序。operator.itemgetter(1)表示按照元素的第二个进行排序,也就是分类出现的多少。我们的字典每一个元素都有两部分组成,也就是按照值来排序,reverse=True 表示按照递减的顺序来排序。


sortedClassCount[0][0] 表示的是按照分类的个数最多的元素的那个类。

总结

对于一些已经使用完所有特征的数据集,我们任然不能清楚的把一些类分离出来,我们就统计数量最多的那个分类,以次划分。



要么就不做,要做就做最好。

决策树算法

 在决策树算法原理(上)这篇里,我们讲到了决策树里ID3算法,和ID3算法的改进版C4.5算法。对于C4.5算法,我们也提到了它的不足,比如模型是用较为复杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归... 查看详情

决策树算法常见问题(面试相关)

整理一下决策树常见问题。0.相关术语决策树(DecisionTrees,DTs)ID3C4.5CART信息熵信息增益信息增益率基尼系数1.简单描述什么是决策树算法决策树算法是一种用于分类和回归的非参数化的监督学习方法。在分类问题中,... 查看详情

02-24决策树总结

目录决策树总结一、ID3算法、C4.5算法和CART算法比较二、决策树优缺点2.1优点2.2缺点更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/决策树总结... 查看详情

机器学习决策树

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

02.基本分类:基于决策树的分类

分类技术主要的分类技术?基于决策树的方法?基于规则的方法?基于实例的方法?贝叶斯信念网络?神经网络?支持向量机分类的两个主要过程训练/学习过程预测/应用过程决策树归纳构建决策树的主要算法-Hunt (最早的决策树归... 查看详情

ml之监督学习算法之分类算法一————决策树算法

一、概述  决策树的一个重要任务是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,在这些机器根据数据创建规则时,就是机器学习的过程。二、决策树的构造  决策树:... 查看详情

算法决策树

本文旨在用最短的文章,最通俗的描述,让读者迅速掌握决策树究竟是什么?干什么?怎么用?三大问题。只需要您注意力集中25分钟。1.明白概念:a)决策树是一种分类算法,通过训练数据集构建决策树,可以高效的对未知的数... 查看详情

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

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

决策树学习提纲(需要解决的一些问题)

之前以为决策树挺简单的,之前看了西瓜树感觉自己对决策树了解了,但是现在感觉还是很多问题啊。列出一下提纲(基本都是问题)决策树是一种基本的分类与回归的方法,使用中应该是用于分类的比较多,但是像CART也可以... 查看详情

决策树分类算法小结

引言  本文主要是对分类型决策树的一个总结。在分类问题中,决策树可以被看做是if-then规则的结合,也可以认为是在特定特征空间与类空间上的条件概率分布。决策树学习主要分为三个步骤:特征选择、决策树的生成与剪... 查看详情

机器学习--决策树分类算法及应用

1.决策树分类算法原理1.1概述决策树(decisiontree)——是一种被广泛使用的分类算法。相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置在实际应用中,对于探测式的知识发现,决策树更加适用1.2算法... 查看详情

决策树

决策树在机器学习算法中处理分类问题。通过所给的训练数据学习得到一个模型,对新的数据进行分类判断。达到“决策”的效果,我们称这样学习得到的树为决策树。决策树归纳是从有类标号的训练元组中学习决策模... 查看详情

决策树算法

文章目录决策树1.决策树的整体理解2.决策树的构造2.1决策树----熵2.2构造决策树3.C4.5算法4.决策树剪枝决策树1.决策树的整体理解​决策树,顾名思义,首先它是一棵树,其次,这棵树可以起到决策的作用(即... 查看详情

机器学习算法

分类算法: 决策树:    对每一节点,根据feature进行分类。选择信息增益最大的feature,也就是选择将不确定性降低最多的feature。随机森林:多个决策树的投票机制来改善决策树,假设有m棵决策树,要有m个一... 查看详情

sparkmllib分类算法之决策树学习

SparkMLlib分类算法之决策树学习(一)决策树的基本概念    决策树(DecisionTree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法... 查看详情

分类算法——决策树

】分类算法——决策树【英文标题】:Classificationalgorithm-decisiontree【发布时间】:2018-12-1217:22:15【问题描述】:我有从感应电机收集的MPU6050加速度计数据。我想训练一种算法并使用新数据集进行预测。我已经使用决策树分类器... 查看详情

ml:决策树算法

...sp;在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(DecisionTreeModel)和朴素贝叶斯模型(NaiveBayesianModel,NBC)。决策树模型通过构造树来解决分类问题。首先利用训练数据集来构造一棵决策树,一旦树建立起来,... 查看详情

在构建决策树模型时处理分类特征

】在构建决策树模型时处理分类特征【英文标题】:Processcategoricalfeatureswhenbuildingdecisiontreemodels【发布时间】:2017-11-0913:46:48【问题描述】:我使用H2O来构建GBM、DRF和DL等分类模型。我拥有的数据集包含一些分类列,如果我想将... 查看详情