首页 > 代码库 > 机器学习笔记——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")));>