预测COVID-19 感染风险的医疗决策机器学习方法研究

2023-11-06 03:18陈广新于广浩郭金兴
新一代信息技术 2023年13期
关键词:决策树分类器样本

国 威,陈广新,于 淼,于广浩,郭金兴

(1. 牡丹江医学院生命科学学院,黑龙江牡丹江 157011;2. 牡丹江医学院医学影像学院,黑龙江牡丹江 157011;3. 牡丹江医学院附属红旗医院,黑龙江牡丹江 157011)

1 引言

COVID-19(COronaVIrus Disease 2019)是由一种被 称 为 SARS-CoV-2 (Severe Acute Respiratory Syndrome CoronaVirus-2)的病毒引起的传染病。 该病毒最先于2019年12月在中国湖北省武汉市华南海鲜市场[1]被发现,之后在全球各处也先后发现此病毒。随后于2020年3月宣布为全球大流行[2],它被称为“本世纪最重要的全球健康灾难,也是自第二次世界大战以来人类面临的最大挑战”。截至2022年8月,全球已有超过5 900万例确诊的COVID-19病例,超过600万例与COVID-19相关的死亡[3]。尽管累计接种了12亿剂疫苗,但由于缺乏有效的医疗,COVID-19 仍然对生命构成巨大威胁。

相关研究表明[4],在一些发展中国家COVID-19测试被认为是昂贵、耗时,并且需要使用足够合格的人员才能有效进行的。在印度,每次测试的价格现在在29.53 美元到40.27 美元之间。截至新冠疫情爆发前,全国医疗卫生机构床位数8 404 088张,每千人口医疗卫生机构床位数6.03[5]张。新型冠状病毒肺炎疫情的研究很少将传染病的传播和医疗资源的管理联系起来[6]。在本次疫情中,很重要的特点是在中国政府统筹下火神山医院的建设以及全国医护人员的支援。面对突发的疫情,医疗资源的分配成为一个关键的挑战。医疗资源包括医院床位、医疗设备、医护人员等,它们的有限性可能导致在疫情期间出现供需不平衡的情况。

新冠疫情作为一场全球性的健康危机,为医疗部门能够更好地准备和应对未来类似的疫情提供了宝贵的积累经验的机会。同时也面临了许多挑战,面对新冠肺炎疫情曲线的不可预测性,难以确保医疗资源能够适时提供给需要的患者。因此,能够准确预测一个人在被确诊为阳性之前或者在早期阶段能够准确预测可能需要的医疗资源,对于医疗部门来说具有重要意义。通过使用机器学习方法来预测个体的感染风险,并根据预测结果来进行医疗资源的合理分配,可以在疫情防控中发挥重要作用。这种预测模型可以帮助医疗部门提前做好资源调配的准备,确保在需要时能够及时提供适当的医疗支持。同时,通过精确预测个体的风险水平,还可以有针对性地制定个体化的防控策略,提供更好的医疗保障和护理。通过结合大数据和机器学习技术,我们可以更好地应对类似的卫生危机,并为未来的防疫工作提供有力支持。本文提出一种机器学习模型,使用机器学习算法预测个体是否处于受COVID-19 影响的危险之中,以辅助医疗决策,包括是否就医或选择居家隔离,并考虑个体感染风险与医疗资源分配之间的关系。

2 数据准备

2.1 数据集描述

本研究使用的是墨西哥政府发布的COVID-19 患者预测状况数据集,共计56万多例COVID-19患者,包含COVID-19 患者病史和习惯等患者特定信息,提供了多样化的数据类型集合。如患者姓名、性别、年龄、入院日期、首次出现症状的日期、死亡日期;门诊患者或是住院患者、是否插管、是否妊娠、是否高血压等。它的可用性和全面性使其适用于各种机器学习任务,并促进结果的比较和可重复性。

2.2 数据预处理

2.2.1 缺失值处理

通过插补技术处理数据集中的缺失值。数据集包含超过560 000个实例,最初确定了两种类型的列:分类列和数字列。

对于包括“性别”“住院”“插管”等在内的分类列,根据所选方法采用了不同的插补策略。删除具有缺失值的行,使用最频繁的值(模式)插补,或者使用10 000个样本的子集应用K最近邻(K-NearestNeighbor,KNN)插补。对于“确诊日期”“出院日期”等数字列,利用中位数、平均值或KNN插补等策略来处理缺失值。

最后得到填充后的数据集,并输出了‘died’列中两个类别(0 和1)的计数情况。根据输出结果,类别0(未死亡)有530 426个样本,类别1(死亡)有36 176个样本。这表示在数据集中,死亡的样本相对较少,属于不平衡的数据集。在后续的分析和建模中,需要考虑数据不平衡性,并采取相应的措施来处理。

2.2.2 标准化和归一化

为了保证数据在相同的尺度上进行比较和分析,对特征数据进行了标准化和归一化处理。标准化和归一化是一种常用的数据预处理方法,可以消除特征之间的量纲差异,使得它们具有相似的尺度。

在标准化过程中,使用StandardScaler方法来对特征数据进行标准化处理。这一过程将每个特征的值转换为相对于其均值的标准差的分数,从而使得所有特征的均值为0,标准差为1。这种标准化处理可以消除特征之间的偏差,使得它们具有相似的尺度。

此外,在归一化过程中,使用MinMaxScaler方法来对特征数据进行归一化处理。归一化将每个特征的值线性映射到一个特定的范围,通常是[0,1]。这样做的目的是将特征数据映射到一个统一的尺度,使得它们具有相似的取值范围。

2.2.3 过采样操作

在本研究中,为了解决样本不平衡的问题,采取过采样操作。过采样是一种常用的处理不平衡数据集的方法,它通过复制少数类样本或生成合成样本来增加少数类样本的数量,以达到与多数类样本数量相当的效果[7]。

根据实验结果,在训练集上应用了过采样操作,并通过查看类别分布来验证其效果。在过采样之前,我们的训练集中少数类别(死亡)样本的数量为27 043个,多数类别(非死亡)样本的数量为326 837个,明显存在不平衡的情况。

经过过采样操作后,我们得到了经过平衡处理的训练集。现在,训练集中死亡和非死亡样本的数量都增加到了326 837 个,成功地通过复制和生成合成样本来平衡了两个类别的数量。

3 预测模型构建

3.1 数据集划分

将COVID-19 患者数据随机打乱后拆分,拆分比例为3∶1,训练集用于寻找最优参数,构建最佳模型;测试集用于模型评估,结果输出。

3.2 模型构建算法

本文使用 Python编写程序并调用scikit-learn机器学习库进行实验,采用7 种机器学习算法构建预测模型,包括GradientBoost、XGBoost、随机森林3 种集成学习算法以及决策树、逻辑回归、支持向量机、KNN算法4种非集成学习算法。

3.2.1 集成学习算法

集成学习算法是一种基于多个训练器的结果获得最终结果的模型,Boosting 算法是集成学习中重要的算法族之一[8]。算法的机制是先设定初始权值训练出一个弱学习器,根据学习误差率不断更新样本权重,在之后弱学习器的反复多次训练中更注重权重大的样本,最后基于策略将多个弱学习器组合成强学习器[9]。

XGBoost分类器,它是一种梯度提升算法,通过迭代训练决策树模型来提高预测性能。XGBoost具有较高的准确性和鲁棒性,在处理非线性关系和高维特征时表现出色[10]。它采用了自适应的学习策略和正则化方法,能够有效地控制过拟合问题。GradientBoost分类器(梯度提升分类器)也是一种基于决策树的集成算法,通过迭代训练提高预测性能。GradientBoost分类器在决策树的构建过程中利用了梯度下降优化算法,逐步减小损失函数,使模型逐渐逼近最优解。它具有较好的鲁棒性和泛化能力,能够应对复杂的数据集和非线性关系[11]。随机森林分类器能够通过集成多个决策树的结果来进行预测,具有较高的准确性和鲁棒性[12]。它能够处理大量的特征和样本,对于复杂的数据集具有很好的表现。在本研究中,随机森林分类器通过设置合适的参数和特征选择策略,能够有效地捕捉到与新冠患者相关的特征,提高预测性能。

3.2.2 非集成学习算法

相对于集成学习算法将多个弱分类器训练整合,非集成学习算法则是指基于单个分类器构建模型的算法。

本文选用的4种算法在分类和疾病预测方面都有广泛的应用[13-16]。逻辑回归是一种经典的分类算法,适用于二分类问题。它具有简单、快速的特点,并且能够提供预测结果的可解释性。逻辑回归模型通过拟合训练集的特征和目标变量,可以根据特征的权重进行解释,从而了解哪些因素对于预测新冠患者起到关键作用。支持向量机适用于处理复杂的分类问题,具有高维和非线性数据的处理能力,可通过调整核函数和正则化参数适应不同数据集和问题。KNN 是一种简单而灵活的算法,适用于多类别分类和噪声数据。它对于数据集中的噪声和异常值具有较好的鲁棒性,因为预测结果取决于邻居的多数投票。

3.3 参数调整方法

基于训练集训练模型时,考虑到数据集样本数量庞大,采用5 折交叉验证和网格搜索结合的方法确定最优参数。5 折交叉验证指将训练集随机分成5 个大小基本一致的组,轮流用其中4 组数据训练模型,1 组数据验证模型,最后取5次结果的均值评估模型性能。网格搜索是指在基于训练集使用交叉验证训练模型的过程中根据参数的取值范围进行遍历搜索,选择模型性能最好的参数构建最终的模型。

4 结果

4.1 预测模型性能比较

根据实验结果,如图1 和表1 所示,评估了7 种机器学习模型的性能。XGBoost模型的接受者操作特性曲线(Receiver Operating Characteristic curve,ROC)下与坐标轴围成的面积AUC(Area Under Curve),AUC最高为0.953 9,表现最佳。随机森林和决策树模型的AUC分别为0.947 5和0.948 7,表现也很好。逻辑回归模型的AUC 为0.943 4,支持向量机模型为0.941 7,性能相对较好。KNN模型的AUC最低,为0.895 2。综上所述,XGBoost 模型在该任务中取得了最佳的预测性能,其他模型ROC曲线下面积均大于0.85,说明7个模型的预测效果均较好。

表1 新冠患者预测模型性能评估指标结果

图1 新冠患者预测模型性能比较ROC 曲线

4.2 特征重要性分析

对构建决策树、随机森林、GradientBoost、XGBoost模型时各个指标的特征重要性排序进行整理,如图2所示。随机森林以及决策树模型考虑的特征较多,如年龄、是否是住院患者、是否携带病毒、是否怀孕、是否患有肺炎、是否插氧等,基于随机森林和决策树模型特征重要性权重差别较小。

图2 模型特征重要性分析

XGBoost 和GradientBoost 模型在考虑特征时可能倾向于选择少量的重要特征,这是由于它们的算法原理和特征选择策略所决定的。XGBoost 和Gradient Boost模型是基于决策树的集成学习方法,它们使用自适应的梯度提升算法。在训练过程中,模型通过迭代增加决策树来减少损失函数。特征的重要性由模型根据增益计算得出,增益是根据特征对损失函数的贡献度来评估的。

在每次迭代中选择当前最优的特征进行分析,XGBoost 和GradientBoost 模型倾向于选择对预测结果具有较大影响的特征。这使得模型在考虑特征时更集中,只选择少量重要特征进行建模。这种特征选择策略的优势在于降低模型复杂度、减少特征干扰并提高模型解释性。

5 讨论

通过对7 种模型性能评估发现,集成学习与非集成学习模型ROC 曲线下面积大致都在0.94 左右。考虑到数据的丰富性、模型的鲁棒性、模型的复杂度,在大样本量下集成学习不一定会优于非集成学习方法。集成学习的优势通常在于对于小样本和噪声数据的鲁棒性以及模型的泛化能力的提升。但在大样本量下,单个模型可能已经具备足够的训练数据来进行有效学习,并能够取得较好的性能。

在实践中,集成学习方法可能会受到计算资源和时间成本的限制,因为集成模型通常需要训练多个基模型并进行集成[17]。此外,集成学习还需要进行超参数的调整和模型的组合,这可能需要更多的计算资源和时间。在这种情况下,非集成学习方法可能更具实际可行性。

利用机器学习算法构建预测模型,其性能会随着数据集的量级发生变化[17],但本文使用的数据集存在部分数据缺失以及数据不平衡的问题,后续可以纳入更多的检查指标数据来挖掘重要性预测指标。此外,可以尝试选取更多种类的算法探讨预测模型的性能以及挖掘重要性预测指标。

根据特征重要性分析,可以了解哪些因素对于个人决策的影响较大,从而提供一些指导和参考。首先,如果一个人被检测出感染病毒,特别是与病毒感染相关的高重要性特征显示出积极的结果,例如高准确率、高召回率和高F1得分,个人决策居家隔离可能是一个更合理的选择。居家隔离可以减少与他人的接触,避免病毒的传播,并有助于个人的康复和社区的健康。其次,如果患有肺炎或表现出与肺炎相关的高重要性特征,那么个人决策就医可能是更明智的选择。在这种情况下,医院提供了专业的医疗资源和治疗设施,可以及时诊断和治疗肺炎,从而提高个人康复的机会。此外,年龄也是一个重要的特征,对个人决策的影响较大。年龄可能与个体的免疫系统、健康状况和康复能力等因素相关。因此,在个人决策时,年龄应被视为一个重要的考虑因素之一。对于年龄较大且免疫系统较为脆弱的个体,可能更倾向于选择就医以获得更全面和专业的医疗护理。

猜你喜欢
决策树分类器样本
用样本估计总体复习点拨
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
推动医改的“直销样本”
BP-GA光照分类器在车道线识别中的应用
随机微分方程的样本Lyapunov二次型估计
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于决策树的出租车乘客出行目的识别
村企共赢的样本