R: Hierarchical Cluster 层次聚类

构造数据:

> dataset = matrix(c(1,2,
+ 1.2,2,
+ 8,9,
+ 0.9,1.8,
+ 7,10,
+ 8.8,9.2), nrow=6, byrow=T)
> dataset
     [,1] [,2]
[1,]  1.0  2.0
[2,]  1.2  2.0
[3,]  8.0  9.0
[4,]  0.9  1.8
[5,]  7.0 10.0
[6,]  8.8  9.2

聚类:

> d = dist(dataset)
> d
           1          2          3          4          5
2  0.2000000
3  9.8994949  9.7590983
4  0.2236068  0.3605551 10.1118742
5 10.0000000  9.8812955  1.4142136 10.2200783
6 10.6150836 10.4690019  0.8246211 10.8245092  1.9697716
> hclust(d, method = "complete")

Call:
hclust(d = d, method = "complete")

Cluster method   : complete
Distance         : euclidean
Number of objects: 6 

> hc = hclust(d, method = "complete")
> plot(hc)

分成两个簇:

> democut<-cutree(hc,k=2)
> democut
[1] 1 1 2 1 2 2

参考:

http://www.r-tutor.com/gpu-computing/clustering/hierarchical-cluster-analysis
http://stat.ethz.ch/R-manual/R-devel/library/stats/html/hclust.html
http://ecology.msu.montana.edu/labdsv/R/labs/lab13/lab13.html

时间: 2024-10-13 12:23:48

R: Hierarchical Cluster 层次聚类的相关文章

R语言中实现层次聚类模型

大家好!在这篇文章中,我将向你展示如何在R中进行层次聚类. 什么是分层聚类? 分层聚类是一种可供选择的方法,它可以自下而上地构建层次结构,并且不需要我们事先指定聚类的数量. 该算法的工作原理如下: 将每个数据点放入其自己的群集中. 确定最近的两个群集并将它们组合成一个群集. 重复上述步骤,直到所有数据点位于一个群集中. 一旦完成,它通常由树状结构表示. 让我们看看分层聚类算法可以做得多好.我们可以使用hclust这个.hclust要求我们以距离矩阵的形式提供数据.我们可以通过使用dist.默认情

层次聚类与K-means

Hierarchical clustering(层次聚类) 作用:Clustering organizes things that are close into groups 算法步骤: a).Find closest two thing b).Put them together c).Find next closest 算法结果:A tree showing how close things are to each other http://gallery.r-enthusiasts.com/

Python爬虫技术(从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类—Jason niu

网上教程太啰嗦,本人最讨厌一大堆没用的废话,直接上,就是干! 网络爬虫?非监督学习? 只有两步,只有两个步骤? Are you kidding me? Are you ok? 来吧,follow me, come on! 第一步:首先,我们从网上获取图片自动下载到自己电脑的文件内,如从网址,下载到F:\File_Python\Crawler文件夹内,具体代码请查看http://www.cnblogs.com/yunyaniu/p/8244490.html 第二步:我们利用非监督学习的Hierar

python实现一个层次聚类方法

层次聚类(Hierarchical Clustering) 一.概念 层次聚类不需要指定聚类的数目,首先它是将数据中的每个实例看作一个类,然后将最相似的两个类合并,该过程迭代计算只到剩下一个类为止,类由两个子类构成,每个子类又由更小的两个子类构成.如下图所示: 二.合并方法 在聚类中每次迭代都将两个最近的类进行合并,这个类间的距离计算方法常用的有三种: 1.单连接聚类(Single-linkage clustering) 在单连接聚类中,两个类间的距离定义为一个类的所有实例到另一个类的所有实例之

层次聚类,转自http://blog.sina.com.cn/s/blog_62f3c4ef01014uhe.html

Matlab提供系列函数用于聚类分析,归纳起来具体方法有如下: 方法一:直接聚类,利用clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法,该方法的使用者无需了解聚类的原理和过程,但是聚类效果受限制. 方法二:层次聚类,该方法较为灵活,需要进行细节了解聚类原理,具体需要进行如下过程处理:(1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离:(2)用 linkage函数定义变量之间的连接:(3)用 cophenet

【转】使用scipy进行层次聚类和k-means聚类

scipy cluster库简介 scipy.cluster是scipy下的一个做聚类的package, 共包含了两类聚类方法: 1. 矢量量化(scipy.cluster.vq):支持vector quantization 和 k-means 聚类方法 2. 层次聚类(scipy.cluster.hierarchy):支持hierarchical clustering 和 agglomerative clustering(凝聚聚类) 聚类方法实现:k-means和hierarchical cl

聚类算法--K-means和k-mediods/密度聚类/层次聚类

目录 简述 K-means聚类 密度聚类 层次聚类 一.简述 聚类算法是常见的无监督学习(无监督学习是在样本的标签未知的情况下,根据样本的内在规律对样本进行分类). 在监督学习中我们常根据模型的误差来衡量模型的好坏,通过优化损失函数来改善模型.而在聚类算法中是怎么来度量模型的好坏呢?聚类算法模型的性能度量大致有两类: 1)将模型结果与某个参考模型(或者称为外部指标)进行对比,个人觉得认为这种方法用的比较少 2)另一种是直接使用模型的内部属性,比如样本之间的距离(闵可夫斯基距离)来作为评判指标,这

【ML-7】聚类算法--K-means和k-mediods/密度聚类/层次聚类

目录 简述 K-means聚类 密度聚类 层次聚类 一.简述 聚类算法是常见的无监督学习(无监督学习是在样本的标签未知的情况下,根据样本的内在规律对样本进行分类). 在监督学习中我们常根据模型的误差来衡量模型的好坏,通过优化损失函数来改善模型.而在聚类算法中是怎么来度量模型的好坏呢?聚类算法模型的性能度量大致有两类: 1)将模型结果与某个参考模型(或者称为外部指标)进行对比,个人觉得认为这种方法用的比较少 2)另一种是直接使用模型的内部属性,比如样本之间的距离(闵可夫斯基距离)来作为评判指标,这

聚类算法:凝聚层次聚类

凝聚层次聚类: 所谓凝聚的,指的是该算法初始时,将每个点作为一个簇,每一步合并两个最接近的簇.另外即使到最后,对于噪音点或是离群点也往往还是各占一簇的,除非过度合并.对于这里的"最接近",有下面三种定义.我在实现是使用了MIN,该方法在合并时,只要依次取当前最近的点对,如果这个点对当前不在一个簇中,将所在的两个簇合并就行: (1)单链(MIN):定义簇的邻近度为不同两个簇的两个最近的点之间的距离. (2)全链(MAX):定义簇的邻近度为不同两个簇的两个最远的点之间的距离. (3)组平均