Пакет SVM e1071 от R - коэффициенты SVM не совпадают с альфа-коэффициентами
Я пытаюсь вычислить окончательную гипотезу g (x) для машины опорных векторов (SVM) с помощью методов ядра. Коэффициенты α_n y_n в операторе суммирования - это то, с чем я борюсь.
Объект coefs из svm (библиотека e1071) - это "соответствующие коэффициенты, умноженные на обучающие метки" ( источник). Другими словами, это coefs = α * y. Согласно приведенной здесь логике (с которой я согласен), вы можете найти альфа-коэффициенты α, взяв | coefs |,
Я хотел посмотреть, приведет ли использование α- значений по сравнению с коэффициентами к одному и тому же суммированному значению, поэтому я попытался вычислить суммирование ниже с (1) коэффициентами * K(xn,x) по сравнению с (2) αn * yn * K(xn, х). Значения, полученные из (1) и (2), отличаются мультипликативным значением -1 (например, 4 против -4). Я не уверен, почему здесь есть несоответствие.
Я проверил некоторые значения: когда coefs = 0,01 для одного вектора поддержки, я нашел α = 0,01 и y = -1 для этого соответствующего вектора поддержки. Ясно, что coefs = α * y неверно в данном примере.
Что я делаю не так?
Для контекста, я беру курс машинного обучения профессора Ясера Абу-Мостафы в Калифорнийском технологическом институте. Домашнее задание 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)