王逸飛,吳 歡,薛萬國,石金龍,王彬華,顧良友,艾 青
1 解放軍總醫(yī)院醫(yī)學創(chuàng)新研究部 醫(yī)學大數(shù)據(jù)研究中心,北京 100853;2 解放軍總醫(yī)院第一醫(yī)學中心 泌尿外科,北京 100853
前列腺癌是男性泌尿生殖系統(tǒng)最常見的惡性腫瘤之一,全球2019年預估前列腺癌新增病例數(shù)位列男性惡性腫瘤第1位,位列全球惡性腫瘤第2位[1]。在我國,前列腺癌發(fā)病率呈現(xiàn)大幅上升趨勢,自2012年起位列男性惡性腫瘤第6位[2]。前列腺增生作為一種良性病變,其與前列腺癌之間的快速鑒別是臨床面臨的難題之一[3]。以前列腺特異性抗原(prostate specific antigen,PSA)為基礎的前列腺疾病篩查雖然一定程度上可以早期發(fā)現(xiàn)前列腺癌,但存在假陽性率高的問題[4]。醫(yī)學大數(shù)據(jù)的快速積累和機器學習方法的廣泛應用為臨床疾病診斷及預測提供了新手段[5-7]。其中XGBoost算法具有較好的預測能力和穩(wěn)定性,近年來在多項臨床疾病預測中取得了良好結果[8-9]。本文擬利用XGBoost算法構建前列腺增生和前列腺癌患者的分類模型,比較兩類患者的臨床特征,發(fā)現(xiàn)可標識癌變的有效指標,并通過SHAP分析獲取指標截斷值,為癌癥早期篩查提供參考。
1 數(shù)據(jù)來源 本文數(shù)據(jù)來源于2019年解放軍總醫(yī)院國家臨床醫(yī)學科學數(shù)據(jù)中心、國家人口與健康科學數(shù)據(jù)共享平臺提供的“前列腺癌數(shù)據(jù)集”,數(shù)據(jù)集中共包含1 438例前列腺增生患者及1 613例前列腺癌患者的真實臨床信息。
2 數(shù)據(jù)預處理方法 通過核查病理報告,刪除治療后(內(nèi)分泌治療、化療或手術治療后)的樣本272例,刪除標簽與病理報告不相符的樣本48例,剩余樣本2 731例。在此基礎上,刪除數(shù)據(jù)完整度小于70%的8個特征以及數(shù)據(jù)完整度小于70%的252例樣本[10]。經(jīng)過預處理后,共保留特征23個,樣本2 479例,其中前列腺增生患者1 255例,前列腺癌患者1 224例。
3 XGBoost分類與SHAP特征解釋 XGBoost是一種基于梯度Boosting的集成學習算法,通過弱分類器的迭代計算獲得更準確的分類效果,與傳統(tǒng)分類算法相比具有速度快、可自動補全缺失值、準確度高等優(yōu)勢[11]。SHAP是一種利用期望與沙普利值對機器學習模型結果進行解釋的方法,可量化每個特征要素與模型預測能力的關系和貢獻度,有助于解釋模型特征的實際意義[12-13]。
4 統(tǒng)計學方法 1)應用IBM SPSS Statistics 24.0進行統(tǒng)計分析。觀測資料主要為計量數(shù)據(jù)。若數(shù)據(jù)滿足正態(tài)性以表示,組間比較采用獨立樣本t檢驗;若為偏態(tài)數(shù)據(jù),以中位數(shù)Md(IQR)進行描述,采用Mann-Whitney秩和檢驗。P <0.05為差異有統(tǒng)計學意義。2)使用Python3.6中集成的XGboost工具包進行分類模型的訓練與測試,利用SHAP工具包對模型特征進行解釋。①將數(shù)據(jù)集中的正樣本(前列腺癌患者)與負樣本(前列腺增生患者)打亂排列順序并進行隨機拆分,得到數(shù)據(jù)量占比為7∶3的訓練集與測試集;②在訓練集中通過5折交叉驗證與網(wǎng)格搜索法確定XGBoost算法的參數(shù)并完成模型訓練,利用測試集進行驗證并通過曲線下面積(area under the curve,AUC)值、準確率、召回率、精確率和F1值5個指標評價分類模型的性能;其中訓練集與測試集分別使用XGBoost內(nèi)部集成的填補方法對缺失值進行處理。3)利用SHAP方法對訓練完成的模型進行特征解釋,輸出特征中每個要素對模型的貢獻程度。
1 前列腺癌與前列腺增生患者臨床資料比較對1 224例前列腺癌及1 255例前列腺增生患者納入模型的23項指標進行描述統(tǒng)計及組間差異比較(表1),年齡、體質(zhì)量指數(shù)(body mass index,BMI)、游離PSA、總PSA、游離PSA/總PSA、血清白蛋白(serum albumin,Alb)、三酰甘油(triglyceride,TG)、肌酸激酶(creatine kinase,CK)、肌酸激酶同工酶(creatine kinase isoenzyme,CK-MB)、低密度脂蛋白膽固醇(low-density lipoprotein cholesterol,LDL-C)、載脂蛋白A1(apolipoprotein A1,ApoA1)、載脂蛋白B(apolipoprotein B,ApoB)、氯化物(chloride,Cl)、無機磷(inorganic phosphorus,P)、鈣(calcium,Ca)、游離鈣(free calcium,free-Ca)在前列腺增生和前列腺癌患者間的差異有統(tǒng)計學意義。
表1 前列腺癌與前列腺增生患者臨床資料比較Tab.1 Comparison of clinical data about patients with prostate cancer or prostate hyperplasia
2 模型分類效果評價 將訓練集與測試集分別輸入訓練完成的模型進行分類預測,得到5個評價指標的結果(表2)。訓練集與測試集分類結果的差異控制在一定范圍,未發(fā)生模型的過擬合;測試集的各評價指標表現(xiàn)較好,表明通過本文的23個特征可有效對前列腺癌與前列腺增生進行區(qū)分。
表2 模型對訓練集與測試集的分類結果Tab.2 Models’ performance in training set and validation set
3 特征權重排序 模型中特征重要性排在前6位的分別是游離PSA/總PSA、總PSA、無機磷、游離PSA、堿性磷酸酶(alkaline phosphatase,ALP)與CK-MB。見圖1。
圖1 模型特征權重排序Fig.1 Feature weight ranking of the model
4 SHAP特征分析 對排名前6的特征進行SHAP分析,得到特征中不同要素對模型的貢獻度(圖2)。在游離PSA/總PSA(圖2A)的特征要素中,存在典型縱軸x=0.132,當x ≤ 0.132時模型認為這些要素點來自前列腺癌患者,反之模型將這些要素點歸為前列腺增生患者。P與CK-MB(圖2C,圖2F)的典型縱軸分別為x=1.09與x=11.8,小于以上值時模型將此要素點歸于前列腺增生患者,反之則認為屬于前列腺癌患者??侾SA(圖2B)值>6且<15時處于一個“模糊地帶”,無法確定這個區(qū)域的要素點對模型預測分類的貢獻度,≥ 15時模型認為屬于前列腺癌患者。游離PSA(圖2D)值為1.5~5時,模型更傾向要素點屬于前列腺增生患者。在ALP(圖2E)中當要素點值>60或<120時,模型將其預測為前列腺癌患者,當值為60~120時,模型將其預測為前列腺增生患者。
圖2 權重排名前6特征的SHAP值Fig.2 SHAP value for the top 6 characteristics
5 總PSA值在兩組患者中的占比分布 在本文數(shù)據(jù)集中,總PSA值在前列腺增生和前列腺癌兩組患者中的占比分布如圖3所示。隨著總PSA值大于4 ng/mL,前列腺癌與前列腺增生患者數(shù)量占比之間的差值呈現(xiàn)由負數(shù)到正數(shù)的逐漸增大趨勢,然而仍有約30%的前列腺癌患者總PSA值小于4 ng/mL,約24%的前列腺增生患者總PSA值大于10 ng/mL。
圖3 總PSA值在前列腺增生與前列腺癌中的占比分布Fig.3 Proportion of the total PSA in prostate hyperplasia and prostate cancer
總PSA作為前列腺癌篩查的重要指標,臨床診斷治療指南中認為其值大于4 ng/mL則為異常,4~10 ng/mL構成了前列腺癌判定的灰區(qū),需要輔助其他方法進行評判[14]。本文預測模型的解釋結果提示總PSA值6 ng/mL與15 ng/mL是兩個值得關注的節(jié)點,結合圖3結果,提示診療指南中提到的“模糊地帶”的值有向更大方向發(fā)展的趨勢,現(xiàn)有的4 ng/mL和10 ng/mL關鍵節(jié)點仍值得進一步地討論。
相較于總PSA,游離PSA/總PSA這一比值在模型預測中表現(xiàn)出更好的組間分類能力,特征重要性排名第一,這在其他研究中也得到了驗證[15-17]。周利群等[18]曾指出0.16是較合理的游離PSA/總PSA臨界值,而在本文中由圖2可知,游離PSA/總PSA的值在0.132處出現(xiàn)了斷層分布節(jié)點,提示可利用此比值臨界點進行前列腺增生患者與前列腺癌患者的鑒別,這是本文的創(chuàng)新發(fā)現(xiàn)之一,有助于臨床利用游離PSA/總PSA輔助總PSA進行前列腺癌癥患者的早期篩查。
在本文訓練的前列腺增生與前列腺癌分類預測模型中,無機磷的重要程度僅次于游離PSA/總PSA比值與總PSA,在值等于1.09 mmol/L處存在斷層點,盡管這個值雖然處于無機磷的正常范圍(0.89~1.6 mmol/L),但仍提示血清無機磷若高于此值會增加被診斷為前列腺癌的風險。曾有研究指出,高磷飲食會增加前列腺癌的風險[19],本文結果與之可相互佐證。
利用XGBoost算法構建模型,本文對前列腺增生患者與前列腺癌患者進行了分類預測,模型的評估指標證實了模型的有效性,進一步運用SHAP分析對模型進行特征解釋,解決了機器學習結果的黑盒化問題,提出了前列腺癌早期篩查的重要指標與典型截值,可為臨床輔助診斷提供有益參考。由于數(shù)據(jù)本身限制,一些與前列腺癌風險預測相關的特征如前列腺體積大小未能列入模型,后續(xù)尚需進一步研究。