24小时热门版块排行榜    

CyRhmU.jpeg
查看: 959  |  回复: 3
【悬赏金币】回答本帖问题,作者阿毛虫将赠送您 20 个金币

阿毛虫

银虫 (正式写手)

[求助] 想请问一下,多分类逻辑回归,这个代码正确吗已有1人参与

%% Training

Betas=MLR(Xtrain,Ytrain);

%% Testing
Ypred_test=getPredMLR(Betas,Xtest);
error_test=getError(Ypred_test,Ytest)
Ypred_train=getPredMLR(Betas,Xtrain);
error_train=getError(Ypred_train,Ytrain)

function [ B ] = MLR( X,Y )
Y_unique=unique(Y);
X=[ones(size(X,1),1),X];
d1=length(Y_unique);
d2=size(X,2);
B=zeros(d1,d2);
% Y_unique=unique(Y);
for i=1:1:d1
    Y_blr=getY_blr(Y,Y_unique(i));
    B(i,=getB(B(i,,X,Y_blr);
end
end

function Bn = getB( X,Y )
Bo=zeros(size(X,2),1);%迭代初始值
for i=1:8
W=getW(X,Bo);
Pi=getPi(Bo,X);
Bn=Bo + pinv(X'*W*X)*X'*(Y-Pi);
Bo=Bn;
end
Bn=Bo;
end


function Pi = getPi(Bo,X)
Pi=[];
S=size(X,1);
% W=zeros(S(1));
for i=1:1:S(1)
P=(exp(Bo'*X(i,'));
P=P/(1+P);
Pi=[Pi,P];
end
Pi=Pi';
end

function W = getW( X,Bo )
S=size(X);
W=zeros(S(1));
for i=1:1:S(1)
num=(exp(Bo'*X(i,'));
denom=1+num;
P=num/denom;%sigmond函数
RP=1-P;
% size(W);
W(i,i)=P*RP;
end  
end

function [ Y_blr ] = getY_blr(Y,i)
Y_blr=Y;
Y_blr(Y==i)=1;
Y_blr(Y~=i)=0;
end
回复此楼
学习吧
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿毛虫

银虫 (正式写手)

表情为:
学习吧
2楼2022-01-10 09:24:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿毛虫

银虫 (正式写手)

大神,这里是什么意思?Bn=Bo + pinv(X'*W*X)*X'*(Y-Pi);
学习吧
3楼2022-01-10 10:09:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hzlhm

至尊木虫 (著名写手)

【答案】应助回帖

这里的  pinv(X'*W*X)*X'*(Y-Pi); 是求伪逆矩阵
QQ:2120156492
4楼2022-01-13 16:17:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 阿毛虫 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见