R語言用邏輯回歸、決策樹和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=17950?
最近我們被客戶要求撰寫關(guān)于的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
在本文中,我們使用了邏輯回歸、決策樹和隨機(jī)森林模型來對(duì)信用數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)并比較了它們的性能
數(shù)據(jù)集是
credit=read.csv("gecredit.csv",?header?=?TRUE,?sep?=?",")
看起來所有變量都是數(shù)字變量,但實(shí)際上,大多數(shù)都是因子變量,
>?str(credit)'data.frame': ? ?1000?obs.?of??21?variables:
?$?Creditability???:?int??1?1?1?1?1?1?1?1?1?1?...
?$?Account.Balance?:?int??1?1?2?1?1?1?1?1?4?2?...
?$?Duration????????:?int??18?9?12?12?12?10?8??...
?$?Purpose?????????:?int??2?0?9?0?0?0?0?0?3?3?...
讓我們將分類變量轉(zhuǎn)換為因子變量,
>?F=c(1,2,4,5,7,8,9,10,11,12,13,15,16,17,18,19,20)
>?for(i?in?F)?credit[,i]=as.factor(credit[,i])
現(xiàn)在讓我們創(chuàng)建比例為1:2 的訓(xùn)練和測(cè)試數(shù)據(jù)集
>?i_test=sample(1:nrow(credit),size=333)
>?i_calibration=(1:nrow(credit))[-i_test]
我們可以擬合的第一個(gè)模型是對(duì)選定協(xié)變量的邏輯回歸
>?LogisticModel?<-?glm(Creditability?~?Account.Balance?+?Payment.Status.of.Previous.Credit?+?Purpose?+?
Length.of.current.employment?+?
Sex...Marital.Status,?family=binomia
基于該模型,可以繪制ROC曲線并計(jì)算AUC(在新的驗(yàn)證數(shù)據(jù)集上)
>?AUCLog1=performance(pred,?measure?=?"auc")@y.values[[1]]>?cat("AUC:?",AUCLog1,"\n")
AUC:??0.7340997

一種替代方法是考慮所有解釋變量的邏輯回歸
?glm(Creditability?~?.,?
+??family=binomial,?
+??data?=?credit[i_calibrat
點(diǎn)擊標(biāo)題查閱往期內(nèi)容

R語言基于樹的方法:決策樹,隨機(jī)森林,套袋Bagging,增強(qiáng)樹

左右滑動(dòng)查看更多

01

02

03

04

我們可能在這里過擬合,可以在ROC曲線上觀察到
>?perf?<-?performance(pred,?"tpr",?"fpr
>?AUCLog2=performance(pred,?measure?=?"auc")@y.values[[1]]
>?cat("AUC:?",AUCLog2,"\n")AUC:??0.7609792

與以前的模型相比,此處略有改善,后者僅考慮了五個(gè)解釋變量。
現(xiàn)在考慮回歸樹模型(在所有協(xié)變量上)
我們可以使用
>?prp(ArbreModel,type=2,extra=1)

模型的ROC曲線為
(pred,?"tpr",?"fpr")
>?plot(perf)
>?cat("AUC:?",AUCArbre,"\n")
AUC:??0.7100323

不出所料,與邏輯回歸相比,模型性能較低。一個(gè)自然的想法是使用隨機(jī)森林優(yōu)化。
>?library(randomForest)>?RF?<-?randomForest(Creditability?~?.,+?data?=?credit[i_calibration,])>?fitForet?<-?predict(RF,>?cat("AUC:?",AUCRF,"\n")AUC:??0.7682367

在這里,該模型(略)優(yōu)于邏輯回歸。實(shí)際上,如果我們創(chuàng)建很多訓(xùn)練/驗(yàn)證樣本并比較AUC,平均而言,隨機(jī)森林的表現(xiàn)要比邏輯回歸好,
>?AUCfun=function(i){
+???set.seed(i)
+???i_test=sample(1:nrow(credit),size=333)
+???i_calibration=(1:nrow(credit))[-i_test]+???summary(LogisticModel)
+???fitLog?<-?predict(LogisticModel,type="response",
+?????????????????????newdata=credit[i_test,])
+???library(ROCR)
+???pred?=?prediction(?fitLog,?credit$Creditability[i_test])
+???RF?<-?randomForest(Creditability?~?.,
+???data?=?credit[i_calibration,])
+???pred?=?prediction(?fitForet,?credit$Creditability[i_test])
+???return(c(AUCLog2,AUCRF))
+?}
>?plot(t(A))


點(diǎn)擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《R語言用邏輯回歸、決策樹和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
邏輯回歸(對(duì)數(shù)幾率回歸,Logistic)分析研究生錄取數(shù)據(jù)實(shí)例
R語言使用Metropolis- Hasting抽樣算法進(jìn)行邏輯回歸
R語言邏輯回歸Logistic回歸分析預(yù)測(cè)股票漲跌
R語言在邏輯回歸中求R square R方
R語言邏輯回歸(Logistic Regression)、回歸決策樹、隨機(jī)森林信用卡違約分析信貸數(shù)據(jù)集
R語言對(duì)用電負(fù)荷時(shí)間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸
R語言進(jìn)行支持向量機(jī)回歸SVR和網(wǎng)格搜索超參數(shù)優(yōu)化
R語言貝葉斯MCMC:GLM邏輯回歸、Rstan線性回歸、Metropolis Hastings與Gibbs采樣算法實(shí)例
在R語言中實(shí)現(xiàn)Logistic邏輯回歸
R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機(jī)森林算法預(yù)測(cè)心臟病
R語言用Rcpp加速M(fèi)etropolis-Hastings抽樣估計(jì)貝葉斯邏輯回歸模型的參數(shù)
R語言邏輯回歸logistic模型分析泰坦尼克titanic數(shù)據(jù)集預(yù)測(cè)生還情況
R語言用lme4多層次(混合效應(yīng))廣義線性模型(GLM),邏輯回歸分析教育留級(jí)調(diào)查數(shù)據(jù)
R語言隨機(jī)森林RandomForest、邏輯回歸Logisitc預(yù)測(cè)心臟病數(shù)據(jù)和可視化分析
R語言基于Bagging分類的邏輯回歸(Logistic Regression)、決策樹、森林分析心臟病患者
R語言邏輯回歸(Logistic回歸)模型分類預(yù)測(cè)病人冠心病風(fēng)險(xiǎn)