这是我看到的一篇良心文章啦~有问题可以直接去请教博主~http://blog.csdn.net/u010451580/article/details/52249195
首先得说,虽然matlab提供了KMeans函数,但是matlab的KMeans聚类好慢,真的好慢!
K-means算法是硬聚类算法 ,是典型的基于原型的目标函数 聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以偶是距离 作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和 准则函数作为聚类准则函数 K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的距离最大,而类之间的距离最小。 使用方法: Idx=Kmeans(X,K) [Idx,C]=Kmeans(X,K) [Idx,C,sumD]=Kmeans(X,K) [Idx,C,sumD,D]=Kmeans(X,K) […]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…) 各输入输出参数介绍: X :N*P的数据矩阵 K: 表示将X划分为几类,为整数 Idx :N*1的向量,存储的是每个点的聚类标号 C: K*P的矩阵,存储的是K个聚类质心位置 sumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和 D N*K的矩阵,存储的是每个点与所有质心的距离 […]=Kmeans(…,'Param1',Val1,'Param2',Val2,…) 这其中的参数Param1、Param2等,主要可以设置为如下: 1. ‘Distance’(距离测度) ‘sqEuclidean’ 欧式距离(默认时,采用此距离方式) ‘cityblock’ 绝度误差和,又称:L1 ‘cosine’ 针对向量 ‘correlation’ 针对有时序关系的值 ‘Hamming’ 只针对二进制数据 2. ‘Start’(初始质心位置选择方法) ‘sample’ 从X中随机选取K个质心点 ‘uniform’ 根据X的分布范围均匀的随机生成K个质心 ‘cluster’ 初始聚类阶段随机选择10%的X的子样本(此方法初始使用’sample’方法) matrix 提供一K*P的矩阵,作为初始质心位置集合 3. ‘Replicates’(聚类重复次数) 整数 这个博客很好,忘记了就参考这个! 深入浅出K-Means算法- .NET http://www.csdn .Net /article/2012-07-03/2807073-k-means