我尝试使用 k-means 集群(使用 SQLserver + R),但我的模型似乎不稳定:每次运行k-means算法时,它都会找到不同的集群。但是,如果我将nstart(在 R k-means 函数中)设置得足够高(10 或更高),它就会变得稳定。
此参数的默认值为 1,但似乎建议将其设置为更高的值 (25)(我想我在文档的某处看到了)。
所以我有点困惑......有什么建议吗?
我尝试使用 k-means 集群(使用 SQLserver + R),但我的模型似乎不稳定:每次运行k-means算法时,它都会找到不同的集群。但是,如果我将nstart(在 R k-means 函数中)设置得足够高(10 或更高),它就会变得稳定。
此参数的默认值为 1,但似乎建议将其设置为更高的值 (25)(我想我在文档的某处看到了)。
所以我有点困惑......有什么建议吗?
nstart选项尝试多个初始配置并报告最佳配置。例如,添加 nstart=25 将生成 25 个初始随机质心,并为算法选择最好的一个。希望这可以帮助!
集群的稳定性高度依赖于您的数据集,因为明确的案例多次运行它是一种资源浪费。我认为这是默认值 1 背后的基本原理。但我同意对于大多数较小的情况,将其设置得更高是很有意义的。
简而言之,nstart 将创建多个配置并显示最佳配置。
例如, nstart = 25 将创建 25 个初始配置。
使用 nstart 参数尝试多个随机初始值。
文档中没有出现解释。但我认为将 nstart 设置得更高让 kmeans 运行质心的 nstart(say 50) 随机初始化,并选择能够更好地最小化成本的那个;因此,您最终会得到一个更稳定的集群,因为 kmeans 总是为您的数据选择更好的分离