簡體   English   中英

是否限制R svm軟件包e1071中支持向量的數量?

[英]Limit the number of support vectors in R svm package e1071?

我在軟件包e1071中使用了svm函數。 據我了解,svm的基本功能可以將兩個線性可分離的類與一個超平面分開(支持向量)。 更高級的功能使您可以執行數值回歸和非線性分離。 當我開始在某些數據上對其進行測試時,我無法理解為什么模型的輸出是龐大的支持向量集。 當我在一些非常簡單的測試示例上運行它時,我得到了相同的結果。 這是一個例子:

X = rnorm(1000)
Y = rnorm(1000)
data = data.frame(X, Y, Z = as.factor(X + Y > 0))
model = svm(formula = Z ~ X + Y, data = data, kernel = "linear")

結果如下:

Call:
svm(formula = Z ~ X + Y, data = data, kernel = "linear")


Parameters:
  SVM-Type:  C-classification 
SVM-Kernel:  linear 
  cost:  1 
  gamma:  0.5 

Number of Support Vectors:  102

顯然,此示例只能通過一個支持向量進行線性分離。 如果不確定,可以運行:

ggplot(data, aes(X, Y, col = Z)) + geom_point()

102個支持向量的含義是什么? 為什么支持向量的數量不是參數?

謝謝

軟保證金硬保證金 svm之間有區別。 這由成本參數控制,該參數對支持向量違反邊際約束的程度進行了懲罰。 因此,僅在成本參數非常大的情況下,才能獲得最少數量的支持向量(三個而不是一個)。 嘗試例如cost參數的值> 10000,您將獲得三個支持向量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM