Ошибка поиска строки optimize.minimize. Машинное обучение Эндрю Нг в Python

В упражнении5

я сделал LinearRegCostFunction,

Но optimize.minimize поиск строки не удался.

Я поставил некоторые строки кода только актуальные.

data = loadmat('ex5data1.mat')
X, y = data['X'],data['y']
m = y.size

def linearRegCostFunction(X,y,theta,lambda_=0.0):
    m = y.size
    J = 0
    theta=theta.reshape((2,1))
    grad = np.zeros(theta.shape)

    X = np.concatenate([np.ones(X.shape),X],axis=1)    
    prediction = X.dot(theta)

    temp = theta
    temp[0] = 0
    J = 1.0/(2.0*m)*(np.sum((prediction-y)**2))+lambda_/(2.0*m)*(np.sum(temp**2))
    grad = 1.0/m*X.T.dot(prediction-y)+lambda_/m*temp

    return J, grad

itheta = np.zeros((2,1))      #I also tried np.array([0, 0])


costgradF = lambda t: linearRegCostFunction(X,y,t,lambda_)
lambda_=0

res = optimize.minimize(costgradF,itheta,jac=True,method='tnc',options={'maxiter':100})
res

В результате

     fun: 26.62891562770855
     jac: array([[-12.57079675],
       [-19.76251528]])
 message: 'Linear search failed'
    nfev: 363
     nit: 12
  status: 4
 success: False
       x: array([0., 0.26609518])

Я не понимаю, почему линейный поиск не удался.

причина J а также grad верните правильно, и все это похоже на другие успешные коды.

0 ответов

Другие вопросы по тегам