0
我想使用計算邏輯迴歸,所以我使用fmin_bfgs。 然而在試圖使用漸變,它提供了錯誤是這樣的:在fmin_bfgs中使用漸變
ValueError: operands could not be broadcast together with shapes (5,25) (5,)
雖然沒有使用fmin_bfgs,其計算漸變細。
這裏是我的代碼的一部分:
theta, J = fmin_bfgs(costfunction, \
initial_theta , fprime = gradient, args = (X,y==c,lmd))
all_theta[:,c] = theta
這是我如何計算梯度:
def gradient(theta,X,y,lmd):
m = len(y)
n = len(theta)
z = np.dot((np.transpose(X)),theta)
h = sigmoid(z)
y = np.reshape(y , (-1,1))
h.reshape(m,1)
grad = np.dot(X , (h-y))/m
#print('grad shape %d'%(grad.shape))
print('grad %d'%(grad))
temp = theta
temp[0] = 0
grad = grad + (lmd/m)*temp
return grad
你可以添加一個數據的例子,最好的一個函數,產生一些噪音的數據?請參閱[mcve]瞭解如何製作完整但最少的工作示例。 – roadrunner66
請顯示異常的完整回溯,而不僅僅是最後一行 –