原文链接:http://tecdat.cn/?p=25196
原文出处:拓端数据部落公众号
目标
对“NCI60”(癌细胞系微阵列)数据使用聚类方法,目的是找出观察结果是否聚类为不同类型的癌症。K_means 和层次聚类的比较。
-
#数据信息
-
-
dim(nata)
-
nci.labs[1:4]
-
-
-
-
table(ncibs)
-
-
-
-
ncbs
-
scale # 标准化变量(均值零和标准差一)。
全链接、平均链接和单链接之间的比较。
-
-
plot(hclust,ylab = "",cex=".5",col="blue") #使用全链接对观察结果进行层次聚类。
plot(hclust,cex=".5",col="blue") #使用平均链接对观察进行层次聚类。
-
par(mfrow=c(1,1))
-
plot(hclust,col="blue") #使用单链接对观察进行层次聚类。
观察结果
单链接聚类倾向于产生拖尾的聚类:非常大的聚类,单个观测值一个接一个地附在其中。
另一方面,全链接和平均链接往往会产生更加平衡和有吸引力的聚类。
由于这个原因,全链接和平均链接比单链接层次聚类更受欢迎。单一癌症类型中的细胞系确实倾向于聚在一起,尽管聚类并不完美。
-
-
-
table(hrs,ncbs)
-
我们可以看到一个清晰的模式,即所有白血病细胞系都属于聚类 3,其中乳腺癌细胞分布在三个不同的聚类中。
-
-
-
plot(hcu)
-
abline
-
参数 h=139 在高度 139 处绘制一条水平线。这是 4 个不同聚类的划分结果。
-
-
-
out
-
-
-
-
-
kout=kmea
-
table
-
我们看到,获得层次聚类和 K-means 聚类的四个聚类产生了不同的结果。K-means 聚类中的簇 2 与层次聚类中的簇 3 相同。另一方面,其他集群不同。
结论
层次聚类在 NCI60 数据集中能比 K-means聚类得到更好的聚类。
最受欢迎的见解
3.R语言对用电负荷时间序列数据进行K-medoids聚类建模和GAM回归
5.Python Monte Carlo K-Means聚类实战