使用MATLAB进行K-means聚类和层次聚类

1.分别使用k-means聚类和层次聚类,将以下八个点分为3个类簇。A1=(2,10),A2=(2,5),A3=(8,4),A4=(5,8),A5=(7,5), A6=(6,4), A7=(1,2),A8=(4,9)。

2.在二维平面直角坐标系中,分别绘制两种方法得到的聚类结果图(两张图)。3个不同的类别用数据点颜色进行区分。

K-means聚类 

% 函数文件

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 % 产生

你可能感兴趣的:(MATLAB,K-Means聚类,层次聚类,聚类,数学建模)