Doğrusal bir SVM modelinin karar sınırının hesaplanması


19

Doğrusal bir SVM'nin destek vektörleri göz önüne alındığında, karar sınırının denklemini nasıl hesaplayabilirim?


w = i üzerinden toplam (ai ti xi). çarpanların değerlerini bulmak için lagneyi en aza indirmeniz gerekir, ai. i destek vektörleri nasıl var acaba? aynı işlem u'nın ai değerini de vermelidir.
euphoria83

2
Henüz yorum yapamam ama kabul edilen cevapta karar çizgisi olmamalı ve marjlar şöyle olmalı: abline (s / b [2], - w [1] / w [2]) abline ((b + 1) / w [2], - w [1] / w [2], lty = 2) abline ((b-1) / w [2], - w [1] / w [2], lty = 2) abline aldığı için kesişim ve eğim olarak girdi? wx-b = 0 anlamına gelir: w1.x1 + w2.x2 = b (x2 "y" olduğu için) abline anlamına gelir (b / w [2], -w [1] / w [2]) Üzgünüz eski bir yazı ama sormak istediğimi düşündüm.
Nepze Tyson

Siteye hoş geldiniz, @Nepze Tyson. Bu OP'nin sorusuna bir cevap değil. Lütfen cevap vermek için yalnızca "Yanıtınız" alanını kullanın. Kendi sorunuz varsa [ASK QUESTION], sayfanın üst kısmındaki simgesini tıklayın ve orada sorun, o zaman size yardımcı olabiliriz. Burada yeni olduğunuz için yeni kullanıcılar için bilgiler içeren tur sayfamızı okumak isteyebilirsiniz .
gung - Monica'yı eski

@Nepze Algılayıcı yorumunuz ve bunu yapmak için gösterdiğiniz zaman ve ilgi için teşekkür ederiz. Burada daha iyi bir cevaba yol açacağını düşünüyorum. Sizleri de sitemize davet ederek gung'a katılmak istiyorum.
whuber

Yanıtlar:


29

İstatistiksel Öğrenme Elemanları HASTIE vd. Dan, destek vektör sınıflandırıcılara ve SVM'ler üzerinde tam bir bölüm vardır (senin durumunda, 2. baskı sayfayı 418 başlatın). Bir diğer iyi öğretici, David Meyer tarafından R'de Destek Vektör Makineleri .

Sorunuzu yanlış anlamadığım sürece, karar sınırı (veya hiper düzlem) (β = 1 ve β 0 kesme noktası ile) ile tanımlanır veya @ebony'nin destek vektörleri. Kenar daha sonra 2 /β aşağıdaki Hastie ve diğ. notları.xTβ+β0=0β=1β02/β

On-line yardım itibaren ksvm()de kernlab R paketinde, aynı zamanda bakınız kernlab - R Çekirdek Yöntemleri için bir S4 Paketi , burada bir oyuncak örneği:

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)

Anlaşılır olması için, tren ve test örneklerini dikkate almadığımızı unutmayın. Sonuçlar aşağıda gösterilmiştir; burada renk gölgelemesi, takılan karar değerlerinin görselleştirilmesine yardımcı olur; 0 civarındaki değerler karar sınırındadır.

alternatif metin

Arama attributes(svp), erişebileceğiniz nitelikler verir, ör.

alpha(svp)  # support vectors whose indices may be 
            # found with alphaindex(svp)
b(svp)      # (negative) intercept 

Dolayısıyla, karar sınırını, karşılık gelen marjı ile göstermek için, bir süre önce Jean-Philippe Vert tarafından yapılan SVM'deki bir öğreticiden esinlenilen aşağıdakileri (yeniden ölçeklendirilmiş alanda) deneyelim :

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)

Ve işte burada:

alternatif metin


4
Güzel, tam olarak aradığım şey. İki satır: w <- colSums (coef (svp) [[1]] * x [unlist (alphaindex (svp)),]) b <- b (svp) bir nimettir. Teşekkür ederim!
dshin

@chi: "SVM'nin karar sınırını nasıl hesaplayacağım" cevabına bir göz atmak ilginç olabilir: SVM'nin stats.stackexchange.com/questions/164935/…

4

Katsayıların bu destek vektörlerine karşılık gelen Lagrange çarpanları tarafından verildiği destek vektörlerinin doğrusal bir kombinasyonudur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.