📄 logistic_solve.m
字号:
%训练过程 Logistic_solve.m
function [beta,rate] = Logistic_solve(x,y,step_in) %回归系数beta,正确率rate
step = step_in;
x_training = x;
y_training = y;
s = size(x_training); %s(1)=N 样本数
p = zeros(s(1),1); %初始化p
beta = zeros(s(2),step+1); %初始化beta=0
W = zeros(s(1)); %初始化W=1
L=0;
for t=1:step %第2步后,第3步无解,故1步后的beta就是最终解
for i=1:s(1)
p(i,1) = exp(beta(:,t)'*x_training(i,1:s(2))') / (1+exp(beta(:,t)'*x_training(i,1:s(2))'));
W(i,i) = p(i,1)*(1-p(i,1));
end
z = x_training*beta(:,t) + inv(W)*(y_training - p);
beta(:,t+1) = inv(x_training'*W*x_training) * x_training'*z;
end
beta=beta(:,t); %???
%标准化y,算误差点数
for i=1:s(1)
if p(i)>0.5
p(i)=1;
end
end
L = sum(abs(p - y_training)); %若判断正确,则p == y_training,L==0
rate = (s(1)-L)/s(1)*100; %正确率
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -