📄 trocchiobag.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 + -