Matlab:K-means聚类与预定义的群体

时间:2012-07-30 22:20:04

标签: matlab statistics machine-learning k-means

我试图区分两个人群。每个群体是NxM矩阵,其中N在两者之间固定,并且M的长度可变(N =每次运行的列特定属性,M =运行数)。我看过PCA和K-means来区分两者,但我对最佳实践感到好奇。

据我所知,在K-means中,没有初始“校准”,其中选择聚类使得可以区分已知的双峰种群。它只是最小化距离并将数据分配给任意数量的人口。我想告诉聚类算法,我希望最适合两个群体分开。然后,我可以使用从初始聚类到未来数据集的拟合。任何帮助,示例代码或阅读材料都将不胜感激。

-R

2 个答案:

答案 0 :(得分:0)

这实际上取决于数据。但只是为了让你知道K-means确实陷入局部最小值,所以如果你想使用它尝试从不同的随机起点运行它。与任何其他光谱聚类方法相比,PCA也可能有用,因为您对聚类过程的控制要少得多。我建议您使用带有多个随机起点的k-means对数据进行聚类,以及c如何工作,然后您可以使用K-NN预测和学习每个新样本(我不知道是否它对你的情况很有用。)

检查Lazy learnersK-NN进行预测。

答案 1 :(得分:0)

K-means和PCA通常用于无监督学习问题,即您有一批数据并希望找到更简单的方法来描述它的问题。原则上,您可以在数据上运行K-means(K = 2),然后评估两类数据与此算法找到的数据簇匹配的程度(注意:您可能需要多次启动)

听起来你有一个监督学习问题:你有一个训练数据集,它已被分成两个类。在这种情况下,k-最近邻居(如@amas所述)可能是最像k-means的方法;但支持向量机也是一种很有吸引力的方法。

我经常提到统计学习要素:数据挖掘,推理和预测,第二版(斯普林格系列统计)作者:Trevor Hastie(作者),Robert Tibshirani(作者),杰罗姆弗里德曼(作者)。