📄 ionosphere_initial.m
字号:
%数据的初始化程序 Ionosphere_initial.m
%清除变量
clear x1_train;
clear x2_train;
clear x3_train;
clear x4_train;
clear x5_train;
clear y1_train;
clear y2_train;
clear y3_train;
clear y4_train;
clear y5_train;
clear x1_test;
clear x2_test;
clear x3_test;
clear x4_test;
clear x5_test;
clear y1_test;
clear y2_test;
clear y3_test;
clear y4_test;
clear y5_test;
sall = size(data); %数组大小sall
%将原有类的标记“0/1”(1:good,0:bad)赋给输出y
for i=1:sall(1) %行数sall(1)
if data(i,1)==0
y(i,1)=0;
elseif data(i,1)==1
y(i,1)=1;
end
end
x = data; %输入x
x(:,1)=[]; %删除x的第1列(已经赋给y了)
x(:,1)=[]; %删除x的第1列(经过上一步,全0变为第一列)
% %标准化?????
% %sall = size(x); %数组大小sall
% %对x标准化
% meanx = mean(x); %按列取均值
% stdx = std(x,1); %方差
%
% for j=1:(sall(2)-2) %列数-2
% %标准化,(每列元素值-均值)/方差
% x(:,j) = (x(:,j)-meanx(j)*ones(sall(1),1))/stdx(j);
% end
j=1;
k=1;
l=1;
m=1;
n=1;
for i=1:sall(1) %随机分为5组
a=rand;
if (a < .2)&&(a>=0)
x1(j,:)=x(i,:);
y1(j,1)=y(i);
j=j+1;
elseif (a <.4)&&(a>=.2)
x2(k,:)=x(i,:);
y2(k,1)=y(i);
k=k+1;
elseif (a<.6)&&(a>=.4)
x3(l,:)=x(i,:);
y3(l,1)=y(i);
l=l+1;
elseif (a<.8)&&(a>=.6)
x4(m,:)=x(i,:);
y4(m,1)=y(i);
m=m+1;
elseif (a<=1)&&(a>=.8)
x5(n,:)=x(i,:);
y5(n,1)=y(i);
n=n+1;
end
end
%按分组化为4:1的对,共5对,用于交叉验证
x1_train = vertcat(x2,x3,x4,x5); %vertcat用于将数据进行垂直方向上的串联
y1_train = vertcat(y2,y3,y4,y5);
x1_test = x1;
y1_test = y1;
x2_train = vertcat(x1,x3,x4,x5);
y2_train = vertcat(y1,y3,y4,y5);
x2_test = x2;
y2_test = y2;
x3_train = vertcat(x1,x2,x4,x5);
y3_train = vertcat(y1,y2,y4,y5);
x3_test = x3;
y3_test = y3;
x4_train = vertcat(x1,x2,x3,x5);
y4_train = vertcat(y1,y2,y3,y5);
x4_test = x4;
y4_test = y4;
x5_train = vertcat(x1,x2,x3,x4);
y5_train = vertcat(y1,y2,y3,y4);
x5_test = x5;
y5_test = y5;
%装箱^_^ ???为什么要装箱???
X = cell(10,1);
X{1}=x1_train;
X{2}=x1_test;
X{3}=x2_train;
X{4}=x2_test;
X{5}=x3_train;
X{6}=x3_test;
X{7}=x4_train;
X{8}=x4_test;
X{9}=x5_train;
X{10}=x5_test;
Y=cell(10,1);
Y{1}=y1_train;
Y{2}=y1_test;
Y{3}=y2_train;
Y{4}=y2_test;
Y{5}=y3_train;
Y{6}=y3_test;
Y{7}=y4_train;
Y{8}=y4_test;
Y{9}=y5_train;
Y{10}=y5_test;
%初始化logistic型
%将各x首列添加1(为了便于计算beta)
for i=1:10 %成对添加
s = size(X{i});
xx = ones(s(1),1);
X{i} = horzcat(xx,X{i}); %horzcat用于将每行水平串联
end
X_Log=X;
Y_Log=Y;
%删除中间变量
clear i;
clear j;
clear k;
clear l;
clear a;
clear m;
clear n;
%clear x;
clear xx;
clear y;
%clear x_with_y;
clear x1;
clear x2;
clear x3;
clear x4;
clear x5;
clear x1;
clear y1;
clear y2;
clear y3;
clear y4;
clear y5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -