聚类分析-R语言

1、随机生成三个簇点:

> c1<-cbind(rnorm(30,2,1),rnorm(30,2,1))

> c2<-cbind(rnorm(30,3,1),rnorm(30,20,1))

> c3<-cbind(rnorm(30,15,1),rnorm(30,25,1))

> v=rbind(c1,c2,c3)

查看分布情况

> plot(v)

图 1 产生的随机数据

2、K聚类

像PAM这样的K-中心点算法(常见的K-means,K-medois等等)在小型数据集上运行良好,但是不能很好的用于大数据集运行。为了处理大数据集,通常使用一种称作CLARA(Cluster Large Application)的基于抽样的方法。CLARA并不考虑整个数据集合,而是使用数据集的一个随机样本,然后使用PAM方法由样本计算最佳中心点。

本次实验主要用的是cluster包里面的clara函数。

> clara(v,3)
Call:  clara(x = v, k = 3) 
Medoids:
          [,1]      [,2]
[1,]  2.067384  1.761579
[2,]  3.037691 20.208036
[3,] 15.310366 25.211417
Objective function:  1.236222
Clustering vector:  int [1:90] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
Cluster sizes:             30 30 30 
Best sample:
 [1]  2  4  5  6  7 11 12 13 23 24 25 26 27 29 32 34 37 41 42 43 44 45 47 49 51 52 53 54 57
[30] 59 60 61 62 63 64 65 67 74 75 77 81 82 83 84 85 89
 
Available components:
 [1] "sample"     "medoids"    "i.med"      "clustering" "objective"  "clusinfo"  
 [7] "diss"       "call"       "silinfo"    "data" 

显示结果:

> cls3<-clara(v,3)
> clusplot(cls3)

图 2 分类数K取3的结果

K-means一个缺陷就是需要人为指定聚类数目K,如果k值指定的不好,聚类的效果也不是很好。

图 3 分类数K分别去2,3,4,5的结果

3、层次聚类

层次聚类方法将数据对象组成层次结构或者簇的“树”,主要分为凝聚和分裂两类层次分析方法,跟别使用自底向上和自顶向下的策略把对象组织到层次结构中。

分裂方法一个很大的问题是如何把一个大簇分成几个较小的簇。N个对象的集合可以划分成两个互斥的2n-1-1种方法,当n很大是,计算量是非常大的,因此分裂方法通常采用启发式方法进行划分,但是导致结果不准确,而且为了效率,分裂方法不对已经做出的划分决策回溯。由于这些原因,凝聚方法一般比分裂方法用的多。

3.1凝聚层次聚类(agglomerative hierarchical clustering)

本次实验中采用的cluster包中的AGNES(Agglomerative Nesting)层次聚类算法。

agnSingle<-agnes(daisy(v),diss=TRUE,method="single")
> agnComplete<-agnes(daisy(v),diss=TRUE,method="complete")
> agnAverage<-agnes(daisy(v),diss=TRUE,method="average")
> plot(agnSingle)
Hit <Return> to see next plot: 
Hit <Return> to see next plot: 
> plot(agnComplete)
Hit <Return> to see next plot: 
Hit <Return> to see next plot: 
> plot(agnAverage)
Hit <Return> to see next plot: 
Hit <Return> to see next plot: 

图 4簇之间相似度采用最小值的聚类结果树状图

图 5簇之间相似度采用最大值的聚类结果树状图

图 6 簇之间相似度采用平均值的聚类结果树状图

3.2分裂层次聚类(divisive hierarchical clustering)

本次实验中采用的是cluster包中的DIANA(Divisive Analysis)层次聚类算法。

> dv<-diana(v)
> plot(dv)

图 7 分裂层次聚类结果树状图

时间: 2024-07-29 13:51:08

聚类分析-R语言的相关文章

用R语言对NIPS会议文档进行聚类分析

一.用R语言建立文档矩阵 (这里我选用的是R x64 3.2.2) (这里我取的是04年NIPS共计207篇文档做分析,其中文档内容已将开头的作者名和最后的参考文献进行过滤处理) ##1.Data Import  导入自己下的3084篇NIPStxt文档 library("tm")#加载tm包 stopwords<- unlist(read.table("E:\\AllCode\\R\\stopwords.txt",stringsAsFactors=F)) d

R语言 系统聚类分析1

#聚类分析是一类将数据所研究对象进行分类的统计方法,这一类方法的共同特点是:#事先不知道类别的个数与结构 据以进行分类的数据是对象之间的相似性 或差异性数据#将这些相似(相异)性数据看成是对象之间的距离远近的一种度量 将距离近的对象#归入一类 不同类之间的对象距离较远#聚类分析根据分类对象不同分为Q型聚类分析(指的是对样本进行聚类) 和R型聚类分析(指的是对变量进行聚类) #距离和相似系数#聚类分析是研究对样本或变量的聚类 变量可以分为两类1定量变量 通常指的是连续量#2 定性变量(有序变量+名

R语言数据挖掘实战系列(1)

R语言数据挖掘实战(1) 一.数据挖掘基础 数据挖掘:从数据中"淘金",从大量数据(包括文本)中挖掘出隐含的.未知的.对决策有潜在价值的关系.模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法.工具和过程. 数据挖掘的任务 利用分类与预测.聚类分析.关联规则.时序模式.偏差检测.智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力. 数据挖掘建模过程 定义挖掘目标,即决定到底想干什么? 数据取样.抽取一个与挖掘目标相关的样本数据子集.抽取数据的

主成分分析(PCA)原理及R语言实现

原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及计算步骤 - 文库 主成分分析之R篇 [机器学习算法实现]主成分分析(PCA)——基于python+numpy scikit-learn中PCA的使用方法 Python 主成分分析PCA 机器学习实战-PCA主成分分析.降维(好) 关于主成分分析的五个问题 主成分分析(PCA)原理详解(推荐) 多变

R语言数据挖掘实战系列(5)

R语言数据挖掘实战系列(5)--挖掘建模 一.分类与预测 分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值. 1.实现过程 (1)分类 分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别.分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便地计算,所以分类属于有监督的学习. (2)预测 预测是建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制.

数据分析,R语言

数据结构 创建向量和矩阵 1 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 1 函数mean(), sum(), min(), max(), var(), sd(), prod() 帮助文档 1 函数help() 生成向量 1 seq() 生成字母序列letters 新建向量 1 Which()函数,rev()函数,sort()函数 生成矩阵 1 函数matrix() 矩阵运算 1 函数t(),矩阵加减 矩阵运算 1

R语言 文本挖掘 tm包 使用

#清除内存空间 rm(list=ls()) #导入tm包 library(tm) library(SnowballC) #查看tm包的文档 #vignette("tm") ##1.Data Import 导入自带的路透社的20篇xml文档 #找到/texts/crude的目录,作为DirSource的输入,读取20篇xml文档 reut21578 <- system.file("texts", "crude", package = &quo

K-means算法原理与R语言实例

聚类是将相似对象归到同一个簇中的方法,这有点像全自动分类.簇内的对象越相似,聚类的效果越好.支持向量机.神经网络所讨论的分类问题都是有监督的学习方式,现在我们所介绍的聚类则是无监督的.其中,K均值(K-means)是最基本.最简单的聚类算法. 在K均值算法中,质心是定义聚类原型(也就是机器学习获得的结果)的核心.在介绍算法实施的具体过程中,我们将演示质心的计算方法.而且你将看到除了第一次的质心是被指定的以外,此后的质心都是经由计算均值而获得的. 首先,选择K个初始质心(这K个质心并不要求来自于样

《数据挖掘:R语言实战》

<数据挖掘:R语言实战> 基本信息 作者: 黄文    王正林 丛书名: 大数据时代的R语言 出版社:电子工业出版社 ISBN:9787121231223 上架时间:2014-6-6 出版日期:2014 年6月 开本:16开 页码:292 版次:1-1 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计 更多关于>>><数据挖掘:R语言实战> 内容简介 书籍 计算机书籍 数据挖掘技术是当下大数据时代最关键的技术,其应用领域及前景