码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习笔记——K-means

时间:2014-05-25 21:11:25      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:机器学习

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

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

bubuko.com,布布扣

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

使用weka进行聚类:

	public static void main(String[] args) throws Exception {
		// 读入样本数据  
		Instances data = new Instances(new BufferedReader(new FileReader("E:\\Weka-3-6\\data\\contact-lenses.arff")));
		// 实例化化聚类算法
		SimpleKMeans kmeans = new SimpleKMeans();
		//true if missing values are to be replaced
		kmeans.setPreserveInstancesOrder(true);
		//设置聚类要得到的类别数量  
		kmeans.setNumClusters(2);
		//开始进行聚类  
		kmeans.buildClusterer(data);
		// 打印聚类结果  
		int[] assignments = kmeans.getAssignments();
		int i=0;
		for(int clusterNum : assignments) {
		    System.out.printf("Instance %d -> Cluster %d\n", i++, clusterNum);
		}
	}


机器学习笔记——K-means,布布扣,bubuko.com

机器学习笔记——K-means

标签:机器学习

原文地址:http://blog.csdn.net/laozhaokun/article/details/26960575

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!