如何度量逻辑回归模型表现

本文通过R实现逻辑回归模型示例,并利用AUC指标衡量模型、画出ROC曲线。

逻辑回归用于拟合二元分类响应变量的统计模型。衡量逻辑回归模型拟合数据集情况,通常使用两个指标:

  • 敏感性

模型预测阳性结果并且实际也是阳性的概率,也称为真阳性率。

  • 特异性

模型预测阴性结果并且实际也是隐形的概率,也称为真阴性率。可以通过ROC曲线对这两个指标进行可视化,它代表“受试者工作特征”曲线,x轴为敏感性,y轴为(1-特异性)。

通过计算AUC(area under curve)可以量化逻辑回归模型对分类数据的效果,AUC越接近1,模型越好。下面通过示例说明其计算过程。

示例

加载数据

我们使用ISLR包种Default数据集,它包括不同个体贷款是否违约信息。


data <- ISLR::Default
head(data)

#   default student   balance    income
# 1      No      No  729.5265 44361.625
# 2      No     Yes  817.1804 12106.135
# 3      No      No 1073.5492 31767.139
# 4      No      No  529.2506 35704.494
# 5      No      No  785.6559 38463.496
# 6      No     Yes  919.5885  7491.559

拟合逻辑回归模型

下面拟合逻辑回归模型,预测个体违约的概率:

set.seed(100)

# 定义样本比例
sample <- sample(c(TRUE, FALSE), nrow(data), replace= TRUE, prob=c(0.7, 0.3))

# 生成训练集和测试集
sample(c(TRUE, FALSE), 10, replace= TRUE, prob=c(0.7, 0.3))
train <- data[sample, ]
test  <- data[!sample, ]

# 拟合逻辑回归模型
model <- glm(default~student+balance+income, family = "binomial", data = train)

计算模型AUC

我们使用pROC包种的auc()函数计算模型AUC,语法如下:

auc(response, predicted)

实现代码如下:

# 预测测试集中个体违约概率
library(pROC)
predicted <- predict(model, test, type = "response")

# 计算AUC
auc(test$default, predicted)
# Area under the curve: 0.9405

# 计算AUC并画ROC图
test_roc = roc(test$default, predicted, plot=TRUE, print.auc = TRUE)

# as.numeric(test_roc$auc)

在这里插入图片描述

我们看到 Area under the curve: 0.9405,比较接近1,表明模型预测能力非常好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值