唐燕+王蘋
[摘要] 中醫(yī)院校的貧困生認(rèn)定工作是非常重要的,但是目前的認(rèn)定方法還存在著不科學(xué)不公正等問題。為完善貧困生的認(rèn)定工作,本文基于隨機(jī)森林分類算法,對貧困生的認(rèn)定進(jìn)行研究。在相同的數(shù)據(jù)集中,分別使用決策樹算法和隨機(jī)森林算法對貧困生進(jìn)行分類,決策樹算法的平均正確率為74.43%,而隨機(jī)森林算法模型的平均正確率為85%,并進(jìn)一步對兩種算法進(jìn)行比較。實(shí)驗(yàn)證明,隨機(jī)森林算法分類正確率較高,適合貧困生的認(rèn)定工作。隨機(jī)森林為貧困生的認(rèn)定提供了一種新方法。
[關(guān)鍵詞] 貧困生認(rèn)定;隨機(jī)森林;決策樹;機(jī)器學(xué)習(xí)
[中圖分類號] R-3 [文獻(xiàn)標(biāo)識碼] A [文章編號] 1673-7210(2017)05(b)-0164-05
[Abstract] It is an important task to identify the poor students in traditional Chinese medicine colleges and universities, and there are uneconomical and unjust problems in the current methods. In order to improve the identification of poor students, this paper based on the random forest classification algorithm to study the identification of poor students. In the same data set, the decision tree algorithm and the random forest algorithm are used to classify the poor students. The correct rate of decision tree algorithm is 74.43%, while the accuracy rate of the random forest algorithm model is 85%, and further comparison of the two algorithms. Experiments show that the classification accuracy of random forest algorithm is high, which is suitable for the identification of poor students. Random forest provides a new way for the identification of poor students.
[Key words] Poor students identification; Random forest; Decision tree; Machine learning
近年來,隨著中醫(yī)藥類高校不斷擴(kuò)大招生人數(shù),在讀貧困生人數(shù)也明顯增加。所謂貧困生是指家庭收入低,完成學(xué)業(yè)有經(jīng)濟(jì)困難的學(xué)生。數(shù)據(jù)顯示,2015年,全國高校在校家庭經(jīng)濟(jì)困難學(xué)生比例超過40%,政府、高校及社會等各類政策措施共資助高校學(xué)生4141.58萬人次,資助總金額847.97億元[1]??梢钥闯?,貧困生所占比例較大。但高校中也不乏出現(xiàn)為領(lǐng)取助學(xué)金而謊報(bào)為貧困生的情況。因此,如何精準(zhǔn)地認(rèn)定在校貧困生,更好的通過助學(xué)金幫助他們完成學(xué)業(yè)是一項(xiàng)非常重要而又意義深遠(yuǎn)的工作。目前,貧困生的認(rèn)定工作人為因素較多,缺乏科學(xué)性和合理性,如何科學(xué)、公正、合理、高效的認(rèn)定貧困生是亟待解決的問題。
1 高校貧困生認(rèn)定研究
當(dāng)前,很多高校的貧困生認(rèn)定主要方式為:學(xué)生主動(dòng)填寫《普通本科高校國家助學(xué)金申請表》《普通本科高校國家勵(lì)志獎(jiǎng)學(xué)金申請表》等各類助學(xué)金申請表,各個(gè)班根據(jù)申請同學(xué)家庭情況、日常消費(fèi)等情況做出初步評定。班級上報(bào)院系后,院系根據(jù)學(xué)校給定名額進(jìn)一步評定,最后確定最終貧困生人選。這種認(rèn)定方法摻雜人為因素,在貧困生的評選過程中很難做到公平公正、科學(xué)合理。
也有高校根據(jù)一卡通消費(fèi)數(shù)據(jù)情況給出貧困生認(rèn)定的一些限制條件[2],例如通過學(xué)生就餐、日常刷卡消費(fèi)情況,給定學(xué)生最低生活保障線,由此確定貧困生。這種做法主要根據(jù)數(shù)據(jù)統(tǒng)計(jì)分析得出,有一定的科學(xué)性,但是認(rèn)定指標(biāo)過于單一,認(rèn)定指標(biāo)不夠全面,存在片面性。
在貧困生認(rèn)定問題上,很多學(xué)者應(yīng)用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)算法進(jìn)行了一些有益的嘗試。曹路舟[3]提出使用FP-growth算法找出貧困生數(shù)據(jù)之間的關(guān)聯(lián)規(guī)則,為認(rèn)定貧困生提供參考。陳曉等[4]提出基于加權(quán)約束的決策樹方法建立貧困生認(rèn)定決策樹,通過決策樹認(rèn)定貧困生。楊知玲[5]和張建明[6]提出使用決策樹算法構(gòu)建貧困生認(rèn)定決策樹,從而提高貧困生認(rèn)定的準(zhǔn)確性和精度。馬幸飛等[7]提出采用新距離標(biāo)準(zhǔn)的K-means算法對學(xué)生的三餐消費(fèi)等情況進(jìn)行聚類分析,從而為貧困生的認(rèn)定提供依據(jù)。通過國內(nèi)相關(guān)文獻(xiàn)可以看出,在貧困生認(rèn)定中,使用決策樹模型進(jìn)行分析的學(xué)者較多,還沒有找到隨機(jī)森林算法的相關(guān)研究文獻(xiàn)。
本文結(jié)合申請表信息和一卡通消費(fèi)數(shù)據(jù),通過問卷調(diào)查獲取數(shù)據(jù),使用隨機(jī)森林算法對貧困生的認(rèn)定進(jìn)行分析。通過實(shí)驗(yàn),隨機(jī)森林極大提高了認(rèn)定的正確率,非常適合貧困生的認(rèn)定工作。
2 隨機(jī)森林算法
隨機(jī)森林(random forest,簡稱RF)是2001年由美國科學(xué)院院士Breiman教授提出的,結(jié)合了Bagging和Random Subspace的思想一種算法。隨機(jī)森林是由多個(gè)決策樹而形成的一種集成分類器模型[8-9]。隨機(jī)森林在Bagging基礎(chǔ)上進(jìn)行了改進(jìn),但是訓(xùn)練效率常優(yōu)于Bagging[10]。隨機(jī)森林算法執(zhí)行效率較高,并且明顯的提升了預(yù)測精度,被稱為當(dāng)前最好的算法之一。
隨機(jī)森林算法是由多棵決策樹作為基學(xué)習(xí)器,利用Bagging生成不同的訓(xùn)練集,在單棵樹的訓(xùn)練過程中引入隨機(jī)屬性選擇,訓(xùn)練多次,得到多棵不同的決策樹,將這些樹組合成隨機(jī)森林分類器。在分類時(shí)通過投票或取平均決定未知樣本的類別。隨機(jī)森林的構(gòu)建過程見圖1[11]。
隨機(jī)森林的構(gòu)建過程中關(guān)鍵步驟包括:隨機(jī)生成訓(xùn)練集、生成多棵決策樹、通過投票實(shí)現(xiàn)算法。隨機(jī)森林算法的步驟描述如下:
①從數(shù)據(jù)集中利用bootstrap抽樣法有放回地隨機(jī)抽樣,選取每棵樹的訓(xùn)練樣本集。初始訓(xùn)練集中,有些數(shù)據(jù)重復(fù)出現(xiàn),有些從未出現(xiàn)。在訓(xùn)練過程中,每次抽樣約有63.2%的樣本被抽中,作為自助樣本集,用來作為訓(xùn)練數(shù)據(jù)構(gòu)建一棵決策樹;剩余的36.8%的樣本稱為袋外數(shù)據(jù),可作為測試集,測試分類誤差[12]。
②每個(gè)自助樣本集用來構(gòu)建一棵決策樹或條件樹。假設(shè)每個(gè)樣本有M個(gè)屬性,在構(gòu)建決策樹時(shí),每次隨機(jī)選擇m個(gè)屬性(m ③每棵決策樹的每一個(gè)節(jié)點(diǎn)都按照步驟②進(jìn)行選擇。使得每個(gè)節(jié)點(diǎn)的純度最高,即Gini指數(shù)最小的屬性作為最優(yōu)劃分屬性,直到節(jié)點(diǎn)不能分裂為止。建立CART決策樹。將上述過程重復(fù)多次,構(gòu)建多棵決策樹,形成森林[17]。 ④在測試集中,計(jì)算未知樣本x分類為c的概率:P(c|x)=(1/nTree)·Σhj(c|x),采用多數(shù)投票法、平均法等結(jié)合策略確定類別。如果應(yīng)用多數(shù)投票法確定類別,則c通過arg max P(c|x)得出[18-20]。 隨機(jī)森林的構(gòu)建過程中有兩次隨機(jī),即樣本的隨機(jī)選擇和屬性的隨機(jī)選擇。這兩次隨機(jī)使得每棵樹的構(gòu)建過程中即使沒有進(jìn)行剪枝也不會出現(xiàn)過擬合情況。 3 實(shí)驗(yàn)分析 3.1 數(shù)據(jù)采集及數(shù)據(jù)整理 當(dāng)前,很多高校依然通過學(xué)生填寫貧困生申請表,班級評選確定貧困生。本文根據(jù)申請表填寫的信息,結(jié)合學(xué)生每月消費(fèi)情況和三餐消費(fèi)情況,通過問卷調(diào)查采集4個(gè)平行班級的180條記錄。數(shù)據(jù)涉及學(xué)生家庭信息、家庭經(jīng)濟(jì)狀況、學(xué)生個(gè)人消費(fèi)情況等方面。 采集到的數(shù)據(jù)包含12個(gè)屬性,分別為:性別(X1)、城市/農(nóng)村戶口(X2)、家庭每月收入(X3)、家庭是否有殘疾/危重病人(X4)、學(xué)生每月支出(X5)、每天生活消費(fèi)(X6)、早餐消費(fèi)(X7)、午餐消費(fèi)(X8)、晚餐消費(fèi)(X9)、是否有當(dāng)?shù)氐捅#╔10)、來自省市(X11)、是否認(rèn)定貧困生(Y)。 數(shù)據(jù)剔除缺失嚴(yán)重記錄和異常數(shù)據(jù),最后收集169條記錄。根據(jù)4各班級評議結(jié)果,合并特別困難、一般困難為困難,用1表示,不困難用0表示。統(tǒng)計(jì)得出,困難64人,不困難105人。 為比較隨機(jī)森林模型和決策樹模型的分類預(yù)測效果,將數(shù)據(jù)集中的連續(xù)數(shù)據(jù)離散化。例如:將家庭每月收入分為<2000、2000~4000、4001~6000、>6000四個(gè)等級,分別記為1、2、3、4。 3.2 決策樹和隨機(jī)森林實(shí)驗(yàn)結(jié)果 3.2.1 決策樹實(shí)驗(yàn)結(jié)果 針對文獻(xiàn)中很多學(xué)者使用決策樹對貧困生進(jìn)行認(rèn)定,試驗(yàn)中使用決策樹中的ID3算法對數(shù)據(jù)進(jìn)行分類,并進(jìn)一步使用隨機(jī)森林算法進(jìn)行比較。實(shí)驗(yàn)使用python語言分別編寫決策樹分類算法程序和隨機(jī)森林分類程序。 ID3算法的核心思想是在決策樹的每一個(gè)非葉子節(jié)點(diǎn)劃分之前,先計(jì)算每一個(gè)特征向量所帶來的信息增益,選擇最大信息增益的特征向量作為當(dāng)前節(jié)點(diǎn)進(jìn)行劃分。因?yàn)樾畔⒃鲆嬖酱螅瑓^(qū)分樣本的能力就越強(qiáng),越具有代表性,ID3算法是一種自頂向下的貪心策略。 決策樹的構(gòu)建過程是遞歸的過程,一般情況下,決策樹深度越小,預(yù)測的正確率越低。當(dāng)決策樹的深度不斷增加,葉節(jié)點(diǎn)不斷增加時(shí),預(yù)測的正確率會不斷增高。但是,如果決策樹深度過深,葉子結(jié)點(diǎn)太多,往往會導(dǎo)致過擬合,使得泛化能力變差。因此,需要通過剪枝在樹的大小和正確率之間尋找平衡點(diǎn)。 和決策樹相比較,隨機(jī)森林通過兩次隨機(jī),有效避免了過擬合的情況,并且有很好的抗噪能力,即當(dāng)數(shù)據(jù)集中有缺失數(shù)據(jù)時(shí)對預(yù)測精度影響不大。隨機(jī)森林在構(gòu)建單棵樹時(shí),只選擇部分特征屬性(m=log2M,或者m= ),使得隨機(jī)森林單棵樹和決策樹相比,特征屬性遠(yuǎn)遠(yuǎn)小于決策樹。構(gòu)建的單棵樹是不經(jīng)修剪的完全樹,樹的深度較小,規(guī)模較小,樹的結(jié)構(gòu)比較簡單。隨機(jī)森林正是由多棵簡單的決策樹構(gòu)成,預(yù)測時(shí)通過投票,以少數(shù)服從多數(shù)等方式顯示結(jié)果。隨機(jī)森林的單棵簡單的決策樹預(yù)測能力比較弱,屬于弱分類器。但是,當(dāng)很多棵樹形成隨機(jī)森林時(shí),體現(xiàn)了集體的力量,預(yù)測效果優(yōu)于單一決策樹。因此,隨機(jī)森林樹的棵樹越多,預(yù)測正確率越高,表現(xiàn)越穩(wěn)定。 在實(shí)驗(yàn)中隨機(jī)選擇80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),其余20%數(shù)據(jù)作為測試數(shù)據(jù)。當(dāng)決策樹的深度為3時(shí),正確率最高。實(shí)驗(yàn)中生成的決策樹見圖2。 實(shí)驗(yàn)中,將決策樹的深度從2遞增到14,依次記錄預(yù)測正確率為70.59%、82.35%、64.71%、73.53%、70.59%、73.53%、76.47%、76.47%、76.47%、76.47%、73.53%、76.47%、76.47%,平均正確率為74.43%。使用決策樹進(jìn)行分類測試,準(zhǔn)確度不是很高。實(shí)驗(yàn)進(jìn)一步使用隨機(jī)森林模型進(jìn)行分類訓(xùn)練和測試。 3.2.2 隨機(jī)森林實(shí)驗(yàn)結(jié)果 實(shí)驗(yàn)進(jìn)一步在相同的數(shù)據(jù)集上使用隨機(jī)森林算法進(jìn)行分類。實(shí)驗(yàn)中繼續(xù)隨機(jī)選擇80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),其余20%數(shù)據(jù)作為測試數(shù)據(jù)。當(dāng)給定樹的棵樹為20,樹的最大深度為4時(shí),運(yùn)行程序10次,依次得到測試集的準(zhǔn)確度為85.29%、88.24%、85.29%、91.18%、82.35%、85.29%、79.41%、88.24%、82.35%、82.35%,平均準(zhǔn)確度為85%。隨機(jī)森林算法的準(zhǔn)確度明顯高于決策樹算法。
3.2.3 兩種模型實(shí)驗(yàn)結(jié)果比較 本文中的貧困生認(rèn)定是二分類問題,可以根據(jù)真實(shí)類別和學(xué)習(xí)器預(yù)測類別的組合劃分為真正例TP、假正例FP、真反例TN和假反例FN。這4個(gè)值構(gòu)成分類結(jié)果混淆矩陣。
當(dāng)決策樹的深度為5時(shí),正確率為73.53%,與平均正確率最接近,此時(shí)決策樹模型測試集的分類結(jié)果混淆矩陣見表1。
決策樹模型認(rèn)定貧困生的分類誤差為0.2,認(rèn)定非貧困生的分類誤差為0.263。
選取隨機(jī)森林模型某次程序運(yùn)行結(jié)果準(zhǔn)確度為82.35%時(shí),測試數(shù)據(jù)集的真實(shí)值和與測試值,計(jì)算分類結(jié)果混淆矩陣見表2。
隨機(jī)森林模型認(rèn)定貧困生的分類誤差為0,認(rèn)定非貧困生的分類誤差為0.26??梢钥闯?,隨機(jī)森林模型認(rèn)定貧困生類別的準(zhǔn)確度高于決策樹,認(rèn)定非貧困生類別與決策樹相比略高一點(diǎn)。提示隨機(jī)森林對貧困生類別的認(rèn)定誤差更低,更精確。
3.2.4 兩種模型調(diào)整參數(shù)進(jìn)一步比較 決策樹算法中,樹的深度有可能會影響預(yù)測的準(zhǔn)確度,因此程序中將樹的深度從2變化到15,計(jì)算不同深度時(shí),決策樹的預(yù)測正確率,并繪制曲線圖。見圖3。
隨機(jī)森林算法中,設(shè)置樹的最大深度參數(shù)分別為3、4或默認(rèn)值None時(shí),調(diào)整樹的棵樹從10變到50,計(jì)算測試集的正確率,繪制如圖4所示的曲線圖。
通過圖3可以看出,決策樹的深度較小時(shí),正確率波動(dòng)較大,當(dāng)決策樹深度不斷增大時(shí),正確率越來越穩(wěn)定,但是正確率在0.7~0.8之間波動(dòng)。從圖4可以看出,隨機(jī)森林單棵樹的最大深度為3、4或默認(rèn)值對正確率的影響不大。隨機(jī)森林在樹的數(shù)目較小時(shí),正確率波動(dòng)也較大,隨著樹的數(shù)目增大,正確率波動(dòng)減小,始終在0.8~0.9附近變動(dòng)。隨機(jī)森林整體預(yù)測效果優(yōu)于決策樹。
4 小結(jié)
貧困生的認(rèn)定工作在中醫(yī)院校每年都要開展,這項(xiàng)工作對家庭困難的學(xué)子來說是至關(guān)重要,有可能影響他們的學(xué)業(yè)和前途。如何科學(xué)合理、公開公正的完成中醫(yī)院校貧困生的認(rèn)定工作是個(gè)非常值得研究的課題。本文根據(jù)貧困生認(rèn)定中的常用數(shù)據(jù)指標(biāo)和一卡通消費(fèi)數(shù)據(jù),使用數(shù)據(jù)挖掘的多種算法進(jìn)行模型選擇,經(jīng)過試驗(yàn),隨機(jī)森林在貧困生的認(rèn)定中表現(xiàn)突出,正確率大大高于決策樹算法。并且隨機(jī)森林算法模型訓(xùn)練速度快,不易產(chǎn)生過擬合,分類準(zhǔn)確性較高。由此可以證明隨機(jī)森林算法更加適合貧困生的認(rèn)定工作,隨機(jī)森林為貧困生的認(rèn)定提供了一種新方法。此種方法可以在今后的中醫(yī)藥類院校貧困生認(rèn)定工作中,與人為主觀評定綜合使用,提高中醫(yī)藥類院校貧困生認(rèn)定工作的準(zhǔn)確性與公正性。
[參考文獻(xiàn)]
[1] 李書翔,趙?;郏悤?數(shù)據(jù)挖掘在家庭經(jīng)濟(jì)困難學(xué)生精準(zhǔn)識別中的應(yīng)用研究[J].亞太教育,2016(30):292-293.
[2] 韓玉,施海龍,曲波,等.隨機(jī)森林方法在醫(yī)學(xué)中的應(yīng)用[J].中國預(yù)防醫(yī)學(xué)雜志,2014,15(1):79-81.
[3] 曹路舟.PF-growth算法在高職院校貧困生認(rèn)定工作中的應(yīng)用研究[J].西安文理學(xué)院自然科學(xué)版,2015,18(1):68-72.
[4] 陳曉,王樹寶,李建晶,等.基于加權(quán)約束的決策樹方法在貧困生認(rèn)定中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014, 32(12):136-139.
[5] 楊知玲.數(shù)據(jù)挖掘在高校貧困生評價(jià)中的應(yīng)用研究[D].廣州:華南理工大學(xué),2015.
[6] 張建明.基于數(shù)據(jù)挖掘的高校貧困生認(rèn)定系統(tǒng)設(shè)計(jì)和分析[D].南京:東南大學(xué),2015.
[7] 馬幸飛,李引.基于改進(jìn)的K-means算法在高校學(xué)生消費(fèi)數(shù)據(jù)中的應(yīng)用[J].無錫商業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2016, 16(6):82-85.
[8] 馬驪.隨機(jī)森林算法的優(yōu)化改進(jìn)研究[D].廣州:暨南大學(xué),2016.
[9] 周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.
[10] 懷聽聽.隨機(jī)森林算法的改進(jìn)及其應(yīng)用研究[D].杭州:中國計(jì)量大學(xué),2016.
[11] 楊曉峰,嚴(yán)建峰,劉曉升,等.深度隨機(jī)森林在離網(wǎng)預(yù)測中的應(yīng)用[J].計(jì)算機(jī)科學(xué),2016,43(6):208-213.
[12] 楊飚,尚秀偉.加權(quán)隨機(jī)森林算法研究[J].微型機(jī)與應(yīng)用,2016,35(3):28-30.
[13] 李婉華,陳宏,郭昆,等.基于隨機(jī)森林算法的用電負(fù)荷預(yù)測研究[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(23):236-243.
[14] 程淼海,樓俏,王瓊,等.基于隨機(jī)森林算法的配網(wǎng)搶修故障量預(yù)測方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(9):137-143.
[15] 向濤,李濤,趙雪專,等.基于隨機(jī)森林的精確目標(biāo)檢測方法[J].計(jì)算機(jī)應(yīng)用研究,2016,33(9):2837-2840.
[16] 盧曉勇,陳木生.基于隨機(jī)森林和欠采樣集成的垃圾網(wǎng)頁檢測[J].計(jì)算機(jī)應(yīng)用,2016,36(3):731-734.
[17] 李磊,牟少敏,林中琦.隨機(jī)森林在棉蚜蟲害等級預(yù)測中的應(yīng)用[J].安徽農(nóng)學(xué)通報(bào),2017,23(1):18-20.
[18] 張新佶,張?zhí)煲?,許金芳,等.隨機(jī)森林傾向性評分方法及其在藥品不良反應(yīng)信號檢測中的應(yīng)用[J].中國衛(wèi)生統(tǒng)計(jì),2016,33(4):578-581.
[19] 鞏亞楠,帕提麥·馬秉成,朱登浩,等.隨機(jī)森林與Logistic回歸在預(yù)約掛號失約影響因素預(yù)測中的應(yīng)用[J].現(xiàn)代預(yù)防醫(yī)學(xué),2014,41(5):769-772.
[20] 李斐,馬千里.基于腦電信號特征提取的睡眠分期方法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(12):177-181.
(收稿日期:2017-01-15 本文編輯:程 銘)