0
我在包e1071中使用了svm函數。據我所知,svm基本功能可以用超平面(支持向量)分隔兩個線性可分類的類。更高級的功能允許您執行數字迴歸和非線性分離。 當我開始對一些數據進行測試時,我無法理解爲什麼模型的輸出是一組巨大的支持向量。 當我在一些非常簡單的測試示例上運行它時,我得到了相同的結果。下面是一個例子:限制R svm package e1071中支持向量的數量?
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支持向量是什麼意思?爲什麼支持向量的數量不是一個參數?
感謝
感謝您的回答。事實上,一個巨大的成本函數爲我提供了所需的3個向量(我忘了邊際)。你能否詳細說明爲什麼我們在明顯線性可分的變量情況下得到3個以上的向量?是否因爲其他向量爲成本函數產生一個客觀價值,足以接近最低成本? – eaglefreeman
隨着成本的降低,保證金的增加會導致越來越多的寶貝現在躺在邊緣區域。邊緣區域的點越多,支撐向量就越多。 – DatamineR