资源简介
模式识别大作业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
- 上一篇:图像字符分割
- 下一篇:retinex的MATLAB实现程序
相关资源
- Matlab实现ISODATA算法对iris数据分类
- 模式识别与智能计算的matlab实现源代
- 模式识别pca的设计
- 模式识别与智能计算杨淑莹MATLAB版源
- K近邻算法的MATLAB实现
- 基于聚类的路标检测K-meansMATLAB(RGB)
- 动物图像多分类识别MATLAB可运行
- 模式识别身高体重贝叶斯算法
- 贝叶斯高斯分类作业
- 模式识别大作业MATLAB版)
- MATLAB应用BP神经网络对英文字母的识别
- matlab模式识别感知器实现线性可分、
- ISOMAP 源码matlab编写
- ISODATA的matlab代码
- 水果智能分类系统模式识别
- 模式识别或数字识别
- 光学字符识别系统matlab版
- 支持向量机用于肌电信号模式识别的
- matlab实现字母识别
- 超全的模式识别Matlab源程序,涉及几
- 神经网络用于模式识别及MATLAB源代码
- 模式识别第四版matlab代码
- matlab实现模式识别的聚类分类算法
- 图像分类模式识别算法源代码
- 正态分布模式下的贝叶斯分类
- matlab 手写数字/字母模式识别
- 超全的模式识别Matlab源程序
- 差分进化自适应的参数优化、模式识
- 四种支持向量机用于函数拟合与模式
- 基于matlab的Iris、乳腺癌数据集的模式
评论
共有 条评论