Elbow method确定聚类簇数(R语言)

聚类是单细胞下游分析中关键的一环,有助于识别细胞类型,分析细胞异质性,常见基础的聚类算法有kmeans、louvain、层次聚类、谱聚类等等,但确定簇数K的大小仍是一个难点。

可以通过elbow method(肘方法)绘制曲线,横坐标为聚类簇数K,纵坐标为每个数据点与聚类中心的欧式距离之和,具体计算如下:
elbow公式
随后找到一个距离首末两点连接直线距离最短的点,确定为elbow point。

cal_dist <- function(data,cluster_center){
   
  data <- t(data)
  min_dist <- c()
  for (n in c(1:nrow(data))) {
   
    dist <- c()
    for(cc in c(1:nrow(cluster_center))){
   
      dist <- c(dist,sqrt(sum((
确定聚类是进行K-means聚类分析的重要步骤之一。以下是两种常用的方法来帮助确定合适的聚类: 1. 手肘法(Elbow Method) 手肘法是一种直观的方法,用于选择合适的聚类。该方法通过计算不同聚类下的内平方和(WCSS)来评估聚类的性能。WCSS是每个据点与该的质心之间距离的平方和。随着聚类的增加,WCSS会逐渐减小,但是当聚类增加到一定程度时,减少的速度会减缓。这个聚类对应的点形成了图形上的一个"肘部",因此称为手肘法。 以下是一个使用手肘法确定聚类的R代码示例: ```R library(ggplot2) library(cluster) # 读取据 data <- read.csv("data.csv") # 计算不同聚类下的内平方和 wcss <- c() for (i in 1:10) { kmeans_fit <- kmeans(data, centers = i, nstart = 10) wcss[i] <- kmeans_fit$tot.withinss } # 绘制手肘图 ggplot(data.frame(x = 1:10, y = wcss), aes(x, y)) + geom_line() + geom_point() + labs(x = "Number of Clusters", y = "Within-Cluster Sum of Squares") + geom_vline(xintercept = 3, linetype = "dashed") # 根据手肘确定聚类为3 ``` 2. 轮廓系(Silhouette Method) 轮廓系是一种用于评估聚类质量的方法。该方法通过计算每个据点的轮廓系来评估聚类的性能。轮廓系是一个介于-1和1之间的值,表示据点与其所属的相似度与与其他的相似度之间的差异程度。轮廓系越接近1,表示据点与其所属的相似度越高,与其他的相似度越低,聚类效果越好。 以下是一个使用轮廓系确定聚类的R代码示例: ```R library(ggplot2) library(cluster) # 读取据 data <- read.csv("data.csv") # 计算不同聚类下的轮廓系 silhouette <- c() for (i in 2:10) { kmeans_fit <- kmeans(data, centers = i, nstart = 10) silhouette[i] <- silhouette(kmeans_fit$cluster, dist(data))$avg.width } # 绘制轮廓系图 ggplot(data.frame(x = 2:10, y = silhouette[-1]), aes(x, y)) + geom_line() + geom_point() + labs(x = "Number of Clusters", y = "Silhouette Width") + geom_vline(xintercept = 3, linetype = "dashed") # 根据轮廓系确定聚类为3 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

eynoZzzzc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值