虽然,在 python 中实现逻辑回归,当我使用 fmin_tnc 时,决策边界非常适合且准确度很高,但是当我使用梯度下降或正态方程实现时,它非常适合决策边界,即使我使用相同的梯度函数。
#这里是代码
def sigmoid(n):
return 1/(1+np.exp(-n))
def costFunction(theta,X,y):
return sum((-(1/len(X))*(y.T@np.log(sigmoid(X@theta))+(1-y).T@np.log(1-sigmoid(X@theta)))).flatten())
def gradient(theta,X,y):
predictions=sigmoid(X@theta)
grad = np.dot(X.T, predictions - y)
return grad/len(X)
for _ in range(1500):
theta=theta-gradient(theta,x,y)*0.01
我是否错误地实施了梯度下降?