【发布时间】:2020-09-23 14:19:01
【问题描述】:
我正在尝试实现正则化逻辑回归的矢量化版本。我发现a post 解释了正则化版本,但我不明白。
为方便起见,我将复制以下代码:
hx = sigmoid(X * theta);
m = length(X);
J = (sum(-y' * log(hx) - (1 - y') * log(1 - hx)) / m) + lambda * sum(theta(2:end).^2) / (2*m);
grad =((hx - y)' * X / m)' + lambda .* theta .* [0; ones(length(theta)-1, 1)] ./ m ;
我理解成本等式的第一部分,如果我是正确的,它可以表示为:
J = ((-y' * log(hx)) - ((1-y)' * log(1-hx)))/m;
问题在于正则化项。让我们更详细地了解:
尺寸:
X = (m x (n+1))
theta = ((n+1) x 1)
我不明白他为什么将theta (theta_0) 的第一项放在等式之外,而理论上它是正则化项:
它必须考虑所有的 thetas
对于梯度下降,我认为这个方程是等价的:
L = eye(length(theta));
L(1,1) = 0;
grad = (1/m * X'* (hx - y)+ (lambda*(L*theta)/m).
【问题讨论】:
-
您好,欢迎来到 Stack Overflow!如果我正确理解了您的问题,您希望得到答案的解释,对吗?如果您达到 50 个声望点,您可以 comment everywhere 包括在该作者的帖子中。您很难理解为什么要单独处理
theta_0术语,不是吗? -
您好,谢谢!是的,你是对的,我不知道为什么它让它在外面......但我也探讨了在 matlab 中实现代码(我提出的代码但它不起作用......@Adriaan跨度>
-
对于它的价值,我在原帖下留下了评论,让回答者知道这个问题。希望他们能看到并做出回应。
标签: matlab vectorization logistic-regression