R-聚类分析

例1.采集了178种意大利葡萄酒的13种化学成分的数据,试对葡萄酒进行聚类分析。

数据:rattle包-wine

代码如下

library(rattle)
data(wine,package="rattle")
head(wine)
df=scale(wine[-1])  
d=dist(df)  #计算矩阵距离
fit.ward=hclust(d,method="ward")  #系统聚类 
plot(fit.ward)  #聚类图
clusters=cutree(fit.ward,k=3)   #把树状图分成三类
table(clusters)   #系统聚类规模
aggregate(df,by=list(cluster=clusters),median)
rect.hclust(fit.ward,k=3)  #在树状图中叠加分三类的结果
set.seed(1234)
fit.km=kmeans(df,3,nstart=20)  
fit.km$size  #k值聚类规模
fit.km$centers  
fit.km$cluster  

运行结果

> library(rattle)
程辑包‘rattle’是用R版本3.4.4 来建造的 
> data(wine,package="rattle")
> head(wine)
  Type Alcohol Malic  Ash Alcalinity Magnesium Phenols Flavanoids Nonflavanoids Proanthocyanins Color  Hue Dilution Proline
1    1   14.23  1.71 2.43       15.6       127    2.80       3.06          0.28            2.29  5.64 1.04     3.92    1065
2    1   13.20  1.78 2.14       11.2       100    2.65       2.76          0.26            1.28  4.38 1.05     3.40    1050
3    1   13.16  2.36 2.67       18.6       101    2.80       3.24          0.30            2.81  5.68 1.03     3.17    1185
4    1   14.37  1.95 2.50       16.8       113    3.85       3.49          0.24            2.18  7.80 0.86     3.45    1480
5    1   13.24  2.59 2.87       21.0       118    2.80       2.69          0.39            1.82  4.32 1.04     2.93     735
6    1   14.20  1.76 2.45       15.2       112    3.27       3.39          0.34            1.97  6.75 1.05     2.85    1450

> df=scale(wine[-1])  #数据标准化
> d=dist(df)  #计算矩阵距离
> fit.ward=hclust(d,method="ward")  #系统聚类
The "ward" method has been renamed to "ward.D"; note new "ward.D2"

> plot(fit.ward)  #聚类图
> clusters=cutree(fit.ward,k=3)   #把树状图分成三类

> table(clusters)   #系统聚类规模
clusters
 1  2  3 
65 59 54 

> aggregate(df,by=list(cluster=clusters),median)   #描述统计
  cluster    Alcohol      Malic         Ash Alcalinity  Magnesium    Phenols Flavanoids Nonflavanoids Proanthocyanins
1       1  0.8984457 -0.5248627  0.30430096 -0.7470867  0.4381890  0.8067217  0.8917481    -0.5773564      0.57499088
2       2 -0.9615576 -0.6054251 -0.49761194  0.1512342 -0.8220960 -0.1519728  0.0107426    -0.1755994     -0.05398515
3       3  0.1162589  0.8178444  0.03092156  0.4506745 -0.1569456 -1.0307762 -1.3057599     0.9091445     -0.89261984
        Color        Hue   Dilution    Proline
1  0.07846751  0.4924084  0.7722845  0.9942817
2 -0.97403427  0.3611585  0.3638283 -0.8475291
3  0.88078444 -1.1700906 -1.3122506 -0.3870764

> rect.hclust(fit.ward,k=3)  #在树状图中叠加分三类的结果
> set.seed(1234)
> fit.km=kmeans(df,3,nstart=20)

> fit.km$size  # k值聚类规模
[1] 62 65 51

> fit.km$centers
     Alcohol      Malic        Ash Alcalinity   Magnesium     Phenols  Flavanoids Nonflavanoids Proanthocyanins      Color
1  0.8328826 -0.3029551  0.3636801 -0.6084749  0.57596208  0.88274724  0.97506900   -0.56050853      0.57865427  0.1705823
2 -0.9234669 -0.3929331 -0.4931257  0.1701220 -0.49032869 -0.07576891  0.02075402   -0.03343924      0.05810161 -0.8993770
3  0.1644436  0.8690954  0.1863726  0.5228924 -0.07526047 -0.97657548 -1.21182921    0.72402116     -0.77751312  0.9388902
         Hue   Dilution    Proline
1  0.4726504  0.7770551  1.1220202
2  0.4605046  0.2700025 -0.7517257
3 -1.1615122 -1.2887761 -0.4059428

> fit.km$cluster
  [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
 [62] 3 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 1
[123] 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

最终输出图片如下


Rplot03.png
  • 采用系统聚类法,根据树状图,可以分成三类,规模分别是65,59,54。
  • 采用k均值法,分三类的规模是62,65,51。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容