2 SVM(支持向量機法)vs 線性回歸+ROC曲線

step1 線性回歸ROC與AUC的實現(xiàn)

rm(list = ls())
# BiocManager::install('ROCR')
library(ROCR)
# 載入AER包,使用包中的Affairs數(shù)據(jù)集
# BiocManager::install('AER')
library(AER)
data(Affairs,package="AER")
# 將'affaris'特征進行因子化處理,作為新增加的一列'ynaffairs'
Affairs$ynaffair[Affairs$affairs > 0] <- 1
Affairs$ynaffair[Affairs$affairs== 0] <- 0
Affairs$ynaffair <-factor(Affairs$ynaffair,levels=c(0,1),labels=c("No","Yes"))
# 構建Logistics模型
myfit <- glm(ynaffair ~ gender + age + yearsmarried + children + religiousness + education + occupation + rating, data=Affairs,family=binomial())
pre <- predict(myfit,type='response')
pred <- prediction(pre,Affairs$ynaffair)
# 計算AUC值
performance(pred,'auc')@y.values
perf <- performance(pred,'tpr','fpr')
plot(perf)

這是計算affair的一個數(shù)據(jù)集


結果
summary(myfit) ### 得到擬合公式
擬合公式

step2 繪圖強大的一個包——pROC

雖然ROCR包可以滿足我們的需要,但在功能上還是有些單一,繪制的圖也比較粗糙彼水。因此接下來我們學習R中更為強大的一個包——pROC,該包不僅作圖美觀螟加,還可以在同一幅圖上繪制多條ROC曲線杂数,方便我們比較兩個分類器的性能優(yōu)劣年叮。

# BiocManager::install('pROC')
library(pROC)

# 同樣使用上一節(jié)中的myfit模型
pre <- predict(myfit,type='response')
modelroc <- roc(Affairs$ynaffair,pre)
modelroc

# 可視化展示,同時給出AUC的面積與最優(yōu)的臨界點
plot(modelroc, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2), grid.col=c("green", "red"), max.auc.polygon=TRUE, auc.polygon.col="skyblue", print.thres=TRUE)
結果2

step3 支持向量機法SVM

svm命令的R包 下載

svm命令的R包
# 以下為之前的logistics模型
pre_1 <- predict(myfit,type='response')
modelroc_1 <- roc(Affairs$ynaffair,pre_1)


# 使用支持向量機算法對同樣的數(shù)據(jù)進行預測

library(e1071) ###### 這個包里面有svm
svm_model <- svm(ynaffair ~ gender + age + yearsmarried + children + religiousness + education + occupation + rating, data=Affairs)
# 提取模型預測值并進行格式處理
pred_2 <- as.factor(svm_model$decision.values)
pred_2 <- as.ordered(pred_2)
modelroc_2 <- roc(Affairs$ynaffair,pred_2)
modelroc_2


# 可視化展示,使用add=TRUE將第二個模型添加到圖形中
plot.roc(modelroc_2, add=TRUE, col="green",print.thres=TRUE) 
plot(modelroc_1, print.auc=TRUE, auc.polygon=TRUE, grid=c(0.1, 0.2), grid.col=c("green", "red"), max.auc.polygon=TRUE, auc.polygon.col="skyblue", print.thres=TRUE,col='blue')
plot.roc(modelroc_2, add=TRUE, col="green",print.thres=TRUE) 
最終的結果

SVM深度分析:區(qū)分training group和test group請參考文章

一文學會SVM——生信技能樹

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哈扮,一起剝皮案震驚了整個濱河市纬纪,隨后出現(xiàn)的幾起案子蚓再,更是在濱河造成了極大的恐慌,老刑警劉巖包各,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摘仅,死亡現(xiàn)場離奇詭異,居然都是意外死亡问畅,警方通過查閱死者的電腦和手機娃属,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來护姆,“玉大人矾端,你說我怎么就攤上這事÷言恚” “怎么了秩铆?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長渐裂。 經(jīng)常有香客問我豺旬,道長钠惩,這世上最難降的妖魔是什么柒凉? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮篓跛,結果婚禮上膝捞,老公的妹妹穿的比我還像新娘。我一直安慰自己愧沟,他們只是感情好蔬咬,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沐寺,像睡著了一般林艘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上混坞,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天狐援,我揣著相機與錄音,去河邊找鬼究孕。 笑死啥酱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的厨诸。 我是一名探鬼主播镶殷,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼微酬!你這毒婦竟也來了绘趋?” 一聲冷哼從身側響起颤陶,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎埋心,沒想到半個月后指郁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡拷呆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年闲坎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茬斧。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡腰懂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出项秉,到底是詐尸還是另有隱情绣溜,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布娄蔼,位于F島的核電站怖喻,受9級特大地震影響,放射性物質發(fā)生泄漏岁诉。R本人自食惡果不足惜锚沸,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涕癣。 院中可真熱鬧哗蜈,春花似錦、人聲如沸坠韩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽只搁。三九已至音比,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氢惋,已是汗流浹背洞翩。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留明肮,地道東北人菱农。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像柿估,于是被迫代替她去往敵國和親循未。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353