kmeans算法】的更多相关文章

用c语言写了kmeans算法的串行程序,再用mpi来写并行版的,貌似参照着串行版来写并行版,效果不是很赏心悦目~ 并行化思路: 使用主从模式.由一个节点充当主节点负责数据的划分与分配,其他节点完成本地数据的计算,并将结果返回给主节点.大致过程如下: 1.进程0为主节点,先从文件中读取数据集,然后将数据集划分并传给其他进程: 2.进程0选择每个聚类的中心点,并发送给其他进程: 3.其他进程计算数据块中每个点到中心点的距离,然后标出每个点所属的聚类,并计算每个聚类所有点到其中心点的距离之和,最后将这…
数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘 (DataMiriing),指的是从大型数据库或数据仓库中提取人们感兴趣的知识,这些知识是隐含的.事先未知的潜在有用信息,数据挖掘是目前国际上,数据库和信息决策领域的最前沿研究方向之一.因此分享一下很久以前做的一个小研究成果.也算是一个简单的数据挖掘处理的例子. 1.数据挖掘与聚类分析概述 数据挖掘一般由以下几个步骤: (l)分析问题:源数据数据库必须经过评估确认其是否符合数据挖掘标准.以决定预期结果,…
最近在苦于思考kmeans算法的MPI并行化,花了两天的时间把该算法看懂和实现了串行版. 聚类问题就是给定一个元素集合V,其中每个元素具有d个可观察属性,使用某种算法将V划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高. 下面是google到该算法的一个流程图,表意清楚: 1.随机选取数据集中的k个数据点作为初始的聚类中心: 2.分别计算每个数据点到每个中心的距离,选取距离最短的中心点作为其聚类中心: 3.利用目前得到的聚类重新计算中心点: 4.重复步骤2…
这几天学习了无监督学习聚类算法Kmeans,这是聚类中非常简单的一个算法,它的算法思想与监督学习算法KNN(K近邻算法)的理论基础一样都是利用了节点之间的距离度量,不同之处在于KNN是利用了有标签的数据进行分类,而Kmeans则是将无标签的数据聚簇成为一类.接下来主要是我对<机器学习实战>算法示例的代码实现和理解. 首先叙述下算法项目<对地图上的俱乐部进行聚类>的要求:朋友Drew希望让我们带她去城里庆祝生日,由于其他一些朋友也会过来,所以需要提供一个大家都可行的计划,Drew给出…
二分K-means聚类(bisecting K-means) 算法优缺点: 由于这个是K-means的改进算法,所以优缺点与之相同. 算法思想: 1.要了解这个首先应该了解K-means算法,可以看这里这个算法的思想是:首先将所有点作为一个簇,然后将该簇一分为二.之后选择能最大程度降低聚类代价函数(也就是误差平方和)的簇划分为两个簇(或者选择最大的簇等,选择方法多种).以此进行下去,直到簇的数目等于用户给定的数目k为止.2.以上隐含着一个原则是:因为聚类的误差平方和能够衡量聚类性能,该值越小表示…
K-means(K均值)是基于数据划分的无监督聚类算法. 一.基本原理       聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类.聚类算法可以分为基于划分的方法.基于联通性的方法.基于概率分布模型的方法等,K-means属于基于划分的聚类方法. 基于划分的方法是将样本集组成的矢量空间划分为多个区域{Si}i=1k,每个区域都存在一个区域相关的表示{ci}i=1k,通常称为区域中心.对于每个样本,可以建立一种样本到区域中心的映射q…
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(1) : K-means算法 1. 简介 K-means算法是一类无监督的聚类算法,目的是将没有标签的数据分成若干个类,每一个类都是由相似的数据组成.这个类的个数一般是认为给定的. 2. 原理 假设给定一个数据集$\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2,...,\mathbf{x}_N \}$, 和类的个数K…
K-Means是常用的聚类算法,与其他聚类算法相比,其时间复杂度低,聚类的效果也还不错,这里简单介绍一下k-means算法,下图是一个手写体数据集聚类的结果. 基本思想 k-means算法需要事先指定簇的个数k,算法开始随机选择k个记录点作为中心点,然后遍历整个数据集的各条记录,将每条记录归到离它最近的中心点所在的簇中,之后以各个簇的记录的均值中心点取代之前的中心点,然后不断迭代,直到收敛,算法描述如下: 上面说的收敛,可以看出两方面,一是每条记录所归属的簇不再变化,二是优化目标变化不大.算法的…
语音信号的数字处理课程作业——矢量量化.这里采用了K-means算法,即假设量化种类是已知的,当然也可以采用LBG算法等,不过K-means比较简单.矢量是二维的,可以在平面上清楚的表示出来. 1. 算法描述 本次实验选择了K-means算法对数据进行矢量量化.算法主要包括以下几个步骤 初始化:载入训练数据,确定初始码本中心(4个): 最近邻分类:对训练数据计算距离(此处采用欧式距离),按照距离最小分类: 码本更新:重新生成包腔对应的质心: 重复分类和码本更新步骤,知道达到最大迭代次数或满足一定…
聚类 和 k-means简单概括. 聚类是一种 无监督学习 问题,它的目标就是基于 相似度 将相似的子集聚合在一起. k-means算法是聚类分析中使用最广泛的算法之一.它把n个对象根据它们的属性分为k个聚类,以便使得所获得的聚类满足: 同一聚类中的对象相似度较高:而不同聚类中的对象相似度较小. k - means的算法原理: (文/qinm08(简书作者) 原文链接:http://www.jianshu.com/p/32e895a940a2) 使用K-Means算法进行聚类,过程非常直观:(a…