使用R语言计算和可视化校准曲线

101 篇文章

已下架不支持订阅

本文介绍了如何在R语言中利用特定函数计算和展示校准曲线,以评估分类模型的预测概率准确性和可靠性。通过逻辑回归建立模型,然后使用函数计算校准曲线并进行可视化,分析模型的预测性能。校准曲线接近对角线,表示模型预测更准确、可靠。

使用R语言计算和可视化校准曲线

在R语言中,我们可以使用calibrate函数来计算和可视化校准曲线。校准曲线是一种评估分类模型预测概率的工具,它可以帮助我们了解模型的准确性和可靠性。

下面是一个使用calibrate函数的示例代码:

# 导入所需的包
library(calibrate)

# 创建一个二分类模型
model <- glm(Species ~ Sepal.Length + Sepal.Width, data = iris, family = "binomial")

# 提取模型的预测概率
probabilities <- predict(model, type = "response")

# 创建一个带有真实标签和预测概率的数据框
data <- data.frame(observed = iris$Species, predicted = probabilities)

# 使用calibrate函数计算校准曲线
calibration_curve <- calibrate(data, method = "binning", n_bins = 10)

# 打印校准曲线的结果
print(calibration_curve)

# 可视化校准曲线
plot(calibration_curve, xlab = "Mean predicted value", ylab = "Fraction of positives",
     main = "Calibration Curve")

在上面的代码中,我们首先导入了

已下架不支持订阅

### 如何使用R语言绘制校准曲线 #### 准备工作 为了在R语言中成功绘制校准曲线,需先安装并加载必要的软件包。通常情况下,`ggplot2` `pROC` 是两个非常有用的工具。 ```r install.packages("ggplot2") install.packages("pROC") library(ggplot2) library(pROC) ``` #### 创建模拟数据集 可以构建一个简单的二分类模型用于展示目的。这里采用随机生成的数据作为例子[^1]: ```r set.seed(1234) # 构建虚拟数据框 data <- data.frame( predicted_prob = runif(n=100, min=0, max=1), actual_outcome = sample(c(TRUE,FALSE), size=100, replace=TRUE)) head(data) ``` #### 计算预测概率与真实结果之间的关系 利用 `pROC::roc()` 函数计算受试者操作特征曲线下面积 (AUC),这有助于评估模型性能的同时也为后续绘图做准备[^2]: ```r roc_curve <- roc(response=data$actual_outcome, predictor=data$predicted_prob) auc_value <- auc(roc_curve) print(paste('The AUC value is:', round(auc_value, digits=3))) ``` #### 绘制基础版本的校准曲线 借助于 `geom_smooth()` 来拟合平滑线表示预期频率;同时添加一条斜率为1的理想直线作对比: ```r calibration_plot_base <- ggplot(data, aes(x=predicted_prob)) + geom_histogram(binwidth=.1, color="white", fill="#7F7FFF")+ scale_x_continuous(limits=c(0,1), breaks=seq(0,1,.1))+ labs(title='Calibration Plot', subtitle=paste('AUC=',round(auc_value,digits=3))) calibration_plot_with_line <- calibration_plot_base + stat_function(fun=function(x){x}, colour="red", linetype="dashed")+ # Ideal line theme_minimal() print(calibration_plot_with_line) ``` #### 进一步美化图表 对于更加专业的可视化效果,还可以考虑加入置信区间、改变颜色方案或是调整字体大小等细节设置[^4]。 ```r final_calibrated_plot <- calibration_plot_with_line + geom_jitter(mapping=aes(y=jitter(as.numeric(actual_outcome)),color=factor(actual_outcome)), alpha=0.5)+ scale_color_manual(values=c("#FF7F7F","#7FFF7F"))+ guides(color=guide_legend(title="Actual Outcome")) print(final_calibrated_plot) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值