R語言 支援向量機

2021-08-17 15:42:33 字數 2200 閱讀 5942

支援向量機可以想象成乙個平面,改平面定義了個資料點之間的界限,而這些資料點代表它們的特徵繪製多維空間中的樣本。支援向量機的目標是建立乙個稱為超平面的平面邊界,它使得任何乙個的資料劃分都是相當均勻的。支援向量機幾乎可以適用於所有的學習任務,包括分類

(svm)

、數值**、回歸

(svr)。

r

實現及引數說明

1)kernlab

函式ksvm()通過。call介面,使用bsvm和libsvm庫中的優化方法。對於分類,有c-svm分類演算法和v-svm分類演算法,同時還包括c分類器的有界約束的版本;對於回歸,提供了ε-svm回歸演算法和v-svm回歸演算法;對於多類分類,有一對一(one-against-one)方法和原生多類分類方法。

2)e1071包

使用libsvm庫中的優化方法。多分類通過一對一的投票機制(one-against-one voting scheme)實現。e1071包的tune()函式在指定的範圍內選取合適的引數。

3)klar包

klar對庫svmlight進行了簡單的包裝,提供了函式svmlight()以分類,視覺化。svmlight()支援c-svm進行分類,ε-svm進行回歸;以一對所有(one-against-all)進行多類分類。svmlight支援高斯核,多項式,線性和sigmoid核。svmlight()的引數形式為字串形式。

4)svmpath

svmpath包裡的函式可用來選取支援向量機的cost引數c

核函式

:

linear

:使用它的話就成為線性向量機,效果基本等價於

logistic

回歸。但它可以處理變數極多的情況,例如文字挖掘。

polynomial:n

次多項式核函式,適用於影象處理問題。選擇

n的好方法是從

1(乙個線性模型

)開始,然後遞增至估計誤差不再改進為止。通常,相當小的數目就足夠了。

radial basis

,高斯核函式,最流行易用的選擇。引數包括了

sigma

,其值若設定過小,會有過度擬合出現。

sigmoid

:反曲核函式,多用於神經網路的啟用函式。實踐中,核函式的選擇一般並不導致結果準確率的很大差別

(也有特例!)。

引數說明:

kernel:核函式用於訓練和**。 該引數可以設定為類核心的任何函式,該函式計算兩個向量引數之間的特徵空間中的內積

c:違約成本(預設值:1)這是拉格朗日公式中正則項的'c'常數

nu:nu引數設定訓練誤差的上限和資料點分數的下限成為支援向量

**:

library(kernlab)

svm.model <- ksvm(species ~ ., data = iris, kernel = 'rbfdot')

predict(svm.model, iris[c(3, 10, 56, 68, 107, 120), ])

svm.t <- table(iris$species, predict(svm.model, iris, type = 'response'))

1 - sum(diag(svm.t))/sum(svm.t) # 計算誤差率

library(e1071)

model <- svm(species ~ ., data = iris, method = "c-classification",

kernel = "radial", cost = 10, gamma = 0.1)

summary(model)

svm.t <- table(iris$species, predict(model, iris, type = 'response'))

1 - sum(diag(svm.t))/sum(svm.t) # 計算誤差率

plot(model, iris, petal.width ~ petal.length, slice = list(sepal.width = 3, sepal.length = 4))

支援向量機 R語言如何實現支援向量機?

支援向量機是幫助我們解決小樣本 非線性及高維資料的重要手段。1在r語言中,實現支援向量機的是e1071軟體包中的svm函式。首先,安裝並載入軟體包。2讀取資料集。gyyz data read.csv gyyz.csv head t 讀取資料集 gyyz data is rise as.factor ...

R 支援向量機

支援向量機是乙個相對較新和較先進的機器學習技術,最初提出是為了解決二類分類問題,現在被廣泛用於解決多類非線性分類問題和回歸問題。其流行歸功於兩個方面,乙個方面,可以輸出比較準確的 結果 另一方面,模型基於比較優雅的數學理論。svm旨在在多維空間找到乙個能將全部樣本單元分成兩類的最優平面,這一平面應使...

R語言調整支援向量機

說明 除了選擇不同的特徵集和核函式,還可以借助引數gamma以及懲罰因子來調整支援向量機的效能,可以寫乙個for函式來實現。svm提供了tune.svm函式簡化了這個過程。操作準備好訓練資料集trainset 使用tune.svm調整支援向量機 tuned tune.svm churn data t...