首頁 資訊 基于sklearn隨機森林算法探究肥胖的成因(一)

基于sklearn隨機森林算法探究肥胖的成因(一)

來源:泰然健康網(wǎng) 時間:2024年11月27日 00:09

2022-12-31 677 發(fā)布于黑龍江

版權

舉報

版權聲明:

本文內容由阿里云實名注冊用戶自發(fā)貢獻,版權歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權,亦不承擔相應法律責任。具體規(guī)則請查看《 阿里云開發(fā)者社區(qū)用戶服務協(xié)議》和 《阿里云開發(fā)者社區(qū)知識產權保護指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內容,填寫 侵權投訴表單進行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權內容。

項目背景

       我們所經(jīng)歷的全球化進程帶來了一系列變化,因為社會、政治、經(jīng)濟和文化進程錯綜復雜地交織在一起,改變了習俗和習慣,特別是我們的生活方式。這導致與食物過度消費有關的疾病大量增加。肥胖就是一個明顯的例子,它越來越常見,因為越來越多的低營養(yǎng)和熱量食物被攝入,而且由于交通工具的多種選擇以及新的工作和娛樂形式,沒有進行必要的體育活動。

       世界衛(wèi)生組織將肥胖和超重描述為在某些身體部位過度積累脂肪,可能對健康有害。自1980年以來,患肥胖癥的人數(shù)翻了一番,2014年,超過19億18歲或以上的成年人體重發(fā)生變化。超重的一些原因是高脂肪高能量食物的攝入量增加,以及由于久坐工作的性質、新的交通方式和日益城市化而導致的體力活動減少。

       肥胖可以被認為是一種具有多種因素的疾病,其癥狀是體重不受控制地增加,原因是脂肪攝入過多和能量消耗。肥胖可以由遺傳背景等生物危險因素引起,因此可以有幾種肥胖類型:單基因、瘦素、多基因和綜合征。此外,還有其他風險因素,如社會、心理和飲食習慣。另一方面,有人提出了肥胖的其他決定因素,如“獨生子女、離婚等家庭沖突、抑郁和焦慮”。

       肥胖的發(fā)展需要遺傳易患這種疾病和暴露于不利環(huán)境條件的綜合影響。遺傳因素決定著組織脂肪形式能量積累的能力或容易程度,而熱量形式能量釋放的能力或容易程度較低,這意味著肥胖的能源效率較高。產生這種情況的原因是,從長遠來看,個人的能源支出低于他所投入的能源,即存在積極的能源平衡。遺傳影響與惡劣的飲食習慣和定居生活方式等外部條件有關。

       肥胖是一個被稱為"世紀流行病"的公共衛(wèi)生問題,并且根據(jù)世界衛(wèi)生組織的數(shù)據(jù)表明肥胖的人數(shù)持續(xù)增加。肥胖這個問題以前與工業(yè)化國家有關,但在發(fā)展中國家,特別是在城市地區(qū),超重和肥胖現(xiàn)象明顯增加。比如,在墨西哥,這是最常見的代謝疾病,作為世界上最肥胖的國家,瘧疾流行率從2000年的59.7%上升到2006年的66.7%,對發(fā)病率和死亡率居首位的疾病的發(fā)展構成了重大風險。成癮的風險與患糖尿病、高血壓、肺和心血管疾病等慢性疾病的高發(fā)病率有關,也是發(fā)展各種癌癥的高風險因素。它還影響到個人的心理領域,降低了受影響者的自尊,影響到他們的社會關系。因此,這一問題的嚴重程度是顯而易見的,而且由于肥胖不分年齡、性別、種族或社會經(jīng)濟地位影響到任何人,情況變得更加令人擔憂。

       肥胖是一個全球性的公共健康問題,它可以在成人、青少年和兒童中出現(xiàn)。同時,注意到兒童肥胖是成年人肥胖的一個危險因素這一令人震驚的事實,從生命的早期階段就預防和控制肥胖至關重要,也必須考慮到兒童體重的增加必須是漸進的。由于城市化、經(jīng)濟和技術發(fā)展帶來的生活方式不斷變化,兒童受到影響,導致肥胖兒童人數(shù)增加,因此,很多研究集中在對兒童肥胖問題的上。

       本文使用UCI中一項關于人們飲食習慣和身體狀況調查的數(shù)據(jù)集,分別通過決策樹、隨機森林、GBDT算法對數(shù)據(jù)進行處理,擬在尋找肥胖的成因。算法通過對15種影響因子進行多標簽分類獲取各影響因子與肥胖程度之間的權值,最終獲取肥胖評估模型。人們可以通過評估模型就自己目前的生活習慣和身體狀況來對未來的肥胖程度進行評估,并根據(jù)評估結果尋求解決肥胖問題的合理方式。

數(shù)據(jù)介紹

數(shù)據(jù)來源

       該數(shù)據(jù)集來自于UCL機器學習知識庫,數(shù)據(jù)集包括墨西哥、秘魯和哥倫比亞等國基于飲食習慣和身體狀況的個體肥胖水平估計數(shù)據(jù)。數(shù)據(jù)包含17個屬性和2111條記錄,這些記錄標有類變量肥胖等級,允許使用體重不足、正常體重、超重一級、超重二級、肥胖一級、肥胖二級和肥胖三級的值對數(shù)據(jù)進行分類。77%的數(shù)據(jù)是使用Weka工具和SMOTE過濾器綜合生成的,23%的數(shù)據(jù)是通過網(wǎng)絡平臺直接從用戶那里收集的。這些數(shù)據(jù)可用于生成智能計算工具,以識別個人的肥胖水平,并構建監(jiān)控肥胖水平的推薦系統(tǒng)。部分原始數(shù)據(jù)如圖 。

屬性介紹

數(shù)據(jù)共包括17個屬性,下面對各屬性進行說明,如表 :

       Gender、Age、Family_history_with_overweight、FAVC、FCVC、NCP、CAEC、SMOKE、CH2O、CALC、SCC、FAF、TUE為特征, Height、Weight作為兩個使用如下公式計算體重指數(shù)(MBI)的特征,NObeyesdad作為標簽,計算出每個個體的體重指數(shù)后,為了確定肥胖水平,我們使用了世界衛(wèi)生組織提供的表 2,對基于體重指數(shù)分析的數(shù)據(jù)進行了正確分類,得出每個個體的肥胖等級。

                                               Mass body index=WeightHeight*Height                                             (2.1)

表 2 體重指數(shù)分類表

算法介紹

隨機森林算法

       傳統(tǒng)的機器學習分類方法就是根據(jù)現(xiàn)有的數(shù)據(jù)資料和分析成果進行建模,探索出規(guī)律并能對新的數(shù)據(jù)進行分類預測的技術,目前主要的算法非常多,有決策樹(decision tree,DT,包含 ID3 算法、C4.5 算法、CART 算法等)、神經(jīng)網(wǎng)絡、支持向量機(support vector machine,SVM)和隨機森林(random forest,RF)等。隨機森林在二十一世紀初被提出,能解決過擬合的問題,它的基分類器是決策樹,通過 bagging 抽樣的方式生成多棵決策樹,結果由多棵決策樹共同決定,因此分類效果要好于傳統(tǒng)的分類算法。它是一種自然的非線性建模工具,要理解這個算法必須先理解決策樹的概念。

決策樹

決策樹是一種非??焖俚姆诸惸P?,是最為經(jīng)典的分類算法之一,不需要進行先驗假設,也不需要對特征值進行歸一化或標準化處理,算法規(guī)則簡單直觀易于理解。

       決策樹算法具體是根據(jù)某種分割規(guī)則,將根節(jié)點按設定的閾值,分為兩個子節(jié)點,并在子節(jié)點重復這個步驟,直到得出類別結果。若是將這個過程用流程圖形式顯示,就類似于一個二叉樹,如圖 2所示,N0是根節(jié)點,沒有入邊但有零或兩條出邊(edge),指向兩個內節(jié)點(internal node),即Ni(2,3,4);內節(jié)點有一條入邊、兩條出邊,出邊指向終節(jié)點(terminal node),即最終的分類結果Cr。

圖 2 決策樹結構圖

決策樹的構建原理大致為給定一個樣本集D={ω1,……,ωn } ,根據(jù)概率分布 P 從空間 Ω 抽取 N 個獨立樣本,尋找一個分類樹Tr 使得誤分率函數(shù)Rp達到最小。決策樹中,根節(jié)點和內節(jié)點都有一個屬性條件Xt,Xt∈{X1,,。。。,Xm},用來分割不同分類結果的記錄,因此稱其為分割變量。所以,分類決策樹最重要的問題就是如何選擇最佳分割特征。決策樹中用來篩選特征的常用的算法有 1979 年提出的 ID3 算法、1984 年提出的 CART 算法和 1993 年提出的 C4.5算法,其中 CART 最為常見。

此處需要引入增益的概念,即父節(jié)點和子節(jié)點間不純度的差。CART 遍歷自變量的所有可能值,來得到使得不純度增益?t(t) 最大時的點作為最佳分割點。決策樹的分類實質上就是選擇最大化增益,即最小化不純性度量的加權平均值?,F(xiàn)在設父節(jié)點、左子節(jié)點、右子節(jié)點分別為:tp、tl、tr ,分別來解釋現(xiàn)在常用的三種度量方法:CART 中的 Gini 指數(shù)法、ID3 中的信息增益法和C4.5中的增益比率法。

1. Gini指數(shù)法

Gini 指數(shù)是使用最廣泛的一種分割方式,CART 使用的就是此方法,其不純度i(t) 見(2.2)式:

i(t)=1-j=1J{p(j∣t)}2                                      

在上式中,J表示分類總數(shù),p(j/t)表示在節(jié)點t中,屬于j類的條件概率,對樣本而言,表示第j類樣本的占比。由此可以得到不純度增益?i(t)  ,如式所示:

Δi(t)=-j=1Jp2(j∣tp)+PLj=1Jp2(j∣tp)+PRj=1Jp2(j∣tp)                    

Gini 指數(shù)所指的最優(yōu)分割就是要求式(2.4)達到最大時的分割:

arg?maxxj≤Xj2,j-1…M[-j=1Jp2(j∣tp)+PLj=1Jp2(j∣tp)+PRj=1Jp2(j∣tp)]            

2. 信息增益法(information gain)

該方法的思想就是用盡量少的東西得到更多結果。首先計算每個特征的信息增益,選擇最高的一個來做分裂節(jié)點。利用熵值(entropy)來度量不純度函數(shù)i(t),如式(2.5)所示。

i(t)= entropy (T)=-i=1Jln?p(i∣T)                         (2.5)

父子節(jié)點熵值的差即為信息增益,如式(2.6)所示:

   Δi(t)=IG(T,X,Q)= entropy (T)-j=1nln?P[qj(X)∣T]* entropy (Tj)        (2.6)

3. 增益比率法(gain ratio)

方法是信息增益的改進,可以抵消因較大定義域的分類變量引起的誤差,信息增益率如(2.7)式所示:

GR(T,X,Q)=IG(T,X,Q)j=1Dm(X)ln?P[X=xj∣T]                               (2.7)

       總體而言,決策樹采用一種自上而下的分類策略,通過遞歸的方式遍歷數(shù)據(jù)集的特征屬性,并在每個節(jié)點選取分類性能最佳的屬性進行分割,直到得到一個最佳的決策樹模型。這個過程需要將數(shù)據(jù)集劃分為訓練集和測試集,對訓練集用 CART 算法進行建模,得到分類規(guī)則,再用測試集對分類規(guī)則的性能進行評估,評估通過就可以對未知類型的數(shù)據(jù)進行分類預測。方法是信息增益的改進,可以抵消因較大定義域的分類變量引起的誤差,信息增益率如(2.7)式所示。

       決策樹算法雖然簡單好用,但存在著一些缺陷,主要有:(1)隨著節(jié)點越來越多,樹越來越深,某些葉子節(jié)點的記錄會過少,得不出具有統(tǒng)計意義的規(guī)則;(2)子樹可能重復出現(xiàn)過多次,使得決策樹冗余又復雜,此時訓練誤差減小,但是測試誤差開始增大,這就是典型的訓練過度,造成模型過擬合。

       要解決決策樹的過擬合問題,研究學者們想出了許多種方案,如:(1)先剪枝法,在完全擬合訓練集的全增長樹形成時,提前結束決策樹的生長,但是實際操作過程中很難確定停止的閾值;(2)后剪枝法,允許決策樹過度擬合,最后將置信度過小的節(jié)點子樹用葉子節(jié)點代替,但是這種方法產生了過多的額外開銷。因此,在 1996 年,算法工程師們提出了隨機森林方法,將決策樹作為基分類器,同時引入了隨機抽樣和隨機選取特征這兩次隨機過程,生成多棵決策樹,以少數(shù)服從多數(shù)的方式來決定最終樣本類型。隨機森林不僅很好的規(guī)避了過擬合問題,還大大提升了分類精度。

隨機森林定義

       隨機森林(Random Forest,RF),顧名思義就是將多棵相互之間并無關聯(lián)的決策樹整合起來形成一個森林,再通過各棵樹投票或取均值來產生最終結果的分類器。在介紹隨機森林前需要了解幾個概念:Bootstrap 自助抽樣法、Bagging 套袋法和 Boosting 提升法。

       Bootstrap 是一種抽樣方法,即采取隨機有放回的方式采樣數(shù)據(jù),也就是每次抽取一個樣本,再將其放回樣本集中,下次還有可能抽到這個樣本;而每輪中未抽到的數(shù)據(jù)組合起來,形成袋外數(shù)據(jù)集(Out of Band, OOB),用來在模型中做測試集。Bangging 和 Boosting 都是一種集成學習的方法,但兩者有一些區(qū)別。Bagging 算法使用 Bootstrap 方法從原始樣本集中隨機不一定有放回的抽取n個樣本,共抽取k輪,得到k個獨立的訓練集,元素可能有重復。每個訓練集訓練一個模型,得到k個結果,分類問題則從結果中取多數(shù)值作為最終結果,回歸問題則取平均值作為最終結果。Boosting 則是對每個訓練樣本設立一個權值,被錯分的樣本在下一輪分類中會有更大的權值,也就是說,每輪樣本相同但樣本權重不同;對于分類器來說,分類誤差小的擁有更大權值,分類誤差大的相應權值更小。

       隨機森林采取的就是 bagging 方法,它將決策樹用作 bagging 后的子分類模型。首先,對原始數(shù)據(jù)集使用 bootstrap 隨機抽樣的方法生成多個子訓練集和相應的測試集,每個子訓練集都構造一顆獨立的決策樹。其次,在構造決策樹時,隨機森林并不是在所有特征中找到性能最佳的特征進行分類,而是隨機抽取一部分特征,在抽到的特征中間找到最優(yōu)解應用于樹節(jié)點進行分裂,這也是隨機森林中兩個關鍵隨機步驟。最后由每個決策樹投票產生最終的分類結果。隨機森林由于有了 bagging,也就是集成的思想在,實際上相當于對樣本和特征都進行了隨機采樣,所以可以避免過擬合。Bagging 策略過程如圖3(a)所示,隨機森林過程如圖3(b)所示。

圖 3 隨機森林結構示意圖

隨機森林構建過程

隨機森林的構建過程用文字表述大致如下:假設原始樣本集 D(X,Y),樣本個數(shù) n,要建立 k 棵樹。

1) 抽取樣本集:從原始訓練集中隨機有放回地抽取n個樣本(子訓練集)并重復n次,每一個樣本被抽中的概率均為1/n。被剩下的樣本組成袋外數(shù)據(jù)集(OOB),作為最終的測試集。

2) 抽取特征:從總數(shù)為 M 的特征集合中隨意抽取m個組成特征子集,其中m<M。

3) 特征選擇:計算節(jié)點數(shù)據(jù)集中每個特征對該數(shù)據(jù)集的基尼指數(shù),選擇基尼指數(shù)最小的特征及其對應的切分點作為最優(yōu)特征與最優(yōu)切分點(一般方法有 ID3、CART 和信息增益率),從節(jié)點生成兩個子節(jié)點,將剩余訓練數(shù)據(jù)分配到兩個子節(jié)點中。

4) 生成 CART 決策樹:在每個子節(jié)點的樣本子集中重復執(zhí)行3)步驟,遞歸地進行節(jié)點分割,直到生成所有葉節(jié)點。

5) 隨機森林:重復執(zhí)行(2)~(4),得到k棵不同的決策樹。

6) 測試數(shù)據(jù):每一棵決策樹都對測試集中的每一條數(shù)據(jù)進行分類,統(tǒng)計 k 個分類結果,票數(shù)最多的類別,即為該樣本的最終類別。

隨機森林算法評價

隨機森林相比于傳統(tǒng)的分類算法在分類進度上要更進一步,其次,在其他方面也有著不小的優(yōu)勢:

1)隨機森林通過抽取不同的訓練集以及隨機抽取特征進行訓練的方式,來達到增加分類模型間差異的目的,最終結果由彼此之間并無相關性的多棵決策樹共同決定,可以很好地避免決策樹分類中的過擬合問題。并且計算精度較決策樹有很大提升。

2)Bagging方法產生的袋外數(shù)據(jù)集OOB可以用來做測試集,也可以做OOB估計計算出單個變量的重要程度,以此來測算模型的泛化誤差。

3)隨機森林一般采用 CART 作為分割特征方法,因此,隨機森林可以靈活地處理連續(xù)變量或離散變量,同時不需要對變量值做歸一化,大大減少了數(shù)據(jù)處理的步驟。

4)隨機抽取樣本和隨機選取特征值是隨機森林算法最大的特征之一,因此,算法能很好地容忍異常值和缺失值,避免個別差值對模型造成過大影響。

5)隨機森林算法在訓練過程中產生的多棵決策樹之間并無關聯(lián)性,因此算法非常適合在并行環(huán)境下運行,加入并行計算框架可以大大減少大體量數(shù)據(jù)集的訓練時間。

盡管隨機森林優(yōu)勢如此明顯,但是該算法在特殊的應用場景下仍然有一些劣勢,如醫(yī)學數(shù)據(jù)、基金信貸數(shù)據(jù)等,這類數(shù)據(jù)有兩個很大的特點:特征非常多且易缺失、不同種類數(shù)據(jù)量相差懸殊。第一,算法的分類思想是少數(shù)服從多數(shù),因此在面對類別樣本數(shù)相差懸殊的數(shù)據(jù)集時,容易將少數(shù)類歸為多數(shù)類,造成很高的假分類精度;第二,過多的冗余特征會擾亂模型的學習能力,導致模型過擬合,限制了模型的普適性。因此,算法在這兩點上有很大的改進空間。

隨機森林算法的發(fā)展現(xiàn)狀及趨勢

       隨機森林算法采用多分類器投票的策略,本身能很好地避免過擬合問題,其中兩次典型的抽樣過程也使得隨機森林相對于傳統(tǒng)分類器,在解決特征冗余和過擬合問題方面有更好表現(xiàn)。然而,當不平衡率增加(例如正負類數(shù)量比超過 5:1)時,隨機森林偏向將少數(shù)類歸為多數(shù)類,造成假的高分類精度;另外,特征維度過高時,會降低單個分類器的分類性能,導致算法的整體分類能力被削弱。

       多年來,原始隨機森林算法被多次很多改進,如分別通過聚類方式、貪婪方法挑選出一批具有代表性的高精度低相似性決策樹,這些方法提高了部分數(shù)據(jù)集的分類精度,但對上述提到的醫(yī)療健康大數(shù)據(jù)效果甚微,因此本節(jié)主要對隨機森林在特征選擇和不平衡領域研究現(xiàn)狀進行分析。

1. 特征選擇領域

       良好的特征選擇方法應該能有效地從所有特征中選擇出最有用的一批特征,一些學者對此進行了大量研究。粗糙集、鄰域互信息、聚類、ReliefF 算法等都是常見的篩選出強分類能力特征的方法,在隨機森林中也有廣泛的應用,如有人提出了卡方檢驗與隨機森林結合的算法,用卡方檢驗對特征進行排序并分為不同區(qū)間,隨機森林抽取不同區(qū)間的特征構建決策樹,該方法能減輕過擬合的問題,但也會導致結果產生偏向性;有人提出了一種基于最大互信息系數(shù)的隨機森林算法,利用最大互信息衡量特征的區(qū)分能力,并將特征分為高中低三個子集,從每個子集中抽取特征構建決策樹,很好地避免了干擾樹的產生,但是每棵樹分類能力過于平均,容易引起過擬合問題;Vakharia 等先用 ReliefF 算法計算特征的權重,刪除低于權值的特征后再進行隨機森林訓練,有效地提高了軸承故障診斷的準確率;也有人利用肯德爾系數(shù)來代替隨機森林的隨機特征選擇步驟,在醫(yī)學數(shù)據(jù)集中取得了不錯的效果。

2. 不平衡分類領域

       不平衡數(shù)據(jù)指的是在某一個數(shù)據(jù)集中不同類型的樣本數(shù)量懸殊過大。常用的一些解決方法如過采樣、欠采樣、混合抽樣等是從數(shù)據(jù)層面來使數(shù)據(jù)集達到相對類均衡,還有SMOTE、GAN 等方法是從算法層面通過一定的計算來生成新的少數(shù)類,也能有效的解決不平衡問題。已經(jīng)有不少學者將上述方法應用到隨機森林中,如有人通過對多數(shù)樣本欠采樣,對少數(shù)樣本過采樣的方式使數(shù)據(jù)相對類均衡,并在隨機森林算法中進行實驗,一定程度下提高了算法的分類精度,但是數(shù)據(jù)量縮減了很多;有人采用 SMOTE 算法計算出一批少數(shù)類樣本,降低了數(shù)據(jù)的不平衡程度,然而該方法不能保證偽樣本的類型正確性;有人提出了一種基于 GAN 的隨機森林算法,采用集成學習 GAN 來生成少數(shù)類,以得到分布平衡的數(shù)據(jù)集;還有其他針對不平衡問題的改進研究,如有人等提出了一種基于隨機森林算法的類權重投票(CWsRF)算法,為每個類分配單獨的權重,有效提高了少數(shù)類的識別性能;也有人采用 k-means 聚類算法計算每個類的區(qū)分度,將區(qū)分度應用到隨機森林的特征選擇步驟中,減輕了不平衡數(shù)據(jù)集對算法的影響。

相關知識

森林如何“治愈”人類?記者探訪國內首個森林療養(yǎng)基地
自然的療愈力:河流與森林何以有益于人類健康?
森林康復與康養(yǎng)旅游
關于發(fā)展森林康養(yǎng)產業(yè)與中青年心理療愈結合必要性研究
森林康養(yǎng)與綠色健康
森林療愈:大自然的綠色奇跡
森林療養(yǎng)與人群健康
自然療愈與森林公園生態(tài)旅游.docx
短期森林療養(yǎng)活動對年輕健康個體部分身心健康指標的影響
肥胖的成因

網(wǎng)址: 基于sklearn隨機森林算法探究肥胖的成因(一) http://m.u1s5d6.cn/newsview120634.html

推薦資訊