Я намагаюся написати повну реалізацію SVM в Python, і у мене є кілька проблем, які обчислюють коефіцієнти Лагранжа.
Спочатку дозвольте перефразувати те, що я розумію з алгоритму, щоб переконатися, що я на вірному шляху.
Якщо - це набір даних, а - мітка класу , тоy i ∈ { - 1 , 1 } x i ∀ i , y i ( w T x i + b ) ≥ 1
Тому нам просто потрібно вирішити оптимізаційну проблему
мінімізувати
за умови
З точки зору коефіцієнтів Лагранжа, це означає, що знаходження , і та мінімізація:
Тепер оскільки
Тому я намагаюся вирішити проблему оптимізації за допомогою Python, і єдиний безкоштовний пакет, який я міг знайти, називається cvxopt .
Я хотів би допомогти вирішити це питання, я не міг знайти жодного хорошого прикладу з цього приводу, і, хоча я розумію теорію, мені важко перевести це в код (я б очікував навпаки, оскільки я більше з фону програмування).
Зауважте, що в якийсь момент я хочу вирішити це за допомогою ядер але я не впевнений, які наслідки стосуються вирішення цього коду.
Будь-яка допомога буде дуже вдячна, я дуже втрачений, як реалізувати це в Python. Якщо у вас є кращий модуль для вирішення проблеми оптимізації, я також хотів би прочитати про нього.