使用MATLAB对随机生成的1000个数进行聚类分析。
二维聚类
MATLAB程序源代码
% 函数文件
function [ resX,resY,seedX,seedY,record] = FunK_mean( x,y,k )
% 功能:
% 实现k-mean聚类算法
% 输入:
% 二维数据,分别用x,y两个一维向量代表两个维度
% k 是分成的类别的数量
% 输出:
% k行的两个矩阵
% 对应同样的第n行,存放着第n类的所有元素
% record: 记录着每一行的有效元素的个数
j = 1;
% 下面是预分配一些空间
% seedX 和 seedY 中存放着所有种子
seedX = zeros(1,k);
seedY = zeros(1,k);
oldSeedX = zeros(1,k);
oldSeedY = zeros(1,k);
resX = zeros(k,length(x));
resY = zeros(k,length(x));
% 用来记录resX中每一行有效元素的个数
record = zeros(1,k);
for i = 1:k % 产生k个随机种子, 注意: 随机种子是来自元素集合