Sto giocando con la regressione logistica in Python. Ho implementato una versione in cui la minimizzazione della funzione di costo viene eseguita tramite la discesa del gradiente e ora mi piacerebbe utilizzare l'algoritmo BFGS da scipy (scipy.optimize.fmin_bfgs).uso corretto di scipy.optimize.fmin_bfgs
Ho un set di dati (caratteristiche nella matrice X, con un campione in ogni riga di X e le etichette corrispondenti nel vettore verticale y). Sto cercando di trovare i parametri per ridurre al minimo Theta:
ho difficoltà a capire come fmin_bfgs funziona esattamente. Per quanto ho capito, devo passare una funzione da minimizzare e una serie di valori iniziali per Theta.
faccio la seguente:
initial_values = numpy.zeros((len(X[0]), 1))
myargs = (X, y)
theta = scipy.optimize.fmin_bfgs(computeCost, x0=initial_values, args=myargs)
dove computeCost calcola J (Thetas) come sopra illustrato. Ma ottengo alcuni errori relativi all'indice, quindi penso di non fornire ciò che si aspetta fmin_bfgs.
Qualcuno può far luce su questo?
Ah, [debugging anatra di gomma] (http://en.wikipedia.org/wiki/Rubber_duck_debugging) =) – katrielalex
@katrielalex Così vero !! : D – Cristina