【问题标题】:Regularized logistic regresion with vectorization带有矢量化的正则化逻辑回归
【发布时间】: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


【解决方案1】:

Matlab中的索引从1开始,数学索引从0开始(你提到的公式中的索引也是从0开始的)。

因此,理论上,theta 的第一项也需要排除在等式之外。

关于你的第二个问题,你说得对!这是一个等价的干净方程!

【讨论】:

    猜你喜欢
    • 2021-11-10
    • 2014-07-22
    • 2020-10-11
    • 2021-04-10
    • 2020-09-23
    • 1970-01-01
    • 2013-11-18
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多