資源簡介
這份資源內含CIFAR數據集,MNIST手寫數據集和KNN(機器學習)算法的MATLAB代碼對這兩個數據集進行訓練,希望對大家有所幫助(由于文件太大,只能截取CIFAR的部分數據
代碼片段和文件信息
function?[pclass_cnt]=KNN(train_datatrain_labeltest_datanum_classK)
%使用KNN算法預測結果
m=size(train_data1);%number?of?samples
n=size(train_data2);%number?of?features
m1=size(test_data1);%number?of?test?samples
%計算測試數據與訓練數據的歐氏距離
distance=zeros(m1m);
for?i=1:m1
????for?j=1:m
????????for?l=1:n
????????????distance(ij)=(test_data(il)-train_data(jl))^2+distance(ij);
????????end
????end
????fprintf(‘\nFinished?computing?the?%dth?test?sample?distance\n‘i);
end
distance=sqrt(distance);
%找出每行最小的K個點
[~index]=sort(distance2);
class_cnt=zeros(m1num_class);
for?l=1:m1
for?i=1:num_class
????for?j=1:K
????????if(train_label(index(lj))==mod(inum_class))
????????????class_cnt(li)=class_cnt(li)+1;
????????end
????end
end
end
fprintf(‘\nfinished?computing?the?class_cnt?matrix?which?shows?the?number?of?different?classes?in?the?neighbor\n‘);
[~p]?=?max(?class_cnt[]2);?%?求矩陣(X*all_theta‘)每行的最大值,p?記錄矩陣每行的最大值的索引
p=mod(pnum_class);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-11-14?23:37??KNN\
?????文件?????4238592??2017-11-13?20:59??KNN\CIFAR-features.mat
?????文件????????1045??2017-11-12?20:18??KNN\KNN.m
?????文件?????????854??2017-11-10?16:27??KNN\loadMNISTImages.m
?????文件?????????533??2017-11-08?10:23??KNN\loadMNISTLabels.m
?????文件?????7840016??1998-01-26?23:07??KNN\t10k-images.idx3-ubyte
?????文件???????10008??1998-01-26?23:07??KNN\t10k-labels.idx1-ubyte
?????文件?????????333??2017-11-14?23:37??KNN\test_KNN_CIFAR.m
?????文件?????????515??2017-11-14?23:37??KNN\test_KNN_MNIST.m
?????文件????47040016??1996-11-18?23:36??KNN\train-images.idx3-ubyte
?????文件???????60008??1996-11-18?23:36??KNN\train-labels.idx1-ubyte
評論
共有 條評論