资源简介
提供了k-means多维数据的聚类分析matlab源代码代码
代码片段和文件信息
%N是数据一共分多少类
%data是输入的不带分类标号的数据
%u是每一类的中心
%re是返回的带分类标号的数据
function [u re]=KMeans(dataN)
[m n]=size(data); %m是数据个数,n是数据维数
ma=zeros(n); %每一维最大的数
mi=zeros(n); %每一维最小的数
u=zeros(Nn); %随机初始化,最终迭代到每一类的中心位置
for i=1:n
ma(i)=max(data(:i)); %每一维最大的数
mi(i)=min(data(:i)); %每一维最小的数
for j=1:N
u(ji)=ma(i)+(mi(i)-ma(i))*rand(); %随机初始化,不过还是在每一维[min max]中初始化好些
end
end
while 1
pre_u=u; %上一次求得的中心位置
for i=1:N
tmp{i}=[]; % 公式一中的x(i)-uj为公式一实现做准备
for j=1:m
tmp{i}=[tmp{i};data(j:)-u(i:)];
end
end
quan=zeros(mN);
for i=1:m %公式一的实现
c=[];
for j=1:N
c=[c norm(tmp{j}(i:))];
end
[junk index]=min(c);
quan(iindex)=norm(tmp{index}(i:));
end
for i=1:N %公式二的实现
for j=1:n
u(ij)=sum(quan(:i).*data(:j))/sum(quan(:i));
end
end
if norm(pre_u-u)<0.1 %不断迭代直到位置不再变化
break;
end
end
re=[];
for i=1:m
tmp=[];
for j=1:N
tmp=[tmp norm(data(i:)-u(j:))];
end
[junk index]=min(tmp);
re=[re;data(i:) index];
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1642 2015-11-20 17:20 kmeans.m
文件 1148 2016-01-05 20:30 main.m
- 上一篇:主成分分析PCA的MATLAB程序
- 下一篇:线性判别分析LDA算法代码
相关资源
- k-means聚类MATLAB的基本代码
- K-means聚类程序
- k-means聚类matlab代码
- 用matlab实现基于灰度的阈值分割算法
- K-means聚类算法 matlab实现
- K-means聚类算法初始聚类中心确定 ma
- MATLAB实现K-means聚类
- 模糊k均值聚类算法matlab实现
- 基于K-means聚类算法的图像分割及其
- 采用K-means聚类,实现多维矩阵的聚类
- MATLAB对多维数据每一维进行归一化
- 基于K-means聚类算法的图像分割的MAT
- K-means聚类分析Iris数据集模式识别
- k-means聚类算法的matlab实现
- K-means聚类算法的Matlab程序-附注释
- k-means聚类学习算法matlab源码
- 两个matlab实现的K-MEANS聚类算法
评论
共有 条评论