资源简介
对4组不同的信号分别采集20组,总共80组,然后经过特征提取(特征数量为8个),得到80x8的矩阵。
划分数据集:将64组数据作为训练数据,16组数据作为测试数据,4类信号在训练集和测试集的数量比例相同,将训练集和测试集整体归一化,再分别作为KNN的输入。
源程序是利用KNN算法对训练集和测试集整体归一化后的测试数据进行分类,得到分类准确率。

代码片段和文件信息
clear;
clc;
% 训练数据、训练数据标签、测试数据、测试数据标签
load([‘C:\Users\Administrator\Desktop\MATLAb Programming practice\KNN算法的MATLAB代码实现\train_scale.mat‘]);
load([‘C:\Users\Administrator\Desktop\MATLAb Programming practice\KNN算法的MATLAB代码实现\train_labels.mat‘]);
load([‘C:\Users\Administrator\Desktop\MATLAb Programming practice\KNN算法的MATLAB代码实现\test_scale.mat‘]);
load([‘C:\Users\Administrator\Desktop\MATLAb Programming practice\KNN算法的MATLAB代码实现\test_labels.mat‘]);
K=8; % k一般低于训练样本数的平方根
error=0;
[mtrainntrain]=size(train_scale);
[mtestntest]=size(test_scale);
% 外循环控制测试数据,内循环控制训练数据
for i=1:mtest
dist=zeros(mtrain1);
for j=1:mtrain
dist(j)=norm(train_scale(j:)-test_scale(i:)); %计算训练数据集与测试数据之间的欧氏距离dist
end
%将dist从小到大进行排序
[YI]=sort(dist1);
%将训练数据对应的类别与训练数据排序结果对应
train_labels=train_labels(I);
%确定前K个点所在类别的出现频率
classNum=length(unique(train_labels));%取集合中的单值元素的个数得到类别数量
predict_labels=zeros(1classNum);
% 以下for循环统计分类的标签数量
for j=1:K
j=train_labels(j);
predict_labels(j)=predict_labels(j)+1;
end
%返回前K个点中出现频率最高的类别作为测试数据的预测分类
[~idx]=max(predict_labels);
fprintf(‘该测试数据属于类 %d\n‘idx);
fprintf(‘该测试数据的真实类为:%d\n‘test_labels(i));
if idx~=test_labels(i)
error=error+1;
end
end
accuracy=(1-error/mtest)*100;
fprintf(‘准确率为:%f%%\n‘accuracy);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1640 2020-09-16 11:34 基于MATLAB的KNN算法实现多分类\main_KNN.m
文件 192 2020-09-16 09:53 基于MATLAB的KNN算法实现多分类\test_labels.mat
文件 1162 2020-09-16 09:55 基于MATLAB的KNN算法实现多分类\test_scale.mat
文件 194 2020-09-16 09:52 基于MATLAB的KNN算法实现多分类\train_labels.mat
文件 3835 2020-09-16 09:47 基于MATLAB的KNN算法实现多分类\train_scale.mat
目录 0 2020-09-16 11:35 基于MATLAB的KNN算法实现多分类
----------- --------- ---------- ----- ----
7023 6
- 上一篇:QC-LDPC码的编码和译码程序
- 下一篇:OFDM可见光通信系统仿真.zip
相关资源
- matlab版的车牌识别程序
- Face Recognition with KNN in MATLAB(12017108
- 斯坦福机器学习编程作业machine-learn
- MATLAB与机器学习
- MACHINE_LEARNING_with_NEURAL_NETWORKS_using_MA
- 交替方向乘子法ADMM算法的matlab代码
- KNN算法对MNIST数据集分类
- 机器学习 : 实用案例解析 mobi格式
- 带操作界面GUI的字母识别-MATLAB程序
- matlab流形学习算法工具包&matlab机器学
- 机器学习工具包spider工具包
- MATLAB与机器学习 李三平 陈建平译 译
- 机器学习Lasso回归重要论文和Matlab代码
- RVM-MATLAB-V1.3.zip
- 机器学习高斯混合模型资料总结含m
- Coursera吴恩达机器学习课程作业资料
- KNN算法训练MNIST和CIFAR数据集
- mnist手写字的knn naive bayessvm实现
- Matlab Deep learning 2017年新书
- 机器学习与MATLAB代码
- matlab与机器学习代码
- 机器学习课程设计《基于朴素贝叶斯
- 通过svm cnn knn对高光谱数据集PaviaU进行
- usps手写数字数据集
- cifar-10 数据集 MATLAB版本
- 斯坦福大学CS229机器学习完整详细笔记
- MATLAB神经网络43个案例分析源码
- MATLAB神经网络30个案例分析全书+源代
- 斯坦福机器学习公开课CS229讲义作业及
- 机器学习基础,配套代码
评论
共有 条评论