资源简介
kmeans 算法,利用鸢尾花数据进行K均值分类,采用matlab编程

代码片段和文件信息
clear all;
close all;
clc;
[a1a2a3a4class] = textread(‘data1.txt‘ ‘%f%f%f%f%s‘‘delimiter‘ ‘‘);
a=[a1a2a3a4];
[b1b2b3b4class]=textread(‘data2.txt‘ ‘%f%f%f%f%s‘‘delimiter‘ ‘‘);
b=[b1b2b3b4];
[c1c2c3c4class]=textread(‘data3.txt‘ ‘%f%f%f%f%s‘‘delimiter‘ ‘‘);
c=[c1c2c3c4];
dat = [a;c;b];
hold on;
[m n]=size(dat);
for i=1:50
plot3(dat(i1)dat(i3)dat(i4)‘ro‘);
hold on
end
for i=51:100
plot3(dat(i1)dat(i3)dat(i4)‘g*‘);
hold on
end
for i=101:150
plot3(dat(i1)dat(i3)dat(i4)‘b.‘);
hold on
end
[cluster] = minmaxprobe(dat);
figure;
hold on;
for i=1:size(cluster1)
if cluster(i1) == 1
plot3(dat(i1)dat(i3)dat(i4)‘ro‘);
hold on
elseif cluster(i1) == 2
plot3(dat(i1)dat(i3)dat(i4)‘g*‘);
hold on
else
plot3(dat(i1)dat(i3)dat(i4)‘b.‘);
hold on
end
end
function [cluster] = minmaxprobe(x)
num = size(x1);
max_dis = 0;
mean_lable1 = 0;
mean_lable2 = 0;
initial = 51;
for i=1:num
dis1 = sqrt((x(i1)-x(initial1))^2+(x(initial2)-x(12))^2+(x(i3)-x(initial3))^2+(x(i4)-x(initial4))^2);
if (dis1>max_dis)
mean_lable1 = i;
max_dis = dis1;
end
end
for i=1:num
if(i~=mean_lable1)
dis1 = sqrt((x(i1)-x(initial1))^2+(x(initial2)-x(12))^2+(x(i3)-x(initial3))^2+(x(i4)-x(initial4))^2);
dis2 = sqrt((x(i1)-x(mean_lable11))^2+(x(i2)-x(mean_lable12))^2+(x(i3)-x(mean_lable13))^2+(x(i4)-x(mean_lable14))^2);
if(dis1>=dis2)
dis(i1) = dis2;
dis(i2) = i;
else
dis(i1) = dis1;
dis(i2) = i;
end
end
end
[ab] = find(dis==max(max(dis(:1))));
mean_lable2 = dis(a2);
mean_lable(11) = initial;
mean_lable(21) = mean_lable1;
mean_lable(31) = mean_lable2;
mean_lable
cluster(mean_lable(11)1) = 1;
cluster(mean_lable(21)1) = 2;
cluster(mean_lable(31)1) = 3;
for i = 1:num
if((i~=mean_lable(21))&&(i~=mean_lable(31)))
dis1 = sqrt((x(i1)-x(mean_lable(11)1))^2+(x(i2)-x(mean_lable(11)2))^2+(x(i3)-x(mean_lable(11)3))^2+(x(i4)-x(mean_lable(11)4))^2);
dis2 = sqrt((x(i1)-x(mean_lable(21)1))^2+(x(i2)-x(mean_lable(21)2))^2+(x(i3)-x(mean_lable(21)3))^2+(x(i4)-x(mean_lable(11)4))^2);
dis3 = sqrt((x(i1)-x(mean_lable(31)1))^2+(x(i2)-x(mean_lable(31)2))^2+(x(i3)-x(mean_lable(31)3))^2+(x(i4)-x(mean_lable(11)4))^2);
[ab] = find([dis1;dis2;dis3]==min(min([dis1;dis2;dis3])));
cluster(i1) = a;
end
end
% cluster
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2878 2018-05-07 17:50 K均值聚类\test1.m
目录 0 2018-09-11 18:55 K均值聚类
文件 1450 2018-05-07 17:45 K均值聚类\data1.txt
文件 1650 2018-05-07 17:46 K均值聚类\data2.txt
文件 1600 2018-05-07 17:47 K均值聚类\data3.txt
文件 2538 2018-05-07 18:15 K均值聚类\iris_dataset.txt
----------- --------- ---------- ----- ----
10116 6
- 上一篇:基于matlab的傅里叶频域滤波
- 下一篇:WVD时频代码matlab
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论