Я играю с логистической регрессией в Python. Я реализовал версию, где минимизация функции стоимости выполняется с помощью градиентного спуска, и теперь я бы хотел использовать алгоритм BFGS из scipy (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.
Может ли кто-нибудь пролить свет на это?