%获取MnistSet.mat结构体中的数据
load('MnistSet.mat')
trainImages = getfield(mnist,'train_images');
trainLabels = getfield(mnist,'train_labels');
testImages = getfield(mnist,'test_images');
testLabels = getfield(mnist,'test_labels');
trainLength = length(trainImages);
testLength = length(testImages);
%图像数据处理
trainImages = reshape(trainImages,size(trainImages,1)*size(trainImages,2),size(trainImages,3));
testImages = reshape(testImages,size(testImages,1)*size(testImages,2),size(testImages,3));
trainImages = double(trainImages)/255;
testImages = double(testImages)/255;
testResults = linspace(0,0,length(testImages));
compareLabel = linspace(0,0,120);
for K =1:120 % K从1循环取到120
%knn算法实现
for i=1:testLength
calImage = repmat(testImages(:,i),1,trainLength);
calImage = abs(trainImages-calImage);
s=sum(calImage);
[sortedComp,pos] = sort(s);
for j = 1:K
compareLabel(j) = trainLabels(pos(j));
end
fre = tabulate(compareLabel);
[maxCount,idx] = max(fre(:,2));
testResults(i) = fre(idx);
disp(testResults(i));
disp(testLabels(i));
end
% 计算错误统计个数
error=0;
for i=1:testLength
if (testResults(i) ~= testLabels(i))
error=error+1;
end
end
%计算错误率并绘制图像
p(K,:)=error/testLength
end
plot(p)
没有合适的资源?快使用搜索试试~ 我知道了~
基于knn算法对minist手写数据集的分类
共2个文件
m:1个
mat:1个
2星 需积分: 50 40 下载量 162 浏览量
2017-06-07
10:35:40
上传
评论 2
收藏 11.3MB ZIP 举报
温馨提示
基于knn算法对minist手写数据集的分类,代码使用matlab程序,包含了.mat的数据集,对于k=1~120的测试结果,程序可直接运行
资源推荐
资源详情
资源评论
收起资源包目录
基于knn对minist数据集的分类.zip (2个子文件)
基于knn对minist数据集的分类
knn.m 1KB
MnistSet.mat 11.31MB
共 2 条
- 1
资源评论
- 等你花开2017-12-13运行时间好长,处理图片的三维向量
- TanXiao19972019-12-24垃圾到简直不能在垃圾,matlab还写那么多for循环,不会写代码的小白骗积分,别下,一天都跑不完,真垃圾
七月小晴
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功