范廣慧 王威 王松 李昂



摘要:近年來(lái),我國(guó)大數(shù)據(jù)技術(shù)發(fā)展迅速,并在很多方面得到應(yīng)用,數(shù)據(jù)的價(jià)值越來(lái)越受到重視。高校在教學(xué)過(guò)程中積累了大量的學(xué)生數(shù)據(jù),該進(jìn)一步思考,如何讓這些數(shù)據(jù)轉(zhuǎn)變?yōu)樘岣邔W(xué)生水平的寶貴資源。本文在搭建Hadoop大數(shù)據(jù)平臺(tái)基礎(chǔ)上,對(duì)學(xué)生的生活數(shù)據(jù)、圖書借閱數(shù)據(jù)、成績(jī)數(shù)據(jù)等在內(nèi)的多種數(shù)據(jù),從多個(gè)角度去分析,刻畫學(xué)生的行為和偏好習(xí)慣等,為學(xué)生進(jìn)行畫像,有助于學(xué)生對(duì)自己有一個(gè)全面客觀的定位,也有助于學(xué)生管理部門精確管理和幫助學(xué)生,提高學(xué)生管理水平。
關(guān)鍵詞:大數(shù)據(jù);Hadoop;學(xué)生畫像;數(shù)據(jù)分析
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A
隨著互聯(lián)網(wǎng)、大數(shù)據(jù)和人工智能技術(shù)的飛速發(fā)展,各行各業(yè)積累的數(shù)據(jù)被看作寶貴的礦藏,可從中挖掘出寶貴的信息資源,高校的學(xué)生數(shù)據(jù)也不例外,學(xué)生的各種生活數(shù)據(jù)(如餐飲、購(gòu)物、上網(wǎng)時(shí)長(zhǎng)、宿舍衛(wèi)生分?jǐn)?shù)等)、圖書借閱數(shù)據(jù)、成績(jī)數(shù)據(jù)等在內(nèi)的多種數(shù)據(jù),從多個(gè)角度去分析,刻畫學(xué)生的行為和偏好習(xí)慣等,為學(xué)生進(jìn)行畫像,有助于學(xué)生對(duì)自己有一個(gè)全面客觀的定位,也有助于學(xué)生管理部門精確管理和幫助學(xué)生,提高學(xué)生培養(yǎng)水平。
1 基于大數(shù)據(jù)的學(xué)生畫像系統(tǒng)設(shè)計(jì)
1.1 學(xué)生畫像系統(tǒng)功能需求
基于大數(shù)據(jù)的學(xué)生畫像系統(tǒng)通過(guò)網(wǎng)絡(luò)在Web網(wǎng)頁(yè)上進(jìn)行訪問(wèn),架構(gòu)分為三層:客戶機(jī)—服務(wù)器—數(shù)據(jù)庫(kù)模式,學(xué)生通過(guò)Web網(wǎng)頁(yè)登錄到自己的系統(tǒng)中,通過(guò)辨別每位同學(xué)的信息,程序自動(dòng)從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)并實(shí)時(shí)通過(guò)程序設(shè)計(jì)生成該學(xué)生的各項(xiàng)數(shù)據(jù)如消費(fèi)、學(xué)習(xí)、生活等,并根據(jù)該學(xué)生的數(shù)據(jù)生成年度或?qū)W期總結(jié)報(bào)告并且給予建議和意見(jiàn),例如學(xué)生在借閱圖書方面非常勤奮,就會(huì)對(duì)其進(jìn)行鼓勵(lì)和激勵(lì),若是學(xué)生在學(xué)業(yè)成績(jī)上有多門掛科,就會(huì)對(duì)其進(jìn)行學(xué)業(yè)警示并給予學(xué)習(xí)建議[1]。通過(guò)本系統(tǒng)希望可以為學(xué)生們提供一個(gè)集學(xué)業(yè)統(tǒng)計(jì)、信息查詢和年終總結(jié)等多功能于一體的學(xué)生畫像系統(tǒng)。
1.2 學(xué)生畫像系統(tǒng)性能需求
1.2.1 海量數(shù)據(jù)的存儲(chǔ)空間需求
因?yàn)樾枰獫M足大量的存儲(chǔ)需求和調(diào)用分析處理,所以選擇使用MySQL數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),MySQL是當(dāng)今市面上比較流行的關(guān)系型數(shù)據(jù)庫(kù),用python程序?qū)ySQL進(jìn)行調(diào)用較為方便快捷。數(shù)據(jù)需要進(jìn)入hive中分析處理,可以直接使用sqoop工具將分析處理好的數(shù)據(jù)表傳輸?shù)組ySQL中,或是將MySQL中需要分析的表通過(guò)sqoop導(dǎo)入到hive中進(jìn)行分析。
1.2.2 分布式集群對(duì)海量數(shù)據(jù)處理需求
對(duì)海量數(shù)據(jù)進(jìn)行處理,需要使用分布式處理,即需要配置一組完全分布式服務(wù)器集群。完全分布式服務(wù)器集群需要部署許多組件,如hive、flume、zookeeper、kafka、sqoop、scala&spark、hbase等。工作時(shí)需要這些組件一起協(xié)同配合處理并對(duì)海量數(shù)據(jù)即TB級(jí)數(shù)據(jù)進(jìn)行處理,保證時(shí)間上的相應(yīng)速度以應(yīng)對(duì)網(wǎng)頁(yè)的刷新速度。
1.2.3 前后端框架使用需求
為滿足Web網(wǎng)頁(yè)設(shè)計(jì)需要,我們需要使用前端Bootstrap框架對(duì)整個(gè)學(xué)生畫像系統(tǒng)在前端的展示進(jìn)行設(shè)計(jì),Bootstrap是基于HTML、CSS、JAVASCRIPT的,它簡(jiǎn)潔靈活,使得Web開(kāi)發(fā)更加快捷。Bootstrap框架構(gòu)建了學(xué)生基本信息區(qū)域、學(xué)生數(shù)據(jù)統(tǒng)計(jì)查詢區(qū)域、學(xué)生年終總結(jié)與建議區(qū)域,并將這些區(qū)域與經(jīng)過(guò)數(shù)據(jù)分析處理產(chǎn)生的可視化圖表進(jìn)行網(wǎng)狀結(jié)構(gòu)的混排。
1.2.4 后期維護(hù)與更新迭代需求
在滿足三層體系架構(gòu)及硬件及軟件需求后,大致的學(xué)生畫像系統(tǒng)的功能就完成了。但在后期需要對(duì)服務(wù)器集群進(jìn)行運(yùn)行維護(hù),需要穩(wěn)定性更好的性能更強(qiáng)的計(jì)算機(jī)組成集群。并且在滿足基本需求后可以先上線,再對(duì)功能進(jìn)行補(bǔ)充,補(bǔ)充過(guò)后進(jìn)行迭代。如對(duì)數(shù)據(jù)庫(kù)的升級(jí)、對(duì)系統(tǒng)代碼的重構(gòu)優(yōu)化等,這些需求都需要滿足。
1.3 學(xué)生畫像系統(tǒng)數(shù)據(jù)需求
程序數(shù)據(jù)是系統(tǒng)的靈魂,系統(tǒng)需要大量的數(shù)據(jù)對(duì)個(gè)人信息進(jìn)行完善和統(tǒng)計(jì),如對(duì)消費(fèi)金額、學(xué)習(xí)成績(jī)等進(jìn)行統(tǒng)計(jì)并分析,實(shí)時(shí)處理出針對(duì)個(gè)人的信息分析數(shù)據(jù)。數(shù)據(jù)分為學(xué)生基本數(shù)據(jù)、學(xué)生課程成績(jī)數(shù)據(jù)、學(xué)生各個(gè)月份的各個(gè)種類消費(fèi)數(shù)據(jù)、學(xué)生宿舍衛(wèi)生的數(shù)據(jù)等。數(shù)據(jù)通過(guò)Excel表或是csv文件形式匯總,通過(guò)程序讀出并寫入到數(shù)據(jù)庫(kù),數(shù)據(jù)也因?yàn)閿?shù)據(jù)類型分為int、float、double等類型,由于數(shù)據(jù)長(zhǎng)度不固定,在MySQL中建數(shù)據(jù)表時(shí),將整體長(zhǎng)度設(shè)為100,以防發(fā)生存儲(chǔ)數(shù)據(jù)庫(kù)異常。
在數(shù)據(jù)收集的過(guò)程中不可避免地會(huì)出現(xiàn)如缺失值、異常數(shù)據(jù)等不正常的數(shù)據(jù),我們稱之為臟數(shù)據(jù),對(duì)于臟數(shù)據(jù),我們的解決辦法是在數(shù)據(jù)分析之前先對(duì)其進(jìn)行數(shù)據(jù)清洗的操作,通過(guò)數(shù)據(jù)清洗和數(shù)據(jù)格式化將所有數(shù)據(jù)源轉(zhuǎn)換為格式化的數(shù)據(jù)。數(shù)據(jù)清洗是整個(gè)數(shù)據(jù)分析過(guò)程中不可缺少的一個(gè)環(huán)節(jié),其結(jié)果質(zhì)量直接關(guān)系到模型效果和最終結(jié)論。在實(shí)際操作中,數(shù)據(jù)清洗通常會(huì)占據(jù)分析過(guò)程的50%~80%的工作量,所以它也是整個(gè)畫像系統(tǒng)可以運(yùn)行起來(lái)的關(guān)鍵環(huán)節(jié),需要我們嚴(yán)格設(shè)置數(shù)據(jù)格式。
1.4 學(xué)生畫像系統(tǒng)設(shè)計(jì)原則
1.4.1 簡(jiǎn)約原則
大自然所遵循的簡(jiǎn)約性、精準(zhǔn)性、合理性與有效性創(chuàng)造了我們所在的物理世界。大數(shù)據(jù)處理中,也需要遵循簡(jiǎn)約原則,運(yùn)用這些規(guī)約方法,就可以獲取可靠數(shù)據(jù),減少數(shù)據(jù)集規(guī)模,提高數(shù)據(jù)抽象程度,提升數(shù)據(jù)挖掘效率,使之在實(shí)際工作中,可以根據(jù)需要選用具體的分析數(shù)據(jù)和合適的處理方法,以達(dá)到操作上的簡(jiǎn)單、簡(jiǎn)潔、簡(jiǎn)約和高效[2]。
1.4.2 明確性原則
每個(gè)分析都有結(jié)論,而且結(jié)論一定要明確,如果沒(méi)有明確的結(jié)論那分析就不叫分析了,也失去了它本身的意義,因?yàn)楸緛?lái)就是要去尋找或者印證一個(gè)結(jié)論才會(huì)去做分析的。
1.4.3 數(shù)據(jù)可靠原則
好的分析一定要基于可靠的數(shù)據(jù)源,其實(shí)很多時(shí)候收集數(shù)據(jù)會(huì)占據(jù)更多的時(shí)間,包括規(guī)劃定義數(shù)據(jù)、協(xié)調(diào)數(shù)據(jù)上報(bào)、讓開(kāi)發(fā)人員提取正確的數(shù)據(jù)或者建立良好的數(shù)據(jù)體系平臺(tái),最后才在收集的正確數(shù)據(jù)基礎(chǔ)上做分析,既然一切都是為了找到正確的結(jié)論,那么就要保證收集到的數(shù)據(jù)的正確性,否則將會(huì)誤導(dǎo)別人。
1.4.4 圖表化原則
數(shù)據(jù)分析報(bào)告盡量圖表化,用圖表代替大量堆砌的數(shù)字會(huì)有助于人們更形象更直觀地看清楚問(wèn)題和結(jié)論,當(dāng)然,圖表也不要太多,過(guò)多的圖表一樣會(huì)讓人無(wú)所適從。
1.4.5 邏輯性原則
好的分析報(bào)告一定要有邏輯性,通常要遵照:發(fā)現(xiàn)問(wèn)題;總結(jié)問(wèn)題原因;解決問(wèn)題,這樣一個(gè)流程。邏輯性強(qiáng)的分析報(bào)告也容易讓人接受。分析結(jié)論也一定要基于緊密嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)分析推導(dǎo)過(guò)程,不要有猜測(cè)性的結(jié)論,一定要有邏輯性。
1.4.6 實(shí)用性原則
數(shù)據(jù)分析報(bào)告的編制過(guò)程一定要謹(jǐn)慎,體現(xiàn)在基礎(chǔ)數(shù)據(jù)須要真實(shí)完整,分析過(guò)程須要科學(xué)合理全面,分析結(jié)果可靠,建議內(nèi)容實(shí)事求是(圖1)。
2 基于大數(shù)據(jù)的學(xué)生畫像系統(tǒng)實(shí)現(xiàn)
2.1 系統(tǒng)功能模塊設(shè)計(jì)流程圖
根據(jù)系統(tǒng)目標(biāo)和功能分析,基于大數(shù)據(jù)的學(xué)生畫像系統(tǒng)應(yīng)在邏輯流程圖下實(shí)現(xiàn)整個(gè)系統(tǒng)的功能(圖2)。
2.2 三層體系結(jié)構(gòu)設(shè)計(jì)
經(jīng)調(diào)研和觀察發(fā)現(xiàn),基于大數(shù)據(jù)的學(xué)生畫像系統(tǒng)需要很多功能模塊實(shí)現(xiàn),因此我們將學(xué)生畫像系統(tǒng)分解成不同的功能模塊,這些功能模塊又可以大致分為三層體系結(jié)構(gòu)[3]。
2.2.1 前臺(tái)Web網(wǎng)站設(shè)計(jì)
(1)學(xué)生登錄:學(xué)生登陸自己的賬號(hào),通過(guò)自己的賬號(hào)查詢學(xué)業(yè)成績(jī)、宿舍考勤衛(wèi)生成績(jī)、學(xué)習(xí)生活情況等。
(2)成績(jī)查詢顯示:通過(guò)表格的形式顯示出學(xué)生想要的課程成績(jī)、宿舍衛(wèi)生成績(jī),并顯示出學(xué)生的基本信息。
(3)圖表化顯示:除了基本的成績(jī)顯示、信息顯示外,占較大部分的就是圖表化顯示了,通過(guò)直觀的圖表顯示,且是動(dòng)態(tài)圖表,學(xué)生可以通過(guò)鼠標(biāo)放置在某一項(xiàng)的方式查看自己的數(shù)據(jù)占比,再通過(guò)圖表說(shuō)明學(xué)生的畫像數(shù)據(jù)。
2.2.2 后端程序設(shè)計(jì)
(1)學(xué)生數(shù)據(jù)清洗:清洗采集來(lái)的數(shù)據(jù),將一些臟數(shù)據(jù)清除出去,包括檢查數(shù)據(jù)一致性、處理無(wú)效值和缺失值等。數(shù)據(jù)清洗工作是數(shù)據(jù)分析工作中不可缺少的步驟,如不進(jìn)行數(shù)據(jù)清洗,數(shù)據(jù)分析的結(jié)果準(zhǔn)確率會(huì)變得極低。
(2)學(xué)生畫像生成:通過(guò)文字加數(shù)據(jù)的形式生成學(xué)生畫像,根據(jù)各種圖表和數(shù)據(jù)對(duì)每個(gè)學(xué)生進(jìn)行個(gè)性化分析,并提出針對(duì)性意見(jiàn)。
(3)前后端交換數(shù)據(jù):使用Flask和Ajax框架對(duì)前后端通信進(jìn)行支持,使用這些框架可以很好地形成三層即前臺(tái)后臺(tái)和數(shù)據(jù)庫(kù)體系。
2.2.3 大數(shù)據(jù)處理平臺(tái)集群搭建
(1)集群搭建:搭建以hadoop為主體的多種不同功能組件的大數(shù)據(jù)處理平臺(tái)集群,使用完全分布式方式搭建,可以通過(guò)mapreduce或spark處理TB級(jí)數(shù)據(jù)。
(2)MySQL與hive部署:MySQL與hive也部署到集群中,方便通信和互相傳輸數(shù)據(jù),以此形成三層體系結(jié)構(gòu)。
2.3 系統(tǒng)功能模塊設(shè)計(jì)實(shí)現(xiàn)效果
安裝部署并配置一個(gè)hadoop服務(wù)器集群,需要一臺(tái)master主服務(wù)器和兩臺(tái)slave從服務(wù)器。配置部署完成之后,使用命令:hadoop-demons.sh start all命令來(lái)啟動(dòng)所有節(jié)點(diǎn),即完成完全分布式集群的啟動(dòng)。sqoop工具用來(lái)對(duì)mysql、hive、hbase之間的數(shù)據(jù)表的導(dǎo)入導(dǎo)出。這樣所有組件就啟動(dòng)完成了,通過(guò)使用hadoop這個(gè)平臺(tái)的強(qiáng)大的大數(shù)據(jù)處理技術(shù),我們可以能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非常快,這樣才可以處理海量的任務(wù)數(shù)據(jù)。
數(shù)據(jù)讀取使用DataFrame中的read_excel將本地的Excel文件讀取到程序中,并轉(zhuǎn)換成DataFrame數(shù)據(jù),使用rank函數(shù)求出各個(gè)同學(xué)圖書借閱次數(shù)、圖書館出入次數(shù)、學(xué)習(xí)通訪問(wèn)次數(shù)和學(xué)習(xí)通訪問(wèn)天數(shù)的排名。
2.3.1 “生活主題”數(shù)據(jù)分析
通過(guò)分析日常消費(fèi)、生活數(shù)據(jù),并對(duì)其進(jìn)行分析,因人而異提出不同的建議和警示,以便于學(xué)生修正自己的行為,實(shí)現(xiàn)完善和提升(圖3)。
2.3.2 “學(xué)習(xí)主題”數(shù)據(jù)分析
根據(jù)學(xué)生的“學(xué)習(xí)主題”數(shù)據(jù)生成年度或?qū)W期總結(jié)報(bào)告,如學(xué)生在借閱圖書方面非常勤奮,就會(huì)對(duì)其進(jìn)行鼓勵(lì)和激勵(lì),若是學(xué)生在學(xué)業(yè)成績(jī)上有多門掛科,就會(huì)對(duì)其進(jìn)行學(xué)業(yè)警示并給予學(xué)習(xí)建議(圖4)。
3 結(jié)論
通過(guò)高校收集的學(xué)生信息數(shù)據(jù),實(shí)現(xiàn)對(duì)學(xué)生生活、消費(fèi)、成績(jī)信息的記錄及對(duì)學(xué)生畫像的刻畫分析,學(xué)生可以查看數(shù)據(jù)報(bào)告,同步驅(qū)動(dòng)學(xué)生進(jìn)行提升自我,即通過(guò)畫像的刻畫了解到自己的學(xué)業(yè)水平及各方面特長(zhǎng)及興趣愛(ài)好處,了解自己在學(xué)生群里中的位置,同時(shí)幫助學(xué)生管理部門,準(zhǔn)確掌握學(xué)生的生活學(xué)習(xí)方面數(shù)據(jù),實(shí)現(xiàn)因材施教和精確幫助,提高學(xué)生培養(yǎng)水平。
參考文獻(xiàn)
[1] 莫?jiǎng)?基于高校學(xué)籍?dāng)?shù)據(jù)分析的學(xué)生畫像初探[J].現(xiàn)代信息科技,2018(6):32-33.
[2] 王洋,丁志剛,鄭樹泉,等.一種用戶畫像系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2018(3):8-14.
[3] 李光耀,宋文廣,謝艷晴.智慧校園學(xué)生畫像方法研究[J].現(xiàn)代電子技術(shù),2018(6):162-167.