【发布时间】:2019-07-05 20:27:21
【问题描述】:
我的实现看起来像这样
grad[0] = ((utils.sigmoid(X.dot(theta))-y).dot(X[:,0])).sum()
grad[1:] = ((utils.sigmoid(X.dot(theta))-y).dot(X[:,1:])).sum()
grad[1:] = grad[1:] + (lambda_*theta[1:])
grad = grad/m
但是,我得到的值有点偏(当然除了 grad[0])..
我的代码哪里出错了?
【问题讨论】:
-
介意分享您的输入数组吗?同样对于第二个公式,您不应该除以
m之前您添加lambda_*theta吗? -
这些是输入数组:i.gyazo.com/784b144bb365888aa1948d4896f587c1.png 至于公式,没关系,因为 1/m 是这两个术语的一部分,所以我可以把它拿出来并在最后应用它,但是我会在添加之前尝试这样做以防万一
-
@user3483203 将其更改为这个,但仍然得到与我将其全部除以 m 时相同的答案:i.gyazo.com/0d0db41de0d14bda73fac8a234d3c261.png
标签: python numpy machine-learning logistic-regression regularized