原文链接:http://tecdat.cn/?p=17950 

最近咱们被客户要求撰写对于的钻研报告,包含一些图形和统计输入。

在本文中,咱们应用了逻辑回归、决策树和随机森林模型来对信用数据集进行分类预测并比拟了它们的性能

数据集是

credit=read.csv("gecredit.csv", header = TRUE, sep = ",")

看起来所有变量都是数字变量,但实际上,大多数都是因子变量,

> 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 ...

让咱们将分类变量转换为因子变量,

> 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])

当初让咱们创立比例为1:2 的训练和测试数据集

> i_test=sample(1:nrow(credit),size=333)> i_calibration=(1:nrow(credit))[-i_test]

咱们能够拟合的第一个模型是对选定协变量的逻辑回归

> LogisticModel <- glm(Creditability ~ Account.Balance + Payment.Status.of.Previous.Credit + Purpose + Length.of.current.employment + Sex...Marital.Status, family=binomia

基于该模型,能够绘制ROC曲线并计算AUC(在新的验证数据集上)

> AUCLog1=performance(pred, measure = "auc")@y.values[[1]]> cat("AUC: ",AUCLog1,"\n")AUC:  0.7340997

一种代替办法是思考所有解释变量的逻辑回归

 glm(Creditability ~ ., +  family=binomial, +  data = credit[i_calibrat

点击题目查阅往期内容

R语言基于树的办法:决策树,随机森林,套袋Bagging,加强树

左右滑动查看更多

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

与以前的模型相比,此处略有改善,后者仅思考了五个解释变量。

当初思考回归树模型(在所有协变量上)

咱们能够应用

> prp(ArbreModel,type=2,extra=1)

模型的ROC曲线为

(pred, "tpr", "fpr")> plot(perf)> cat("AUC: ",AUCArbre,"\n")AUC:  0.7100323

不出所料,与逻辑回归相比,模型性能较低。一个天然的想法是应用随机森林优化。

> library(randomForest)> RF <- randomForest(Creditability ~ .,+ data = credit[i_calibration,])> fitForet <- predict(RF,> cat("AUC: ",AUCRF,"\n")AUC:  0.7682367

在这里,该模型(略)优于逻辑回归。实际上,如果咱们创立很多训练/验证样本并比拟AUC,均匀而言,随机森林的体现要比逻辑回归好,

> 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))


点击文末 “浏览原文”

获取全文残缺材料。

本文选自《R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测》。

点击题目查阅往期内容

逻辑回归(对数几率回归,Logistic)剖析研究生录取数据实例
R语言应用Metropolis- Hasting抽样算法进行逻辑回归
R语言逻辑回归Logistic回归剖析预测股票涨跌
R语言在逻辑回归中求R square R方
R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡守约剖析信贷数据集
R语言对用电负荷工夫序列数据进行K-medoids聚类建模和GAM回归
R语言进行反对向量机回归SVR和网格搜寻超参数优化
R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例
在R语言中实现Logistic逻辑回归
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
R语言用Rcpp减速Metropolis-Hastings抽样预计贝叶斯逻辑回归模型的参数
R语言逻辑回归logistic模型剖析泰坦尼克titanic数据集预测生还状况
R语言用lme4多层次(混合效应)狭义线性模型(GLM),逻辑回归剖析教育留级考察数据
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化剖析
R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林剖析心脏病患者
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病危险