胡世平,李博,賈年
(西華大學計算機與軟件工程學院,成都610039)
當今,健康問題越來越受人們的關(guān)注。在2017年,習近平主席在十九大報告中提出了健康中國的發(fā)展戰(zhàn)略,這同時也表明國家對全民健康的重視。21 世紀,社會的競爭壓力也越來越激烈,它不僅包括表面的智力競爭,同時也是對身體、心理等方面的考驗,這些非智力因素同時決定著競爭的成敗,而決定這方面的重要因素就是身體健康狀況,但是目前大學生中一些群體缺乏鍛煉意識,對科學鍛煉身體的意識薄弱[1]。因此有效科學的提高大學生身體健康素質(zhì)才是關(guān)鍵,而運動處方則是有效和科學提高身體健康的最佳方法[2]。關(guān)于運動處方的研究在國內(nèi)越來越多,部分領(lǐng)域也愈加成熟,例如健身運動處方,可以針對不同年齡段,采取合適的運動處方來提高身體素質(zhì)和預(yù)防疾病。醫(yī)生往往也會根據(jù)經(jīng)驗給一些病人開出適合的運動處方。但是目前高校的學生數(shù)量越來越多,面對大量的學生數(shù)據(jù),老師很難為每個學生設(shè)計個性化運動處方、從而高效科學地提高學生的身體素質(zhì)。
因此采用合理的方法去分析評價體測數(shù)據(jù)和對學生進行合理的分類,并且如何合理地推薦處方是目前研究的重點。只有科學和有效的運動處方方案,才能夠更好地讓學生進行自我健康的體質(zhì)管理[3-4]。為此,本文提出了一種基于無監(jiān)督學習的大學生健康數(shù)據(jù)分類方法。該方法使用大學生的測試數(shù)據(jù)的BMI、肺活量、體前屈、立定跳遠、50 米跑、1000 米跑(男)或800米(女)、引體向上(男)或仰臥起坐(女)作為輸入數(shù)據(jù),通過K-medoids 聚類算法,將體質(zhì)類似的學生分在一起,老師可以根據(jù)不同的體質(zhì)的學生,制定更針對性的個性化運動處方,科學高效地提高大學生身體素質(zhì)。
K-medoids 算法被稱為K 中心點算法,也是一種常用的聚類算法,與K-means 聚類算法相似,也具有能夠處理大型數(shù)據(jù)集,且最后聚類結(jié)果中簇與簇之間分離明顯的優(yōu)點。與K-means 相比,K-medoids 算法對噪聲的魯棒性更好,對于簇中那些脫離中心點很遠的點不是很敏感,這樣噪點對于簇的劃分的影響就會大大減少。就因如此K-medoids 也被認為是對K-means的改進,但由于對于中心點更新時的計算量要更大,所以時間復(fù)雜度比k-means 要高[5]。
為對比聚類效果,本文采用不同數(shù)量集下K-me?doids 算法與K-means 算的戴維森堡丁指數(shù)(DBI),如表1 所示,用DBI 去進行聚類優(yōu)劣比較發(fā)現(xiàn),當學生體測數(shù)據(jù)變多時,K-medoids 算法的DBI 是小于Kmeans 算法的DBI,DBI 值小意味著類內(nèi)距離越小,同時類間距離越大,聚類效果越好。可以看出K-medoids算法在多數(shù)據(jù)的情況下的聚類效果要好于K-means 算法,證明其在做大量學生體測數(shù)據(jù)進行聚類分類時的效果更好,且其魯棒性也比K-means 算法好。
表1 戴維森堡丁指數(shù)(DBI)值比較
本文采用的是某高校的體質(zhì)健康數(shù)據(jù)進行分析,該數(shù)據(jù)包括學生的個人信息以及體測數(shù)據(jù),其中BMI、肺活量、體前屈、立定跳遠、50 米跑、1000 米跑(男)或800 米(女)、引體向上(男)或仰臥起坐(女)等數(shù)據(jù)作為此次試驗的輸入數(shù)據(jù),對應(yīng)的也是《國家學生體質(zhì)健康標準》中的8 項。
由于大學生體測數(shù)據(jù)量比較大,有可能含有許多噪聲數(shù)據(jù),我們先將數(shù)據(jù)進行整理,去除某些測試屬性缺失的學生,如短跑,肺活量為0 的學生,部分體測數(shù)據(jù)如表2 所示。然后為了縮小不同的成績和不同的評價指標帶來的影響,我們將體測數(shù)據(jù)歸一化,數(shù)據(jù)被限定到[-1,1],這樣也有益于使用PCA 進行降維的時候表現(xiàn)的更好。歸一化的部分數(shù)據(jù)如表3 所示。
表2 部分體測數(shù)據(jù)數(shù)據(jù)
表3 歸一化后部分數(shù)據(jù)
本方法對學生體測數(shù)據(jù)進行聚類分析,具體執(zhí)行過程如下:
(1)首先,我們將采集到的6000 個學生體測數(shù)據(jù)放入矩陣,然后對數(shù)據(jù)進行預(yù)處理
(2)根據(jù)預(yù)處理過的學生數(shù)據(jù)矩陣來計算各個樣本點之間的歐式距離,放到矩陣D 中,并且確定聚類個數(shù)k(表示有k 種體質(zhì)分類)
(3)隨機選取k 個中心點(每個中心點代表一個簇)
(4)根據(jù)距離矩陣D,將樣本點分到距離它最近的中心點的簇中
(5)計算各個簇中的樣本點到簇中其他樣本點的距離,求出距離最小樣本點作為新的中心點
(6)如果新的中心點集合與之前的中心點集合一樣或者迭代次數(shù)達到最高次數(shù),算法終止,輸出最后一次各個簇中的樣本點,如果不一樣則返回(4)。
數(shù)據(jù)處理流程圖如圖1 所示。
圖1 基于K-medoids方法的學生體質(zhì)健康分類算法流程圖
隨機從數(shù)據(jù)庫抽取6000 條男生測試數(shù)據(jù)作為實驗數(shù)據(jù)。使用K-medoids 算法進行分析,將BMI、肺活量、體前屈、立定跳遠、50 米跑、1000 米跑(男)、引體向上(男)數(shù)據(jù)傳入,將分類的個數(shù)k 定為10,表示將分為十類。迭代次數(shù)選取100 次,如果中心點集合沒有變化或者達到最高次數(shù)還沒有收斂則選取最后一次的中心點集合作為中心點,每個簇的最后的中心點向量和每個簇的數(shù)量如表4 和表5 所示。
表4 中心點向量
表5 每個集合中簇類的個數(shù)
將聚類結(jié)果用PCA(Principal Component Analysis,主成分分析)降維顯示如圖3 所示,PCA 能夠使新的低維數(shù)據(jù)集會盡可能地保留原始數(shù)據(jù)的變量結(jié)果,但是需要注意,通過PCA 降維實際上也損失了一些信息,通過查看pca.explained_variance_ratio_值得出[0.99781126,0.00157304],可以看到保留的兩個主成分,第一個主成分可以解釋原始變異的99.78%,第二個主成分可以解釋原始變異的0.15%。也就是說降成兩維后仍保留了原始信息的99.93%左右。通過K-medoids 聚類算法,觀察每個聚類特征,可以發(fā)現(xiàn)集合id5 中學生數(shù)據(jù)大部分為優(yōu)秀且多個測試數(shù)據(jù)接近,集合id9 中,體測數(shù)據(jù)及格的居多且多個測試數(shù)據(jù)接近。這也表明該算法可以很好地讓體質(zhì)相似的學生分在一起,方便老師對學生制定個性化的運動處方。
圖2 各個簇的分布情況
由于大學生數(shù)量較大且體質(zhì)測試數(shù)據(jù)沒有任何規(guī)律性,導(dǎo)致了很難從中找出規(guī)律,老師也很難為每個學生設(shè)計個性化運動處方,從而高效科學地提高學生的身體素質(zhì)。通過本文的聚類分析,我們可以輕松地找出相似體質(zhì)的學生,通過分類出的學生體質(zhì)特點,采取針對性強、個性化的運動處方來鍛煉學生,可以更加有效科學地提高大學生的身體素質(zhì)。