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

原文出处:拓端数据部落公众号

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

credit=read.csv("german_credit.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

我们可能在这里过拟合,可以在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))


最受欢迎的见解

1.从决策树模型看员工为什么离职

2.R语言基于树的方法:决策树,随机森林

3.python中使用scikit-learn和pandas决策树

4.机器学习:在SAS中运行随机森林数据分析报告

5.R语言用随机森林和文本挖掘提高航空公司客户满意度

6.机器学习助推快时尚精准销售时间序列

7.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用

8.python机器学习:推荐系统实现(以矩阵分解来协同过滤)

9.python中用pytorch机器学习分类预测银行客户流失

拓端tecdat|R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. R语言第十一讲 决策树与随机森林

    概念 决策树主要有树的回归和分类方法,这些方法主要根据分层和分割 的方式将预测变量空间划分为一系列简单区域.对某个给定待预测的观 测值,用它所属区域中训练集的平均值或众数对其进行预测.         ...

  3. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  4. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  5. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  6. R语言使用逻辑回归分类算法

    R语言使用逻辑回归分类算法 逻辑回归属于概率统计的分类算法模型的算法,是根据一个或者多个特征进行类别标号预测.在R语言中可以通过调用logit函数执行逻辑回归分类算法并预测输出概率.通过调用glm函数 ...

  7. R语言惩罚逻辑回归、线性判别分析LDA、广义加性模型GAM、多元自适应回归样条MARS、KNN、二次判别分析QDA、决策树、随机森林、支持向量机SVM分类优质劣质葡萄酒十折交叉验证和ROC可视化

    最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出. 介绍 数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息.该数据集有1599个观测值和12个变量,分别是 ...

  8. R语言用逻辑回归建立用户付费模型

    原文链接:http://tecdat.cn/?p=967 对于某企业新用户,会利用大数据来分析该用户的信息来确定是否为付费用户,弄清楚用户属性,从而针对性的进行营销,提高运营人员的办事效率(点击文末& ...

  9. r语言的逻辑回归分类

    iris 是r语言内置的数据集 head(iris) # 与python的不同iris.head() Sepal.Length Sepal.Width Petal.Length Petal.Width ...

  10. R语言有序逻辑回归-因变量是等级资料

    ordinal logistic regression适用于因变量为等级资料.使用课本例16-4的数据. 随机选取84例患者做临床试验,探讨性别和治疗方法对该病的影响.变量赋值为:性别(X1,男=0, ...

最新文章

  1. 2020人工神经网络第一次作业-参考答案第二部分
  2. AngularJS 最佳实践
  3. PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型
  4. java定焦点_Android 开发 Camera1_如何使用对焦功能
  5. 【C++11新特性】 - 空间配置allocator类
  6. Highly Available (Mirrored) Queues
  7. 蓝桥杯JAVA---2013---B----世纪末的星期
  8. idea警告Cannot resolve MVC View
  9. 【大数据新手上路】“零基础”系列课程--MySQL 数据整库迁移到 MaxCompute
  10. 巨杉数据库:金融级数据库未来方向
  11. ghost手动恢复linux,GHOST手动恢复系统(GHOST还原系统)步骤详解
  12. FastFDS文件服务部署
  13. CFD:用软件完成流体仿真分析(step1)
  14. mysql无法加载主类_找不到或无法加载主类之JDK解决方法
  15. 中国工具类App折戟海外,为什么只有猎豹移动杀出血路?
  16. final 和effectively final区别
  17. Windows/Ubuntu双系统磁盘管理中删除Ubuntu分区后Ubuntu EFI分区无法删除卷解决办法
  18. 【新手上路常见问答】关于自然语言处理(NLP)
  19. 2022.02.09_Java学习总结_网络编程、正则表达式
  20. VOC-2007数据集

热门文章

  1. KeyMob:移动聚合广告的潜力无限
  2. Ka的回溯编程练习 Part4|分配工作与选书
  3. GIT在Linux上的安装和使用简介
  4. python基础--函数1
  5. C++--第21课 - 类模板 - 上
  6. 研究生信息管理系统(C++实现)
  7. 回首2018 | 分析型数据库AnalyticDB: 不忘初心 砥砺前行
  8. go-micro 框架初探
  9. 使用Object.prototype.toString判断数据类型
  10. oracle VM manager 3.1 试验备忘录