Это возможно, если ваш готовый алгоритм обучения позволяет смещать потерю шарнира или логистическую регрессию для каждой точки данных. Вот как.
Заполните квадрат на двух последних терминах:
0.5 ||w||^2 + w'v
= 0.5 ||w+v/2||^2 - v'v/2
затем введите изменение переменной
u = w+v/2
Ваша оптимизация тогда эквивалентна
min_u C*sum_i max(1-(u-v/2)*x_i*y_i,0) + 0.5*||u||^2_2
, что при b_i = 1 + v'x_i * y_i / 2 эквивалентно
min_u C*sum_i max(b_i - u*x_i*y_i ,0) + 0.5*||u||^2_2
Итак, если ваш алгоритм обучения позволяет вам заменить 1 на b_i по вашему выбору для каждой точки данных, это может решить эту проблему.
Практически в каждом пакете так или иначе размещается b_i. Например, приведенное выше эквивалентно
min_u C*sum_i b_i max(1 - u*x_i*y_i/b_i ,0) + 0.5*||u||^2_2
(при условии, что b_i> 0), поэтому, если ваш пакет позволяет вам по-разному оценивать каждую точку, вы можете решить вышеуказанную проблему.