📄 cv_of_logistic.m
字号:
%交叉验证 CV_of_Logistic.m
X=X_Log;
Y=Y_Log;
%从cell中取出 为了简洁,实际程序中不用
% x1_train=X{1};
% x1_test=X{2};
% x2_train=X{3};
% x2_test=X{4};
% x3_train=X{5};
% x3_test=X{6};
% x4_train=X{7};
% x4_test=X{8};
% x5_train=X{9};
% x5_test=X{10};
%
% y1_train=Y{1};
% y1_test=Y{2};
% y2_train=Y{3};
% y2_test=Y{4};
% y3_train=Y{5};
% y3_test=Y{6};
% y4_train=Y{7};
% y4_test=Y{8};
% y5_train=Y{9};
% y5_test=Y{10};
%设定step(由实践证明step选2即可)
step=2;
CV_Logistic=0;
clear Er;
clear s;
for i=1:2:10 %i分别取1,3,5,7,9
[beta,rate_Logistic((i+1)/2,1)] = Logistic_solve(X{i},Y{i},step); %rate_Logistic((i+1)/2,1)训练集的正确率
%在训练集1上得到 beta
%在测试集1上验证
[y] = Logistic_class(X{i+1},beta);
%计算L(y,f^)=abs(y-y')/2误分点 ????
Er = abs(Y{i+1}-y);
L_Logistic((i+1)/2) = sum(Er); %错判的个数
s = size(X{i+1}); %测试集的大小
rate_Logistic((i+1)/2,2) = (1-L_Logistic((i+1)/2)/s(1))*100; %测试集的正确率
CV_Logistic = CV_Logistic + L_Logistic((i+1)/2);
clear Er;
clear s;
end
CV_Logistic = CV_Logistic/sall(1); %预测误差的交叉验证估计
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -