Елементи статистичного навчання , з Гесте і ін., Має повну главу про підтримку векторних класифікаторів і SVMs (в вашому випадку, стартова сторінка 418 на 2 - е видання). Ще один хороший підручник - « Підтримка векторних машин в R» , Девід Мейер.
Якщо я неправильно зрозумів ваше запитання, межа рішення (або гіперплан) визначається (з та перехоплюючим терміном), або як сказав @ebony лінійна комбінація векторів опори. Тоді маржа становить, слідуючи за Hastie та ін. позначення.xTβ+β0=0∥β∥=1β02/∥β∥
З он-лайн довідки ksvm()
в пакеті kernlab R, але дивіться також kernlab - пакет S4 для методів ядра в R , ось приклад іграшки:
set.seed(101)
x <- rbind(matrix(rnorm(120),,2),matrix(rnorm(120,mean=3),,2))
y <- matrix(c(rep(1,60),rep(-1,60)))
svp <- ksvm(x,y,type="C-svc")
plot(svp,data=x)
Зауважте, що для наочності ми не розглядаємо зразки поїздів та випробувань. Результати наведені нижче, коли відтінок кольорів допомагає візуалізувати відповідні значення рішення; значення навколо 0 знаходяться на межі рішення.
Виклик attributes(svp)
надає атрибути, до яких ви можете отримати доступ, наприклад
alpha(svp) # support vectors whose indices may be
# found with alphaindex(svp)
b(svp) # (negative) intercept
Отже, щоб відобразити межу рішення з відповідним запасом, спробуємо наступне (у переосмисленому просторі), яке значною мірою натхнене підручником щодо SVM, зробленим деякий час тому Жаном-Філіпе Вертом :
plot(scale(x), col=y+2, pch=y+2, xlab="", ylab="")
w <- colSums(coef(svp)[[1]] * x[unlist(alphaindex(svp)),])
b <- b(svp)
abline(b/w[1],-w[2]/w[1])
abline((b+1)/w[1],-w[2]/w[1],lty=2)
abline((b-1)/w[1],-w[2]/w[1],lty=2)
І ось це: