使用我写的R函数时出错:
Warning messages:
1: glm.fit: algorithm did not converge
2: glm.fit: algorithm did not converge
Run Code Online (Sandbox Code Playgroud)
我做了什么:
glm.fit.他们是window()和save().我的一般方法包括添加print和stop命令,逐行逐步执行功能,直到找到异常.
但是,我不清楚使用那些在代码中出现此错误的技术.我甚至不确定代码中的哪些函数依赖glm.fit.我该如何诊断这个问题?
短格式:
如何通过R中的梯度下降实现多类Logistic回归分类算法?可optim()当有两个以上的标签可以用吗?
MatLab代码是:
function [J, grad] = cost(theta, X, y, lambda)
m = length(y);
J = 0;
grad = zeros(size(theta));
h_theta = sigmoid(X * theta);
J = (-1/m)*sum(y.*log(h_theta) + (1-y).*log(1-h_theta)) +...
(lambda/(2*m))*sum(theta(2:length(theta)).^2);
trans = X';
grad(1) = (1/m)*(trans(1,:))*(h_theta - y);
grad(2:size(theta, 1)) = 1/m * (trans(2:size(trans,1),:)*(h_theta - y) +...
lambda * theta(2:size(theta,1),:));
grad = grad(:);
end
Run Code Online (Sandbox Code Playgroud)
和...
function [all_theta] = oneVsAll(X, y, num_labels, lambda)
m = size(X, 1);
n = size(X, 2);
all_theta = zeros(num_labels, n + 1); …Run Code Online (Sandbox Code Playgroud)