r语言聚类分析_R语言一条命令实现基于样本和距离的聚类分析

上一篇文章给大家介绍了利用 R语言的 hclust()进行聚类分析的步骤,已经很简单了,但是依然有不少小伙伴来问 “老师,还有更简单的方法吗,最好是一条命令那种”,为了满足的大家的需求,小编也是查了很多资料,终于给大家找到了一个满意的答案,今天就和小编一起来看看 R语言怎么用一行命令来实现聚类分析吧。

加载数据

data(iris)str(iris)
ca5ff6c566170c4dd7934effc6aaf18b.png

输出

iris$Species

使用agens()聚类

cluster 包提供了两种层次聚类的方法,一种是 bottom-up 自底而上,采用先将数据样本先各自看成一类,然后通过合并法的聚类过程,最终形成一个大类,包含全部样本,agnes()函数完成这个功能,这个称为合并层次聚类。而 diana()则采用相反的方法,即 top-down 自顶而下先将所有样本看成一类,然后通过分裂类的过程将样品最终分为各自样本类,这个称为分裂法

agens()函数的形式

agnes(x, diss = TRUE|FALSE, metric = "euclidean", stand = FALSE|TRUE,       method = "average", par.method, keep.diss = n < 100, keep.data = !diss)

其中的 diss指定 x对象是否是不相似矩阵对象,与 hclust()函数不同,agnes() 既可以使用原始数据也可以采用距离矩阵stand 是是否要对数据进行标准化,可以采用的类间距离计算方法“average”平均法“UPGMA”“single”最短距离法“complete”最大距离法“ward”离差法“weighted”权重平均距离法“flexible”弹性法。 keep.diss和 keep.data指定在结果中是否保留不相似矩阵和数据,保留这些结果需要更多的内存。

一条命令实现聚类分析

直接对原始数据进行聚类,样本间的不相似度度量使用欧式距离 euclidean类间距离计算使用最短距离法 single

直接对原始数据进行聚类,样本间的相似度度量使用欧式距离 euclidean,类间距离计算使用最短距离法 single。ag 
c52c7f4c9f36b4df9bf162c7bd7ff3c8.png

输出

  • 查看部分聚类过程
data.frame(ag$merge,ag$height)[50:55,]
fe3f9060c4b202f577de189875680eae.png

输出

  • 聚类结果可视化
plot(ag, ask = FALSE, which.plots = NULL)
5fc29858b87c6a288919ee273a61755b.png

输出

f01eb4f1dcb07b9f82d168fb163962a8.png

输出

  • 输出样本所属的类别

假设聚为3 类,输出每个样本所属的类别。

cutree(ag, k=3)
be9e88473f86d5a91d34abc4b2142fc7.png

输出

注:图中开头的[1]里的数字表示,接下来的样本是第几个样本。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值