资源简介
模式识别大作业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
- matlab模式识别工具箱PRTOOLS及使用说明
- 用身高和/或体重数据进行性别分类的
- 模式识别与智能计算-Matlab技术实现(
- 模式识别与智能计算matlab实现 安装
- 西交大模式识别编程大作业报告+MAT
- 车牌识别_matlab_模式识别(MATLAB代码,
- 模式识别课程作业 基于svm的人脸识别
- 图形模式识别 matlab 圆 正方形
- 《模式识别与智能计算》MATLAB技术实
- matlab利用不变矩提取图片的形状特征
- 模式识别4个实验(matlab)
- 模式识别课程作业 matlab与libsvm环境
- 车牌识别Matlab代码
- 基于matlab的车牌识别内含matlab代码以
- 指纹识别数字图像处理+模式识别+机器
- 路标识别与提取采用聚类方法C-means
- FAST角点检测算法MATLAB程序
- 基于PCA和SVM的人脸识别 matlab程序
- 模式识别与智能计算-Matlab技术实现
- 《模式识别与智能计算:MATLAB技术实
- 稀疏非负矩阵分解及模式识别
- 虹膜识别 matlab算法
- Fisher二元线性判别 Matlab源码
- usps手写数字数据集
- [模式识别及MATLAB实现][杨杰][电子教案
- SVM实现MNIST数据集分类
- 《模式识别与智能计算的MATLAB实现》
- 《模式识别与人工智能基于MATLAB》程
- 神经网络识别手写数字含数据和代码
评论
共有 条评论