ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据挖掘(决策树)—R实现

2022-05-02 16:02:42  阅读:204  来源: 互联网

标签:结点 Name 实现 hclust 聚类 数据挖掘 决策树 out


决策树

决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。分类树(决策树)是一种十分常用的分类方法。它是一种监督学习,所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。

一、决策树概述

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性(features),叶结点表示一个类(labels)。

1. 决策树算法思想

决策树(decision tree)是机器学习中常见的分类与回归方法,是一种呈树形结构的判别模型。决策树可以看做一个互斥且完备的if-then规则集合。同时决策树还表示定义在特征条件下类的条件概率分布,条件概率分布将特征空间划分为互不相交的单元(cell)或区域(region),每个单元定义一个类的概率分布就构成了一个条件概率分布。该条件概率分布可表示为 [公式] ,其中 [公式] 表示特征的随机变量, [公式] 表示类的随机变量。
如下图所示。

用决策树对需要测试的实例进行分类:从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分配到叶结点的类中。

决策树学习本质上是从训练集中归纳出一组分类规则,是训练数据矛盾较小,同时具有很好的泛化性能。决策树的损失函数通常是正则化的极大似然函数,学习的目标是以损失函数为目标函数的最小化。决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。其基本过程如下:

2. 决策树的基本流程

(1)计算全部特征的不纯度指标
(2)选取不纯度指标最优的特征进行分支
(3)在第一个特征的分支下,计算全部特征的不纯度指标
(4)选取不纯度指标最优的特征继续进行分支
直到没有更多的特征可用,或是整体的不纯度指标已经最优,决策树就会停止生长。

3. 决策树计算示例

最短距离

最短距离法:将类中的样本间最短距离作为类之间的距离。

最长距离

最长距离法:将类中样本间的最长距离作为类之间的距离。


二、 决策树R实现

在R语言中,hclust函数能够实现系统聚类,输入项为距离矩阵(可以由dist函数计算所得),设置method可实现不同算法。

out.hclust=hclust(out.dist,method="complete") #根据距离聚类
#类平均法:average   重心法:centroid
#中间距离法:median   最长距离法:complete 默认
#最短距离法:single  离差平方和法:ward
#密度估计法:density

1. 决策树的数据结构

2. R处理程序

#数据输入
dd1=c(2.5,3.0,6.0,6.6,7.2,4.0,4.7,4.5,5.5)
dd2=c(2.1,2.5,2.5,1.5,3.0,6.4,5.6,7.6,6.9)
dd=data.frame(dd1,dd2)
#聚类函数
out.dist=dist(dd,method="euclidean")             #样本间距离计算
out.hclust=hclust(out.dist,method="complete")    #系统聚类
plot(out.hclust)                                 #系统聚类图

3. 计算结果

plot(out.hclust)                      #系统聚类图
rect.hclust(out.hclust, k=3)          #添加聚类分类矩形,如分为3类

out.id = cutree(out.hclust, k=3)      #得到分为3类的数值
out.id
[1] 1 1 2 2 2 3 3 3 3
table(out.id,paste("Name",1:9,""))     # 以矩阵的方式分辨名称对应的类
out.id Name 1  Name 2  Name 3  Name 4  Name 5  Name 6  Name 7   Name 8    Name 9
     1       1       1       0       0       0       0       0       0      0
     2       0       0       1       1       1       0       0       0      0
     3       0       0       0       0       0       1       1       1      1

三、总结

决策树(Decision Tree)算法是一种基本的分类与回归方法,是最经常使用的数据挖掘算法之一。我们这章节只讨论用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是 if-then 规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。决策树学习通常包括 3 个步骤:特征选择、决策树的生成和决策树的修剪。

参考文献

(聚类分析—系统聚类)[https://zhuanlan.zhihu.com/p/267700

标签:结点,Name,实现,hclust,聚类,数据挖掘,决策树,out
来源: https://www.cnblogs.com/haohai9309/p/16215978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有