zoukankan      html  css  js  c++  java
  • 机器学习笔记——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 = 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
    ", i++, clusterNum);
    		}
    	}


  • 相关阅读:
    nopcommerce商城系统--源代码结构和架构
    Unity3d Material(材质) 无缝拼接
    unity3d中的http通信 二
    unity3d中的http通信
    Unity3d webplayer获取url参数
    Unity3d 读取网络xml
    unity3d web.config设置
    Unity3d Web3d资源的动态加载
    Unity3d webplayer发布的问题和100%自适应浏览器
    Unity3d 与IOS 相互调用
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3837059.html
Copyright © 2011-2022 走看看