Python 无法实现矢量化的+;logistic回归的正则化形式梯度下降
这个公式看起来像这样 我的实现如下所示Python 无法实现矢量化的+;logistic回归的正则化形式梯度下降,python,numpy,machine-learning,logistic-regression,regularized,Python,Numpy,Machine Learning,Logistic Regression,Regularized,这个公式看起来像这样 我的实现如下所示 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]) 我的代码哪里出错了?弄明白了,我是个白
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])
我的代码哪里出错了?弄明白了,我是个白痴哈哈。第二个总和(第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:])
介意分享你的输入阵列吗?同样对于第二个公式,在添加
lambda_*theta
之前,是否应该除以m
?这些是输入数组:对于公式,它应该不重要,因为1/m是两个术语的一部分,所以我可以将其取出并在末尾应用,但我会先试试,然后再加进去case@user3483203把它改成这个,仍然得到了和我用m除以它时一样的答案: