资源简介
这是k-means的MATLAB程序,主要用于各种数据的聚类等情况
代码片段和文件信息
function [ resXresY resZrecord] = FunK_mean3D( xyzk )
% 功能:
% 实现三维空间k-mean聚类算法
% 输入:
% 三维数据,分别用xyz两个一维向量代表两个维度
% k 是分成的类别的数量
% 输出:
% k行的两个矩阵
% 对应同样的第n行,存放着第n类的所有元素
% record: 记录着每一行的有效元素的个数
wine=xlsread(‘C:\Users\Administrator\Desktop\11.xls‘‘A1:C20‘)
%wine=mapminmax(wine); %训练数据标准化
%wine=zscore(wine); %测试数据标准化
%amax = max(max(A)); %求矩阵中最大数
%amin = min(min(A)); %求矩阵中最小数
%wine = (A-amin)/(amax-amin);
x=wine(:1);
y=wine(:2);
z=wine(:3);
k=4;
j = 1;
% 下面是预分配一些空间
% seedX 和 seedY 中存放着所有种子
seedX = zeros(1k);
seedY = zeros(1k);
seedZ = zeros(1k);
oldSeedX = zeros(1k);
oldSeedY = zeros(1k);
oldSeedZ = zeros(1k);
resX = zeros(klength(x));
resY = zeros(klength(x));
resZ = zeros(klength(x));
% 用来记录resX中每一行有效元素的个数
record = zeros(1k);
for i = 1:k % 产生k个随机种子 注意: 随机种子是来自元素集合
seedX(i) = x(round(rand()*length(resX)));
seedY(i) = y(round(rand()*length(resX)));
seedZ(i) = z(round(rand()*length(resX)));
% 为保证种子不重叠
if (i > 1 && seedX(i) == seedX(i-1) && seedY(i) == seedY(i-1) && seedZ(i) == seedZ(i-1))
i = i -1; % 重新产生一个种子
end
end
while 1
disp([‘jack is here‘])
record(:) = 0; % 重置为零
resX(:) = 0;
resY(:) = 0;
resZ(:) = 0;
for i = 1:length(x) % 对所有元素遍历
% 下面是判断本次元素应该归为哪一类,这里我们是根据欧几里得距离进行类别判定
% k-mean算法认为元素应该归为距离最近的种子代表的类
distanceMin = 1;
for j = 2:k
- 上一篇:随机森林程序
- 下一篇:免疫遗传算法matlab工具箱.rar
相关资源
- k-means聚类matlab代码
- 蚂蚁聚类算法MATLAB程序
- matlab模糊聚类算法进行图像分割的源
- spectral_clustering简单matlab实现
- meanshift的matlab实现及2维图演示代码
- ap聚类算法MATLAB实现代码
- 模糊C值聚类法MATLAB程序
- CURE算法和Matlab实现
- DBSCAN聚类算法matlab代码
- 图像处理中的模糊C均值聚类matlab算法
- EM算法训练GMM的聚类函数vq_flat看评论
- AP聚类算法的源代码
- matlab实现模式识别的聚类分类算法
- 用matlab实现基于灰度的阈值分割算法
- MATLAB密度聚类程序
- 近邻传播聚类affinity propagation cluster
- 用matlab实现最大最小距离聚类算法
- matlab自带的聚类算法
- Chameleon算法Matlab实现
- k-均值k-means的Matlab静态实现
- keams聚类算法matlab界面实现,支持多维
- 模糊c均值聚类FCM算法的matlab代码
- FCM聚类算法,可直接matlab运行
- 凝聚型层次聚类的matlab代码
- 密度峰值聚类matlab代码
- 遗传算法改进的模糊C-均值聚类MATLA
- Matlab模糊聚类算法实现
- k均值聚类算法MATLAB程序及注释
- 近邻传播聚类-MATLAB程序
- 蚁群聚类算法matlab
评论
共有 条评论