【R语言】逻辑回归模型

数据集ISLR包的Default数据集
目的是预测哪些客户将拖欠信用卡债务
有1万条数据、3个特征

#数据集
install.packages("ISLR")
library(ISLR)
library(tibble)
as_tibble(Default)

在这里插入图片描述
需要分析的是学生身份、信用卡余额、收入这3个特征,并对违约行为进行适当分类。

数据探索

#数据探索
library(ggplot2)
ggplot(data = Default,aes(x=balance,color=default))+geom_density()+labs(title = "defalut with balabce")
ggplot(data = Default,aes(x=income,color=default))+geom_density()+labs(title = "defalut with income")
ggplot(data = Default,aes(x=income,color=student))+geom_density()+labs(title = "student with income")

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

构建逻辑回归模型

#构建逻辑回归模型
#划分训练集和测试集
set.seed(42)
default_idx <- sample(nrow(Default),ceiling(nrow(Default)/2))
default_trn <- Default[default_idx,]
default_tst <- Default[-default_idx,]
#创建模型
model_glm <- glm(default~.,data = default_trn,family = "binomial")
summary(model_glm)

在这里插入图片描述

逻辑回归预测

#逻辑回归预测
head(predict(model_glm,type = "response"))
trn_pred <- ifelse(predict(model_glm,type = "response")>0.5,"Yes","No")
head(trn_pred)

在这里插入图片描述

逻辑回归模型评估

#交叉表/混淆矩阵
trn_tab <- table(predicted=trn_pred,actual=default_trn$default)
trn_tab

在这里插入图片描述

#错误率
calc_class_err <- function(actual,predicted){
  mean(actual!=predicted)
}
calc_class_err(actual = default_trn$default,predicted = trn_pred)
#[1] 0.0274

在这里插入图片描述

#灵敏度、特异性等
install.packages("caret")
library(caret)
confusionMatrix(trn_tab,positive = "Yes")

在这里插入图片描述

#ROC曲线
library(pROC)
test_preb <- predict(model_glm,newdata = default_tst,type = "response")
test_roc <- roc(default_tst$default,test_preb,plot=TRUE,print.auc=TRUE)
as.numeric(test_roc$auc)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值