RForML之核心包:cluster
作者:陆勤
文章《RForML之核心包:e1071》介绍e1071包及应用。
文章《RForML之核心包:gbm》介绍gbm包及应用。
文章《RForML之核心包:kernlab》介绍kernlab包及应用。
文章《RForML之核心包:mboost》介绍mboost包及应用。
文章《RForML之核心包:nnet》介绍nnet包及应用。
文章《RForML之核心包:randomForest》介绍randomForest包及应用。
文章《RForML之核心包:rpart》介绍rpart包及应用。
本文介绍R语言做机器学习之核心包:cluster
一、cluster包介绍
发现数据中相似的组,这是聚类分析所研究的问题。cluster包的就是用来发现数据中相似的组,解决聚类相关的问题。
二、cluster包安装与加载
if(!require(cluster)) install.packages('cluster')
library(cluster)
三、cluster包应用
发现数据中相似组,关键是相似性的度量,利用metric方法。
-
计算样本之间的相似性,metric选用不同的度量方法
1.采用欧式距离
d.agr <- daisy(agriculture, metric = "euclidean", stand = FALSE)
as.matrix(d.agr)[,"DK"]
结果如下:
2.采用manhattan距离
d.agr1 <- daisy(agriculture, metric = "manhattan", stand = FALSE)
as.matrix(d.agr1)[,"DK"]
结果如下:
-
层次聚类
结果如下:
data(animals)
aa.a <- agnes(animals) # default method = "average"
aa.ga <- agnes(animals, method = "gaverage")
op <- par(mfcol=1:2, mgp=c(1.5, 0.6, 0), mar=c(.1+ c(4,3,2,1)),
cex.main=0.8)
plot(aa.a, which.plot = 2)
plot(aa.ga, which.plot = 2)
par(op)
层次聚类算法,要么是自底向上聚集型的,即从叶子节点开始,最终汇聚到根节点;要么是自顶向下分裂型的,即从根节点开始,递归的向下分裂。
任意非负值的函数都可以用于衡量一对观测值之间的相似度。决定一个类别是否分裂或者合并的是一个连动的标准,它是两两观测值之间距离的函数。
在一个指定高度上切割此树,可以得到一个相应精度的分类。
参考资料
1 cluster包的文档:https://cran.r-project.org/web/packages/cluster/cluster.pdf
2 聚类分析:https://zh.wikipedia.org/zh-hans/%E8%81%9A%E7%B1%BB%E5%88%86%E6%9E%90
您在阅读中,有什么建议或者想法,请留言,也可以加微信luqin360交流。
为什么做数据人网http://shujuren.org
帮助人们做明智决策,令人兴奋和有价值!
怎么做数据人网http://shujuren.org
把数据驱动决策做到极致,涵盖数据思维和数据技术等!
数据人网做什么?
数据人网是数据知识服务商!
共建共享优质数据知识库,提供省时有用数据知识。
数据人网诚邀有缘人,一起做这个事情。现在急需要一位前端设计和开发工程师,需要许多数据知识分享者!(微信:luqin360)
点击“阅读原文”进入数据人网。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!