符 睿
(廣東輕工職業(yè)技術(shù)學院信息化建設(shè)中心,廣東 廣州510000)
近年來,大數(shù)據(jù)技術(shù)在高校學生管理和教學質(zhì)量方面得到了廣泛的應(yīng)用,為挖掘?qū)W生行為提供了一定的技術(shù)支撐[1]。隨著并行化技術(shù)的發(fā)展以及校園大數(shù)據(jù)的不斷增長,將兩者技術(shù)的融合也成為當今的一種趨勢。將并行大數(shù)據(jù)技術(shù)應(yīng)用于智慧校園,一方面能夠快速提取海量校園數(shù)據(jù)中學生的行為特點,另一方面通過學生的行為規(guī)律調(diào)整教學模式,制定出具有針對性的措施,為高校的教學以及學生管理提供相應(yīng)的輔助決策[2]。根據(jù)并行H-mine算法能夠?qū)崿F(xiàn)對于校園大數(shù)據(jù)的分析,有效挖掘出學生的行為特征,從而為學生行為提供更加清晰直觀的分析數(shù)據(jù),以期為高校學生管理提供一定的參考價值。
作為一種可擴展、高性能、可預(yù)測的算法,Hmine算法在實際的計算過程中首先需要遍歷數(shù)據(jù)集,統(tǒng)計頻繁1項集[3]。選取每一行的數(shù)據(jù)作為單位,篩選出其中大于最小支持度中的項,經(jīng)過升序排序每行中的項,從而得到頻繁項投影;
其次,使用HStruct來表示F-list,可簡稱為F-list HStruct,并對其中的頻繁項進行升序排序。然后對F-list HStruct中的頻繁項逐一加以遍歷,依次連接每一行中首個數(shù)據(jù)項一致的頻繁項,等所有F-list HStruct中的頻繁項遍歷結(jié)束,從數(shù)據(jù)集中的第一個數(shù)據(jù)項開始分區(qū),并進行遍歷操作,直至完成遍歷,則結(jié)束操作,否則進行上一步[4]。最后對分區(qū)中的數(shù)據(jù)集進行遍歷,并統(tǒng)計其中的頻繁項,在此基礎(chǔ)上對分區(qū)數(shù)據(jù)集再次進行分區(qū);當分區(qū)遍歷結(jié)束,需要進一步判斷循環(huán)數(shù)與1的關(guān)系,如果大于1,則返回上一層進行循環(huán);如果小于1,則返回到步驟四,對該分區(qū)數(shù)據(jù)集重新分區(qū);倘若該分區(qū)沒有遍歷結(jié)束,則返回到步驟五重新對上個分區(qū)數(shù)據(jù)集進行劃分。
在Spark平臺中,一個job由多組任務(wù)組成,且每一組任務(wù)對應(yīng)一個Stage,
任務(wù)分為Result Task與Shuffle Map Task兩種類型[5]。最初在Spark應(yīng)用程序的基礎(chǔ)上對有向無環(huán)圖(DAG)進行構(gòu)建;其次,以RDD的關(guān)系為依托對有向無環(huán)圖進行劃分,有向無環(huán)圖實現(xiàn)多個Stage的分類。分區(qū)在窄依賴進行轉(zhuǎn)換時需要在Spark平臺上交由一個線程完成。分區(qū)在寬依賴進行轉(zhuǎn)換時,只有當父RDD shuffle得到滿足并執(zhí)行后,才能逐步進行子Stage的運算[6]。具體過程如圖1所示。
圖1 Spark處理過程
為了保證Spark平臺處理數(shù)據(jù)的精確性,數(shù)據(jù)的格式首先設(shè)定為<行內(nèi)容,行號>,在行內(nèi)容中,空格的作用為各個數(shù)據(jù)項的分隔符,同時滿足數(shù)據(jù)的格式在每個數(shù)據(jù)項上一致的分隔符(比如<d s a f 2>),這個例子所代表的含義是行號為2,行內(nèi)容為<d s a f>[7]。在行內(nèi)容的末尾加上行號一方面能夠保證在相對位置的前提下行內(nèi)的秩序;另一方面也能在統(tǒng)計頻繁1項集時不影響程序的正常運行。經(jīng)過上述操作,要想在平臺實現(xiàn)并行Hmine算法,首先需要進行F-list并行計算,其次以F-list為基礎(chǔ),將其轉(zhuǎn)化為HStruct并行方法,再次經(jīng)過負載均衡方法,最后進行并行挖掘頻繁項集。
頻繁項投影作為H-mine算法在頻繁項集挖掘中最為關(guān)鍵的一步,即是能在相對位置不變的情況下,F-list能夠滿足最小支持度的數(shù)據(jù)項,且保證有序的行內(nèi)元素[8]。在挖掘之前,需要對F-list進行轉(zhuǎn)化,使其符合此次算法的Structure數(shù)據(jù)結(jié)構(gòu)的要求,由此算法在Spark環(huán)境中集成時,需要對F-List進行并行處理。經(jīng)過處理轉(zhuǎn)化之后,從而可以對頻繁項集進行挖掘,由F-list HStruct的頻繁項<A,B,C,E>,投影形成四類頻繁項集。Flist HStruct若 含 有{x1,x2,…,x n}n項 數(shù) 據(jù) 項,那么x k(1≤k≤n)為前綴的頻繁項一共有2n-k個,此時x k一直處于第一位,且第t(t>k)與x k都能組合在一起,即可為數(shù)據(jù)項中最好的情況。針對頻繁(n-k+1)項集而言,利用集合的無序性,在x k后(n-k)個數(shù)據(jù)項存放的位置與順序沒有任何關(guān)系,比如{x k x k+1x k+2…x n}與{x k x k+2x k+1…x n}屬于同一頻繁(n-k+1)項集。其中,以x k作為前綴的頻繁項集一共包含(n-k+1)種,依次為頻繁項集1,2,…,(n-k+1),統(tǒng)計并相加每一個頻繁項集中的頻繁項個數(shù),從而即可得到以x k為前綴的頻繁項總個數(shù),如公式(1)所示。
由二項式定理可得公式(2)。
當a=1且b=1,可以求得公式(3)。
經(jīng)上述三個公式聯(lián)合可得公式(4)。
“智慧校園”的普遍應(yīng)用,提供給學校大量的學生行為記錄數(shù)據(jù),通過分析學生數(shù)據(jù),對學生學習的多維學生行為特征進行提取,逐步建立分層模型[9]。首先定義一個學生行為特征集合,從學生的特征庫中提取學生行為指標以及個人信息,以此構(gòu)建學生行為特征集合,如公式(5)所示。
在該模型的基礎(chǔ)上,為了區(qū)分模型中不同特征的貢獻度,還需賦予學生特征集合不同的特征以不同的權(quán)重,同時滿足,如表1所示,為學生信息與行為特征的設(shè)定。
表1 學生個人信息以及行為特征指標
在成績、課程、圖書館簽到、消費數(shù)據(jù)等多源數(shù)據(jù)的基礎(chǔ)上,此次系統(tǒng)數(shù)據(jù)以此挖掘與分析智慧校園學生行為的頻繁項集10]。異構(gòu)性問題在數(shù)據(jù)處于多種系統(tǒng)的情況下容易發(fā)生,為了針對性地解決該問題,在多源中的字段使用數(shù)據(jù)抽取的辦法進行中間處理,從中可以得到中間表,系統(tǒng)工作流程如圖2所示,利用動態(tài)批處理方法對中間表進行處理。其中,選擇窗口作為單位,滑動距離為十四天,長度為一學年,然后對各類數(shù)據(jù)進行預(yù)處理,并將同一類條件下的學號進行全連接,將此過程中生成的數(shù)據(jù)作為輸入數(shù)據(jù)應(yīng)用于并行H-mine算法中,最后進一步對學生行為中的頻繁項集進行挖掘,以此更好地分析學生行為,為校園學生的管理工作提供一定的參考。
圖2 系統(tǒng)工作流程
由于中間表的數(shù)據(jù)全都來源于原始數(shù)據(jù),且離散型數(shù)據(jù)為H-mine算法的輸入數(shù)據(jù)類型,因此還需按照一定的標準,對每一種數(shù)據(jù)進行離散化的操作,也就是將連續(xù)屬性轉(zhuǎn)化為類別屬性,首先依次排序連續(xù)屬性,其次在n-1個特定分裂點上劃分連續(xù)屬性值為n個區(qū)間,最后映射得到同一類別上的區(qū)間值。通過對離散化數(shù)據(jù)的預(yù)處理之后,從中可以獲取圖書館簽到次數(shù)、早餐次數(shù)、平均成績、缺勤次數(shù)、消費水平五類離散化表,選擇學號相等作為連接條件進行全連接。在此基礎(chǔ)上即可實現(xiàn)對校園學生行為的處理與挖掘。
此次性能測試選取三臺虛擬機模擬并行的過程,在軟件的配置上,選取的是Linux的操作系統(tǒng),Spark平臺的配置環(huán)境采用Hadoop2.7.3與Spark2.2.0對平臺程序進行運行。以源稀疏數(shù)據(jù)對H-mine算法與MRH-mine算法進行兩組對比實驗,將源系數(shù)數(shù)據(jù)復(fù)制50和500份加以測試,運行每一個算法10次,取出相應(yīng)的均值,即可得到算法運行的時間。如圖3(a)所示,選取0.01、0.03、0.05、0.08、0.1、0.2、0.3、0.4、0.5為九個支持度,并對10568條數(shù)據(jù)量進行測試,將此數(shù)據(jù)分別應(yīng)用到并行H-mine算法與MRH-mine算法之中。其中,在上述支持度下,并行H-mine算法的運行的最長時間與最短時間分別為5.9309s、5.3725s;MRH-mine算法的運行的最長時間與最短時間分別為7.4165s、6.918s,由此可以看出,當數(shù)據(jù)量達到10568條時,從整體上來說,MRHmine算法明顯高于并行H-mine算法的運行時間,同時隨著不斷增大的支持度,兩種算法的運行時間展現(xiàn)出平穩(wěn)的發(fā)展趨勢。
圖3 H-mine算法與MRH-mine算法運行時間對比
當數(shù)據(jù)量是5284000條時,從圖3(b)可知,并行H-mine算法在上述支持度下的運行的最長時間與最短時間分別為21.29s、12.576s;MRHmine算法的運行的最長時間與最短時間分別是34.645s、17.0798s。相比于MRH-mine算法,并行H-mine算法運行時間優(yōu)化效果更為顯著,其中當支持度小于0.1時,并行H-mine算法運行時間以較快的速度下降,當支持度大于0.1時,運行時間較為平穩(wěn);MRH-mine算法的整體運行時間呈下降趨勢,且運行時間對支持度較敏感,由此并行H-mine算法在運行時間上總是優(yōu)于MRH-mine算法,性能較為優(yōu)良。
在輸入數(shù)據(jù)為稀疏數(shù)據(jù)的前提下,往往包含較多的空值,更加適用H-mine算法挖掘?qū)W生數(shù)據(jù)中的頻繁項。從圖4可以看出,當H-mine算法頻繁項集進行挖掘時,需要設(shè)置支持度以及最大頻繁項長度兩大參數(shù)。支持度即為同一時間一個或多個特征在總體中的比例,頻繁項的個數(shù)與支持度的設(shè)置有著直接的關(guān)聯(lián)。頻繁項的最大長度為最大頻繁項長度,通常設(shè)置為特征的個數(shù),此次實驗將其設(shè)置為8。數(shù)據(jù)支撐為經(jīng)過預(yù)處理之后的輸入數(shù)據(jù),設(shè)置實驗的支持度分別為0.01、0.03、0.05、0.08、0.1、0.2、0.3、0.4、0.5,將九種不同的支持度在并行H-mine算法中進行應(yīng)用,分為九次實驗,在頻繁項中九種不同的支持度對應(yīng)的總個數(shù)分別為1239、491、274、153、102、32、10、6、2。當支持度大于0.2時,頻繁項因其個數(shù)較少,不能用于分析;將最小支持度設(shè)為0.1,此時頻繁項共有102個,因此利用此次算法中的頻繁項集對學生行為加以分析。
圖4 支持度與頻繁個數(shù)的關(guān)系
選取研究對象數(shù)據(jù)的成績進行排名,根據(jù)正態(tài)分布,分為好、中、差三類,并設(shè)置標簽為“1”、“2”、“3”,分別占總?cè)藬?shù)的19.84%、60.02%、20.14%,在此基礎(chǔ)上對成績排名數(shù)據(jù)和校園行為進行分析,以此將最初的行為數(shù)據(jù)轉(zhuǎn)化為與學業(yè)成績有關(guān)的行為特征。為了避免數(shù)據(jù)誤差過大,以一號學院為對象,對學生行為數(shù)據(jù)進行獨立分析。如圖5所示,針對一號學院三類學生的飲食就餐情況進行統(tǒng)計,一類學生、二類學生、三類學生在早餐就餐的平均次數(shù)分別為121.08、107.04、116.68,在午餐就餐的平均次數(shù)分別為186.73、193.59、186.45,在晚餐就餐的平均次數(shù)分別為174.53、196.74、176.47,從整體上來說,三類學生早餐就餐次數(shù)遠遠少于午餐和晚餐次數(shù),一定程度上說明大多數(shù)學生存在飲食無規(guī)律的狀況,其中,相比較而言,三類學生中第一類學生早餐次數(shù)最多,顯示出此類學生具備更為良好的飲食習慣。
圖5 一號學院三類學生的三餐統(tǒng)計數(shù)據(jù)
如圖6所示,從考試與非考試期間三類學生去借書、文印中心、圖書館次數(shù)的不同可以看出,學生去圖書館的平均次數(shù)都遠遠高于去借書和去文印中心的平均次數(shù),統(tǒng)計所有學院學生在兩個學年內(nèi)到圖書館借書的數(shù)據(jù),第一類學生、第二類學生、第三類學生平均借書分別為52本、48本、42本,隨著學生類別的差異,借閱書籍、圖書館自習的行為處于下降趨勢。具體而言,第一類學生學習與借閱習慣較為良好,第三類學生學習行為相對較少,說明比較缺乏切實可行的的行動力,由此即可實現(xiàn)智慧校園學生行為的分析。
圖6 在考試與非考試時間段三類學生行為(平均次數(shù))比較
傳統(tǒng)的數(shù)據(jù)統(tǒng)計方法面對日益增長的大量數(shù)據(jù)很難做到高效處理,并行化技術(shù)與大數(shù)據(jù)技術(shù)的不斷發(fā)展,使得并行處理大數(shù)據(jù)成為可能,使其更好地服務(wù)于當今智慧校園服務(wù)體系建設(shè)。通過將校園大數(shù)據(jù)與并行H-mine算法以及Spark平臺相結(jié)合,使用該算法挖掘頻繁項集,進而使用該頻繁項集對學生行為進行分析。根據(jù)性能測試和實驗結(jié)果表明,H-mine算法有極好的可擴展性以及較為良好的綜合性能,能夠進一步提升挖掘效率,極大的節(jié)約了內(nèi)存并能處理更大規(guī)模數(shù)據(jù)集,從而為校園管理提供輔助決策。此次并行Hmine大數(shù)據(jù)挖掘算法的集成方法雖取得了一定的成果,但仍存在一些不足,并行H-mine算法并行度還有待提升,并行度在H-mine算法中在兩個分區(qū)之間是并行的,但分區(qū)之內(nèi)存在明顯的串行現(xiàn)象,提高分區(qū)內(nèi)的并行度將作為后續(xù)研究的一個方向。