R-聚类分析

作者: 宴長 | 来源:发表于2019-01-09 17:27 被阅读0次

例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。

相关文章

  • R-聚类分析

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

  • 2019-03-07

    聚类分析 单击→聚类分析 (欢迎关注微信公众号:spss学习乐园) 聚类分析 聚类分析:研究如何将样品或变量进行分...

  • 手把手教你用SPSSAU做聚类分析

    聚类分析:聚类分析是通过数据建模简化数据的一种方法。“物以类聚,人以群分”正是对聚类分析最好的诠释。本文就具体介绍...

  • 聚类分析的原理和应用(-)

    本文主要介绍 聚类分析的一些基本概念和原理 聚类分析的方法 聚类分析是在没有指定类别的时候,根据个案(记录)之间的...

  • 利用聚类算法研究大数据微信公众号实例

    聚类分析可以用在APP及网站数据分析、用户画像分析上。 1.什么是聚类分析 聚类分析就是把看得见的实体对象(如桌子...

  • 聚类分析(1)之市场细分

    在市场研究中,聚类分析用的最多的就是细分市场。笔记结合两个问题:聚类分析、市场细分。聚类分析是市场细分的一个统计方...

  • 聚类分析

    1,聚类方法: Python 主要聚类分析方法: 2,聚类分析算法评估 ☉ Purity评估方法 ☉ RI评价法 ...

  • 深入推荐引擎相关算法 - 聚类

    聚类分析 什么是聚类分析? 聚类 (Clustering) 就是将数据对象分组成为多个类或者簇 (Cluster)...

  • 干货合集-聚类分析

    一、聚类分析方法分类 聚类分析方法可分为Q型和R型,如下图: SPSSAU-进阶方法-聚类 SPSSAU-进阶方法...

  • 聚类分析中的空间和距离概念

    聚类分析的意义Cluster Analysis 在经济和社会学研究中,聚类分析是比较常用的多元统计分析方法,是将大...

网友评论

    本文标题:R-聚类分析

    本文链接:https://www.haomeiwen.com/subject/zwvgrqtx.html