SVM算法的R語言實踐
數(shù)據(jù)集恨憎,采用R語言內(nèi)置的iris數(shù)據(jù)集郊楣。
查看數(shù)據(jù)集前六個觀測
head(iris)
第一步:加載SVM算法的R包e1071
library(e1071)
## Warning: package 'e1071'
was built under R version 3.1.3
library(printr)
第二步:把iris按著2:1的比例分為訓(xùn)練集和測試集
index <-sample(1:nrow(iris), 100)
iris.train <- iris[index, ]
iris.test <- iris[-index, ]
第三步:在訓(xùn)練集上用SVM構(gòu)建模型
model.SVM <- svm(Species ~., data=iris.train)
第四步:在測試集上對模型做測試
results.SVM <-predict(object=model.SVM, newdata=iris.test, type='class')
第五步:生成混淆矩陣,理解測試結(jié)果
table(results.SVM,iris.test$Species)
SVM原理
支持向量機(jī)净蚤,英文為Support?Vector Machine,簡稱SV機(jī)(論文中一般簡稱SVM)今瀑。它是一種監(jiān)督式學(xué)習(xí)的方法点把,它廣泛的應(yīng)用于統(tǒng)計分類以及回歸分析中。
SVM的主要思想可以概括為兩點:
(1)它是針對線性可分情況進(jìn)行分析郎逃,對于線性不可分的情況,通過使用非線性映射算法將低維輸入空間線性不可分的樣本轉(zhuǎn)化為高維特征空間使其線性可分拿撩,從而使得高維特征空間采用線性算法對樣本的非線性特征進(jìn)行線性分析成為可能;
(2)它基于結(jié)構(gòu)風(fēng)險最小化理論之上在特征空間中建構(gòu)最優(yōu)分割超平面,使得學(xué)習(xí)器得到全局最優(yōu)化,并且在整個樣本空間的期望風(fēng)險以某個概率滿足一定上界襟己。在學(xué)習(xí)這種方法時,首先要弄清楚這種方法考慮問題的特點撬呢,這就要從線性可分的最簡單情況討論起,在沒有弄懂其原理之前魂拦,不要急于學(xué)習(xí)線性不可分等較復(fù)雜的情況,支持向量機(jī)芯勘。在設(shè)計時箱靴,需要用到條件極值問題的求解衡怀,因此需用拉格朗日乘子理論,但對多數(shù)人來說安疗,以前學(xué)到的或常用的是約束條件為等式表示的方式,但在此要用到以不等式作為必須滿足的條件荐类,此時只要了解拉格朗日理論的有關(guān)結(jié)論就行。
參考文獻(xiàn):
本文轉(zhuǎn)載自 ??http://www.360doc.com/userhome.aspx?userid=26290960&cid=10