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

📄 trocchiobag.m

📁 经典教材《机器学习》里的几乎所有算法 作者就是《机器学习》的2大牛人 有的函数添加了中文的注释 仅供参考
💻 M
字号:
function [test_targets]=TRocchiobag(train_patterns,train_targets,test_patterns)
% a is always be 16
% b is always be 4
% [prownum,pcolumn]=size(allposx);% prownum is the number of postive rows
% [nrownum,ncolumn]=size(allnegx);
% prow=floor(prownum/2);
% 
% Pos=zeros(prow,pcolumn);
% Pos=allposx(1:prow,:);
% Upos=allposx((prow+1):prownum,:);
% urow=nrownum+prownum-prow;
% U=zeros(urow,ncolumn);
% U=[Upos;allnegx];
a=16;
b=4;
% to caculate the vectors cp and cn
P=(train_patterns(:,find(train_targets==1)))';
U=(train_patterns(:,find(train_targets==-1)))';
clear train_patterns;
[prow,pcolumn]=size(P);
[urow,ncolumn]=size(U);
sum_p=zeros(1,pcolumn);
sum_u=zeros(1,ncolumn);
cp=zeros(1,pcolumn);
cn=zeros(1,ncolumn);

for p=1:prow
    sum_p=sum_p+P(p,:)/norm(P(p,:));
end
for u=1:urow
    sum_u=sum_u+U(u,:)/norm(U(u,:));
end
clear P U;
cp=(a/prow)*sum_p-(b/urow)*sum_u;
cn=(a/urow)*sum_u-(b/prow)*sum_p;
clear sum_p sum_u;
cp=sparse(cp);
cn=sparse(cn);

% determine which of cn and cp is nearer to each vector d in U   
% RN=[];
for drow=1:size(test_patterns,2)
    d=test_patterns(:,drow);
   
    if ((cp*d)<=(cn*d))
%         d1=[drow,d1];
%         RN=[RN;d];
%         RN=sparse(RN);
     test_targets(drow)=-1;
    else 
       test_targets(drow)=1;
    end
    clear d;
end
clear U test_patterns;
    
%  RN1=[d1'];
%  d1postoneg=find(d1<=trueptargetn);
 

⌨️ 快捷键说明

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