楊正理,史文,陳海霞,王長鵬
(三江學院 機械與電氣工程學院,江蘇 南京 210012)
隨著計算機通信網絡技術、信息技術的發展,普通高校招生方式多元化,以及各院校招生競爭的日趨激烈,制定精確合理的招生策略所需要參考的招生信息數據呈現爆炸性增長,形成了招生信息大數據[1]。原有的招生信息數據處理方式已不能滿足大數據的要求,需要研究新的數據分析方法。
高校招生策略預測的常用方法有:時間序列、灰色預測、多元統計等。這些方法具有簡單實用、預測速度快的優點,但只適用小樣本、線性變化的數據集,對大規模、非線性數據則無能為力[2]。近年來,基于大數據技術,研究更有效的預測模型已成為學術界和產業界共同關注的熱點[3]。文獻[4]采用Spark平臺和并行隨機森林算法對短時電力負荷進行預測,改進了單機隨機森林算法的各方面性能;文獻[5]基于隨機森林算法的并行化,對歷史負荷數據及相關的溫度、風速等一起進行分析,提高了負荷預測效率,并增強了算法對大數據的處理能力;文獻[6]提出了一種基于弱相關化特征子空間選擇的離散化隨機森林并行分類算法,使決策樹之間相關性降低,提高了隨機森林的分類效果;文獻[7]在小規模集群服務器上用消息傳遞技術對隨機森林算法進行并行化,提高了模型的訓練速度;文獻[8]采用數據重構方法獲取多維高校歷史數據,利用非線性預測能力較強的支持向量機提出了一種數據挖掘高校招生預測模型;文獻[9]以歷年招生數據為基礎,采用數據挖掘手段分析校園網絡數據,構建了高校招生預測系統,為學校招生帶來可視化的預測信息;文獻[10]建立了高校招生數據挖掘系統,提出了有利于高校招生的策略預測方法。
經過眾多研究學者的努力,國內對高校招生策略的預測方法取得了一定成果,但由于相適應的市場機制還沒有形成,一些有效的預測模型,如并行化隨機森林算法在高校招生領域還沒有得到應用。本文借助Hadoop平臺,利用并行化計算框架對招生數據進行挖掘和分析,提出了并行化的隨機森林算法預測高校招生策略的方法。
Hadoop是云計算技術應用最廣泛的平臺之一,已經成為大數據管理與并行處理的主流技術。Hadoop是一個開源的分布式軟件框架,分布式文件系統(hadoop distribution file system,HDFS)和并行化計算模型MapReduce是其最核心內容[11]。HDFS提供了文件分布式存儲、大數據庫管理等應用技術;而MapReduce則為大數據庫提供了完善的并行分析計算框架。為了方便用戶操作,Hadoop還提供了一系列實用的組件供用戶選擇,如Hive、Pig、Sqoop、Datanucleus等[12]。
參照云計算技術體系結構[13]與數據分析處理工具,并結合高校招生數據分析的實際需要,搭建以數據存儲、分析計算為主的高校招生數據管理平臺,其基本構架如圖1所示。平臺自下往上分為:數據采集整合系統、數據存儲系統、數據分析系統和數據應用系統。
該平臺是Hadoop技術的具體應用:一方面,利用Hadoop的核心組件HDFS、HBase、Hive建立大數據存儲系統;另一方面,利用MapReduce并行計算框架和Spark內存并行計算框架,構成數據計算分析系統,實現對高校招生數據的分析與計算。

圖1 大數據管理平臺框架圖Fig.1 Architecture diagram of big data manage platform
高校的招生人數、專業設置、生源人數、學生成績等招生數據構成數據子集,這些數據子集來源不同,數據口徑不一,模態千差萬別,形成了海量異構數據。
數據整合過程就是將海量異構數據遷移至Hadoop集群,實現高效存儲與管理。目前,數據整合過程還沒有一個高效標準的方法,還需要利用第三方軟件完成該操作,如Sqoop、Datanucleus等。Sqoop能夠將數據在Hadoop集群和關系型數據庫之間進行相互轉移[14]。在本管理平臺中,利用Sqoop將各數據子集遷移到集群的數據倉庫;Datanucleus能夠支持多種主流存儲系統[15],屏蔽各存儲系統之間的差異,提供標準的數據接口(JDO,JPA)實現數據傳送。在本管理平臺中,各數據子集通過Datanucleus接口將數據導入到列數據庫HBase中。
數據倉庫、列數據庫中的數據均存儲在Hadoop集群的HDFS中。采集到的原始數據經過抽取、清理、系統加工、整合等預處理后保存到數據倉庫,預處理過程是為了保證數據倉庫中的數據信息是一致的全局信息[16]。Hadoop提供了一款管理數據倉庫組件Hive,其作用是將結構化的數據文件映射成數據庫,并為用戶提供簡單的SQL查詢功能[17]。HDFS中的數據塊(Block)采用冗余多備份機制存儲,能有效的處理單點故障。
平臺采用并行化計算模型MapReduce對數據進行挖掘分析,利用基于內存的并行化計算模型Spark對對密集型數據完成迭代式計算。MapReduce向用戶提供了龐大但設計精良的并行計算軟件框架,在集群內能實現計算任務和數據的自動劃分,并能根據集群節點所能提供的資源自動完成任務的分配,并有效監控任務的完成過程,最后還能自動完成各集群節點計算結果的收集。MapReduce將數據分布式存儲、數據通信、容錯處理等復雜的底層細節全交由系統處理,大大減輕了用戶軟件開發負擔[18];Spark是在Hadoop基礎上進行改良的基于內存的集群計算系統。系統的中間數據全部存放在內存中,對迭代等復雜的計算過程具有很高的效率[19]。
根據云服務中應用即服務的概念,數據應用系統就是向高校招生策略預測系統的應用者提供所需要的服務,如以文件的形式提供各省市招生計劃投放數據列表、指導本校專業設置建議、招生生源選擇提示、招生宣傳策略等可視化服務。數據應用系統還為用戶提供與高校招生有關的、能夠與其他系統進行數據交換的操作接口。
在大數據背景下,常用的分類預測算法有極限學習、神經網絡、遺傳算法、支持向量機、決策樹等。決策樹在傳統的分類預測算法基礎上得到了廣泛研究,也取得了不錯的應用效果[20],但由于其自身原因,仍然存在以下不足。
1) 在建樹初始需要將所有的分類規則讀入內存,限制了決策樹處理更多數據,因此其處理大數據的能力有限。
2) 實際應用中,當數據中有噪聲或訓練樣本過少時,會出現過度擬合現象。過度擬合的決策樹對訓練樣本的分類效果表現良好,但對新樣本的分類效果則明顯不佳。
3) 決策樹在選擇屬性時不進行回歸運算,因此其結果僅能收斂于局部最優解,造成決策樹分類精度不高,且泛化能力較差。
隨機森林是一種集成了多棵分類回歸樹的綜合分類預測算法。當輸入訓練樣本時,每一棵決策樹都會產生一個分類結果,通過對所有分類結果進行投票得到隨機森林的最終分類結果。隨機森林吸收了決策樹的所有優點,同時克服了決策樹的缺點。又因為便于實現并行化,提高了數據分析效率,同時也提高了算法對大數據的處理能力。
由于高校招生策略的輸出為實數,只需要討論隨機森林的回歸過程,其實現步驟如下(設集成的決策樹棵數為 R):
1) 從原始數據集 S中采用Bagging方法有放回的抽取大小為 N 的訓練子集 T Si(i=0,1,···,R);
2) 對 T Si重復①~③步驟,直到節點的樣本數不超過預設的最小值 Lmin, 得到一棵決策樹 Ti:
① 從 M 個屬性樣本集中隨機抽取 m個屬性樣本;在回歸模型中, m 值 取 M 的1/3。
② 從 m 個屬性樣本中選擇最佳的變量 j和切分點 s 得 到θ ( j,s);
③ 將該節點 θ( j,s)切分成兩個內部節點。
決策樹中內部節點進行分支的樣本屬性選擇依據采用最小二乘偏差算法。采用“平方誤差最小原則”來度量決策樹的分支偏差,節點t的擬合偏差公式為

式中: nt為 節點t中 所包含的實例個數,kt為每個內部節點中由實例目標值計算所得到的平均值。
節點t按 屬性值 s進行分支的最小二乘偏差值計算公式為

為了在訓練過程中減少遍歷屬性值的計算,對式(2)進行化簡得到:

隨機森林集成了多個決策樹,這是隨機森林算法能夠實現并行化的物理條件。而袋裝(Bagging)算法和隨機子空間思想為隨機森林算法的并行化提供了基本理論依據:
Bagging算法是一種根據概率分布原理從數據集中有放回的抽樣技術。Bagging算法進行每輪抽樣時,數據集中約有36.8%的樣本不能被抽中,沒有被抽中的數據樣本不能參加算法訓練,但可以用來檢測訓練模型的泛化能力。Bagging算法使每個訓練樣本的內容不同,但所包含原始數據集的知識規模是相同的,從而使隨機森林中的每個決策樹的構建過程相互獨立,可以并行完成訓練過程。
隨機子空間思想是指決策樹在每個節點進行屬性樣本抽取時,隨機的從屬性樣本中抽取若干個屬性的方法。由于抽取過程隨機,所以多個節點可以并行化地同步抽取,使各決策樹可以獨立生成。
Bagging思想和隨機子空間思想保證了隨機森林能夠并行運行,使其具有較高的預測精度、較快的數據分析效率和較強的數據處理能力。因此,本文提出了基于MapReduce的并行化隨機森林算法 (MapReduce-paralleled random forests,MRPRF)進行高校招生策略預測方法。
高校招生策略預測的原始數據量巨大,開啟3個MapReduce作業類來完成數據處理過程。每個MapReduce類的輸出作為下一個MapReduce類的輸入,3個MapReduce類分別完成生成數據字典、生成決策樹和構建隨機森林模型。
生成數據字典就是以文件的形式解析參于訓練的樣本數據,由第1個MapReduce作業類完成。在Map過程,首先讀取一部分招生樣本數據,然后提取樣本數據的屬性類型、屬性值、以及模型的類型(是回歸還是分類),得到key/value數據對傳遞給Reduce過程;在Reduce過程,將Map過程得到的key/value數據對按key值進行合并,并通過Datanucleus數據庫接口寫入到HBase中。所有的key/value數據對以文件形式進行記錄,保存在集群的HDFS中,作為第2個MapReduce作業類的輸入。
生成決策樹由第2個MapReduce作業類完成。隨機森林算法中集成的決策樹是并行產生的,一個Map過程生成一個決策樹。該MapReduce作業只有Map過程,沒有Reduce過程。
生成隨機森林由第3個MapReduce作業類完成。在回歸預測模型中,該過程的主要功能就是將所有決策樹的結果進行統計,求取平均值得到隨機森林的最終結果。
采用并行化隨機森林算法預測高校招生策略的具體流程如圖2所示。該流程基于Hadoop集群強大的存儲能力和數據處理能力,對招生數據進行挖掘和分析處理,有效的提高了算法的預測精度和數據處理能力。

圖2 并行化隨機森林招生策略預測流程圖Fig.2 Flow chart of paralleled random forests for enrollment strategy
課題組在實驗室采用46臺計算機建立了一個高校招生策略預測實驗平臺。計算機集群采用典型的主/從結構,也稱為Master/Salve結構。其中一臺計算機作為Master(管理節點),負責集群內的資源管理和任務分配;其他計算機作為Salve(數據節點),負責保存各數據塊,并完成與數據塊相對應的任務。當MapReduce作業提交至Master節點時,Master將數據文件進行分塊,并記錄與各數據塊相對應的名字空間與元數據。然后將各數據塊冗余的保存在各數據節點并分配相應的作業任務,并負責監控MapReduce作業的執行過程。實驗平臺的拓撲結構如圖3所示。
圖3中,大數據庫以關系型數據庫方式保存,應用Sqoop軟件將本地文件或數據庫表與HDFS文件進行相互遷移。Sqoop軟件是基于MapReduce實現的,用戶無需過多關注MapReduce的實現和優化過程。實驗中,將約20萬條測試數據整合到HBase列式數據庫中,大約需要2 min時間。

圖3 實驗平臺拓撲結構Fig.3 Topology map of experimental platform
實驗數據來自某高校近3年的招生數據,包括:該年各省考生人數、考生來源(畢業中學、中學所在地)、各專業在各省的招生人數、報到率、錄取志愿排名、男女比例、學生當年錄取成績(總分、選測成績)、錄取成績在本省排名等。已有的數據遠沒有達到大數據庫的規模,但采用這些數據足以驗證算法的正確性。后期通過人為的補充數據操作,使實驗數據達到大數據的規模,然后驗證算法的數據處理能力。根據大量文獻[21-24]的研究成果,將預測當年的招生數據進行歸一化處理,形成預測高校招生策略的樣本屬性。
算法的預測精度采用平均絕對百分比誤差(mean absolute percentage error,MAPE)來評價,MAPE的計算方法為

式中: Yt為 算法的預測值; yt為 真實值;n為預測結果的個數;MAPE值越小時,說明算法的預測精度越高。
算法的加速比(speedup)是指單位任務在單處理器系統下執行完成所消耗時間與該任務在并行處理器系統下執行完成所消耗時間的比值,其作用是用來評價并行系統或程序并行化的性能和效果,speedup的計算公式為

式中:t 為單臺計算機的運行時間,T為集群模型的運行時間
實驗1 在相同的數據集下,比較MR-PRF算法、決策樹算法、單機隨機森林算法的性能。原始數據集取2014—2016年某大學的歷史招生數據 (文件大小為 104 MB,共 1.2×106條數據),分別采用MR-PRF算法(集成決策樹數量 R =240)、決策樹算法、單機隨機森林算法對2017年的招生策略進行預測,各類實驗均進行多次,并取實驗結果的平均值作為最終結果,實驗結果如表1所示。

表1 各類算法的預測性能比較Table1 Prediction performance of all kinds of algorithms
由表1可見,MR-PRF算法的預測性能最好,且執行效率最高。這是因為MR-PRF算法吸取了決策樹的優點而克服了其缺點,在預測精度上才有更好的表現。而且由于MR-PRF算法的并行化,使其執行效率得到較大提高。
實驗2在同樣的數據集下,MR-PRF算法集成決策樹的數量 R 與算法的性能表現之間的關系。采用實驗1數據集,MR-PRF集成決策樹數量 R取不同值時,得到的實驗結果如表2所示。

表2 MR-PRF算法的預測精度受決策樹數量的影響Table2 The prediction accuracy of the MR-PRF algorithm is affected by the number of decision trees
由表2可見,MR-PRF算法的集成決策樹數量 R取值過小時,算法精度較低,這是因為不能充分體現MR-PRF的并行優勢;當MR-PRF算法的集成決策樹數量 R取值過大時,算法的復雜程度加大,預測時間加長;當MR-PRF算法的集成決策樹數量 R取值達到一定程度時,算法的精度變化不大。這說明在實際應用時,R取值應合理。
實驗3 MR-PRF算法的集成決策樹數量R取值一定時(R =240),其預測性能和數據集大小的關系。人為補充數據集至不同大小,對每組數據集分別進行多次實驗,取多次實驗的平均值作為最終結果,實驗數據如表3所示。
由表3可見,原始數據集的大小對MR-PRF算法的預測性能影響不大,沒有明顯的規律可尋。但隨著原始數據集的增加,運行時間加大,這是符合算法規律的。該實驗結果表明MR-PRF算法是適合處理大數據集的。

表3 MR-PRF算法的預測性能受數據集大小的影響Table3 The prediction property of the MR-PRF algorithm is affected by the data set size
實驗4 通過計算加速比值來評價MR-PRF算法的并行性能。人為補充數據集至3.6、13.6、136 GB,分別由 1、5、15、25、35臺計算機構成集群,選擇MR-PRF算法集成決策樹數量 R =240進行預測實驗,結果如圖4所示。由圖4可見,在相同規模集群下,數據集越大,加速比越大,并行性能越好;在相同的原始數據集下,加速比隨集群的增加而增加,并行性能也越好。

圖4 MR-PRF算法的加速比Fig.4 Speedup of MR-PRF algorithm
在國內外大數據研究基礎上,針對高校招生數據集的特點,提出了一種基于Hadoop的分布式并行隨機森林算法模型,并利用該模型處理高校招生大數據,實現對未來招生策略進行預測。經多次不同類型的實驗進行驗證,并與使用廣泛的決策樹預測算法進行比較,證明并行隨機森林算法模型具有更快的數據分析速度,更高的預測性能以及更好的大數據處理能力。
受實驗條件限制,原始招生數據集在數量上遠沒有達到大數據的規模,但通過人為的數據補充操作,提高了實驗的真實性。因此,本文的結論仍然具有較強的可參考性。