资源简介
对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强化学习_网格迷宫问题_SarsaLam
- k均值聚类算方法MATLAB程序
- 单层感知器Matlab代码-或运算
- 机器学习-线性回归matlab代码已检验正
- KNN分类器完整的matlab代码
- K近邻算法的MATLAB实现
- 梯度下降算法matlab的实现
- 通过matlab建立Kd-tree并进行k-NN查询
- 机器学习——逻辑回归logistic实现二分
- 用MATLAB编写的贝叶斯算法程序.m
- matlab_人眼疲劳监测.rar
- Matlab实现(KNN)自适应谱聚类
- SVM_RFE循环递归筛选特征
- ID3决策树-MATLAB程序
- KNN 鸢尾花分类
- k近邻-机器学习算法
- matlab knn算法 iris
- matlab基于knn算法的adaboost实现
- 神金网络,对于temprtrom算法
- 机器学习及其matlab实现—从基础到实
- KNN分类MatLAB源代码附论文
- 基于MATLAB的指纹定位算法 NN KNN WK
- 基于K-means算法的图像分割matlab
- 利用KNN对数据进行分类
- 机器学习_BP反向传播算法_MATLAB
- 机器学习入门到实战——MATLAB 书第十
- IMM算法源程序-CACV 模型
- ID3算法MATLAB实现,机器学习作业
- 神经网络算法-matlab源代码
- 感知机学习算法训练分类器解决井字
评论
共有 条评论