張雪琴,江帆,席本玉
(西安交通大學(xué)城市學(xué)院,陜西西安 710018)
近些年來,國內(nèi)在校大學(xué)生身體素質(zhì)不斷下降,大學(xué)生的身體健康問題頻發(fā)。根據(jù)2020 年大學(xué)生身體素質(zhì)調(diào)查結(jié)果可知,相較于2010年,大學(xué)生的身體素質(zhì)持續(xù)下降,其中肺活量指標(biāo)下降了近10%,大學(xué)生體質(zhì)健康問題受到多方關(guān)注[1-2]?,F(xiàn)階段我國的大學(xué)生體質(zhì)數(shù)據(jù)處于無序狀態(tài),難以從中發(fā)掘相關(guān)數(shù)據(jù)的變化規(guī)律[3]。隨著數(shù)據(jù)挖掘技術(shù)的興起,利用數(shù)據(jù)挖掘工具對大學(xué)生體質(zhì)數(shù)據(jù)進(jìn)行挖掘處理,對學(xué)生體質(zhì)健康進(jìn)行測試成為一個(gè)新的發(fā)展方向[4-5]。國內(nèi)基于數(shù)據(jù)挖掘原理對現(xiàn)有體質(zhì)數(shù)據(jù)進(jìn)行了多方探索[6-8]。如采用Clementine12.0 數(shù)據(jù)挖掘軟件挖掘高校學(xué)生體質(zhì)各項(xiàng)指標(biāo)的關(guān)聯(lián)規(guī)則,確定體質(zhì)中影響各項(xiàng)指標(biāo)的因素[9];應(yīng)用SQL Server 數(shù)據(jù)挖掘服務(wù)發(fā)現(xiàn)大學(xué)生體質(zhì)數(shù)據(jù)中存在的驗(yàn)證性規(guī)則[10];采用支持向量機(jī)法進(jìn)行學(xué)生身體評價(jià)指標(biāo)的數(shù)據(jù)挖掘,并給出身體狀況評價(jià)結(jié)果,指導(dǎo)大學(xué)運(yùn)動課程的科學(xué)制定等[11-12]。由于我國學(xué)生體質(zhì)測試數(shù)據(jù)量龐大,而數(shù)據(jù)挖掘工具軟件的應(yīng)用較少,尤其缺乏有效的數(shù)據(jù)挖掘算法?;诖?,文中擬對大學(xué)生體質(zhì)測試數(shù)據(jù)進(jìn)行特征分析,并在傳統(tǒng)C4.5 決策樹算法的基礎(chǔ)上,提出一種改進(jìn)的決策樹分類算法,有效降低數(shù)據(jù)計(jì)算量,提升預(yù)測準(zhǔn)確度,并將改進(jìn)算法嵌入大學(xué)生體質(zhì)數(shù)據(jù)監(jiān)測系統(tǒng),從多維角度實(shí)現(xiàn)對學(xué)生身心狀況的測試和評價(jià)。
數(shù)據(jù)挖掘是從大量、不完整、模糊的數(shù)據(jù)中提取隱含、未知、可靠信息和知識的過程,具有數(shù)據(jù)量大、離散變量、動態(tài)規(guī)則相關(guān)性的特點(diǎn)[13]。決策樹是以分類為目的的學(xué)習(xí)算法,是數(shù)據(jù)與對象值間的映射關(guān)系,決策樹頂部作為根節(jié)點(diǎn),所有數(shù)據(jù)集作為起點(diǎn),根據(jù)屬性來區(qū)分不同的分支節(jié)點(diǎn),通過分類最終生成葉節(jié)點(diǎn),由預(yù)測規(guī)則建立決策樹自上導(dǎo)下的路徑,獲得凈現(xiàn)值大于或等于零的概率來進(jìn)行可行性判斷。目前應(yīng)用較為普遍的決策樹算法包括ID3、C4.5、CART 算法等[14-15]。
C4.5 決策樹分類算法在ID3 算法的基礎(chǔ)上進(jìn)行了改良,算法通過信息增益比率量化屬性判別能力。設(shè)S表示以 |S|個(gè)數(shù)據(jù)樣本為依據(jù)的集合,定義n個(gè)不同的類Ci(i=1,2,…,n),假定類Ci中樣本個(gè)數(shù)為 |Ci|,則樣本分類的期望信息為:
式中,Pi=是任一樣本屬于第i類的概率。若屬性A中具有m個(gè)不同值{x1,x2,…,xm},則將屬 性A和S劃分為m個(gè)子集{S1,S2,…,Sm},其 中Sj中樣本在A中具有相同值xj(j=1,2,…,m)。假定子集Sj中屬于第i類樣本的有 |Sij|個(gè),將A劃分為子集的信息期望為:
分支獲得的信息增益為:
由式(3)可看出,信息期望越小,則信息增益越大。
C4.5 決策樹算法針對不同屬性的數(shù)據(jù)采用不同方式,對于連續(xù)屬性的數(shù)據(jù),首先需要進(jìn)行離散化處理,進(jìn)行數(shù)據(jù)段排序后,對不同片段數(shù)據(jù)進(jìn)行處理,這樣會生成大量的多叉樹,導(dǎo)致效率下降[16],且不能有效地處理訓(xùn)練集體積超過主存容量的情況。因此,對C4.5 決策樹算法數(shù)據(jù)進(jìn)行進(jìn)一步優(yōu)化、精簡處理。
設(shè)數(shù)據(jù)集D中包括兩種屬性:大小分別為y和n的正例集PD和反例集ND,決策樹判定數(shù)據(jù)集的首要條件是掌握一定的信息量,設(shè)掌握的信息量為:
令決策樹根節(jié)點(diǎn)屬性為X,X=(X1,X2,…,Xs),由X將數(shù)據(jù)集D分為S個(gè)子集X=(D1,D2,…,DS),各子數(shù)據(jù)集屬性為X,并含有正比例集PD和反比例集ND,則數(shù)據(jù)子集的期望信息為:
由式(4)和式(5)可知,數(shù)據(jù)集D根節(jié)點(diǎn)屬性X的信息熵為:
分裂信息度量為:
確定信息增益率為:
設(shè)訓(xùn)練集S中包括c種屬性,根據(jù)排序方式使分裂的連續(xù)屬性A具有n+l個(gè)不同數(shù)據(jù)段,具有n個(gè)數(shù)據(jù)劃分點(diǎn),改進(jìn)的算法僅需要計(jì)算最優(yōu)點(diǎn)的信息增益率,即計(jì)算c-l個(gè)劃分點(diǎn)。
選取西北5 所高校在校大學(xué)生體質(zhì)健康數(shù)據(jù)進(jìn)行挖掘分析。相較于傳統(tǒng)數(shù)據(jù)分析,C4.5 算法進(jìn)行數(shù)據(jù)挖掘的過程是一種自動發(fā)現(xiàn)知識的過程,通過數(shù)據(jù)預(yù)處理,采用決策樹算法挖掘并分析觀測數(shù)據(jù)。學(xué)生體質(zhì)健康挖掘主要是解決大數(shù)據(jù)下各用戶群體的體測參數(shù),獲取具有價(jià)值的數(shù)據(jù)依據(jù)。圖1為數(shù)據(jù)挖掘流程。
圖1 學(xué)生體測數(shù)據(jù)挖掘流程
在系統(tǒng)中,采集的數(shù)據(jù)包括靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)。靜態(tài)數(shù)據(jù)主要是各高校公布的學(xué)生基本信息,動態(tài)數(shù)據(jù)則是歷年學(xué)生體測數(shù)據(jù)。系統(tǒng)管理人員采用Excel 文件,將上報(bào)的數(shù)據(jù)導(dǎo)入MySQL 數(shù)據(jù)庫中,包括學(xué)生的來源信息、體測成績、鍛煉項(xiàng)目等,其中學(xué)號、姓名、年齡構(gòu)成學(xué)生來源信息,而身高體重、肺活量、耐力等級、速度靈敏度則構(gòu)成體質(zhì)健康測試成績。表1 給出了部分學(xué)生體測數(shù)據(jù)信息。
表1 學(xué)生體測項(xiàng)目信息
后臺數(shù)據(jù)庫通過MySQL 數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲,并直接調(diào)用MySQL 數(shù)據(jù)庫中的Nevicat 對MySQL 工具進(jìn)行操作,以表格的形式存儲數(shù)據(jù),考慮到MySQL數(shù)據(jù)庫的容量,根據(jù)具體的存儲需求設(shè)置相應(yīng)的數(shù)據(jù)存儲周期。
由于初始采集的數(shù)據(jù)中存在大量不完整、含噪聲的數(shù)據(jù),因此,根據(jù)系統(tǒng)數(shù)據(jù)挖掘引擎進(jìn)行數(shù)據(jù)預(yù)處理[17]。首先將各類測試項(xiàng)目信息、評價(jià)標(biāo)準(zhǔn)、學(xué)生信息等集成轉(zhuǎn)化為概括性數(shù)據(jù),對數(shù)據(jù)進(jìn)行屬性分類。在數(shù)據(jù)清理中主要對各類導(dǎo)入系統(tǒng)中的學(xué)生體測成績進(jìn)行處理。以體測總成績?yōu)槔?,將具體的成績劃分為“差”、“良”、“優(yōu)”等類型,將學(xué)生所在學(xué)校表示為i1、i2、i3,將身高、速度靈敏度、肺活量等標(biāo)識為i4、i5、i6,項(xiàng)目依次類推;判斷類型“是”、“否”分別表示為“1”和“0”,根據(jù)不同的類別定義進(jìn)行數(shù)據(jù)處理,并在數(shù)據(jù)處理前刪除存在的重復(fù)數(shù)據(jù)。
對在MySQL 數(shù)據(jù)庫中保存的各類型參數(shù),采用改進(jìn)的C4.5 決策樹算法進(jìn)行數(shù)據(jù)挖掘和信息關(guān)聯(lián)。算法原理如圖2所示,首先,求取預(yù)處理數(shù)據(jù)集中連續(xù)屬性的最佳分割點(diǎn),并計(jì)算各屬性信息增益速率[18],選擇信息增益速率最大屬性來定義該決策節(jié)點(diǎn)的屬性類型。通過遞歸算法求取節(jié)點(diǎn)屬性可能值對應(yīng)的樣本子集的信息增益率,直到各子集中的數(shù)據(jù)屬于同一類型,生成決策樹。根據(jù)定義類型對生成的決策樹進(jìn)行修剪操作,獲得最優(yōu)決策樹,在最優(yōu)決策樹中提取分類規(guī)則,并進(jìn)行數(shù)據(jù)的重新分類。
圖2 算法原理圖
文中采用C++編程語言實(shí)現(xiàn)算法的編程,將初始采集的大學(xué)生體測原始數(shù)據(jù)導(dǎo)入系統(tǒng)進(jìn)行處理,獲得的最優(yōu)決策樹如圖3 所示。從決策樹中可以看出,影響大學(xué)生身體健康的最大因素為肺活量測試項(xiàng)目,對于肺活量測試失敗的個(gè)體,其中身高和體重成為造成肺活量測試失敗的最大影響因素。肺活量通常反映著人體的身體狀況,對于積極鍛煉的學(xué)生,肺活量相對表現(xiàn)更好,通過平時(shí)的鍛煉,這部分學(xué)生能夠在肺活量測試中獲得更好的成績,而肺活量測試不達(dá)標(biāo)的學(xué)生,身高、體重指標(biāo)也不達(dá)標(biāo),在這群個(gè)體中普遍存在著肥胖的現(xiàn)象,需要在日常中更注重體育鍛煉。
圖3 學(xué)生體測最優(yōu)決策樹
采用改進(jìn)的C4.5 決策樹算法進(jìn)行數(shù)據(jù)挖掘,建立決策樹來分析影響學(xué)生體測指標(biāo)的因素,跟蹤大學(xué)生身心健康狀況,并有針對性地增強(qiáng)學(xué)生鍛煉積極性。研究獲得的主要結(jié)論有:
1)采用改進(jìn)的信息熵,利用簡化函數(shù)關(guān)系來計(jì)算分裂信息度量,在保證預(yù)測結(jié)果精度的前提下,優(yōu)化信息增益率計(jì)算,通過去除連續(xù)屬性數(shù)據(jù)中非必要劃分點(diǎn)的信息增益率計(jì)算,來提高算法的運(yùn)行效率。
2)建立MySQL 數(shù)據(jù)庫的在校大學(xué)生體測數(shù)據(jù)參數(shù),引入改進(jìn)的C4.5 決策樹算法進(jìn)行數(shù)據(jù)挖掘,并對西北某5 所高校進(jìn)行實(shí)例驗(yàn)證,結(jié)果表明,肺活量測試項(xiàng)目是影響大學(xué)生身體健康最大因素,其中身高和體重成為造成肺活量測試失敗的最大影響因素。