易 俗, 張一川, 殷慧文
(1.遼寧大學(xué) 創(chuàng)新創(chuàng)業(yè)學(xué)院,沈陽 110036; 2.東北大學(xué) 軟件學(xué)院,沈陽 110819)
亞健康是介于健康與疾病之間的邊緣狀態(tài)[1]。高校教師在教學(xué)、科研繁重任務(wù)下,工作沒有時間界限和空間界限[2]。傳統(tǒng)研究方法采用自評量表和調(diào)查表[3]的方式對高校教師亞健康狀況及影響因素進(jìn)行統(tǒng)計和評估。該方法往往只能從宏觀角度出發(fā),階段性的開展調(diào)查。因此,從個體亞健康的預(yù)測預(yù)警角度,缺乏統(tǒng)計評估的時效性與客觀性,且調(diào)查評估過程需要投入的代價較高,效率較低。
大數(shù)據(jù)因其強大的預(yù)測能力,在疾病診療、模型建立、健康管理、基因分析等方面逐漸顯示出巨大優(yōu)勢[4-5]?;跈C器學(xué)習(xí)的高校教師亞健康檢測方法能夠根據(jù)已有大數(shù)據(jù)分析建立評估模型,并在此基礎(chǔ)上根據(jù)影響因素基本數(shù)據(jù)滿足高校教師個體亞健康狀態(tài)的檢測、評估。相比與傳統(tǒng)方法,亞健康大數(shù)據(jù)的分析更加高效、客觀,能夠即時反映教師的亞健康狀況,并且能夠進(jìn)一步支持高校教師亞健康的預(yù)測與預(yù)警。
決策樹分類是數(shù)據(jù)挖掘中的一種分類方法[6]。通過對已有教師數(shù)據(jù)的學(xué)習(xí)和分析提取規(guī)則,對識別指標(biāo)中的屬性進(jìn)行量化計算。從而,為高校教師亞健康狀態(tài)的檢測提供科學(xué)、準(zhǔn)確的評估方法體系。目前,國內(nèi)外大量研究針對分類回歸樹(Classification and Regression Tree,CART)技術(shù)在健康、醫(yī)療領(lǐng)域進(jìn)行了深入研究[7-10]。既涵蓋了健康疾病檢測、風(fēng)險評估與干預(yù)的理論方法體系研究,也包括利用CART對疾病和健康的檢測、預(yù)警研究。還有方法通過改進(jìn)CART算法降低數(shù)據(jù)的冗余度,提高診斷及預(yù)測的精度。但尚未存在研究利用CART的方法針對高校教師亞健康狀態(tài)的檢測給出完整全面的分析和建模。
本文首先綜合分析高校教師職業(yè)本身的社會壓力與生活行為,充分考慮職業(yè)特性,構(gòu)建一種多維度的高校教師多維影響因素概念模型。并進(jìn)一步進(jìn)行影響因素樣本數(shù)據(jù)集的特征分析,確定條件特征及決策特征,給出了數(shù)據(jù)預(yù)處理的方法及過程。在此基礎(chǔ)上,利用CART算法給出了高校教師亞健康決策模型的構(gòu)建、優(yōu)化方法和過程。最后,設(shè)計了模型的構(gòu)建架構(gòu),并利用Spark計算框架給出了該方法的并行實現(xiàn)。
高校教師具有腦力勞動特征的職業(yè)特性,其個人健康狀況變化具有內(nèi)在規(guī)律性,而不同的健康數(shù)據(jù)之間存在著內(nèi)在的關(guān)聯(lián)性。在教學(xué)任務(wù)、科研成果等方面承受著巨大的精神壓力,在事業(yè)成就、職稱、生活習(xí)慣、人際關(guān)系等高壓環(huán)境下也存在著各種心理矛盾。為此,在性別、年齡、職稱等流行病學(xué)特征的理論依據(jù)下,針對高校教師的職業(yè)特點,將導(dǎo)致高校教師出現(xiàn)亞健康狀態(tài)的因素劃分為多維度高校教師健康影響因素[11-12]。多維度高校教師健康影響因素從社會特性、健康特性、環(huán)境特性、職業(yè)特性和行為特性5個維度展開,見圖1。
采用決策樹技術(shù)解決高校教師亞健康狀態(tài)評估首先需要對樣本數(shù)據(jù)集展開分析。
圖1 高校教師健康多維影響概念模型圖
根據(jù)上述分析得到的多維影響因素,歸納樣本數(shù)據(jù)集中包含的條件屬性特征有48個,各維度參考的特征因素見表1。
表1 多維亞健康影響因素屬性表
決策屬性采用健康特性與標(biāo)準(zhǔn)亞健康評估指數(shù)相結(jié)合的方式,制定亞健康評價準(zhǔn)則。利用向量空間模型對亞健康影響因素進(jìn)行數(shù)學(xué)抽象。設(shè)樣本數(shù)據(jù)集中條件屬性特征為向量L(l1,l2,…,ln),其中l(wèi)1至ln為影響高校教師健康的n維屬性,主要來自于多維影響因素的社會特性、環(huán)境特性、職業(yè)特性及行為特性。決策屬性特征為向量R(r),其中r是根據(jù)上述亞健康評價準(zhǔn)則得到的亞健康評價值,即
r=w1·PHI+w2·CMI,(w1+w2=1)
其中,PHI值是根據(jù)教師個人健康特性屬性中相關(guān)指數(shù)未在正常范圍內(nèi)的數(shù)量確定的體檢健康值。CMI值根據(jù)康奈爾醫(yī)學(xué)指數(shù)問卷結(jié)果,綜合考慮身體因素和心理因素兩方面得到的亞健康狀態(tài)值。w1與w2為健康評價權(quán)重系數(shù),通過調(diào)整該系數(shù)能夠綜合考察不同指標(biāo)比例對認(rèn)定是否亞健康及亞健康程度的影響。
亞健康決策樹的構(gòu)建包括構(gòu)建與優(yōu)化兩個階段。首先,利用決策樹算法通過訓(xùn)練數(shù)據(jù)集構(gòu)造初始決策樹;然后,利用樹優(yōu)化算法通過測試數(shù)據(jù)集修正決策樹。因此,樣本數(shù)據(jù)的預(yù)處理除了考慮對數(shù)據(jù)如何采集,還需要考慮對數(shù)據(jù)如何進(jìn)行整合及標(biāo)注。亞健康評估樣本數(shù)據(jù)的預(yù)處理過程見圖2。
圖2 數(shù)據(jù)預(yù)處理過程圖
(1) 數(shù)據(jù)采集階段通過與校醫(yī)院、人事處、教務(wù)處、科研處、心理咨詢中心等多部門協(xié)同合作。針對健康特性、職業(yè)特性、環(huán)境特性等不同屬性的數(shù)據(jù)來源,通過各種管理系統(tǒng)接口進(jìn)行數(shù)據(jù)的收集。利用Flume分布式架構(gòu),將大量的數(shù)據(jù)從數(shù)據(jù)資源裝載到目標(biāo)服務(wù)器。針對行為特性數(shù)據(jù)如日常運動、健康等日志的采集,通過Apache的Flume數(shù)據(jù)采集工具實現(xiàn)。同時,利用ZooKeeper保存配置數(shù)據(jù),保證配置數(shù)據(jù)的一致性和高可用。采集來的多樣化數(shù)據(jù)經(jīng)過值域?qū)φ?、?shù)據(jù)抽取、轉(zhuǎn)換,最后上傳到健康數(shù)據(jù)庫。
(2) 數(shù)據(jù)清洗階段為了降低決策樹構(gòu)造過程數(shù)據(jù)質(zhì)量對模型效果的負(fù)面影響,針對采集得到的數(shù)據(jù)進(jìn)行數(shù)據(jù)補缺、去噪初步處理。
(3) 數(shù)據(jù)整合階段針對上述分析數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行數(shù)據(jù)的進(jìn)一步處理。重點考慮數(shù)據(jù)對分析過程的影響,通過變化、集成、標(biāo)注及過濾過程對數(shù)據(jù)進(jìn)行整合處理。圍繞構(gòu)建決策樹的目標(biāo)結(jié)果進(jìn)行分析和處理,整合成支持?jǐn)?shù)據(jù)分析階段的輸入數(shù)據(jù)。數(shù)據(jù)變化及集成過程將來自不同源的數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)類型,以及將部分連續(xù)型數(shù)據(jù)轉(zhuǎn)化為離散型數(shù)據(jù),從而簡化相應(yīng)的計算量;數(shù)據(jù)標(biāo)注過程對條件屬性值即決策屬性值進(jìn)行閾值范圍的考察和確定;數(shù)據(jù)過濾過程對需求數(shù)據(jù)屬性展開分析,對原數(shù)據(jù)中的數(shù)據(jù)進(jìn)行合理范圍內(nèi)的約束和選擇。最終結(jié)果數(shù)據(jù)集即可劃分為訓(xùn)練樣本和測試樣本,提供給決策樹建模算法進(jìn)行樹的構(gòu)建。
高校教師亞健康的多維度影響因素具有條件屬性繁多的特點。多維影響因素中具有復(fù)雜數(shù)據(jù)類型的指標(biāo)屬性,如既包括婚姻狀況、職稱、是否吸煙等離散型數(shù)據(jù),也包括年論文數(shù)、年齡、日均步數(shù)等連續(xù)型數(shù)據(jù)。條件屬性值的區(qū)間劃分情況較為復(fù)雜,需要算法提供動態(tài)處理能力。CART算法模型可以運用于多指標(biāo)海量數(shù)據(jù)的復(fù)雜分類處理特性,使得應(yīng)用于高校教師亞健康評估決策樹的建模更加適用,具有較大的優(yōu)勢。
CART算法利用分類樹適用于離散型目標(biāo)數(shù)據(jù)的分析,利用回歸樹適用于連續(xù)型目標(biāo)數(shù)據(jù)的分析[13]。因此,當(dāng)亞健康評估目標(biāo)為亞健康評價值r時,可考慮利用回歸樹構(gòu)建對高校教師的健康值評估;當(dāng)亞健康評估目標(biāo)按照評價值被離散化處理為診斷時,如離散化為疾病、亞健康和健康,可考慮利用分類樹構(gòu)建高教教師的健康狀態(tài)評估[14]。本文采用分類樹模型根據(jù)健康狀態(tài)對決策樹進(jìn)行模型構(gòu)建。其中,CART樣本數(shù)據(jù)抽象為:
DC={DL,DR}
(1)
DL={L1,L2,…,Ln}
(2)
DR={R1,R2,…,Rn}
(3)
d1=(l11,l12,…,l1n,r1), (d1∈DC)
(4)
式中,DC為樣本數(shù)據(jù)集,其中包括特征屬性集DL及結(jié)果屬性集DR。L稱為屬性向量(Attribute Vectors),其屬性來自于多維度亞健康影響因素分析過程中得到的條件屬性特征向量L(l1,l2,…,ln),其中既包括連續(xù)型屬性也包括離散型屬性;R稱為標(biāo)簽向量 (Label Vectors),其屬性來自于影響因素分析過程得到的決策屬性特征向量r,該特征向量值是根據(jù)亞健康評價值r的閾值范圍評定給出的,包括{疾病,亞健康,健康}。dn為樣本數(shù)據(jù)集中的單條數(shù)據(jù)。本文研究的樣本集中每個樣本有48個條件屬性和一個決策屬性。
高校教師亞健康評估CART算法的決策樹構(gòu)建實現(xiàn)過程首先定義了3種數(shù)據(jù)結(jié)構(gòu):存儲樣本屬性名稱及取值的KVNode屬性,存儲具體某個樣本的TeacherSet屬性,樹的節(jié)點屬性TreeNode;并存放于SHDataStructure.h中。樣本通過劃分不同文件分別存儲樣本的屬性及樣本集。設(shè)計ReadFile類讀取文件分別存儲在兩個向量中。
利用CART算法構(gòu)建亞健康決策樹的基本原理是檢查每個健康條件屬性所有可能的劃分值來發(fā)現(xiàn)最好的劃分。首先,需要針對條件屬性從多樣本集的輸入變量中選擇最佳分組變量;其次需要針對分組變量進(jìn)行純度計算,找到一個純度最高的最佳分割值。因此,對于離散型考慮除空集和全集之外的所有劃分情況;對于連續(xù)型,則針對n個連續(xù)值產(chǎn)生n-1個分裂點,相鄰兩個連續(xù)值的均值(li+li-1)/2即為分裂點的分割值。將每個屬性的所有劃分按照Gini分割指數(shù)進(jìn)行劃分,Gini分割指數(shù)主要用于考察節(jié)點內(nèi)n(n≥2)種樣本的差異。針對整個樣本訓(xùn)練數(shù)據(jù)集DT,DL部分一共包含n個條件屬性,那么Gini指數(shù)可以定義為:
(5)
式中:Pm為決策屬性值m在訓(xùn)練樣本DT中的相對概率,如果集合DT中共有t條訓(xùn)練數(shù)據(jù),在l1的條件下分成DT1和DT2兩部分,數(shù)據(jù)條數(shù)分別為t1和t2,那么這個Gini分割指數(shù)就是:
(6)
以遞歸的方式針對每個屬性值嘗試劃分,意圖找到使得Gini分割指數(shù)變量最大的一個劃分,該屬性值劃分到的子樹即為決策樹構(gòu)造階段的最優(yōu)分支。
高校教師亞健康評估CART算法的決策樹構(gòu)建過程采用遞歸函數(shù)的方式,將全部樣本數(shù)據(jù)集的80%作為訓(xùn)練數(shù)據(jù)集進(jìn)行決策樹構(gòu)建。建模具體實現(xiàn)過程首先找到一個劃分值,若不存在,返回-1,然后判斷當(dāng)一個樹不是葉子節(jié)點時則按照劃分值進(jìn)行劃分。設(shè)計并實現(xiàn)SHTreeCons類,如圖3所示,該類圖展示用于構(gòu)造決策樹模型的基本方法。其中,SHTreeBuild方法通過調(diào)用劃分方法對非葉子節(jié)點進(jìn)行劃分;TreeDivid方法是節(jié)點劃分方法,劃分左右節(jié)點;AttriCho方法針對輸入的考察節(jié)點進(jìn)行屬性值的選擇;GiniSeg方法用于計算Gini分割指數(shù)對構(gòu)造樹進(jìn)行最優(yōu)劃分;TraverTree方法用于構(gòu)造決策樹的模型。
圖3 亞健康決策樹構(gòu)建類圖
構(gòu)造決策樹模型的核心算法SHTreeBuild函數(shù)的偽代碼描述如下:
輸入TreeNode
輸出無
步驟1遍歷所有節(jié)點,當(dāng)節(jié)點不為空時,循環(huán)執(zhí)行步驟2~5,否則跳出結(jié)束程序;
步驟2變量nodeCount增1,且將其賦值給當(dāng)前節(jié)點的nodeCount,樹遍歷排序;
步驟3調(diào)用AttriCho方法進(jìn)行屬性值劃分確定并將該劃分添加到節(jié)點屬性中;
步驟4如果該節(jié)點屬性劃分值為-1則無法再次劃分,將其定為葉子節(jié)點,返回步驟1;
步驟5若節(jié)點屬性劃分值不為-1,則執(zhí)行步驟6~8;
步驟6將該節(jié)點定為非葉子節(jié)點;
步驟7調(diào)用TreeDivid方法,將父節(jié)點按照劃分屬性進(jìn)行劃分;
步驟8通過遞歸方式調(diào)用函數(shù)SHTreeBuild分別建立左子樹及右子樹,返回步驟1。
TreeDivid函數(shù)針對對輸入的樣本變量進(jìn)行基于Gini分割指數(shù)的最優(yōu)劃分,若劃分成功返回屬性下標(biāo),否則返回-1。nodeCount在該函數(shù)中能夠支持樹的遍歷,對每一個節(jié)點賦予唯一值,樹模型的構(gòu)建過程是采用前序遍歷。當(dāng)建樹結(jié)束后,樹的前序輸出結(jié)果即為nodeCount從小到大的排序,然后通過TraverTree函數(shù)輸出樹的中序序列以確定樹的結(jié)構(gòu)。其中,nodeCount和leavenode同時還將支持后續(xù)的樹模型優(yōu)化剪枝過程。
采用CART算法的后剪枝方法在已構(gòu)建的決策樹模型基礎(chǔ)上,通過刪除節(jié)點分支來剪去樹節(jié)點。
CART利用成本復(fù)雜度標(biāo)準(zhǔn)是在已有分類樹的加權(quán)錯分率基礎(chǔ)上,加上對樹的懲罰因子。其中,懲罰因子包含一個復(fù)雜度參數(shù)a來表示每個節(jié)點的懲罰代價。成本復(fù)雜度的數(shù)學(xué)表達(dá)為:
Ca(T)=C(T)+a×|Tnum|
(7)
式中:C(T)是測試數(shù)據(jù)被已生成的樹模型T錯誤劃分的部分;Tnum是已生成樹T的葉子節(jié)點個數(shù);a是每個決策點懲罰代價,a=2(n-1),其中n為分類數(shù)。若a=0則表示對該樹絕大多數(shù)的節(jié)點沒有懲罰,其成本復(fù)雜度是未剪枝的樹。通過剪枝算法,從剪枝得到的優(yōu)化樹模型中選取測試數(shù)據(jù)集上具有最小誤分的樹作為最終優(yōu)化的決策樹模型。
高校教師亞健康評估CART算法的決策樹優(yōu)化過程將全部樣本數(shù)據(jù)集剩余的20%作為測試數(shù)據(jù)集進(jìn)行決策樹剪枝。設(shè)計并實現(xiàn)SHTreePrun類,如圖4所示,該類圖展示用于對決策樹模型進(jìn)行剪枝的基本函數(shù)。其中,SHPrun函數(shù)為剪枝函數(shù),利用測試數(shù)據(jù)集對已生成的樹模型進(jìn)行剪枝;TraverLevel方法通過層次遍歷對決策點進(jìn)行序號分配,以便用于剪枝函數(shù)處理;ErrTest方法通過考察不同決策點下建樹樣本產(chǎn)生的錯誤樣本個數(shù),其中參數(shù)t為決策點的數(shù)目;DesTest函數(shù)根據(jù)具體的某個決策點對測試樣本集進(jìn)行測試,其中參數(shù)k為單個樣本,t為決策點數(shù)目。
圖4 亞健康決策樹剪枝類圖
對于剪枝算法來說,首先要考慮獲取已生成樹的決策點,才能根據(jù)決策點數(shù)目進(jìn)行剪枝。利用二叉樹具有非葉節(jié)點與葉節(jié)點之間差1的特性,可計算得到非葉結(jié)點數(shù)量。利用層次遍歷對決策點逐層賦值,其中根節(jié)點nodeCount賦值為1,左節(jié)點nodeCount賦值2,葉子節(jié)點nodeCount為0。
層次遍歷后根據(jù)決策點數(shù)量,改進(jìn)決策樹前序遍歷,確定葉子節(jié)點,從而確定模型樹的結(jié)構(gòu)。然后,根據(jù)樹的決策點數(shù)對訓(xùn)練樣本和測試樣本的誤差進(jìn)行統(tǒng)計。不同決策點對應(yīng)不同子樹,通過前序遍歷可以將葉子節(jié)點中的錯誤樣本統(tǒng)計出來計算該樹模型錯誤樣本的個數(shù)。接著,利用測試樣本對樹模型進(jìn)行遍歷,統(tǒng)計修正后測試樣本錯誤樣本個數(shù)。最后,得出最小誤分樹結(jié)果集。
基于上述高校教師亞健康決策樹模型構(gòu)建思路,在學(xué)院實驗室機房進(jìn)行主機運行環(huán)境的搭建,采用開源的操作系統(tǒng)和相關(guān)開源開發(fā)資源進(jìn)行運行環(huán)境的部署,利用Spark計算框架進(jìn)行亞健康評估決策樹構(gòu)建的分布式并行實現(xiàn)。
樣本數(shù)據(jù)方面基于多維亞健康影響因素,抽取2016年3月至2017年3月的258例教師基本數(shù)據(jù)。決策樹CART算法的參數(shù)設(shè)置為:樹結(jié)構(gòu)最大深度為5,父節(jié)點最小個案數(shù)為5,子節(jié)點最小個案數(shù)為1,Gini系數(shù)的最小變化值為0.000 1,在樹的構(gòu)建過程中排除缺失值[15]。對48個影響因素進(jìn)行決策分析,歸納出模型的評估規(guī)則。根據(jù)該算法得到的輸出結(jié)果數(shù)據(jù)部分內(nèi)容展示如圖5所示。其中node表示節(jié)點序號,根據(jù)算法可知序號越小越接近根節(jié)點,序號越大越接近葉子節(jié)點;split表示分割點屬性及其劃分閾值;n表示該分割點屬性下一共具有的數(shù)據(jù)量;loss表示該屬性下未得到目標(biāo)決策值的數(shù)據(jù)量;SHval表示該條件屬性特征值下得到的決策屬性值;最后,SHprob為該分割點特征值下各決策值的占比。
圖5 CART算法決策樹建模結(jié)果
該決策樹模型通過CART算法的構(gòu)建和剪枝優(yōu)化處理,最終確定了14個屬性作為亞健康評估的條件屬性,見表2。
表2 決策樹模型亞健康評估條件屬性
該決策樹模型共產(chǎn)生了32個葉子節(jié)點,其中10個葉子節(jié)點利用J表示評估結(jié)果為健康狀態(tài);6個葉子節(jié)點,利用B表示評估結(jié)果為疾病狀態(tài);16個葉子節(jié)點,利用Y表示評估結(jié)果為亞健康狀態(tài)。該決策樹基于大數(shù)據(jù),既能夠歸納出影響亞健康的主要因素,也能夠總結(jié)出評估亞健康狀態(tài)的規(guī)則,為未來的智能亞健康檢測評估系統(tǒng)與智能亞健康監(jiān)視預(yù)測系統(tǒng)的應(yīng)用開發(fā)提供基礎(chǔ)。
為了驗證基于CART算法的高校教師亞健康決策模型的有效性和準(zhǔn)確率,其中選擇43名教師作為實驗對象,利用高校教師亞健康模型對該實驗對象進(jìn)行教師健康狀況的評估及預(yù)測實驗。評估實驗結(jié)果健康人數(shù)4人,亞健康人數(shù)33人,疾病人數(shù)6人。
根據(jù)WHO(世界衛(wèi)生組織)權(quán)威發(fā)布,全球人類亞健康狀態(tài)比例為75%。利用本文方法預(yù)測得到的高校教師亞健康比例為76.7%,見圖6。這一結(jié)果與全球亞健康比例組成非常接近,說明該方法具有一定的準(zhǔn)確率。且通過觀察該數(shù)據(jù)略高于全球普通人群,進(jìn)一步闡明高校教師工作性質(zhì)將帶來一定的身心壓力,高校教師群體相對普通人群更加具有亞健康風(fēng)險。
圖6 分類樹結(jié)果比例
除此之外,利用文獻(xiàn)3中提出的基于流行病學(xué)調(diào)查問卷傳統(tǒng)方式針對這43名教師進(jìn)行亞健康狀態(tài)評估的對比實驗。如圖7所示,經(jīng)統(tǒng)計利用傳統(tǒng)方法得到的健康狀態(tài)分類結(jié)果與本文提出的方法得到的分類結(jié)果數(shù)據(jù)僅在亞健康與疾病狀態(tài)的分類部分差異極小。進(jìn)一步證明該方法能夠有效指導(dǎo)高校教師亞健康狀態(tài)的預(yù)測。與傳統(tǒng)方法相比,具有更加良好的即時性和操作簡易性。
圖7 決策樹模型與傳統(tǒng)方法比較
利用CART算法針對高校教師亞健康狀態(tài)決策模型的建立進(jìn)行了研究。設(shè)計了多維高校教師亞健康影響因素概念模型,以及分析了相應(yīng)樣本數(shù)據(jù)的特征,實現(xiàn)了數(shù)據(jù)預(yù)處理的具體過程;利用CART算法給出了多維影響因素樣本數(shù)據(jù)下進(jìn)行了決策樹的建模和優(yōu)化方法。并且,設(shè)計了亞健康評估的系統(tǒng)架構(gòu),利用Spark進(jìn)行了并行化的算法實現(xiàn),并通過實驗對模型的有效性進(jìn)行了驗證,為高校教師亞健康檢測評估、監(jiān)視預(yù)測提供了良好的決策模型基礎(chǔ)。