机器学习-模型拟合:如何使用逻辑回归精准预测临床诊断结果?

简介: 本文旨在介绍逻辑回归模型在临床诊断结果预测中的应用,并探讨相关需求和挑战。首先,将详细介绍逻辑回归模型的原理和特点,以及其在机器学习中的地位和应用范围。接着,将阐述临床诊断结果预测的重要性和现实需求,以及逻辑回归模型如何满足这些需求。

一、引言



在机器学习中,模型拟合是一个关键概念,它指的是使用数据来拟合出一个能够适应实际情况的数学模型。逻辑回归是一种常用的模型拟合方法,它可以用于处理分类问题,特别是二分类问题。逻辑回归利用了一个称为“逻辑函数”的模型来预测观测值的概率。


然而,在临床诊断领域中,准确预测疾病结果对于患者的治疗和生存至关重要。因此,使用逻辑回归进行临床诊断结果预测成为一种被广泛研究和应用的方法。


本文旨在介绍逻辑回归模型在临床诊断结果预测中的应用,并探讨相关需求和挑战。首先,将详细介绍逻辑回归模型的原理和特点,以及其在机器学习中的地位和应用范围。接着,将阐述临床诊断结果预测的重要性和现实需求,以及逻辑回归模型如何满足这些需求。


二、逻辑回归简介



2.1 逻辑回归原理


  • 「基本假设」逻辑回归模型假设在给定输入特征的情况下,输出变量的概率服从二项分布。


  • 「逻辑函数」

逻辑回归模型使用逻辑函数(Sigmoid函数)对线性组合进行变换(逻辑回归=线性回归+sigmoid函数。),将其映射到0到1之间的概率值。逻辑函数的数学表达式如下:


640.png


如上图:逻辑回归模型使用逻辑函数对线性组合进行变换,将输入特征与输出变量之间建立关系。当线性组合的值趋近于负无穷时,逻辑函数的值趋近于0;当线性组合的值趋近于正无穷时,逻辑函数的值趋近于1。通过将线性回归结果带入逻辑函数,我们可以将连续变量y转换为0-1区间内的概率值。


  • 「决策边界」:在逻辑回归模型中,当概率值小于0.5时,我们将最终结果预测为0;当概率值大于0.5时,我们将最终结果预测为1。通过这个阈值,我们可以明确地进行分类预测。


  • 「逻辑回归的算法步骤」
  1. 输入自变量特征
  2. 定义自变量的线性组合y(y = β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ),即针对自变量线性回归,其中,y表示线性组合,β₀表示模型的截距(常数项),β₁、β₂、...、βₚ表示各个输入特征的系数,x₁、x₂、...、xₚ表示对应的自变量特征。
  3. 将线性回归结果y映射到sigmoid函数,生成一个0-1范围取值的函数概率值
  4. 根据概率值,定义阈值(通常为0.5,即是决策边界),判定分类结果

640.png


2.2 逻辑回归适用场景和优势


  • 「优势」
  1. 简单而高效:逻辑回归是一种简单且易于实现的分类算法,计算速度快,适用于大规模数据集。
  2. 可解释性强:逻辑回归模型中的系数表示不同特征对结果的影响程度,可以提供变量的权重信息,便于解释模型。
  3. 适用于概率预测:逻辑回归通过sigmoid函数将线性组合映射到0-1的概率值,能够直接预测样本属于某一类别的概率。
  4. 可以处理离散特征和连续特征:逻辑回归可以同时适应处理离散特征和连续特征,不需要对特征进行过多的预处理。


  • 「适用场景」
  1. 二分类问题:逻辑回归主要用于解决二分类问题,即将样本分为两个互斥的类别。例如,预测股票市场中的涨跌、预测学生是否能被大学录取等。
  2. 概率预测:逻辑回归通过使用sigmoid函数将线性组合映射到0-1之间的概率值,可以得到样本属于某个类别的概率。因此,在需要进行概率预测的任务中,逻辑回归是一个有效的选择。例如,预测用户点击广告的概率,判断一封电子邮件是否为垃圾邮件等。
  3. 特征重要性分析:逻辑回归模型中的系数表示不同特征对结果的影响程度。根据系数的大小可以评估其在分类中的相对重要性。因此,逻辑回归可用于分析特征的重要性,帮助理解数据并进行特征选择。例如,通过逻辑回归模型确定影响房价的关键因素。
  4. 高维数据集:逻辑回归在高维数据集中表现良好,并且具有较低的计算复杂度。因此,当特征维度较高时,逻辑回归是一个可行的选择。例如,在文本分类中,逻辑回归可以用于将文本数据映射到不同的类别。


三、实例演示



3.1 数据集载入


library(survival)
str(gbsg)


结果展示:


> str(gbsg)
'data.frame':   686 obs. of  10 variables:
 $ age    : int  49 55 56 45 65 48 48 37 67 45 ...
 $ meno   : int  0 1 1 0 1 0 0 0 1 0 ...
 $ size   : int  18 20 40 25 30 52 21 20 20 30 ...
 $ grade  : int  2 3 3 3 2 2 3 2 2 2 ...
 $ nodes  : int  2 16 3 1 5 11 8 9 1 1 ...
 $ pgr    : int  0 0 0 0 0 0 0 0 0 0 ...
 $ er     : int  0 0 0 4 36 0 0 0 0 0 ...
 $ hormon : int  0 0 0 0 1 0 0 1 1 0 ...
 $ rfstime: int  1838 403 1603 177 1855 842 293 42 564 1093 ...
 $ status : Factor w/ 2 levels "0","1": 1 2 1 1 1 2 2 1 2 2 ...
age:患者年龄
meno:更年期状态(0表示未更年期,1表示已更年期)
size:肿瘤大小
grade:肿瘤分级
nodes:受累淋巴结数量
pgr:孕激素受体表达水平
er:雌激素受体表达水平
hormon:激素治疗(0表示否,1表示是)
rfstime:复发或死亡时间(以天为单位)
status:事件状态(0表示被截尾,1表示事件发生)


3.2 数据预处理


colSums(is.na(gbsg))
set.seed(1234)
gbsg$status <- as.factor(gbsg$status)
# 拆分训练集和测试集
trainIndex <- sample(1:nrow(gbsg), 0.8 * nrow(gbsg))
train <- gbsg[trainIndex,]
test <- gbsg[-trainIndex,]


3.3 逻辑回归拟合


# 拟合逻辑回归模型
model <- glm(status ~ age + meno + size + grade + nodes + pgr + er + hormon, data = train, family = binomial)
summary(model)


结果展示:


Call:
glm(formula = status ~ age + meno + size + grade + nodes + pgr + 
    er + hormon, family = binomial, data = train)
Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.0355079  0.7759338  -0.046  0.96350    
age         -0.0246618  0.0146817  -1.680  0.09300 .  
meno         0.5901891  0.2941229   2.007  0.04479 *  
size         0.0127721  0.0069394   1.841  0.06569 .  
grade        0.1391511  0.1636063   0.851  0.39503    
nodes        0.0925852  0.0215085   4.305 1.67e-05 ***
pgr         -0.0027016  0.0007524  -3.590  0.00033 ***
er           0.0007713  0.0007929   0.973  0.33073    
hormon      -0.3859417  0.2039298  -1.893  0.05842 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
    Null deviance: 753.96  on 547  degrees of freedom
Residual deviance: 686.34  on 539  degrees of freedom
AIC: 704.34
Number of Fisher Scoring iterations: 4


3.4 模型评估


  • 「混淆矩阵」
library(caret)
# 使用逻辑回归模型进行预测
predictions <- predict(model, newdata = test, type = "response")
# 将概率转换为类别(基于0.5的阈值)
predicted_classes <- ifelse(predictions > 0.5, 1, 0)
# 创建混淆矩阵
predicted_classes <- as.factor(predicted_classes)
test$status <- as.factor(test$status)
confusion_matrix <- confusionMatrix(predicted_classes, as.factor(test$status))
# 创建混淆矩阵
confusion_matrix <- confusionMatrix(predicted_classes, test$status)
# 将表格对象转换为数据框
cm_data <- as.data.frame(cm_data)
# 绘制混淆矩阵图
ggplot(data = cm_data, aes(x = Reference, y = Prediction, fill = Freq)) +
  geom_tile() +
  geom_text(aes(label = Freq), color = "black") +
  scale_fill_gradient(low = "white", high = "steelblue") +
  labs(x = "Actual", y = "Predicted", title = "Confusion Matrix")


640.png


从图中看出总共138例子,预测对的是93例子,错误的是45例。


  • 「ROC曲线」
# 使用逻辑回归模型进行预测
predictions <- predict(model, newdata = test, type = "response")
library(pROC)
roc <- pROC::roc(test$status, predictions)
# 绘制ROC曲线
plot(roc, main = "ROC Curve", print.auc = TRUE, auc.polygon = TRUE, grid = TRUE, legacy.axes = TRUE,col="blue")


640.png


  • 「特征重要性图」
# 提取特征系数
coef_data <- data.frame(Feature = names(coef(model)), Coefficient = abs(coef(model)))
# 按照系数绝对值降序排序
coef_data <- coef_data[order(coef_data$Coefficient, decreasing = TRUE), ]
# 绘制特征重要性柱状图
ggplot(data = coef_data, aes(x = reorder(Feature, Coefficient), y = Coefficient)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  xlab("Feature") +
  ylab("Coefficient (Absolute Value)") +
  ggtitle("Logistic Regression Feature Importance")


640.png


四、总结



这个结果肯定是不如人意的,如果想知道如何实现提高预测的准确率,以及模型调优的方法,欢迎关注和私信我,我们一起讨论学习。原创不易,如果觉得写的还行的话,请留下您的赞和再看,谢谢!


*「未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。」

目录
相关文章
|
2月前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
149 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署通义千问 QwQ-32B 模型,阿里云 PAI 最佳实践
3月6日阿里云发布并开源了全新推理模型通义千问 QwQ-32B,在一系列权威基准测试中,千问QwQ-32B模型表现异常出色,几乎完全超越了OpenAI-o1-mini,性能比肩Deepseek-R1,且部署成本大幅降低。并集成了与智能体 Agent 相关的能力,够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署 QwQ-32B,本实践带您部署体验专属 QwQ-32B模型服务。
|
2天前
|
机器学习/深度学习 人工智能 边缘计算
DistilQwen2.5蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen2.5 是阿里云人工智能平台 PAI 推出的全新蒸馏大语言模型系列。通过黑盒化和白盒化蒸馏结合的自研蒸馏链路,DistilQwen2.5各个尺寸的模型在多个基准测试数据集上比原始 Qwen2.5 模型有明显效果提升。这一系列模型在移动设备、边缘计算等资源受限的环境中具有更高的性能,在较小参数规模下,显著降低了所需的计算资源和推理时长。阿里云的人工智能平台 PAI,作为一站式的机器学习和深度学习平台,对 DistilQwen2.5 模型系列提供了全面的技术支持。本文详细介绍在 PAI 平台使用 DistilQwen2.5 蒸馏小模型的全链路最佳实践。
|
6天前
|
机器学习/深度学习 传感器 数据采集
基于机器学习的数据分析:PLC采集的生产数据预测设备故障模型
本文介绍如何利用Python和Scikit-learn构建基于PLC数据的设备故障预测模型。通过实时采集温度、振动、电流等参数,进行数据预处理和特征提取,选择合适的机器学习模型(如随机森林、XGBoost),并优化模型性能。文章还分享了边缘计算部署方案及常见问题排查,强调模型预测应结合定期维护,确保系统稳定运行。
57 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
2月前
|
机器学习/深度学习 安全 PyTorch
FastAPI + ONNX 部署机器学习模型最佳实践
本文介绍了如何结合FastAPI和ONNX实现机器学习模型的高效部署。面对模型兼容性、性能瓶颈、服务稳定性和安全性等挑战,FastAPI与ONNX提供了高性能、易于开发维护、跨框架支持和活跃社区的优势。通过将模型转换为ONNX格式、构建FastAPI应用、进行性能优化及考虑安全性,可以简化部署流程,提升推理性能,确保服务的可靠性与安全性。最后,以手写数字识别模型为例,展示了完整的部署过程,帮助读者更好地理解和应用这些技术。
131 20
|
24天前
|
人工智能 自然语言处理 搜索推荐
全网首发 | PAI Model Gallery一键部署阶跃星辰Step-Video-T2V、Step-Audio-Chat模型
Step-Video-T2V 是一个最先进的 (SoTA) 文本转视频预训练模型,具有 300 亿个参数,能够生成高达 204 帧的视频;Step-Audio 则是行业内首个产品级的开源语音交互模型,通过结合 130B 参数的大语言模型,语音识别模型与语音合成模型,实现了端到端的文本、语音对话生成,能和用户自然地进行高质量对话。PAI Model Gallery 已支持阶跃星辰最新发布的 Step-Video-T2V 文生视频模型与 Step-Audio-Chat 大语言模型的一键部署,本文将详细介绍具体操作步骤。
|
24天前
|
机器学习/深度学习 数据挖掘 定位技术
多元线性回归:机器学习中的经典模型探讨
多元线性回归是统计学和机器学习中广泛应用的回归分析方法,通过分析多个自变量与因变量之间的关系,帮助理解和预测数据行为。本文深入探讨其理论背景、数学原理、模型构建及实际应用,涵盖房价预测、销售预测和医疗研究等领域。文章还讨论了多重共线性、过拟合等挑战,并展望了未来发展方向,如模型压缩与高效推理、跨模态学习和自监督学习。通过理解这些内容,读者可以更好地运用多元线性回归解决实际问题。
|
2月前
如何看PAI产品下训练(train)模型任务的费用细节
PAI产品下训练(train)模型任务的费用细节
99 6

热门文章

最新文章