首页 > 代码库 > 机器学习笔记——K-means

机器学习笔记——K-means

K-means是一种聚类算法,其要求用户设定聚类个数k作为输入參数,因此,在执行此算法前,须要预计须要的簇的个数。

如果有n个点,须要聚到k个簇中。K-means算法首先从包括k个中心点的初始集合開始,即随机初始化簇的中心。随后,算法进行多次迭代处理并调整中心位置,知道达到最大迭代次数或中性收敛于固定点。


k-means聚类实例。选择三个随机点用作聚类中心(左上),map阶段(右上)将每一个点赋给离其近期的簇。在reduce阶段(左下),取相互关联的点的均值,作为新的簇的中心位置,得到本轮迭代的终于布局(右下)。在每一轮迭代结束后,终于布局将被反馈给相同的循环过程,直到聚类中心的位置不再移动。

使用weka进行聚类:

	public static void main(String[] args) throws Exception {
		// 读入样本数据  
		Instances data = http://www.mamicode.com/new Instances(new BufferedReader(new FileReader("E://Weka-3-6//data//contact-lenses.arff")));>