⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 knn_cross.m

📁 matlab 源码 KNN classification
💻 M
字号:
function knn_cross(datafile,cross,k)


%# load datafile
eval(sprintf('load %s.txt',datafile));
eval(sprintf('data=%s; clear %s',datafile,datafile));
    
%# Normalize data
[num,dim]=size(data);
data(:,1:dim-1)=Dat_Normalize(data(:,1:dim-1),0);


[Tr_index,Te_index]=Dat_FolderCut(num, cross);

ret = [];
lab = [];
for k = 1 : cross
    
    tr_data = data(Tr_index{k},:);
    te_data = data(Te_index{k},:);
    clab = [];
    for j = 1:size(te_data,1)
        [computed] = knn(te_data(j,1:dim-1), tr_data(:,1:dim-1), tr_data(:,end), k);
        lab = [lab computed];
        clab = [clab computed];
    end
    tmp = te_data(:,end) - clab';
    rec = length(find(tmp == 0)) / length(tmp);
    ret = [ret rec];
end
    
cret=[];
for k =1: max(data(:,end))
    idx =[];
    for j =1:length(Te_index)  idx= [idx Te_index{j}]; end
    
    ctmp=data(idx,end);
    dtmp=find(ctmp ==k);
    cret =[cret length(find(lab(dtmp)==k))/length(dtmp)];
end
   
    
for k =1:cross
    disp(sprintf('%d-folder cross-validation Cross %d:%f\%',cross, k, ret(k)*100));
end

disp(sprintf('\n%d-folder cross-validation Average:%4.2f +/- %2.0f',cross, mean(ret)*100, floor((max(ret)-min(ret))/2*100)));
disp(sprintf('\n Class Accuracy:'));

for k= 1:length(cret)
    disp(sprintf('Class %d: %4.2f \%',k, cret(k)*100));
end
disp(sprintf('\n Class Accuracy biased ratio:%4.2f', std(cret)/mean(cret)));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -