國 威,陳廣新,于 淼,于廣浩,郭金興
(1. 牡丹江醫(yī)學(xué)院生命科學(xué)學(xué)院,黑龍江牡丹江 157011;2. 牡丹江醫(yī)學(xué)院醫(yī)學(xué)影像學(xué)院,黑龍江牡丹江 157011;3. 牡丹江醫(yī)學(xué)院附屬紅旗醫(yī)院,黑龍江牡丹江 157011)
COVID-19(COronaVIrus Disease 2019)是由一種被 稱 為 SARS-CoV-2 (Severe Acute Respiratory Syndrome CoronaVirus-2)的病毒引起的傳染病。 該病毒最先于2019年12月在中國湖北省武漢市華南海鮮市場[1]被發(fā)現(xiàn),之后在全球各處也先后發(fā)現(xiàn)此病毒。隨后于2020年3月宣布為全球大流行[2],它被稱為“本世紀(jì)最重要的全球健康災(zāi)難,也是自第二次世界大戰(zhàn)以來人類面臨的最大挑戰(zhàn)”。截至2022年8月,全球已有超過5 900萬例確診的COVID-19病例,超過600萬例與COVID-19相關(guān)的死亡[3]。盡管累計接種了12億劑疫苗,但由于缺乏有效的醫(yī)療,COVID-19 仍然對生命構(gòu)成巨大威脅。
相關(guān)研究表明[4],在一些發(fā)展中國家COVID-19測試被認(rèn)為是昂貴、耗時,并且需要使用足夠合格的人員才能有效進(jìn)行的。在印度,每次測試的價格現(xiàn)在在29.53 美元到40.27 美元之間。截至新冠疫情爆發(fā)前,全國醫(yī)療衛(wèi)生機(jī)構(gòu)床位數(shù)8 404 088張,每千人口醫(yī)療衛(wèi)生機(jī)構(gòu)床位數(shù)6.03[5]張。新型冠狀病毒肺炎疫情的研究很少將傳染病的傳播和醫(yī)療資源的管理聯(lián)系起來[6]。在本次疫情中,很重要的特點是在中國政府統(tǒng)籌下火神山醫(yī)院的建設(shè)以及全國醫(yī)護(hù)人員的支援。面對突發(fā)的疫情,醫(yī)療資源的分配成為一個關(guān)鍵的挑戰(zhàn)。醫(yī)療資源包括醫(yī)院床位、醫(yī)療設(shè)備、醫(yī)護(hù)人員等,它們的有限性可能導(dǎo)致在疫情期間出現(xiàn)供需不平衡的情況。
新冠疫情作為一場全球性的健康危機(jī),為醫(yī)療部門能夠更好地準(zhǔn)備和應(yīng)對未來類似的疫情提供了寶貴的積累經(jīng)驗的機(jī)會。同時也面臨了許多挑戰(zhàn),面對新冠肺炎疫情曲線的不可預(yù)測性,難以確保醫(yī)療資源能夠適時提供給需要的患者。因此,能夠準(zhǔn)確預(yù)測一個人在被確診為陽性之前或者在早期階段能夠準(zhǔn)確預(yù)測可能需要的醫(yī)療資源,對于醫(yī)療部門來說具有重要意義。通過使用機(jī)器學(xué)習(xí)方法來預(yù)測個體的感染風(fēng)險,并根據(jù)預(yù)測結(jié)果來進(jìn)行醫(yī)療資源的合理分配,可以在疫情防控中發(fā)揮重要作用。這種預(yù)測模型可以幫助醫(yī)療部門提前做好資源調(diào)配的準(zhǔn)備,確保在需要時能夠及時提供適當(dāng)?shù)尼t(yī)療支持。同時,通過精確預(yù)測個體的風(fēng)險水平,還可以有針對性地制定個體化的防控策略,提供更好的醫(yī)療保障和護(hù)理。通過結(jié)合大數(shù)據(jù)和機(jī)器學(xué)習(xí)技術(shù),我們可以更好地應(yīng)對類似的衛(wèi)生危機(jī),并為未來的防疫工作提供有力支持。本文提出一種機(jī)器學(xué)習(xí)模型,使用機(jī)器學(xué)習(xí)算法預(yù)測個體是否處于受COVID-19 影響的危險之中,以輔助醫(yī)療決策,包括是否就醫(yī)或選擇居家隔離,并考慮個體感染風(fēng)險與醫(yī)療資源分配之間的關(guān)系。
本研究使用的是墨西哥政府發(fā)布的COVID-19 患者預(yù)測狀況數(shù)據(jù)集,共計56萬多例COVID-19患者,包含COVID-19 患者病史和習(xí)慣等患者特定信息,提供了多樣化的數(shù)據(jù)類型集合。如患者姓名、性別、年齡、入院日期、首次出現(xiàn)癥狀的日期、死亡日期;門診患者或是住院患者、是否插管、是否妊娠、是否高血壓等。它的可用性和全面性使其適用于各種機(jī)器學(xué)習(xí)任務(wù),并促進(jìn)結(jié)果的比較和可重復(fù)性。
2.2.1 缺失值處理
通過插補(bǔ)技術(shù)處理數(shù)據(jù)集中的缺失值。數(shù)據(jù)集包含超過560 000個實例,最初確定了兩種類型的列:分類列和數(shù)字列。
對于包括“性別”“住院”“插管”等在內(nèi)的分類列,根據(jù)所選方法采用了不同的插補(bǔ)策略。刪除具有缺失值的行,使用最頻繁的值(模式)插補(bǔ),或者使用10 000個樣本的子集應(yīng)用K最近鄰(K-NearestNeighbor,KNN)插補(bǔ)。對于“確診日期”“出院日期”等數(shù)字列,利用中位數(shù)、平均值或KNN插補(bǔ)等策略來處理缺失值。
最后得到填充后的數(shù)據(jù)集,并輸出了‘died’列中兩個類別(0 和1)的計數(shù)情況。根據(jù)輸出結(jié)果,類別0(未死亡)有530 426個樣本,類別1(死亡)有36 176個樣本。這表示在數(shù)據(jù)集中,死亡的樣本相對較少,屬于不平衡的數(shù)據(jù)集。在后續(xù)的分析和建模中,需要考慮數(shù)據(jù)不平衡性,并采取相應(yīng)的措施來處理。
2.2.2 標(biāo)準(zhǔn)化和歸一化
為了保證數(shù)據(jù)在相同的尺度上進(jìn)行比較和分析,對特征數(shù)據(jù)進(jìn)行了標(biāo)準(zhǔn)化和歸一化處理。標(biāo)準(zhǔn)化和歸一化是一種常用的數(shù)據(jù)預(yù)處理方法,可以消除特征之間的量綱差異,使得它們具有相似的尺度。
在標(biāo)準(zhǔn)化過程中,使用StandardScaler方法來對特征數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。這一過程將每個特征的值轉(zhuǎn)換為相對于其均值的標(biāo)準(zhǔn)差的分?jǐn)?shù),從而使得所有特征的均值為0,標(biāo)準(zhǔn)差為1。這種標(biāo)準(zhǔn)化處理可以消除特征之間的偏差,使得它們具有相似的尺度。
此外,在歸一化過程中,使用MinMaxScaler方法來對特征數(shù)據(jù)進(jìn)行歸一化處理。歸一化將每個特征的值線性映射到一個特定的范圍,通常是[0,1]。這樣做的目的是將特征數(shù)據(jù)映射到一個統(tǒng)一的尺度,使得它們具有相似的取值范圍。
2.2.3 過采樣操作
在本研究中,為了解決樣本不平衡的問題,采取過采樣操作。過采樣是一種常用的處理不平衡數(shù)據(jù)集的方法,它通過復(fù)制少數(shù)類樣本或生成合成樣本來增加少數(shù)類樣本的數(shù)量,以達(dá)到與多數(shù)類樣本數(shù)量相當(dāng)?shù)男Ч?]。
根據(jù)實驗結(jié)果,在訓(xùn)練集上應(yīng)用了過采樣操作,并通過查看類別分布來驗證其效果。在過采樣之前,我們的訓(xùn)練集中少數(shù)類別(死亡)樣本的數(shù)量為27 043個,多數(shù)類別(非死亡)樣本的數(shù)量為326 837個,明顯存在不平衡的情況。
經(jīng)過過采樣操作后,我們得到了經(jīng)過平衡處理的訓(xùn)練集。現(xiàn)在,訓(xùn)練集中死亡和非死亡樣本的數(shù)量都增加到了326 837 個,成功地通過復(fù)制和生成合成樣本來平衡了兩個類別的數(shù)量。
將COVID-19 患者數(shù)據(jù)隨機(jī)打亂后拆分,拆分比例為3∶1,訓(xùn)練集用于尋找最優(yōu)參數(shù),構(gòu)建最佳模型;測試集用于模型評估,結(jié)果輸出。
本文使用 Python編寫程序并調(diào)用scikit-learn機(jī)器學(xué)習(xí)庫進(jìn)行實驗,采用7 種機(jī)器學(xué)習(xí)算法構(gòu)建預(yù)測模型,包括GradientBoost、XGBoost、隨機(jī)森林3 種集成學(xué)習(xí)算法以及決策樹、邏輯回歸、支持向量機(jī)、KNN算法4種非集成學(xué)習(xí)算法。
3.2.1 集成學(xué)習(xí)算法
集成學(xué)習(xí)算法是一種基于多個訓(xùn)練器的結(jié)果獲得最終結(jié)果的模型,Boosting 算法是集成學(xué)習(xí)中重要的算法族之一[8]。算法的機(jī)制是先設(shè)定初始權(quán)值訓(xùn)練出一個弱學(xué)習(xí)器,根據(jù)學(xué)習(xí)誤差率不斷更新樣本權(quán)重,在之后弱學(xué)習(xí)器的反復(fù)多次訓(xùn)練中更注重權(quán)重大的樣本,最后基于策略將多個弱學(xué)習(xí)器組合成強(qiáng)學(xué)習(xí)器[9]。
XGBoost分類器,它是一種梯度提升算法,通過迭代訓(xùn)練決策樹模型來提高預(yù)測性能。XGBoost具有較高的準(zhǔn)確性和魯棒性,在處理非線性關(guān)系和高維特征時表現(xiàn)出色[10]。它采用了自適應(yīng)的學(xué)習(xí)策略和正則化方法,能夠有效地控制過擬合問題。GradientBoost分類器(梯度提升分類器)也是一種基于決策樹的集成算法,通過迭代訓(xùn)練提高預(yù)測性能。GradientBoost分類器在決策樹的構(gòu)建過程中利用了梯度下降優(yōu)化算法,逐步減小損失函數(shù),使模型逐漸逼近最優(yōu)解。它具有較好的魯棒性和泛化能力,能夠應(yīng)對復(fù)雜的數(shù)據(jù)集和非線性關(guān)系[11]。隨機(jī)森林分類器能夠通過集成多個決策樹的結(jié)果來進(jìn)行預(yù)測,具有較高的準(zhǔn)確性和魯棒性[12]。它能夠處理大量的特征和樣本,對于復(fù)雜的數(shù)據(jù)集具有很好的表現(xiàn)。在本研究中,隨機(jī)森林分類器通過設(shè)置合適的參數(shù)和特征選擇策略,能夠有效地捕捉到與新冠患者相關(guān)的特征,提高預(yù)測性能。
3.2.2 非集成學(xué)習(xí)算法
相對于集成學(xué)習(xí)算法將多個弱分類器訓(xùn)練整合,非集成學(xué)習(xí)算法則是指基于單個分類器構(gòu)建模型的算法。
本文選用的4種算法在分類和疾病預(yù)測方面都有廣泛的應(yīng)用[13-16]。邏輯回歸是一種經(jīng)典的分類算法,適用于二分類問題。它具有簡單、快速的特點,并且能夠提供預(yù)測結(jié)果的可解釋性。邏輯回歸模型通過擬合訓(xùn)練集的特征和目標(biāo)變量,可以根據(jù)特征的權(quán)重進(jìn)行解釋,從而了解哪些因素對于預(yù)測新冠患者起到關(guān)鍵作用。支持向量機(jī)適用于處理復(fù)雜的分類問題,具有高維和非線性數(shù)據(jù)的處理能力,可通過調(diào)整核函數(shù)和正則化參數(shù)適應(yīng)不同數(shù)據(jù)集和問題。KNN 是一種簡單而靈活的算法,適用于多類別分類和噪聲數(shù)據(jù)。它對于數(shù)據(jù)集中的噪聲和異常值具有較好的魯棒性,因為預(yù)測結(jié)果取決于鄰居的多數(shù)投票。
基于訓(xùn)練集訓(xùn)練模型時,考慮到數(shù)據(jù)集樣本數(shù)量龐大,采用5 折交叉驗證和網(wǎng)格搜索結(jié)合的方法確定最優(yōu)參數(shù)。5 折交叉驗證指將訓(xùn)練集隨機(jī)分成5 個大小基本一致的組,輪流用其中4 組數(shù)據(jù)訓(xùn)練模型,1 組數(shù)據(jù)驗證模型,最后取5次結(jié)果的均值評估模型性能。網(wǎng)格搜索是指在基于訓(xùn)練集使用交叉驗證訓(xùn)練模型的過程中根據(jù)參數(shù)的取值范圍進(jìn)行遍歷搜索,選擇模型性能最好的參數(shù)構(gòu)建最終的模型。
根據(jù)實驗結(jié)果,如圖1 和表1 所示,評估了7 種機(jī)器學(xué)習(xí)模型的性能。XGBoost模型的接受者操作特性曲線(Receiver Operating Characteristic curve,ROC)下與坐標(biāo)軸圍成的面積AUC(Area Under Curve),AUC最高為0.953 9,表現(xiàn)最佳。隨機(jī)森林和決策樹模型的AUC分別為0.947 5和0.948 7,表現(xiàn)也很好。邏輯回歸模型的AUC 為0.943 4,支持向量機(jī)模型為0.941 7,性能相對較好。KNN模型的AUC最低,為0.895 2。綜上所述,XGBoost 模型在該任務(wù)中取得了最佳的預(yù)測性能,其他模型ROC曲線下面積均大于0.85,說明7個模型的預(yù)測效果均較好。
表1 新冠患者預(yù)測模型性能評估指標(biāo)結(jié)果
圖1 新冠患者預(yù)測模型性能比較ROC 曲線
對構(gòu)建決策樹、隨機(jī)森林、GradientBoost、XGBoost模型時各個指標(biāo)的特征重要性排序進(jìn)行整理,如圖2所示。隨機(jī)森林以及決策樹模型考慮的特征較多,如年齡、是否是住院患者、是否攜帶病毒、是否懷孕、是否患有肺炎、是否插氧等,基于隨機(jī)森林和決策樹模型特征重要性權(quán)重差別較小。
圖2 模型特征重要性分析
XGBoost 和GradientBoost 模型在考慮特征時可能傾向于選擇少量的重要特征,這是由于它們的算法原理和特征選擇策略所決定的。XGBoost 和Gradient Boost模型是基于決策樹的集成學(xué)習(xí)方法,它們使用自適應(yīng)的梯度提升算法。在訓(xùn)練過程中,模型通過迭代增加決策樹來減少損失函數(shù)。特征的重要性由模型根據(jù)增益計算得出,增益是根據(jù)特征對損失函數(shù)的貢獻(xiàn)度來評估的。
在每次迭代中選擇當(dāng)前最優(yōu)的特征進(jìn)行分析,XGBoost 和GradientBoost 模型傾向于選擇對預(yù)測結(jié)果具有較大影響的特征。這使得模型在考慮特征時更集中,只選擇少量重要特征進(jìn)行建模。這種特征選擇策略的優(yōu)勢在于降低模型復(fù)雜度、減少特征干擾并提高模型解釋性。
通過對7 種模型性能評估發(fā)現(xiàn),集成學(xué)習(xí)與非集成學(xué)習(xí)模型ROC 曲線下面積大致都在0.94 左右。考慮到數(shù)據(jù)的豐富性、模型的魯棒性、模型的復(fù)雜度,在大樣本量下集成學(xué)習(xí)不一定會優(yōu)于非集成學(xué)習(xí)方法。集成學(xué)習(xí)的優(yōu)勢通常在于對于小樣本和噪聲數(shù)據(jù)的魯棒性以及模型的泛化能力的提升。但在大樣本量下,單個模型可能已經(jīng)具備足夠的訓(xùn)練數(shù)據(jù)來進(jìn)行有效學(xué)習(xí),并能夠取得較好的性能。
在實踐中,集成學(xué)習(xí)方法可能會受到計算資源和時間成本的限制,因為集成模型通常需要訓(xùn)練多個基模型并進(jìn)行集成[17]。此外,集成學(xué)習(xí)還需要進(jìn)行超參數(shù)的調(diào)整和模型的組合,這可能需要更多的計算資源和時間。在這種情況下,非集成學(xué)習(xí)方法可能更具實際可行性。
利用機(jī)器學(xué)習(xí)算法構(gòu)建預(yù)測模型,其性能會隨著數(shù)據(jù)集的量級發(fā)生變化[17],但本文使用的數(shù)據(jù)集存在部分?jǐn)?shù)據(jù)缺失以及數(shù)據(jù)不平衡的問題,后續(xù)可以納入更多的檢查指標(biāo)數(shù)據(jù)來挖掘重要性預(yù)測指標(biāo)。此外,可以嘗試選取更多種類的算法探討預(yù)測模型的性能以及挖掘重要性預(yù)測指標(biāo)。
根據(jù)特征重要性分析,可以了解哪些因素對于個人決策的影響較大,從而提供一些指導(dǎo)和參考。首先,如果一個人被檢測出感染病毒,特別是與病毒感染相關(guān)的高重要性特征顯示出積極的結(jié)果,例如高準(zhǔn)確率、高召回率和高F1得分,個人決策居家隔離可能是一個更合理的選擇。居家隔離可以減少與他人的接觸,避免病毒的傳播,并有助于個人的康復(fù)和社區(qū)的健康。其次,如果患有肺炎或表現(xiàn)出與肺炎相關(guān)的高重要性特征,那么個人決策就醫(yī)可能是更明智的選擇。在這種情況下,醫(yī)院提供了專業(yè)的醫(yī)療資源和治療設(shè)施,可以及時診斷和治療肺炎,從而提高個人康復(fù)的機(jī)會。此外,年齡也是一個重要的特征,對個人決策的影響較大。年齡可能與個體的免疫系統(tǒng)、健康狀況和康復(fù)能力等因素相關(guān)。因此,在個人決策時,年齡應(yīng)被視為一個重要的考慮因素之一。對于年齡較大且免疫系統(tǒng)較為脆弱的個體,可能更傾向于選擇就醫(yī)以獲得更全面和專業(yè)的醫(yī)療護(hù)理。