版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
[9]。這個算法具有更快的運行速度和更高的精準(zhǔn)度,在許多數(shù)據(jù)挖掘競賽中被排名前列的參賽選手使用。 XGBoost是基于決策樹的集成學(xué)習(xí)(ensemblelearning)算法,由梯度決策提升樹(GBDT)發(fā)展而來。XGBoost的思想與GBDT類似,是通過特征分裂生成多棵樹,每個樣本在每棵樹中都被分配到一個有分?jǐn)?shù)的葉子結(jié)點,將樣本在每棵樹中葉子結(jié)點對應(yīng)的分?jǐn)?shù)加起來就是對該樣本的預(yù)測值。用數(shù)學(xué)式表示,對于一個樣本xi y^i=Θxi=k=1N其中N表示樹的數(shù)量,Obj(·)為目標(biāo)函數(shù),fk( 給定一個有n個樣本的m維數(shù)據(jù)集在XGBoost中,目標(biāo)函數(shù)被定義為損失函數(shù)和正則項之和,即 Obj(Θ)=L(Θ)+t=1NΩ(損失函數(shù)L(·)是用來評價訓(xùn)練集上預(yù)測值和真實值的誤差的函數(shù),表達(dá)式為 L(Θ)=i=1nl(yi,yl(yi,y^i)反映對于樣本x正則項Ω(·) Ω(ft)=γT+12λ||ω||2其中γ和λ為第t棵樹中的懲罰系數(shù),T為第t棵樹的葉子結(jié)點數(shù),||ω||2為該樹的葉子結(jié)點 在樹提升(treeboosting)模型中,例如歐氏距離、梯度下降等傳統(tǒng)優(yōu)化方法并不適用,XGBoost使用前向分布算法優(yōu)化目標(biāo)函數(shù)。設(shè)y^ y^i(t)=y^i(t?1)將式(2.32)代入(2.30)得第t次迭代(第t棵樹)后 Obj(t)=i=1nl其中C為常數(shù)。XGBoost使用二階泰勒展開式(式(2.36)),這是XGBoost的特色之一。 f(x+Δx)?f(x)+f'(x)Δ定義gi=?y^ Obj(t)?i=1因為對于第t次迭代來說l(yi,y^ Objt=i=1 =i=1 =j=1T[(i∈為使Lt最小,我們需要求其極值。對Lt求ωj ωj=?i∈Ijgii∈Ij當(dāng)ωj滿足(2.37)時Objt取最小值。將式(2.39)代入式(2.38),并定義 Obj(t)=?12j=1TGj 決策樹在生成時使用ID3、Gini指數(shù)等指標(biāo)選擇最佳分裂特征點,XGBoost也會在生成樹時選擇最佳分裂特征點生成樹,但并非用如上指標(biāo),而是使用Gain值,其中Gain值定義為分裂后該樹目標(biāo)函數(shù)的減少量,Gain值越大,目標(biāo)函數(shù)減少越多,說明該樹越好。定義GL2HL+λ和GR2HR+λ分別為分裂后左右子樹的目標(biāo)函數(shù)的Σ部分的值,則分裂前子樹目標(biāo)函數(shù)的 Gain=12[GL2 確定最佳分裂點的指標(biāo)已經(jīng)給出,現(xiàn)在需要查找分裂點的算法。精確貪心算法REF_Ref71579343\r\h[10]和近似算法REF_Ref71579343\r\h[10]和稀疏感知分裂算法REF_Ref71579343\r\h[10]。 精確貪心算法(exactgreedyalthogrim)的思想就是對每個特征遍歷當(dāng)前結(jié)點的所有樣本計算Gain值,從而得出Gain最大值。Gain取最大值時的特征就是最佳分裂特征點。算法1:精確貪心算法輸入:當(dāng)前結(jié)點的樣本集I,數(shù)據(jù)集維數(shù)(特征數(shù))d過程: gain←0,G← fork=1tod: G forjin按xjk升序的I G GR←G?G ifgain<1 gain← split←輸出:gain值最大的分裂點split 精確貪心算法枚舉所有可能的分裂點,故理論上使用精確貪心算法生成的樹擁有著最好的指標(biāo)。但當(dāng)數(shù)據(jù)多到無法完全放入內(nèi)存時,精確貪心算法就無法做到一一枚舉了,同時還會消耗非常多的時間。 近似算法(approximatealthogrim)是解決該問題的一種算法,是對精確貪心算法的一種近似,在全局計算(即建立一整棵樹前全部計算好)和局部計算(在需要分裂結(jié)點時進行計算)時都適用。近似算法中,對于每個特征k,對其特征值按百分位數(shù)選出l個候選切分點,則可分成l+1段,這些段被稱為桶(buckets)。選出切分點后,每個樣本都可以根據(jù)其在特征k上的取值被劃分進某一個桶。先計算好每個桶內(nèi)所有樣本的G和H并將其用于后續(xù)的計算,在計算分裂后的左右子樹的G、H值時累加的不是一個樣本的g、?,而是一個桶的G、H則精確貪心算法的內(nèi)層for循環(huán)的循環(huán)次數(shù)可由樣本集I內(nèi)樣本數(shù)減少至算法2:近似算法輸入:當(dāng)前結(jié)點的樣本集I,數(shù)據(jù)集維數(shù)(特征數(shù))d過程: gain←0,G← fork=1tod: G 按百分位數(shù)選出分位點l個分位點S G H forv=1tol: G G ifgain<1 gain← split←輸出:gain值最大的分裂點split 但在實際應(yīng)用中常有輸入數(shù)據(jù)稀疏的情況,造成這一情況的原因主要有3個。第一個原因是數(shù)據(jù)集中存在缺失值,第二個原因是在數(shù)據(jù)集中有較多值為0的數(shù)據(jù)項,第三個原因是數(shù)據(jù)可能被進行獨熱編碼。XGBoost中使用稀疏感知分裂發(fā)現(xiàn)算法(sparsity-awaresplitfinding)REF_Ref71579343\r\h解決數(shù)據(jù)稀疏導(dǎo)致的計算復(fù)雜問題。 稀疏感知分裂算法對缺失值的處理是選擇能使整棵樹Gain值最大的方案。下列偽代碼描述的算法是對精確貪心算法進行修改后適用于稀疏數(shù)據(jù)的算法,對近似算法進行類似修改同樣也是可以的。算法3:稀疏感知分裂算法輸入:當(dāng)前結(jié)點的樣本集I,數(shù)據(jù)集維數(shù)(特征數(shù))d Ik過程: gain←0,G← fork=1tod: //枚舉缺失值放在右子樹 G forjin按xjk升序的I G G ifgain<1 gain← //枚舉缺失值放在左子樹 G forjin按xjk升序的I G G ifgain<1 gain←輸出:最大gain值下的分裂點和分裂方向第3章特征工程特征工程本質(zhì)是一項工程,通過分析、歸納和總結(jié)去除原始數(shù)據(jù)中的多余和不正常的部分,選取原始數(shù)據(jù)中重要的特征,將經(jīng)過特征工程后的數(shù)據(jù)輸入算法或模型,設(shè)計更高效的特征以表現(xiàn)預(yù)測任務(wù)與模型的關(guān)系。3.1缺失值處理 對于真實的數(shù)據(jù)集,我們可能因為從機器的錯誤到人類的失誤或其他客觀原因?qū)е虏糠謹(jǐn)?shù)據(jù)的丟失,造成缺失值的發(fā)生。處理缺失值的方法對于實驗結(jié)果具有較大影響。對于缺失值,首先分析缺失值對應(yīng)的特征對研究問題是否有影響,如果缺失值對應(yīng)的特征是對研究問題沒有影響的特征則可以直接將其刪除。同時,如果一個特征的缺失值過多,可以考慮刪除該特征值。 如果缺失值對應(yīng)的特征對于研究問題有價值,且缺失值所占比例并非過高,可以根據(jù)特征的類型進行處理。如果特征屬于無序型離散變量,則可以采用one-hot編碼將此特征編碼為多個無序型離散變量。無序型離散變量是指取值非連續(xù)且變量值在數(shù)學(xué)意義上無大小之分的變量,例如國家這一特征的取值可為中國、美國、英國等等,而這些取值并無數(shù)學(xué)意義上的大小之分,故國家這一特征屬于無序型離散變量。如果特征不屬于無序型離散變量可以使用均值填充法、中位值填充法、眾數(shù)填充法、KNN(K-NearestNeighbor,K近鄰)填充法等方法進行填充。 one-hot編碼,又稱獨熱編碼,是一種處理無序離散型變量的編碼方式,采用N位狀態(tài)寄存器對N個狀態(tài)進行編碼,且值有一位有效(為1),其他位皆無效(為0)。對于基于數(shù)學(xué)原理的機器學(xué)習(xí)算法,“中國”、“美國”這樣的取值是沒有意義的,需要將其數(shù)字化。以表2-1數(shù)據(jù)集為例,數(shù)據(jù)集中有一sex字段,取值為”male”、”female”和缺失值,則該字段共有3種值,可將其使用one-hot編碼為sex_male、sex_female、sex_null三個字段。編碼后”male”對應(yīng)為sex_male有效,對應(yīng)編碼為[100];”female”對應(yīng)sex_female有效,對應(yīng)編碼為[010];缺失值對應(yīng)sex_null值有效,對應(yīng)編碼為[001]。編碼后的數(shù)據(jù)集如表2-2。表3-1未進行one-hot編碼的數(shù)據(jù)集sexsample_1malesample_2femalesample_3表3-2one-hot編碼后的的數(shù)據(jù)集sex_malesex_femalesex_nullsample_1100sample_2010sample_3001 均值填充法是指對缺失值對應(yīng)的特征,計算整個數(shù)據(jù)集中該特征除缺失值以外的所有值的平均值,用平均值填充該特征的缺失值。同理,中位數(shù)填充法及眾數(shù)填充法是使用缺失值對應(yīng)的特征除缺失值以外的所有值的中位數(shù)或眾數(shù)填充。 KNN填充法是使用基于KNN算法的一種填補缺失值的算法。KNN填充法的思想是在數(shù)據(jù)集中找到“最像”缺失數(shù)據(jù)點的k個樣本,將這k個樣本稱為缺失數(shù)據(jù)點的k最近鄰點,每個樣本的缺失值使用其k近鄰點的平均值進行插補。尋找“最像”的點,即尋找距離最近的點。最常被使用的距離是歐氏距離。設(shè)存在兩點x(x1,x2,…,xn)和y(y1,y2,…yn),則定義點x和y的歐氏距離d(x,y)為:d(x,y)=weig?t?(x1?其中weight是總坐標(biāo)(特征)數(shù)與現(xiàn)有坐標(biāo)(特征)數(shù)的比值,即 weig?t=總坐標(biāo)數(shù)現(xiàn)有坐標(biāo)數(shù)=總坐標(biāo)數(shù)總坐標(biāo)數(shù)?缺失坐標(biāo)數(shù) 設(shè)存在點A(0,0,0,1)、B(3,NA,0,NA)、C(1,2,3,4),則點A與B的歐氏距離d(A,B)和B與C的歐氏距離為d(A,B)= d(B,C)=計算得出A為B的1最近鄰點,A和C為B的2近鄰點。若k=1則用A點在點B缺失值的坐標(biāo)上的值填充B,即填充后的值為B(3,0,0,1);若k=2則使用點A和點C在點B缺失值的坐標(biāo)上的值的平均值,即填充后的值為B(3,1,0,2.5)。3.2異常值處理 異常值是指存在于數(shù)據(jù)集中的不符合常理或不正常、不符合數(shù)據(jù)規(guī)律的值。如密度為0kg/m3,脈搏為-10等都屬于異常值。識別異常值的方法有如下幾種: (1)簡單識別:例如血壓為0這類不符合常理或規(guī)則的整數(shù),可以直接被判定為是異常值。 (2)3?原則:將距離平均值3?的值,即距離平均值3倍標(biāo)準(zhǔn)差的值判定為異常值。 (3)Z-score:假定數(shù)據(jù)符合高斯分布,設(shè)置一個閾值Zthresh,設(shè)xi為數(shù)據(jù)集中某樣本在某特征的取值,對xi進行Z-score歸一化,即: zi=xi?μδ 其中μ為所以樣本在該特征上的平均值,δ為標(biāo)準(zhǔn)差。若|zi|>Zthresh,則將xi判定為異常值。對于異常值,處理方式有三種:設(shè)為缺失值,填補或不做處理。其中填補方法同缺失值的處理方法。3.3特征篩選特征篩選的方法包括殘差分析、IV值分析、ANOVA分析等。殘差分析是通過計算數(shù)據(jù)分箱內(nèi)正樣本的比例與整個數(shù)據(jù)集中正樣本的比例之差(如式3.4),分析特征對樣本標(biāo)簽的影響重要性。 residual=PositiveiTotali?在式3.4中,Positivei, IV全稱InformationValue,是信息價值、信息量的意思。IV值分析的基本思路是用IV衡量特征的預(yù)測能力。假設(shè)在一個數(shù)據(jù)集中有兩個標(biāo)簽,對于一個待預(yù)測的樣本,需要一定的信息量判斷該樣本屬于哪個分類,而這個信息量由各個特征提供。如果一個特征提供的信息越多,其信息價值越大,則該特征的IV值越大,越應(yīng)該被選擇入模。 IV值的計算基于WOE(WeightofEvidence),在數(shù)據(jù)分箱后,第i組的WOE和IV值計算公式如下: WOEi=ln(NegativeiNegative IVi=(Negativei 通常IV值大于0.2的特征代表該特征對樣本分類提供了較多信息,而小于0.005的特征則提供較少的信息。第4章數(shù)據(jù)處理、模型建立和結(jié)果分析 本文使用UCI機器學(xué)習(xí)數(shù)據(jù)庫中的早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集、Kaggle中的皮馬印第安人糖尿病數(shù)據(jù)集和來自天池GDM數(shù)據(jù)集共三個數(shù)據(jù)集。本章分別對三個數(shù)據(jù)的數(shù)據(jù)處理、模型建立和結(jié)果分析進行描述。 對不同的數(shù)據(jù)集和模型的構(gòu)建,我們使用不同的數(shù)據(jù)預(yù)處理和訓(xùn)練集測試集方案。但在所有的模型構(gòu)建中,我們都使用網(wǎng)格搜索調(diào)參法根據(jù)F1值進行調(diào)參,并使用正確率、精確率、召回率和F1值作為評價指標(biāo)。4.1評價指標(biāo)計算公式 如上文所述,本文使用正確率(accuracy)、精確率(precision)、召回率(recall)和F1值作為評價指標(biāo)。 為方便闡述這四個指標(biāo)的計算過程,此處引入混淆矩陣(confusionmatrix)。設(shè)數(shù)據(jù)集具有n個分類,則該數(shù)據(jù)集的混淆矩陣是一個n維方陣。如本文使用的三個數(shù)據(jù)集皆為二分類數(shù)據(jù)集,則其混淆矩陣為2*2的矩陣?;煜仃嚸恳恍袑?yīng)真實值不同類別的樣本數(shù)量,每一列對應(yīng)預(yù)測值不同類別的樣本數(shù)量。本文三個數(shù)據(jù)集的混淆矩陣為:表4-1混淆矩陣預(yù)測PositiveNegative真實PositiveTPFNNegativeFPTN其中TP、FP、FN、TN分別代表真陽性、假陽性、真陰性、假陰性的樣本數(shù)量。則正確率是指預(yù)測結(jié)果與真實值相同的數(shù)量占所有預(yù)測樣本數(shù)量的比例,精確率是指真陽性樣本數(shù)量占真假陽性樣本數(shù)量之和的比例,召回率是指真陽性占所有陽性的比例,F(xiàn)1值則通過精確率和召回率計算得出。四個評價指標(biāo)計算公式如下: accuracy=TP+TNTP+TN+FP+FN (4 precision=TPTP+FP (4 recall=TPTP+FN (4 F1=2?precision?recallprecision+recall (44.2早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集的相關(guān)工作 早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集是在得到醫(yī)生的批準(zhǔn)后,對孟加拉國錫爾赫特糖尿病醫(yī)院的患者使用問卷調(diào)查的方式進行收集的。對該數(shù)據(jù)集的模型構(gòu)建是一個二分類問題。該數(shù)據(jù)集具有520個樣本,每個樣本具有16個變量(特征)和1個標(biāo)簽,且沒有缺失值。數(shù)據(jù)集部分樣本如下圖圖4-1早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集部分樣本該數(shù)據(jù)集的變量(特征)描述如下表:表4-2早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集變量描述變量名變量類型取值/取值范圍Age整數(shù)型16-90Gender離散型Male/FemalePolyuria離散型Yes/NoPolydipsia離散型Yes/Nosuddenweightloss離散型Yes/Noweakness離散型Yes/NoPolyphagia離散型Yes/NoGenitalthrush離散型Yes/Novisualblurring離散型Yes/NoItching離散型Yes/NoIrritability離散型Yes/Nodelayedhealing離散型Yes/Nopartialparesis離散型Yes/Nomusclestiffness離散型Yes/NoAlopecia離散型Yes/NoObesity離散型Yes/No 對該數(shù)據(jù)集進行基本統(tǒng)計,情況如下:表4-3早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集定性變量統(tǒng)計變量名取值百分比GenderMaleFemale63.1%36.9%PolyuriaYesNo49.6%50.4%PolydipsiaYesNo44.8%55.2%suddenweightlossYesNo58.6%41.3%weaknessYesNo58.7%41.3%PolyphagiaYesNo45.6%54.4%GenitalthrushYesNo22.3%77.7%visualblurringYesNo44.8%55.2%ItchingYesNo51.3%48.7%IrritabilityYesNo24.2%75.8%delayedhealingYesNo54.0%46.0%partialparesisYesNo43.0%57.0%musclestiffnessYesNo37.5%62.5%AlopeciaYesNo34.4%65.6%ObesityYesNo16.9%83.1%ClassPositiveNegative61.5%38.5% 對數(shù)據(jù)集中的樣本按年齡分為30歲以下、31-40歲、41-50歲,51-60歲,61-70歲和70歲以上共6組,每一組分別有45、123、145、127、66、14人,每一組的糖尿病患者占比分別為33.3%、68.3%、60.0%、61.4%、74%和50%。直觀上,大于30歲的人擁有者更高的糖尿病患病率。 由表4-1可知,該數(shù)據(jù)集的變量出Age外全部為取值有2種狀態(tài)的離散型變量,非常適合使用one-hot編碼。于是對各離散型變量進行編碼,Yes對應(yīng)1,No對應(yīng)0;對標(biāo)簽Class進行編碼,Positive對應(yīng)1,Negative對應(yīng)0。編碼后,對Age使用式(4.5)進行z-score標(biāo)準(zhǔn)化,其中μ和δ分別為數(shù)據(jù)集中Age的平均值和標(biāo)準(zhǔn)差。 zi=xi?μδ 對于該數(shù)據(jù)集,我們采用了十折交叉驗證的方法,即將數(shù)據(jù)集平均分成10份,每次取其中9份作為訓(xùn)練集,1份作為測試集,重復(fù)10次將訓(xùn)練和測試步驟使每一份數(shù)據(jù)都充當(dāng)一次測試集,選用準(zhǔn)確率等評定指標(biāo),其最終結(jié)果為10次測試結(jié)果的平均值,如圖4-2所示。圖4-210折交叉驗證步驟 對于該數(shù)據(jù)集,本文首先構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型。因為該數(shù)據(jù)集為二分類問題,BP神經(jīng)網(wǎng)絡(luò)使用二分類交叉熵(binarycrossentropy)作為損失函數(shù),每層隱含層的激活函數(shù)選擇sigmoid函數(shù)。二分類交叉熵的表達(dá)式如下。 L=1Ni?[yi?log( 使用網(wǎng)格搜索調(diào)參法,固定訓(xùn)練輪數(shù)為400,得到下表:表4-4早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集神經(jīng)網(wǎng)絡(luò)模型參數(shù)初步篩選隱層層數(shù)隱層神經(jīng)元數(shù)學(xué)習(xí)率F1值1100.0050.861641100.010.770041200.0050.877831200.010.775402100.0050.901562100.010.777732200.0050.890862200.010.781683100.0050.834023100.010.784183200.0050.887243200.010.82339經(jīng)過初步嘗試篩選出表現(xiàn)較好的三組參數(shù):2層、10神經(jīng)元、0.005學(xué)習(xí)率;2層、20神經(jīng)元、0.005學(xué)習(xí)率;3層、20神經(jīng)元、0.005學(xué)習(xí)率。對其在隱層神經(jīng)元個數(shù)上進行更多的嘗試,得表4-5早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集神經(jīng)網(wǎng)絡(luò)模型進一步參數(shù)篩選隱層層數(shù)隱層神經(jīng)元數(shù)學(xué)習(xí)率F1值2300.0050.903942400.0050.891263400.0050.941683600.0050.907503800.0050.89852最終選用3層隱層,每層隱層40個神經(jīng)元,學(xué)習(xí)率設(shè)置為0.005,進行5次10折交叉驗證,對每次的結(jié)果取平均值最終得到評價指標(biāo):表4-6早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集神經(jīng)網(wǎng)絡(luò)模型評價指標(biāo)正確率精確率召回率F1值0.902560.917760.930790.92039 第二個構(gòu)建的模型是支持向量機模型。由于支持向量機是使預(yù)測的結(jié)果盡量滿足ωTx+b?yi≥1,數(shù)據(jù)集的標(biāo)簽為0時顯然不滿足,故將值為Negative的數(shù)據(jù)項修改為-1表4-7早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集SVM模型不同核的評價指標(biāo)核函數(shù)f1值線性核0.72056高斯核0.82049拉普拉斯和0.83716其中高斯核與拉普拉斯核的F1值表現(xiàn)較好且較為接近,使用該兩個核函數(shù)分別對sigma和C進行調(diào)參,得:表4-8早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集SVM模型sigma和C調(diào)參結(jié)果核函數(shù)sigmaCF1值高斯核1010.82049高斯核5010.80911高斯核10010.80821高斯核10100.80402拉普拉斯核1010.83716拉普拉斯核5010.81948拉普拉斯核10010.81744拉普拉斯核10100.81111其中使用拉普拉斯核、sigma=10、C=1時的表現(xiàn)最好,使用這組參數(shù)再進行5次10折交叉驗證,對每次的結(jié)果取平均值最終得到評價指標(biāo):表4-9早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集SVM模型評價指標(biāo)正確率精確率召回率F1值0.805771.00.717840.83032 對該數(shù)據(jù)集最后使用的是XGBoost模型。對該數(shù)據(jù)集的預(yù)測任務(wù)是一個二分類問題,是由預(yù)測出的概率進行歸類,因此在建樹時設(shè)置葉子結(jié)點的初始分?jǐn)?shù)為0.5,且在預(yù)測類別時需要將一棵樹葉子結(jié)點的輸出分?jǐn)?shù)使用sigmoid函數(shù)進行轉(zhuǎn)換。因為在編寫代碼過程中涉及損失函數(shù)的部分都可被包含一階梯度和二階梯度的表達(dá)式替代,此模型直接令一階梯度為預(yù)測的概率與真實值的誤差。因為概率是由sigmoid函數(shù)轉(zhuǎn)換而來,所以模型中的二階梯度就是對sigmoid函數(shù)求導(dǎo)。固定葉結(jié)點權(quán)重的L2正則系數(shù)為1,對建樹個數(shù)、樹深度和學(xué)習(xí)率進行嘗試,得到如下結(jié)果:表4-10早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集XGBoost模型各組參數(shù)得出的F1值樹個數(shù)樹深度學(xué)習(xí)率F1值230.40.92287530.40.92111560.30.94331560.40.929491030.40.950631060.40.947671060.50.957652060.40.949692060.50.954562060.60.94973由表可知,樹的個數(shù)和樹深度在一定范圍內(nèi)增加對模型表現(xiàn)有較為明顯的提升。但當(dāng)樹的個數(shù)過多、樹過深時,對模型的提升逐漸減少甚至降低表現(xiàn),同時回成倍地增加計算時間,資源消耗大且性價比不高。因此選擇建10棵樹、樹深度為6、學(xué)習(xí)率為0.5,計算得最終結(jié)果如下表:表4-11早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集XGBoost模型評價指標(biāo)正確率精確率召回率F1值0.963460.941480.984270.95765 綜上,在早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集中,三種模型的最佳評價指標(biāo)如下表:表4-12早期糖尿病風(fēng)險預(yù)測數(shù)據(jù)集三種模型評價指標(biāo)正確率精確率召回率F1值BP神經(jīng)網(wǎng)絡(luò)0.902560.917760.930790.92039支持向量機0.805771.00.717840.83032XGBoost0.963460.941480.984270.95765綜合以上4個指標(biāo),XGBoost模型在三種模型中表現(xiàn)最佳。4.3皮馬印第安人糖尿病數(shù)據(jù)集相關(guān)工作 皮馬印第安人糖尿病數(shù)據(jù)集(后簡稱PIDD)來自美國國立糖尿病與消化與腎臟疾病研究所,其中的樣本是從較大的數(shù)據(jù)庫中在一些條件約束下篩選出來的,都是21歲以上的皮馬印第安人女性。該數(shù)據(jù)集有768個樣本,具有8個變量和1個標(biāo)簽,沒有缺失值,存在異常值。在正常情況下,Glucose、BloodPressure、SkinThickness、Insulin、BMI等值應(yīng)是大于0的數(shù),數(shù)據(jù)集中部分樣本的這些變量存在0值,屬于異常值,對這些值進行均值填充,得到處理后的數(shù)據(jù)集變量描述如下表:表4-13PIDD變量描述變量名變量意義變量類型取值/取值范圍Preganancies懷孕次數(shù)整數(shù)型0-17Glucose口服葡萄糖測試2小時的血漿葡萄糖濃度整數(shù)型44-199BloodPressure舒張壓整數(shù)型24-122SkinThickness三頭肌皮膚褶皺厚度整數(shù)型7-99Insulin2小時血清胰島素濃度整數(shù)型14-846BMI體重指數(shù)浮點型18.2-67.1DiabetesPedigreeFunction糖尿病譜系函數(shù)浮點型0.078-2.42Age年齡整數(shù)型21-81 該數(shù)據(jù)集中沒有需要編碼的數(shù)據(jù)項。在使用均值填充法處理完異常值后使用6折交叉驗證法劃分訓(xùn)練集和測試集。6折交叉驗證法與前一節(jié)介紹的10折交叉驗證法相近。對訓(xùn)練集和測試集的非標(biāo)簽部分進行z-score標(biāo)準(zhǔn)化后即用于輸入模型,最后使用F1值評價模型。 首先使用的仍然是BP神經(jīng)網(wǎng)絡(luò)模型。與前一節(jié)的神經(jīng)網(wǎng)絡(luò)模型相同,該模型使用二分類交叉熵作為損失函數(shù),每層隱含層的激活函數(shù)選擇sigmoid函數(shù)。通過初步參數(shù)篩選得到部分?jǐn)?shù)據(jù)下表:表4-14PIDDBP神經(jīng)網(wǎng)絡(luò)模型參數(shù)初步篩選隱層層數(shù)隱層神經(jīng)元數(shù)學(xué)習(xí)率F1值1100.0050.685931100.010.728801200.0050.687681200.010.714082100.0050.550312100.010.718102200.0050.623892200.010.70143 在初步篩選時,發(fā)現(xiàn)在隱層層數(shù)和神經(jīng)元增多時,0.005和0.01的學(xué)習(xí)率讓模型在訓(xùn)練迭代過程中損失函數(shù)降低過慢,即學(xué)習(xí)速度過慢。因此在第二輪調(diào)參時放大學(xué)習(xí)率增加的步長,得到如下表結(jié)果表4-15PIDDBP神經(jīng)網(wǎng)絡(luò)模型第二輪調(diào)參結(jié)果隱層層數(shù)隱層神經(jīng)元數(shù)學(xué)習(xí)率F1值2400.050.766702400.10.773162400.20.753682500.050.757972500.10.773682500.20.740372500.20.740373400.050.760553400.10.777883400.20.762633500.050.763313500.10.776403500.20.76221 由表可知隱層層數(shù)和隱層神經(jīng)元數(shù)的增加在到達(dá)一定程度后對模型的提升幫助有限,而學(xué)習(xí)率的過度提升會使模型對數(shù)據(jù)過度學(xué)習(xí)產(chǎn)生過擬合。因此選用3層隱層、每個隱層40個神經(jīng)元、0.1學(xué)習(xí)率這組參數(shù),得到BP神經(jīng)網(wǎng)絡(luò)模型在這個數(shù)據(jù)集中最佳評價指標(biāo):表4-16PIDDBP神經(jīng)網(wǎng)絡(luò)模型最佳評價指標(biāo)正確率精確率召回率F1值0.843750.777980.779440.77788 第二個構(gòu)建的模型是支持向量機模型。對BP神經(jīng)網(wǎng)絡(luò)模型中處理過的數(shù)據(jù)集,將標(biāo)簽為0的數(shù)據(jù)項修改為-1即可用于支持向量機模型。在固定sigma=10、C=1的條件下分別嘗試線性核、高斯核和拉普拉斯核得到下表數(shù)據(jù):表4-17PIDDSVM模型不同核的評價指標(biāo)核函數(shù)f1值線性核0.28708高斯核0.73296拉普拉斯和0.72172其中使用線性核的表現(xiàn)較差,說明該數(shù)據(jù)集并非線性可分,故在后續(xù)工作中舍棄線性核。使用高斯核與拉普拉斯核調(diào)整sigma和C進行第二輪調(diào)參得:表4-18PIDDSVM模型sigma和C調(diào)參結(jié)果核函數(shù)CsigmaF1值高斯核0.1100.72470高斯核1100.73296高斯核10100.71824高斯核1500.73930高斯核11000.73811拉普拉斯核0.1100.73037拉普拉斯核1100.72172拉普拉斯核10100.69681拉普拉斯核0.1500.70962拉普拉斯核0.11000.72013其中使用高斯核、sigma=50、C=1時的表現(xiàn)最好,使用這組參數(shù)再進行5次10折交叉驗證,對每次的結(jié)果取平均值最終得到評價指標(biāo):表4-19PIDDSVM模型評價指標(biāo)正確率精確率召回率F1值0.787100.648660.861540.73944 最后使用的模型是XGBoost模型。在建樹時設(shè)置葉子結(jié)點的初始分?jǐn)?shù)為0.5,預(yù)測類別時使用sigmoid函數(shù)轉(zhuǎn)換一棵樹葉子結(jié)點的輸出分?jǐn)?shù)。令一階梯度為預(yù)測的概率與真實值的誤差,二階梯度為sigmoid函數(shù)的一階導(dǎo)數(shù),這些設(shè)置都與前一節(jié)的XGBoost模型相同,固定葉結(jié)點權(quán)重的L2正則系數(shù)為1,對建樹個數(shù)、樹深度和學(xué)習(xí)率進行嘗試,得到如下結(jié)果:表4-20PIDDXGBoost模型參數(shù)初步篩選樹個數(shù)樹深度學(xué)習(xí)率F1值230.20.81111230.30.81540230.40.79915530.20.81325530.30.82037530.40.81856560.40.811732060.60.94973由表可知,在一定范圍內(nèi)樹的增加會提升模型的表現(xiàn)。而本數(shù)據(jù)集只有8個變量,樹深度設(shè)置過多(即選擇過多個特征進行分裂)不僅增加時間成本,還會降低模型的表現(xiàn)。因此在第二輪調(diào)參過程中樹深度被固定為3,在一定范圍內(nèi)嘗試增加樹的個數(shù)、調(diào)整學(xué)習(xí)率。第二輪調(diào)參結(jié)果如下表:表4-20PIDDXGBoost模型參數(shù)初步篩選樹個數(shù)樹深度學(xué)習(xí)率F1值1030.20.838391030.30.824711530.20.830461530.30.82388因此選擇建10棵樹、樹深度為3、學(xué)習(xí)率為0.2,計算得最終結(jié)果如下表:表4-21PIDDXGBoost模型評價指標(biāo)正確率精確率召回率F1值0.889320.861110.818050.83839綜上得三種模型在皮馬印第安人糖尿病數(shù)據(jù)集上的最佳評價指標(biāo):表4-22PIDD三種模型評價指標(biāo)正確率精確率召回率F1值BP神經(jīng)網(wǎng)絡(luò)0.843750.777980.779440.77788支持向量機0.787100.648660.861540.73944XGBoost0.889320.861110.818050.83839由此可見,在該數(shù)據(jù)集匯中XGBoost效果仍是最好的。4.4天池精準(zhǔn)醫(yī)療大賽妊娠期糖尿病數(shù)據(jù)集相關(guān)工作 妊娠糖尿病(GDM)是指女性在妊娠后才發(fā)生的糖尿病。妊娠糖尿病有很多危害,可能提高胎兒發(fā)生先天畸形和多種并發(fā)癥的幾率,而且有可能轉(zhuǎn)換為2型糖尿病。天池精準(zhǔn)醫(yī)療大賽妊娠期糖尿病數(shù)據(jù)集(下文簡稱GDM數(shù)據(jù)集)由青梧桐公司提供,根據(jù)女性孕婦孕前、孕中、孕后體檢信息和通過孕期基因檢測信息預(yù)測受檢者是否患有GDM。 該數(shù)據(jù)集是一個1000樣本、維度為83(具有83個特征)的高維度小樣本量數(shù)據(jù)集,基于該數(shù)據(jù)集的預(yù)測任務(wù)是二分類問題。該數(shù)據(jù)集數(shù)據(jù)類型復(fù)雜,既有連續(xù)型變量也有離散型變量,還存在著大量的缺失值,是本文研究的三個數(shù)據(jù)集中最復(fù)雜的一個,也更符合目前醫(yī)療領(lǐng)域數(shù)據(jù)質(zhì)量差、數(shù)據(jù)量少的現(xiàn)狀。 在刪除id這個對于預(yù)測結(jié)果沒有影響的變量后,描述數(shù)據(jù)集的變量如表4-23,其中離散型變量和整數(shù)型變量在嚴(yán)格意義上都屬于離散型變量,此處離散型變量指的是取值無數(shù)學(xué)大小意義的低基數(shù)離散變量,整數(shù)型變量指的是取值具有數(shù)學(xué)大小意義的變量。表4-23GDM數(shù)據(jù)集變量描述變量名變量類型取值/取值范圍SNP1、SNP2、…、SNP55離散型1、2、3RBP4連續(xù)型4.12-62.13年齡整數(shù)型17-48孕次整數(shù)型1-7產(chǎn)次整數(shù)型1-3身高整數(shù)型140-178孕前體重整數(shù)型36-95BMI分類離散型0、1、2孕前BMI連續(xù)型14.98439126-34.62603878收縮壓整數(shù)型78-170舒張壓整數(shù)型46-101分娩時連續(xù)型52.5-104.5糖篩孕周連續(xù)型5.57-36VAR00007連續(xù)型1.193922-1.960095wbc連續(xù)型3.2-20.69ALT整數(shù)型3-455AST整數(shù)型11-77Cr連續(xù)型35.4-91BUN連續(xù)型1.17-8.21CHO連續(xù)型2.04-46.49TG連續(xù)型0.43-9.08HDLC連續(xù)型0.7-32LDLC連續(xù)型1-8.31ApoA1連續(xù)型0.85-27.8ApoB連續(xù)型0.15-214Lpa連續(xù)型2.87-2289hsCRP連續(xù)型2.87-2289DM家族史離散型1、2、3ACEID離散型1、2、3 GMD數(shù)據(jù)集包含469個正類樣本和531個負(fù)類樣本,比例接近1:1。統(tǒng)計GDM數(shù)據(jù)集各特征存在缺失值的樣本數(shù)量,并將其可視化得到下列結(jié)果:圖4-3GDM數(shù)據(jù)集缺失值數(shù)量-1圖4-4GDM數(shù)據(jù)集缺失值數(shù)量-2圖4-5GDM數(shù)據(jù)集缺失值數(shù)量-3圖4-6GDM數(shù)據(jù)集缺失值數(shù)量-4圖4-7GDM數(shù)據(jù)集缺失值數(shù)量-5 為了更好研究該數(shù)據(jù)集,本文使用了多種方案處理該數(shù)據(jù)集,并對每種方案使用不同的算法構(gòu)建模型。鑒于在前兩個數(shù)據(jù)集中,神經(jīng)網(wǎng)絡(luò)模型和XGBoost模型明顯好于SVM模型,此數(shù)據(jù)集的研究舍棄了SVM算法?,F(xiàn)按不同思路描述處理方案并展示預(yù)測結(jié)果。 在本節(jié)的研究工作中,神經(jīng)網(wǎng)絡(luò)模型借助Keras框架構(gòu)建,XGBoost模型的構(gòu)建使用官方XGBoost包。神經(jīng)網(wǎng)絡(luò)模型使用Keras內(nèi)置的隨機梯度下降(SGD)優(yōu)化器,在該優(yōu)化器中內(nèi)置有基于訓(xùn)練輪數(shù)(epoch)的學(xué)習(xí)率調(diào)整表,并依賴優(yōu)化器中的衰減系數(shù)decay參數(shù)基于以下公式調(diào)整學(xué)習(xí)率: LearningRate=LearningRate1+decay?epoc? (4其中本文將decay設(shè)置為0.01。在前兩種思路下的方案中,根據(jù)Kolmogorov定理,隱層神經(jīng)元個數(shù)被設(shè)置為2*數(shù)據(jù)集維度+1。因為該數(shù)據(jù)集的研究是二分類任務(wù),此處設(shè)置神經(jīng)網(wǎng)絡(luò)模型的損失函數(shù)為二分類交叉熵,輸出層的激活函數(shù)為sigmoid函數(shù)。 而本節(jié)研究工作中的XGBoost模型也固定了部分參數(shù),gamma設(shè)置為0,損失函數(shù)使用二分類的邏輯回歸,在XGBoost包中對應(yīng)binary:logistic。 第一種思路是保留所有的特征,不對離散型變量編碼,離散型變量的缺失值使用-1填充。在這種思路下,對整數(shù)型變量(如身高等)和連續(xù)型變量嘗試不同的缺失值填充方式,方案1使用均值填充法,方案2使用KNN填充法。 在方案1和方案2中嘗試神經(jīng)網(wǎng)絡(luò)模型和XGBoost模型,使用網(wǎng)格搜索調(diào)參法尋找最優(yōu)參數(shù)。經(jīng)過調(diào)試,得到神經(jīng)網(wǎng)絡(luò)模型最優(yōu)參數(shù)為3層隱含層、隱層激活函數(shù)為ReLU函數(shù)、訓(xùn)練輪數(shù)2、初始學(xué)習(xí)率0.18;XGBoost模型在方案1中最優(yōu)參數(shù)為0.3學(xué)習(xí)率、建立10棵樹、樹深度為6,在方案2中最優(yōu)參數(shù)為0.3學(xué)習(xí)率、建立12棵樹、樹深度為6。下表為兩種模型的最佳F1值。表4-24GDM數(shù)據(jù)集第一種數(shù)據(jù)處理思路下的最佳F1值神經(jīng)網(wǎng)絡(luò)模型XGBoost模型方案10.708330.70857方案20.717170.69663 第二種思路是保留所有的特征,對離散型變量進行one-hot編碼,則離散型變量在編碼后不存在缺失值,只需要填充整數(shù)型變量和連續(xù)型變量。方案3在對離散型變量編碼后對“孕次、產(chǎn)次”也進行編碼,再對其他的變量使用均值填充;方案4則是對“孕次”、“產(chǎn)次”這兩個變量使用眾數(shù)填充,其他使用均值填充。因為保留所有特征并進行編碼將數(shù)據(jù)集的維度提升了很多,神經(jīng)網(wǎng)絡(luò)模型在這個思路下會因為損失函數(shù)過大無法學(xué)習(xí),所以在這個思路中我們僅使用XGBoost模型。 方案3、4中最優(yōu)參數(shù)分別為:0.3學(xué)習(xí)率、建立100棵樹、樹深度為15;0.3學(xué)習(xí)率、建立1000棵樹、樹深度為5,最佳F1值如下表:表4-25GDM數(shù)據(jù)集第二種數(shù)據(jù)處理思路下的最佳F1值XGBoost模型方案30.69047方案40.71823 第三種思路則是在對離散型變量one-hot編碼,對剩余的變量進行填充后使用IV值分析特征并篩選價值較低的變量。本文在計算時對編碼后的變量本別分別計算IV值并計算這些變量對應(yīng)的未編碼變量的總IV值,如計算SNP34的總IV值是通過將SNP34_1、SNP34_2、SNP34_3和SNP34_null的IV值取絕對值后相加;對高基數(shù)離散變量和連續(xù)型變量采用等頻分箱的方法將數(shù)據(jù)分為4組計算出IV值。在計算出各特種的IV值后,剔除了IV值小于0.05的特征(非編碼后的變量),留下了26個特征。這樣大幅降低了數(shù)據(jù)集維度,減少了計算難度,也避免了神經(jīng)網(wǎng)絡(luò)模型損失函數(shù)過大無法訓(xùn)練的問題。下表為部分特征的IV值。表4-26GDM數(shù)據(jù)集部分特征IV值原特征特征分箱分箱IV值總IV值SNP34SNP34_null0.0078440.34008SNP34_10.139539SNP34_20.182673SNP34_30.010023SNP37SNP37_null0.0407510.333807SNP37_10.0000199SNP37_20.09059SNP37_30.202446TGTG_1-0.042470.137338TG_2-0.02275TG_30.006201TG_40.059023VAR00007VAR00007_1-0.068240.275088VAR00007_2-0.05849VAR00007_3-0.01498VAR00007_40.141708 對處理后的數(shù)據(jù)集分別使用神經(jīng)網(wǎng)絡(luò)模型和XGBoost模型使用網(wǎng)格搜索調(diào)參法尋找最優(yōu)參數(shù),調(diào)參結(jié)果如下所示:圖4-8神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)率對預(yù)測結(jié)果的影響圖4-9神經(jīng)網(wǎng)絡(luò)模型隱層神經(jīng)元個數(shù)對預(yù)測結(jié)果的影響圖4-10XGBoost模型學(xué)習(xí)率對預(yù)測結(jié)果的影響圖4-11樹的個數(shù)對預(yù)測結(jié)果的影響 神經(jīng)網(wǎng)絡(luò)模型在方案5下最優(yōu)參數(shù)為訓(xùn)練2輪、學(xué)習(xí)率0.14、3層隱層、隱層神經(jīng)元個數(shù)130,最佳F1值為0.71770。XGBoost模型在方案5下最優(yōu)參數(shù)為建立70棵樹、樹深度為10、學(xué)習(xí)率為0.16、最佳F1值為0.72131。 綜上神經(jīng)網(wǎng)絡(luò)模型和XGBoost模型在該數(shù)據(jù)集下的表現(xiàn)為:表4-26GDM數(shù)據(jù)集第一種數(shù)據(jù)處理思路下的最佳F1值神經(jīng)網(wǎng)絡(luò)模型XGBoost模型方案10.708330.70857方案20.717170.69663方案3\0.69047方案4\0.71823方案50.717700.72131附錄附錄第5章結(jié)論與展望5.1結(jié)論 數(shù)據(jù)本身決定了機器學(xué)習(xí)的上限,而優(yōu)秀的算法和模型能使預(yù)測結(jié)果更加逼近這一上限
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土地租賃與使用權(quán)置換協(xié)議3篇
- 校企攜手2025年度共建紡織工藝培訓(xùn)基地合同3篇
- 二零二五年度文化藝術(shù)展覽場地臨時使用協(xié)議書3篇
- 2025版建筑工程碎石料采購與安全管理合同3篇
- 2025年度個人教育培訓(xùn)機構(gòu)投資合同書(教育連鎖版)4篇
- 二零二五年深海油氣資源開發(fā)電焊工勞務(wù)分包協(xié)議3篇
- 囧媽觀后感15篇
- 個人出租車的對外承包協(xié)議書 3篇
- 二零二五版淋浴房環(huán)保材料生產(chǎn)與應(yīng)用合同3篇
- 二零二五年度城市道路施工監(jiān)理合同標(biāo)準(zhǔn)版4篇
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 2024年城市軌道交通設(shè)備維保及安全檢查合同3篇
- 【教案】+同一直線上二力的合成(教學(xué)設(shè)計)(人教版2024)八年級物理下冊
- 湖北省武漢市青山區(qū)2023-2024學(xué)年七年級上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試卷(含解析)
- 單位往個人轉(zhuǎn)賬的合同(2篇)
- 科研倫理審查與違規(guī)處理考核試卷
- GB/T 44101-2024中國式摔跤課程學(xué)生運動能力測評規(guī)范
- 高危妊娠的評估和護理
- 2024年山東鐵投集團招聘筆試參考題庫含答案解析
- 兒童10歲生日-百日宴-滿月酒生日會成長相冊展示(共二篇)
- 2023年高考全國甲卷數(shù)學(xué)(理)試卷【含答案】
評論
0/150
提交評論