правильное использование scipy.optimize.fmin _bfgs

Я играю с логистической регрессией в Python. Я реализовал версию, в которой минимизация функции стоимости выполняется с помощью градиентного спуска, и теперь я хотел бы использовать алгоритм BFGS из scipy(scipy.optimize.fmin _bfgs).

У меня есть набор признаков данных (в матрице X с одним образцом в каждой строке X и соответствующими метками в вертикальном векторе y ). Я пытаюсь найти параметры Theta для минимизации:

enter image description here

У меня проблемы с пониманием того, как точно работает 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)

где вычислениеCost вычисляет J (Thetas ), как показано выше. Но я получаю некоторые ошибки, связанные с индексом -, поэтому я думаю, что не предоставляю то, что ожидает fmin _bfgs.

Кто-нибудь может пролить свет на это?

11
задан ACEG 13 June 2012 в 10:26
поделиться