Sto cercando di scrivere un'implementazione SVM completa in Python e ho qualche problema nel calcolo dei coefficienti di Lagrange.
Prima di tutto lasciami riformulare ciò che ho capito dall'algoritmo per assicurarmi di essere sulla strada giusta.
Se è un set di dati e è l'etichetta di classe di , quindiy i ∈ { - 1 , 1 } x i ∀ i , y i ( w T x i + b ) ≥ 1
Quindi dobbiamo solo risolvere un problema di ottimizzazione
minimizza
soggetto a
In termini di coefficienti di Lagrange, questo si traduce nella ricerca di , e e \ geq0 minimizing :
Ora poiché
Quindi sto provando a risolvere il problema di ottimizzazione usando Python e l'unico pacchetto gratuito che ho trovato si chiama cvxopt .
Vorrei un po 'di aiuto per risolvere questo problema, non sono riuscito a trovare alcun buon esempio a riguardo, e mentre capisco la teoria, sto facendo fatica a tradurla in codice (mi sarei aspettato il contrario dal momento che sono più da un background di programmazione).
Nota che a un certo punto vorrò risolverlo usando Kernels ma non sono sicuro di quali siano le implicazioni per quanto riguarda la risoluzione di questo problema nel codice.
Qualsiasi aiuto sarebbe molto apprezzato, mi sono davvero perso su come implementarlo in Python. Se hai un modulo migliore per risolvere il problema di ottimizzazione, mi piacerebbe anche leggerlo.