数据挖掘(决策树)—R实现
作者:互联网
决策树
决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。分类树(决策树)是一种十分常用的分类方法。它是一种监督学习,所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。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