首页 > 解决方案 > 在实现逻辑回归梯度下降的矢量化 + 正则化版本时遇到问题

问题描述

所以公式看起来像这样 在此处输入图像描述

我的实现看起来像这样

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] 除外)..

在此处输入图像描述

我的代码哪里出错了?

标签: pythonnumpymachine-learninglogistic-regressionregularized

解决方案


想通了,我是个白痴哈哈。第二个总和(在第 2 行中)不应该存在,因为应该添加 2 列。

还清理了一些代码,但这是正确的方法

h = utils.sigmoid(X.dot(theta))
grad[0] = (1/m)*((h-y).dot(X[:,0])).sum()
grad[1:] = (1/m)*((h-y).dot(X[:,1:])) + ((lambda_/m)*theta[1:])

推荐阅读