• 大小: 219KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: Matlab
  • 标签: 模式识别  

资源简介

模式识别大作业K均值算法matlab平台实现,内有iris数据用于测试一起其他相关资料。

资源截图

代码片段和文件信息

%---------------------------------
%------K-均值算法-------
%---------------------------------
clc;
clear;
close all;
%读入Iris数据
x1 = xlsread(‘data1.xls‘);     
x2 = xlsread(‘data2.xls‘);
x3 = xlsread(‘data3.xls‘);
X = [x1;x2;x3];
choice = input(‘Please input the choice:(1为聚类中心在第一类,2为聚类中心在第二类,3为聚类中心在第三类,4为聚类中心分别在三类中)‘); 
index  = randperm(50);% 生成随机序号
% 初始聚类中心的选择
switch(choice)
    case(1)      % 聚类中心在第一类中并选择聚类中心
        Z1 = x1(index(1):);
        Z2 = x1(index(2):);
        Z3 = x1(index(3):);
    case(2)      % 聚类中心在第二类中
        Z1 = x2(index(1):);
        Z2 = x2(index(2):);
        Z3 = x2(index(3):);
    case(3)      % 聚类中心在第三类中
        Z1 = x3(index(1):);
        Z2 = x3(index(2):);
        Z3 = x3(index(3):);
    case(4)      % 聚类中心分别在三类中
        Z1 = x1(index(1):);
        Z2 = x2(index(2):);
        Z3 = x3(index(3):);
end
% K-均值算法
step = 0;
while(1)
    step   = step + 1; % 记录迭代次数
    num1 = 0;
    num2 = 0;
    num3 = 0;
    for i=1:150
        dist1 = 0;  % 样本与第一类聚类中心的距离
        dist2 = 0;  % 样本与第二类聚类中心的距离
        dist3 = 0;  % 样本与第三类聚类中心的距离
        dist1 = sum(( X(i:) - Z1 ).^2);
        dist2 = sum(( X(i:) - Z2 ).^2);
        dist3 = sum(( X(i:) - Z3 ).^2);
        % 判断样本属于哪一类,并把样本存入该类中
        if dist1 <= dist2 && dist1 <= dist3  
            num1 = num1 + 1;
            class1(num1:) = X(i:); 
        end
       
        if dist2 <= dist1 && dist2 <= dist3
            num2 = num2 + 1;
            class2(num2:) = X(i:);
        end
      
        if dist3 <= dist1 && dist3 <= dist2
            num3 = num3 + 1;
            class3(num3:) = X(i:);
        end
       
    end
    temp1 = mean(class1);
    temp2 = mean(class2);
    temp3 = mean(class3);
    %重新调整当前类别的聚类中心
    if sum(temp1-Z1)==0 && sum(temp2-Z2)==0 && sum(temp3-Z3)==0
        break;    
    else
        Z1 = temp1;
        Z2 = temp2;
        Z3 = temp3;
    end
end
disp(‘迭代次数为:‘)step
disp(‘第一类所含样本数为:‘)num1
disp(‘第二类所含样本数为:‘)num2
disp(‘第三类所含样本数为:‘)num3
% 画图程序
% 以第一个特征作x轴和第二个特征作y轴,画图
%原始数据的聚类图
for i=1:150
    if (i<=50)
        plot(X(i1)X(i2)‘r*‘)
        hold on
    end
        if (i>50 &&i<=100)
        plot(X(i1)X(i2)‘g*‘)
        hold on
        end
        if (i>100&&i<=150)
        plot(X(i1)X(i2)‘b*‘)
        hold on
    end
end
title(‘原始数据的聚类图‘);
strt=[‘红色*为第一类;绿色*为第二类;蓝色*为第三类‘];
text(41.8strt);
%K-均值算法分类的聚类图
figure;
for i=1:num1
   plot(class1(i1)class1(i2)‘r*‘);
    hold on;
end
for j=1:num2
    plot(class2(j1)class2(j2)‘g*‘);
    hold on;
end
for k=1:num3
    plot(class3(k1)class3(k2)‘b*‘);
    hold on;
end
title(‘K-均值算法的聚类图‘);
strt=[‘红色*为第一类;绿色*为第二类;蓝色*为第三类‘];
text(41.8strt);


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14848  2012-03-19 10:44  第2次大作业k均值\K-均值算法\iris1.xls

     文件      15360  2012-03-19 10:44  第2次大作业k均值\K-均值算法\iris2.xls

     文件      15360  2012-03-20 14:42  第2次大作业k均值\K-均值算法\iris3.xls

     文件       2018  2012-12-09 22:33  第2次大作业k均值\K-均值算法\Kmeans.m

     文件      10958  2012-11-17 22:34  第2次大作业k均值\K-均值算法\wine.data.txt

     文件      15360  2012-12-09 22:32  第2次大作业k均值\K-均值算法\wine1.xls

     文件      17408  2012-12-09 22:32  第2次大作业k均值\K-均值算法\wine2.xls

     文件      14336  2012-12-09 22:33  第2次大作业k均值\K-均值算法\wine3.xls

     文件       3103  2012-04-05 14:24  第2次大作业k均值\Kmeans.m

     文件     146924  2012-12-09 01:49  第2次大作业k均值\周萌02105143模式识别大作业2(K均值).pdf

     文件       6752  2012-12-09 01:31  第2次大作业k均值\新建文件夹\93317467Kmeans.rar

     文件      14848  2012-03-19 10:44  第2次大作业k均值\新建文件夹\K-均值算法\data1.xls

     文件      15360  2012-03-19 10:44  第2次大作业k均值\新建文件夹\K-均值算法\data2.xls

     文件      15360  2012-03-20 14:42  第2次大作业k均值\新建文件夹\K-均值算法\data3.xls

     文件       3103  2012-12-09 22:43  第2次大作业k均值\新建文件夹\K-均值算法\Kmeans.m

     文件      10240  2012-12-09 22:41  第2次大作业k均值\新建文件夹\K-均值算法\wine1.xls

     文件      10240  2012-12-09 22:41  第2次大作业k均值\新建文件夹\K-均值算法\wine2.xls

     文件      10240  2012-12-09 22:41  第2次大作业k均值\新建文件夹\K-均值算法\wine3.xls

     文件        528  2012-12-09 01:08  第2次大作业k均值\新建文本文档.txt

     文件      69632  2012-12-09 01:49  第2次大作业k均值\论文.doc

     目录          0  2012-12-09 22:41  第2次大作业k均值\新建文件夹\K-均值算法

     目录          0  2012-12-09 22:33  第2次大作业k均值\K-均值算法

     目录          0  2012-12-09 01:32  第2次大作业k均值\新建文件夹

     目录          0  2012-12-09 01:50  第2次大作业k均值

----------- ---------  ---------- -----  ----

               411978                    24


评论

共有 条评论