國 威,陳廣新,于 淼,于廣浩,郭金興
(1. 牡丹江醫學院生命科學學院,黑龍江牡丹江 157011;2. 牡丹江醫學院醫學影像學院,黑龍江牡丹江 157011;3. 牡丹江醫學院附屬紅旗醫院,黑龍江牡丹江 157011)
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 影響的危險之中,以輔助醫療決策,包括是否就醫或選擇居家隔離,并考慮個體感染風險與醫療資源分配之間的關系。
本研究使用的是墨西哥政府發布的COVID-19 患者預測狀況數據集,共計56萬多例COVID-19患者,包含COVID-19 患者病史和習慣等患者特定信息,提供了多樣化的數據類型集合。如患者姓名、性別、年齡、入院日期、首次出現癥狀的日期、死亡日期;門診患者或是住院患者、是否插管、是否妊娠、是否高血壓等。它的可用性和全面性使其適用于各種機器學習任務,并促進結果的比較和可重復性。
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 個,成功地通過復制和生成合成樣本來平衡了兩個類別的數量。
將COVID-19 患者數據隨機打亂后拆分,拆分比例為3∶1,訓練集用于尋找最優參數,構建最佳模型;測試集用于模型評估,結果輸出。
本文使用 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 是一種簡單而靈活的算法,適用于多類別分類和噪聲數據。它對于數據集中的噪聲和異常值具有較好的魯棒性,因為預測結果取決于鄰居的多數投票。
基于訓練集訓練模型時,考慮到數據集樣本數量龐大,采用5 折交叉驗證和網格搜索結合的方法確定最優參數。5 折交叉驗證指將訓練集隨機分成5 個大小基本一致的組,輪流用其中4 組數據訓練模型,1 組數據驗證模型,最后取5次結果的均值評估模型性能。網格搜索是指在基于訓練集使用交叉驗證訓練模型的過程中根據參數的取值范圍進行遍歷搜索,選擇模型性能最好的參數構建最終的模型。
根據實驗結果,如圖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 曲線
對構建決策樹、隨機森林、GradientBoost、XGBoost模型時各個指標的特征重要性排序進行整理,如圖2所示。隨機森林以及決策樹模型考慮的特征較多,如年齡、是否是住院患者、是否攜帶病毒、是否懷孕、是否患有肺炎、是否插氧等,基于隨機森林和決策樹模型特征重要性權重差別較小。

圖2 模型特征重要性分析
XGBoost 和GradientBoost 模型在考慮特征時可能傾向于選擇少量的重要特征,這是由于它們的算法原理和特征選擇策略所決定的。XGBoost 和Gradient Boost模型是基于決策樹的集成學習方法,它們使用自適應的梯度提升算法。在訓練過程中,模型通過迭代增加決策樹來減少損失函數。特征的重要性由模型根據增益計算得出,增益是根據特征對損失函數的貢獻度來評估的。
在每次迭代中選擇當前最優的特征進行分析,XGBoost 和GradientBoost 模型傾向于選擇對預測結果具有較大影響的特征。這使得模型在考慮特征時更集中,只選擇少量重要特征進行建模。這種特征選擇策略的優勢在于降低模型復雜度、減少特征干擾并提高模型解釋性。
通過對7 種模型性能評估發現,集成學習與非集成學習模型ROC 曲線下面積大致都在0.94 左右。考慮到數據的豐富性、模型的魯棒性、模型的復雜度,在大樣本量下集成學習不一定會優于非集成學習方法。集成學習的優勢通常在于對于小樣本和噪聲數據的魯棒性以及模型的泛化能力的提升。但在大樣本量下,單個模型可能已經具備足夠的訓練數據來進行有效學習,并能夠取得較好的性能。
在實踐中,集成學習方法可能會受到計算資源和時間成本的限制,因為集成模型通常需要訓練多個基模型并進行集成[17]。此外,集成學習還需要進行超參數的調整和模型的組合,這可能需要更多的計算資源和時間。在這種情況下,非集成學習方法可能更具實際可行性。
利用機器學習算法構建預測模型,其性能會隨著數據集的量級發生變化[17],但本文使用的數據集存在部分數據缺失以及數據不平衡的問題,后續可以納入更多的檢查指標數據來挖掘重要性預測指標。此外,可以嘗試選取更多種類的算法探討預測模型的性能以及挖掘重要性預測指標。
根據特征重要性分析,可以了解哪些因素對于個人決策的影響較大,從而提供一些指導和參考。首先,如果一個人被檢測出感染病毒,特別是與病毒感染相關的高重要性特征顯示出積極的結果,例如高準確率、高召回率和高F1得分,個人決策居家隔離可能是一個更合理的選擇。居家隔離可以減少與他人的接觸,避免病毒的傳播,并有助于個人的康復和社區的健康。其次,如果患有肺炎或表現出與肺炎相關的高重要性特征,那么個人決策就醫可能是更明智的選擇。在這種情況下,醫院提供了專業的醫療資源和治療設施,可以及時診斷和治療肺炎,從而提高個人康復的機會。此外,年齡也是一個重要的特征,對個人決策的影響較大。年齡可能與個體的免疫系統、健康狀況和康復能力等因素相關。因此,在個人決策時,年齡應被視為一個重要的考慮因素之一。對于年齡較大且免疫系統較為脆弱的個體,可能更傾向于選擇就醫以獲得更全面和專業的醫療護理。