資源簡介
對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
評論
共有 條評論