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