sample.m
来自「用MATLAB编写的基于拟牛顿算法的最优分类器程序」· M 代码 · 共 47 行
M
47 行
%定义数据采集函数
function [X,Y,m,m1,m2,n]=sample(m1,m2,n)
%x为生成特征个数为n的样本,其中一行为一个样本
%y为对应的分类标志
%m1为训练样本数
%m2为测试样本数
%m为生成的样本的个数
%n为生成的每个样本的特征
%f为样本生成结束标志
a0=-1;
b0=1;
X=[];
Y=[];
f=0;
m=m1+m2;
while(1)
x=a0+(b0-a0)*rand(1,n);
c=sum(x);
if c>=1;
X=[X;x];y=1;Y=[Y,y];f=f+1;
else if c<=-1;
X=[X;x];y=-1;Y=[Y,y];f=f+1;
else
d=rand(1);
if(d<=0.7); %以70%概率保存该数
if(c>=0);
if(rand(1)<=0.8);%以80%概率作为正数保存
X=[X;x];y=1;Y=[Y,y];f=f+1;
else %以20%概率作为负数保存
X=[X;x];y=-1;Y=[Y,y];f=f+1;
end
else
if(rand(1)<=0.8);%以80%概率作为负数保存
X=[X;x];y=-1;Y=[Y,y];f=f+1;
else %以20%概率作为正数保存
X=[X;x];y=1;Y=[Y,y];f=f+1;
end
end
end
end
end
if f==m;
break;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?