?? 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 + -