Пакет SVM R e1071 - коэффициенты SVM не совпадают с альфа-коэффициентами - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь вычислить окончательную гипотезу g (x) для машины опорных векторов (SVM) с методами ядра. С коэффициентами α_n y_n в операторе суммирования я и борюсь.

enter image description here

коэф объект из svm (библиотека e1071) - это «соответствующие коэффициенты, умноженные на метки обучения» ( источник ). Другими словами, это coefs = α * y . Согласно логике c здесь (с которой я согласен), вы можете найти альфа-коэффициенты α , взяв | coefs |.

Я хотел посмотреть, приведет ли использование значений α к coefs к тому же значению суммирования, поэтому я попытался вычислить суммирование ниже с (1) коэф * K (xn, x) против (2) α * * yn * К (х, х) . Значения, полученные в результате (1) и (2), отличаются мультипликативным значением -1 (например, 4 против -4). Я не уверен, почему здесь есть расхождение.

enter image description here

Я проверил некоторые значения: когда coefs = 0,01 для одного поддержка вектор, я нашел a = 0,01 и у = -1 для этого соответствующего вектора поддержки. Ясно, что coefs = α * y не соответствует действительности с этим примером.

Что я делаю неправильно?

Для контекста я беру курс по машинному обучению профессора Ясера Абу-Мостафы Caltech домашнее задание 8 , задача 2. Вот моя реализация R svm , где xn - матрица 2x7291 обучающих данных и yn является матрицей обучающих меток 7291x1.

svm(x = t(xn), y = yn, scale = FALSE, type = "C-classification", kernel = "polynomial",
      degree = Q, gamma = 1, coef0 = 1, cost = C)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...