我在Matlab上对一个400x1000的矩阵运行kmeans算法,但每次运行时结果都不同。以下是代码示例:
[idx, ~, ~, ~] = kmeans(factor_matrix, 10, 'dist','sqeuclidean','replicates',20);
每次运行这段代码,为什么会得到不同的结果?有什么想法吗?
我正在使用它来识别多重共线性问题。
感谢您的帮助!
我在Matlab上对一个400x1000的矩阵运行kmeans算法,但每次运行时结果都不同。以下是代码示例:
[idx, ~, ~, ~] = kmeans(factor_matrix, 10, 'dist','sqeuclidean','replicates',20);
每次运行这段代码,为什么会得到不同的结果?有什么想法吗?
我正在使用它来识别多重共线性问题。
感谢您的帮助!
kmeans
输出的聚类平均质量很好。但是:由于算法的伪随机性质,每次都会得到略微不同的聚类结果--这是正常行为。这被称为初始化问题,因为kmeans从随机的初始点开始对数据进行聚类。Matlab选择k个随机点,并计算数据中各个点到这些位置的距离,然后找到新的质心以进一步最小化距离。因此,你可能会得到不同的质心位置结果,但答案是相似的。