Взвешивание экземпляров в Libsvm/Liblinear

Я часто использую веса экземпляров с Libsvm для задач классификации. http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances

Кто-нибудь знает подробности алгоритма, который реализуется при использовании взвешивания экземпляров в libsvm? Стандартный алгоритм обучения модели SVM присваивает равные веса всем обучающим экземплярам и, следовательно, ошибке в обучающих экземплярах. Я считаю, что алгоритм, который использует Libsvm, будет другим. При поиске в Интернете я нашел несколько статей, которые делают что-то подобное. Например [1], но мне нужно уточнить у кого-то, кто может быть в этом уверен.

Спасибо!

[1] Ян, Сюлей, Цин Сун и Юэ Ван. «Машина взвешенных опорных векторов для классификации данных». Международный журнал распознавания образов и искусственного интеллекта 21.05 (2007): 961-976.


person chet    schedule 27.08.2014    source источник


Ответы (1)


Нет никакого "специального алгоритма", просто в "равновесном" SVM у вас вес "С"

1/2 ||w||^2 + C SUM_i xi_i

что в случае весов образцов s_i просто становится

1/2 ||w||^2 + C SUM_i s_i xi_i

вот и все, это то же самое, что иметь разную константу стоимости C для каждого образца

person lejlot    schedule 27.08.2014