Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法实现矢量化的+;logistic回归的正则化形式梯度下降_Python_Numpy_Machine Learning_Logistic Regression_Regularized - Fatal编程技术网

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除以它时一样的答案: