机器学习二——分类算法--决策树decisiontree

哒哒哒大大诚 哒哒哒大大诚     2022-10-05     186

关键词:

机器学习算法评估标准:准确率,速度,强壮性(噪音影响较小),可规模性,可解释性。

1、决策树  Decision Tree:决策树是一个类似于流程图的树结构,其中每个内部节点表示在一个属性上的测试,每一个分支代表一个属性输出,每一个树叶节点代表类(label)或类的分布。树的最顶层是根节点。

                                                                             

 

 

2、信息熵:发生一件事情的不确定性越大,我们需要的信息量越大,信息熵也就越大。信息量的度量就等于不确定性的多少。

    用bit表示信息量的多少H = -∑P(x)logP(x)

决策树归纳算法通过信息熵计算选择属性判断节点:

    信息获取量(Information Gain)   Gain(A)=Info(D)-Info_A(D)

    通过属性A获取的信息量=没有属性A时所需信息量-有属性A时所需信息量

    

 

      

      

通过比较每一个节点的Gain信息获取量,来确定哪个属性作为判断节点。

3、算法 

   一、树以代表训练样本的单个节点开始

  二、如果样本都在同一个类,则该节点成为树叶。

  三、否则,算法使用基于熵的度量作为启发信息,选择能够将样本更好的进行分类的属性,该属性成为节点的“测试”或“判定”属性。

    1、所有的属性都是离散的,连续属性必须离散化。

    2、对测试属性的每个已知值,创建一个分支,并据此划分样本。

    3、算法使用同样的过程,递归形成每个划分上的样本判定树。

      递归停止条件:a、给定节点的所有样本属于同一类。b、没有剩余属性来进一步划分样本。(多数表决)

决策树优点:直观,便于理解,小规模数据有效。

缺点:处理连续变量不好,类别较多时错误增加的比较快,可规模性一般。

代码实例

 

from sklearn.feature_extraction import DictVectorizer
from sklearn import preprocessing
from sklearn import tree
import csv
AllElectronics=open('D:\daacheng\Python\PythonCode\machineLearning\AllElectronics.csv','rt')#打开csv文件
readers=csv.reader(AllElectronics)
headers=next(readers)#表头 ['RID', 'age', 'income', 'student', 'credit_rating', 'class_buys_computer']
featureList=[]#特征集合
labelList=[]#标签集合
for row in readers:
rowDict={} #每一行数据以集合的形式存储,最后把这些集合存储在列表中
labelList.append(row[len(row)-1])
for i in range(1,len(row)-1):
#print(headers[i])
#print(row[i])
rowDict[headers[i]]=row[i]
featureList.append(rowDict)
vec=DictVectorizer()
dummyX=vec.fit_transform(featureList).toarray()#转换,把特征转换成列表
#names=vec.get_feature_names()
#print(names)
lb=preprocessing.LabelBinarizer()
dummyY=lb.fit_transform(labelList)#对标签进行转换
#dummyY
clf=tree.DecisionTreeClassifier(criterion='entropy')#指定通过信息熵选择节点
clf=clf.fit(dummyX,dummyY)#训练学习
#制造一个新数据来进行预测
oneRowX=dummyX[0,:]
newRowX=[]
newRowX.append(oneRowX)
newRowX[0][0]=1
newRowX[0][1]=0
#print(newRowX[0])
#predictY1=clf.predict(oneRowX)
predictY2=clf.predict(newRowX)#需要传入一个二维数组
#print(predictY1)
print(predictY2)

机器学习决策树分类原理(代码片段)

决策树分类原理1.熵1.1概念1.2案例2.决策树的划分依据2.1信息增益2.1.1概念2.1.2案例2.2信息增益率2.2.1概念2.2.2案例案例一案例二2.2.3为什么使用C4.5要好?2.3基尼值和基尼指数2.3.1概念2.3.2案例3.小结3.1常见决策树的启发函数比较3.1.1ID3... 查看详情

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

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

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

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

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

...用不熟悉的数据集合,并从中提取出一系列规则,在这些机器根据数据创建规则时,就是机器学习的过程。二、决策树的构造  决策树:    优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理... 查看详情

机器学习决策树

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

361机器学习常见算法

K-近邻算法(KNearestNeighbors)参考:机器学习实战教程(一):K-近邻算法(史诗级干货长文)决策树算法(DecisionTree)参考:机器学习实战教程(二):决策树基础篇之让我们从相亲说起参考:机器学习实战教程(三):决策树... 查看详情

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

..._CSDN博客-数据分析师领域博主目前进度:第四部分【机器学习算法】PRISM决策规则算法如何使用分类树来进行分类预测:如果我们建立好决策树,那我们要怎么进行分类规则的预测呢。一般有两种方法。第 查看详情

机器学习笔记之三cart分类与回归树

本文结构:CART算法有两步回归树的生成分类树的生成剪枝CART-ClassificationandRegressionTrees分类与回归树,是二叉树,可以用于分类,也可以用于回归问题,最先由Breiman等提出。分类树的输出是样本的类别,回归树的输出是一个实... 查看详情

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

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

spark机器学习:决策树算法

1.决策树基本知识决策树就是通过一系列规则对数据进行分类的一种算法,可以分为分类树和回归树两类,分类树处理离散变量的,回归树是处理连续变量。样本一般都有很多个特征,有的特征对分类起很大的作用,有的特征对... 查看详情

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

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

机器学习决策树算法和分类原理(代码片段)

目录1决策树算法简介2决策树分类原理2.1熵2.1.1概念2.1.2案例2.2划分依据一:信息增益2.2.1概念2.2.2案例2.3划分依据二:信息增益率2.3.1概念2.3.2案例2.3.2.1案例一2.3.2.2案例二2.3.3为什么使用C4.5要好2.4划分依据三:基尼值... 查看详情

机器学习算法:决策树算法简介以及分类原理(代码片段)

学习目标知道什么是决策树知道如何求解信息熵知道信息增益的求解过程知道信息增益率的求解过程知道基尼系数的求解过程知道信息增益、信息增益率和基尼系数三者之间的区别、联系决策树思想的来源非常朴素,程序设... 查看详情

机器学习中各分类算法的优缺点比较

文章转自:http://bbs.pinggu.org/thread-2604496-1-1.html1决策树(DecisionTrees)的优缺点决策树的优点:一、决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。二、对于决策树,数据的准备往往是简单或者是不... 查看详情

机器学习sklearn监督学习分类算法决策树decisiontree(代码片段)

#导入鸢尾花数据集、决策树分类器、计算交叉验证值的函数cross_val_scorefromsklearn.datasetsimportload_irisfromsklearn.treeimportDecisionTreeClassifierfromsklearn.model_selectionimportcross_val_score#使用默认参数,创建一颗基于基尼系数的决策树&# 查看详情

opencv4机器学习:决策树原理及分类实战(代码片段)

...结合OpenCV4,来实现一些基本的图像处理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。系列文章,持续更新:OpenCV4机器学习(一):... 查看详情

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

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

机器学习算法整理决策树

决策树的训练与测试如何切分特征(选择节点)衡量标准-熵 信息增益决策树构造实例信息增益:表示特征X使得类Y的不确定性减小的程度。(分类后的专一性,希望分类后的结果是同类在一起)Outlook=sunny时,熵值=(-2/5)*log(2/... 查看详情