【问题标题】:Determining Number of K-means clusters given Elbow, Silhouette and Gap Statistics graphs (in R)?确定给定肘部、轮廓和间隙统计图(在 R 中)的 K 均值簇的数量?
【发布时间】:2018-08-14 18:26:06
【问题描述】:

我完全是机器学习和 k-means 算法的新手。经过一番搜索后,我确定在尝试为 k-means 找到正确的 k 时,我可以使用 Elbow、Silhouette 或 Gap 统计方法。问题是每个图表都给了我截然不同的输出。这些数据是针对具有纬度和经度的一个用户的位置,缩放几乎没有影响,因为所有位置实际上都在相同的 50 英里半径内。

这是我在 R 中使用的代码:

    #Determining the right number of clusters for each user beginning with UserId = 2949
la <- user2949$Latitude
lo<-user2949$Longitude
p <- cbind(la,lo)
s <- scale(p)
head(s)
#Using Elbow Method
Elbow <- fviz_nbclust(p,kmeans,method = "wss")+labs(subtitle = "Elbow Method")
Elbow
#Using Silhouette Method
Silhouette <- fviz_nbclust(p,kmeans,method = "silhouette")+labs(subtitle = "Silhouette Method")
Silhouette
#Using Gap Statistic
set.seed(123)
Gap <- fviz_nbclust(p,kmeans,nstart=25,method = "gap_stat",nboot=50)+labs(subtitle = "Gap Statistic Method",K.max = 20)
Gap

输出(这些仅在链接中,因为我显然无法发布没有 10 名声望的照片): - 对我来说另一个问题是确定弯道,我听说我应该研究 BIC,但不知道如何解决这个问题。我通过查看得出的结论是,最佳聚类数可能是 6, - 这种方法说 10,考虑到用户数量的庞大,这对于我正在尝试做的事情可能是不可行的, - 差距统计表明 1 个集群就足够了。我不知道什么是误导,什么不是,因为我对每种方法都没有专业知识。

该项目的最终目标是查看所有用户位置,并根据他们的活动(由快餐店的信标接收)确定他们的“家”在哪里。我正在尝试找到一种大规模的方法来确定近 70,000 个用户的用户位置。我最初的想法是使用这些方法中最有效的方法进行循环,并将集群的中心作为可能的家庭位置......我可以使用什么代码来给我正确数量的集群,而无需查看 70,000 个图表?

【问题讨论】:

  • 那么你真的有一个编程问题吗?您似乎更普遍地询问如何解释统计模型的结果,这不是这里的主题。也许您的问题更适合Data ScienceCross Validated
  • 我的编程问题是我可以编写什么 R 代码来从这些图中确定 k-means 集群的最佳数量。我不知道如何从每种方法中提取数字而不实际查看图表@MrFlick

标签: r machine-learning geolocation cluster-analysis k-means


【解决方案1】:

如果这些启发式相互矛盾,这通常意味着k-means算法失败,没有k是好的。它不是一个非常健壮的算法,它对异常值很敏感。

您需要改进处理,并重新考虑您对什么是相似性以及什么是集群的假设。

【讨论】:

  • 我使用 kmeans 的位置是纬度和经度,在这种情况下,我使用的是特定的用户位置,每个纬度/经度坐标都在大约 50 英里范围内,因此不会有很多异常值那个案子。我与其他用户一起尝试过,轮廓和间隙统计数据与其他用户一样为 10 和 1,肘部为 4 到 6。对于位置数据,您建议使用哪种类型的聚类?
  • 基于密度的聚类通常在地理数据上效果更好。有一篇博客文章有一些例子......让我试着找到它。
  • 这里:doublebyteblog.wordpress.com/tag/density-based-clustering,这个有一个 k-means 示例,展示了 k-means 的糟糕程度:vitavonni.de/blog/201410/…
猜你喜欢
  • 2018-04-18
  • 2021-06-18
  • 2012-06-19
  • 1970-01-01
  • 2015-01-05
  • 1970-01-01
  • 2016-12-24
  • 2014-07-12
  • 2017-03-13
相关资源
最近更新 更多