Saya mencoba untuk menulis implementasi SVM penuh dalam Python dan saya punya beberapa masalah menghitung koefisien Lagrange.
Pertama biarkan saya ulangi apa yang saya mengerti dari algoritma untuk memastikan saya berada di jalan yang benar.
Jika adalah dataset dan y i ∈ { - 1 , 1 } adalah label kelas x i , kemudian ∀ i , y i ( w T x i + b ) ≥ 1
Jadi kita hanya perlu menyelesaikan masalah optimasi
tunduk pada
Dalam hal koefisien Lagrange, ini diterjemahkan menjadi menemukan , dan dan meminimalkan:
Sekarang karena dan kita dapat menulis ulang sebagai dengan batasan
Jadi saya mencoba menyelesaikan masalah optimasi menggunakan Python, dan satu-satunya paket gratis yang bisa saya temukan disebut cvxopt .
Saya ingin bantuan untuk menyelesaikan ini, saya tidak dapat menemukan contoh yang baik tentang ini, dan sementara saya mengerti teorinya, saya kesulitan menerjemahkannya ke dalam kode (saya akan berharap sebaliknya karena saya lebih banyak dari latar belakang pemrograman).
Perhatikan bahwa pada titik tertentu saya ingin menyelesaikannya menggunakan kernel tapi saya tidak yakin apa implikasinya untuk memecahkan masalah ini dalam kode.
Setiap bantuan akan sangat dihargai, saya benar-benar bingung tentang cara mengimplementasikan ini dengan Python. Jika Anda memiliki modul yang lebih baik untuk menyelesaikan masalah optimisasi, saya juga ingin membacanya.
Bentuk umum masalah pengoptimalan Anda adalah Program Quadratic , terlepas dari apakah Anda menggunakan trik kernel atau kernel linier. Kedengarannya
cvxopt
akan cukup untuk apa yang Anda coba lakukan, tetapi pythonauts lain di sini juga beruntung dengan OpenOpt .sumber