【发布时间】:2022-01-27 04:00:14
【问题描述】:
我对 R 和集群非常陌生,目前我正在做作业。任务是对一家住房公司的数据进行聚类,以便根据结果更好地了解和调整其业务模式。
可以在here找到原始数据集。 我删除了一些列,因为(根据作业)它们不相关。 在 R 中看起来像这样:
我使用 K-Means 来执行聚类。
#use Elbow Method in order to understand how many clusters are needed.
set.seed(123)
fviz_nbclust(clustering, kmeans, method = "wss")
#perform k-means
k2 <- kmeans(clustering, centers = 10, nstart = 25)
str(k2)
fviz_cluster(k2, data = clustering)
看起来 K-Means 使用 sqft_lot 来创建集群。这是算法自动选择的变量,还是我可以手动选择和设置聚类变量?我只是不确定 sqft_lot 是否是最佳选择。
目前我对结果不太满意。我不确定它是否真的以当前形式提供有价值的信息。
【问题讨论】:
-
在我看来,在开始编写脚本之前,您应该首先弄清楚您的结果应该是什么样子。你想得到什么信息?另外,你尝试了什么?您收到了哪些错误消息?您是否阅读了有关 k-means 聚类的 r 文档? -- PS 你的链接失效了。
-
您如何得出 kmeans“使用 sqft_lot 创建集群”的结论?您是否将聚类算法与
fviz_cluster的可视化混淆了? -
@D.J 抱歉,我修复了死链接。感谢您提出这些问题。一方面,我期望算法根据数据的相似性将住房数据聚类成簇。另一方面,我也开始编写脚本,想看看结果会怎样,看看我是否朝着正确的方向前进。到目前为止,我还没有收到任何错误。我也在 k-means 之前尝试了 Hierarchical Clustering,但是绘制数据是一个问题,所以我选择了 k-means。
-
@cdalitz 我不是 100% 肯定,但我假设这是因为绘制的值(例如 8093、7253、3915)都是来自“sqft_lot”列的值。如果这些值来自算法本身,它们是什么意思/为什么会显示为“随机”数字?如何正确解释它们?谢谢。
-
我很确定为每个点打印的数字是 ID,而不是任何列的值。 Dim1 和 Dim2 是 PCA 的前 2 个主成分;它们不是数据框中的直接列。 K-means 使用您提供的所有列作为输入,而不仅仅是一个。首先阅读一些关于 k-means 聚类如何工作以及如何使用它做出决策的概述可能会有所帮助,例如这些信息是否对您的目的有用