李 楠
(福州軟件職業(yè)技術(shù)學(xué)院 軟件工程系,福建 福州 350003)
目前我校的貧困生等級依然是通過傳統(tǒng)方式——輔導(dǎo)員人工評估產(chǎn)生。在學(xué)生將貧困的相關(guān)證明材料及申請書提交給輔導(dǎo)員后,輔導(dǎo)員對候選貧困生的日常消費情況進(jìn)行初步評定。學(xué)生通過審核后,提交材料申請讓學(xué)工處再審。通過復(fù)審后在網(wǎng)站進(jìn)行公示,公示期滿再依據(jù)等級發(fā)放助學(xué)金。這樣的流程導(dǎo)致候選貧困生申請材料所體現(xiàn)的家庭情況、消費狀況等,成為主要評判依據(jù),這樣,內(nèi)向的貧困生可能得不到貧困資助,表現(xiàn)積極活躍的學(xué)生卻容易獲得申請。另外,繁瑣的過程,導(dǎo)致評定周期較長,助學(xué)金不能及時發(fā)放至貧困學(xué)生手中。為此,如果能根據(jù)采集到的學(xué)生一卡通中的消費數(shù)據(jù),挖掘出有價值數(shù)據(jù)成果,能使得學(xué)生助貧扶貧工作更加高效、精準(zhǔn)。
下圖展示了本文研究的一卡通貧困生評定系統(tǒng)的系統(tǒng)架構(gòu)圖。
圖1一卡通貧困生評定系統(tǒng)的系統(tǒng)架構(gòu)圖
Hadoop 是由Apache 組織研發(fā)的一個支持?jǐn)?shù)據(jù)集進(jìn)行分布式處理的框架,它將應(yīng)用程序分布在多硬件群運行,此種結(jié)合的并行分布式系統(tǒng)性能高、擴(kuò)展性高、成本低、可靠性高等性能。它由 HDFS( Hadoop分布式文件系統(tǒng)) 和 MapReduce(分布式計算框架)、HBase(分布式數(shù)據(jù)庫)等核心組件構(gòu)成。
1.1.1 HDFS
HDFS政區(qū)域,全稱為Hadoop Distributed FileSystem,它負(fù)責(zé)存儲并管理海量數(shù)據(jù),使得 Hadoop 可以很容易地在低成本的設(shè)備上安裝,訪問模式是以流式數(shù)據(jù)形式來訪問、存儲超大系統(tǒng)文件。
各服務(wù)器上分散有HDFS,抽象存儲資源出來,形成一虛擬統(tǒng)一的目錄文件格式。此做法使數(shù)據(jù)容量存儲擴(kuò)展,具體文件存儲地址用戶無需管理,以抽象的目錄可用本地系統(tǒng)對HDFS 中文件進(jìn)行操作。
1.1.2 MapReduce
MapReduce 是谷歌提出的用于分布式并行數(shù)據(jù)處理的編程模型,充分利用強(qiáng)大的海量數(shù)據(jù)計算支持,應(yīng)用集群能力實施高速運算。采用思想是分解數(shù)據(jù)處理為函數(shù)reduce 與map兩階段。封裝map和reduce兩接口核心于 MapReduce 中,程序員實現(xiàn)此兩接口可實現(xiàn)數(shù)據(jù)并行處理。Hadoop 把輸入數(shù)據(jù)MapReduce分劃為相等小數(shù)據(jù)塊(input split)輸入分片。適合的分片大小和 HDFS 的塊的一樣,map 運作只對輸入分片處理。在任務(wù) MapReduce中往往會分較大數(shù)據(jù)為多種分片,將分片在多個 map 進(jìn)程中封裝, N個計算機(jī)中并行運行map進(jìn)程有N個,處理數(shù)據(jù)得以加速。用戶輸入于map 中,對(key-value)映射成主鍵值,此多鍵值經(jīng)shffule處理后,變成有序的若干組鍵值對,鍵值對排好即成為輸入值reduce。,數(shù)據(jù)會在reduce階段被歸納、合并總結(jié)加以輸出。可由Yarn(Yet Anther Resource Negotiator)對reduce和Map進(jìn)程實施調(diào)度。
1.1.3 HBase
HBase是Hadoop的一個分布式、面向列存儲的開源數(shù)據(jù)庫,它能為大數(shù)據(jù)提供隨機(jī)、實時的讀寫訪問功能,它非常適合于非結(jié)構(gòu)化的數(shù)據(jù)存儲,同時又運用 MapReduce計算模型來并行處理大規(guī)模數(shù)據(jù),實現(xiàn)高大的數(shù)據(jù)存儲與計算能力。所以,HBase能夠?qū)崿F(xiàn)對高校學(xué)生的大量多類數(shù)據(jù)進(jìn)行存儲、分析和高效處理。
數(shù)據(jù)挖掘是整個應(yīng)用研究的核心。我們需要從大量的數(shù)據(jù)信息中,通過特定的算法提取出隱藏的有價值的信息,采用分析、統(tǒng)計、機(jī)器學(xué)習(xí)、模式匹配等手段,發(fā)掘不同數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,實現(xiàn)總結(jié)規(guī)律、預(yù)測未來趨勢的目的。
關(guān)聯(lián)規(guī)則作用是主要找尋不一樣事物的關(guān)聯(lián)性,如扶貧任務(wù)中貧困程度與交通、醫(yī)療、教育等領(lǐng)域間關(guān)聯(lián)性,能挖掘出其中的關(guān)聯(lián)規(guī)則對扶貧精準(zhǔn)任務(wù)的具體實施有十分重要的意義。再如分析購物籃的商品間關(guān)系,找出顧客購物習(xí)性,可對商業(yè)策略高效制定。
測評貧困生的相關(guān)領(lǐng)域發(fā)現(xiàn),分析Hadoop架構(gòu)體系, 貧困生Hadoop的系統(tǒng)評定設(shè)計原則選用結(jié)構(gòu)為層次化,依次從下到上為基礎(chǔ)、數(shù)據(jù)資源、支撐、應(yīng)用和服務(wù)這幾層,形成完整的系統(tǒng)框架,各層次功能如下表。
表1基于Hadoop的貧困生評定系統(tǒng)層次結(jié)構(gòu)表
基于Hadoop的貧困生評定系統(tǒng)的技術(shù)架構(gòu)采用 MVC 三層結(jié)構(gòu),如圖2 所示,其分別為視圖層、控制層和模型層,使用 Java 語言編寫后臺代碼,前臺使用 B/S 模式采用JSP語言開發(fā)。各層間不同的負(fù)責(zé)作業(yè),以相應(yīng)的接口通信交換數(shù)據(jù),同時還預(yù)留多個擴(kuò)展接口,方便后期添加新的校園大數(shù)據(jù)功能。
圖2基于Hadoop的貧困生評定系統(tǒng)的技術(shù)架構(gòu)圖
我們采用算法為FP-Growth,頻繁通過( FPTree)模式樹樹形結(jié)構(gòu)數(shù)據(jù),集壓頻繁項縮于頻繁模式樹里,將數(shù)據(jù)庫壓縮后劃分為條件數(shù)據(jù)庫,再對所有條件數(shù)據(jù)庫挖掘。具體算法如下:
第一步:從基礎(chǔ)數(shù)據(jù)中選取學(xué)生的一卡通消費數(shù)據(jù)
第二步:統(tǒng)計學(xué)生各類消費數(shù)據(jù),形成事務(wù)數(shù)據(jù)集
第三步:輸入最小支持度閾值
第四步:以支持度最小閾值找到各1項頻繁集,計數(shù)按其支持度降序排列
第五步:創(chuàng)建FPTree的根節(jié)點,將支持度計數(shù)降序排列的頻繁項遞歸插入到樹中,從而生成頻繁模式樹。
第六步:劃分條件數(shù)據(jù)庫。
第七步:挖掘每個條件數(shù)據(jù)庫。
葉節(jié)點、N個內(nèi)部節(jié)點和一個根節(jié)點合成決策樹一顆。葉節(jié)點其中,表決策結(jié)果,每個測試屬性由每個內(nèi)部節(jié)點相對應(yīng)。一個節(jié)點含的集合樣本以測試屬性結(jié)果劃分于子節(jié)點里。于每個根節(jié)點至葉節(jié)點路徑對應(yīng)每個測試判定序列。
建構(gòu)決策樹的泛化能力強(qiáng),我們選擇了C4.5 算法。它采用增益率來選擇劃分屬性。在C4.5的算法中通常選擇增益信息高出平均水平屬性從候選劃分中,再選出最高增益率。
當(dāng)前集合樣本假設(shè)為A,有n個離散屬性r的值{r1,r2,r3, ... ,rn},如對樣本集A用r屬性來劃分,會有n個節(jié)點分支產(chǎn)生,節(jié)點分支中第i個包含了所有A中取值在屬性r上為ri的樣本Ai。求增益率的公式如下所示:
根據(jù)以上設(shè)計思想,我們采集福州軟件職業(yè)技術(shù)學(xué)院2018年度軟件工程系在校生615名的一卡通刷卡數(shù)據(jù)(因走讀生在校刷卡次數(shù)較少,走讀生另做評定)進(jìn)行實踐。輔導(dǎo)員可以通過系統(tǒng)實時查看學(xué)生貧困狀態(tài)評測信息,還可以根據(jù)查看貧困學(xué)生的檔案資料等。
本次研究為進(jìn)一步基于Hadoop技術(shù),為高職校園建成系統(tǒng)大數(shù)據(jù)做好基礎(chǔ)奠定,變廢為寶重要的被忽視數(shù)據(jù),以合理科學(xué)的大數(shù)據(jù)挖掘和管理,為高職管理教學(xué)人員關(guān)注學(xué)生生活和學(xué)業(yè)提供依據(jù)分析數(shù)據(jù),也為高職管理教學(xué)方針制定提供數(shù)據(jù)支撐。