我已使用矩阵转置以矢量形式在梯度下降下方进行逻辑回归,并且工作正常
%grad(1) = (1/m)*X(:,1)'*(h-y);
%grad(2:end) = (1/m)*(X(:,2:end)'*(h-y)) + (lambda/m)*theta(2:end);
但是当我尝试不使用矩阵转置而使用它时,仅当我将+ (lambda/m)*theta(2:end)
添加到grad(2:end)
时,它才会给出矩阵运算错误
%grad(1) = (1/m)*sum((h-y).*X(:,1));
%grad(2:end) = ((1/m)*sum((h-y).*X(:,2:end))) + (lambda/m)*theta(2:end);
答案 0 :(得分:0)
实际上,我现在知道应该是
grad(2:end)=(1 / m)* sum((hy)。* X(:,2:end))'+(lambda / m)* theta(2:end);