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

📄 ionosphere_initial.m

📁 关于Logistic回归统计算法的matlab实现
💻 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 + -