Я играю с логистической регрессией в Python. Я реализовал версию, где минимизация функции стоимости выполняется с помощью градиентного спуска, и теперь я бы хотел использовать алгоритм BFGS из scipy (scipy.optimize.fmin_bfgs).правильное использование scipy.optimize.fmin_bfgs
У меня есть набор данных (функции в матрице X с одним образцом в каждой строке X и корреляционные метки в вертикальном векторе y). Я пытаюсь найти параметры Theta, чтобы свести к минимуму:
У меня есть проблемы с пониманием, как fmin_bfgs работает точно. Насколько я понял, мне нужно передать функцию, которая будет минимизирована, и набор начальных значений для Thetas.
я сделать следующее:
initial_values = numpy.zeros((len(X[0]), 1))
myargs = (X, y)
theta = scipy.optimize.fmin_bfgs(computeCost, x0=initial_values, args=myargs)
, где computeCost вычисляет J (Thetas), как показано выше. Но я получаю некоторые ошибки, связанные с индексом, поэтому я думаю, что я не поставляю то, что ожидает fmin_bfgs.
Может ли кто-нибудь пролить свет на это?
Ах, [отладка резиновой утки] (http://en.wikipedia.org/wiki/Rubber_duck_debugging) =) – katrielalex
@katrielalex Так верно !! : D – Cristina