【发布时间】:2020-08-23 12:03:43
【问题描述】:
许多地方的搜索结果报告说,R 的函数 kmeans 中的参数 nstart 设置了算法的多次迭代并选择“最佳迭代”,例如https://datascience.stackexchange.com/questions/11485/k-means-in-r-usage-of-nstart-parameter。任何人都可以提供任何关于它如何做到这一点的明确说明,即它以什么衡量标准定义得最好?
其次:R 的kmeans 函数接受一个参数centers。在这里,与 k-means 中的典型情况一样,可以在算法开始期望最大化之前初始化质心,方法是从数据集中选择初始质心行(数据点)。 (您也可以以矢量的形式提供数据集中不存在的点,付出更大的努力。在这种情况下,理论上您可以选择全局最优作为您的质心。这是 不是我所要求的。)当nstart或种子随机初始化初始化时,我很确定它是通过从您的数据集中随机选择质心并从那些(不仅仅是空间内的一组随机点)。
因此,总的来说,我正在寻找一种方法来从数据集中获得一组好的(例如,最好的 $n$ 试验,或最好的来自 nstart)的起始数据实例集 作为初始质心。有没有办法从nstart 中提取“获胜”(=最佳)初始质心集(然后我可以在将来的centers 参数中使用它)?任何其他简化和快速的方法来获得一组非常好的起始质心(大概,合理地接近集群中心最终的位置)?
也许至少有一种方法可以从给定的kmeans 运行中提取它选择从什么初始质心开始?
【问题讨论】:
标签: r cluster-analysis k-means centroid