Пакет 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)

0 ответов

Другие вопросы по тегам