资源简介
对鸢尾花数据进行分类,使用KNN算法,可直接在matlab上运行。
代码片段和文件信息
load ‘iris.csv‘;
Value1 = mean(iris(:1:4));%前4列求均值
Value2 = std(iris(:1:4));%前4列求标准差
Data = zeros(1505);
for i = 1:4
Data(:i) = (iris(:i) - Value1(i)) / Value2(i);%前4列归一化处理
end
Data(:5) = iris(:5);
training_set = [Data(1:ceil(50*2/3):); Data(51:50 + ceil(50*2/3):); Data(101:100 + ceil(50*2/3):)];%取每类的前2/3作为训练集
test_set = [Data(ceil(50*2/3) + 1:50:); Data(51 + ceil(50*2/3):100:); Data(101 + ceil(50*2/3):150:)];%取每类的后1/3作为测试集
class = test_set(:5);%记录类标
test_set(:5) = 0;
k = 5;
dist_class = zeros(size(training_set1)2);%存放测试欧几里德距离
for i = 1:size(test_set1)
for j = 1:size(training_set1)
dist_class(j1) = norm(test_set(i1:4) - training_set(j1:4));
dist_class(j2) = training_set(j5);
end
[BIX] = sort(dist_class1);%对距离排列
mindc = B(1:k:)%取k个最近的临近点
for ii = 1:k
if (IX(ii1) ~= ii)
mindc(ii2) = dist_class(IX(ii1)2);
else
mindc(ii2) = dist_class(ii2);
end
end
class1_num = size(find(mindc(:2) == 1)1);%最近点中,第1类的个数
class2_num = size(find(mindc(:2) == 2)1);
class3_num = size(find(mindc(:2) == 3)1);
if (max([class1_numclass2_numclass3_num]) == class1_num)
test_set(i5) = 1;
fprintf(‘#%d test example: class is 1\n‘i);
elseif (max([class1_numclass2_numclass3_num]) == class2_num)
test_set(i5) = 2;
fprintf(‘#%d test example: class is 2\n‘i);
else
test_set(i5) = 3;
fprintf(‘#%d test example: class is 3\n‘i);
end
end
accurateNum = 0;
for i = 1:size(class1)
if (test_set(i5) == class(i))
accurateNum = accurateNum + 1;
end
end
accuracy = accurateNum / size(class1);
fprintf(‘KNN算法:%f\n‘accuracy);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2708 2010-03-22 14:39 knn\iris.csv
文件 1897 2011-04-14 23:52 knn\KNN.m
目录 0 2012-06-02 21:14 knn
----------- --------- ---------- ----- ----
4605 3
相关资源
- MATLAB辅助现代工程数字信号处理源程
- MATLAB神经网络应用设计第二版源代码
- matlab_倾斜校正算法代码
- 平均间隙法matlab代码
- 鸡群算法CSOmatlab程序代码
- 香农编码、霍夫曼编码比较的matlab源
- 红枣尺寸检测的matlab代码
- Lee滤波、Kuan滤波和frost滤波的MATLAB源
- Matlab年积日换算为日期代码
- 基于matlab的卫星轨道仿真含有源代码
- 帧差法改进matlab源代码
- dpsk调制以及相干解调系统matlab代码:
- 基于matlab的遗传算法源代码
- 基于云模型的花卉特征提取matlab源代
- 混合高斯建模加meanshift算法matlab代码
- 基于meanshift的图像分割matlab代码
- MATLAB版超级玛丽源代码
- 粒子滤波算法实现的目标被动跟踪m
- 逻辑航迹起始算法源代码
- HSV查找颜色特征代码MATLAB
- 张正友标定matlab源代码
- 画二维正态分布函数图像matlab代码
- MATLAB图像识别源代码
- Matlab的模拟退火算法工具包
- ARMA模型的Matlab代码
- HEED协议的matlab源代码
- 非下采样轮廓波变换matlab代码
- 冈萨雷斯数字图像处理matlab版.源代码
- pca与KL变换的综合matlab实现代码
- CRC校验的Matlab源代码
评论
共有 条评论