?

關聯分析技術在學生成績分析中的應用

2016-12-22 21:58龔希章付熙徐
軟件導刊 2016年11期
關鍵詞:關聯分析數據挖掘

龔希章 付熙徐

摘 要:采用Visual Basic對學生管理系統數據倉庫進行關聯分析,揭示了各科成績之間的聯系,詳細描述了關聯規則算法及實時優化,分析了使用高維數據結構在關聯分析中的優化效果。

關鍵詞:數據挖掘;關聯分析;高維數據

DOIDOI:10.11907/rjdk.161962

中圖分類號:TP391

文獻標識碼:A 文章編號文章編號:16727800(2016)011017303

0 引言

互聯網及信息技術的發展,產生了大量的歷史數據,這些數據迫切需要轉換為有用的信息和知識[12],通過這些信息和知識,研究經營管理狀況、分析市場、控制生產,發現和挖掘可以改進的地方,甚至預測將來的發展和變化,由此產生數據倉庫與數據挖掘技術。數據挖掘是從大型數據庫或數據倉庫中發現并提取隱藏其中的信息的一種技術,目的是幫助決策者尋找數據間潛在關聯,發現被忽略的要素,這些信息對預測趨勢和決策十分重要[34]。數據挖掘技術涉及數據庫、人工智能(AI)、機器學習和統計分析等多種技術。

數據倉庫與數據挖掘正越來越多地應用到傳統數據庫技術領域[5]。本文介紹了一個關聯分析技術在教育領域的應用。學生某些課程成績比較好會導致另外一門或幾門課程成績比較好,對此進行關聯分析可得到其對課程偏好之間的聯系。本文討論了經典頻繁集算法進行關聯分析過程,描述了關聯分析中發現多維關聯規則方法,分析了使用高維數據結構在關聯分析中的優化效果。

1 相關數據庫結構與分析

學生成績關聯分析數據來自一個學生管理系統數據倉庫,數據倉庫中包含學生成績信息和住宿信息等,由于分析的是各科成績關系,故相關的只有成績事實表和學生、課程兩個維表,表中出生年月、教師、課程類型、學分、籍貫、考試日期等不相關屬性可以去掉,相關數據倉庫結構如表1、表2、表3所示。

2 數據挖掘準備工作

數據預處理包括數據清理、數據集成、數據抽取、數據變換和數據歸約。數據清理和數據集成在數據倉庫構建過程中已經完成。

對預處理后數據進行統計,以直方圖表示成績的分布情況,直方圖用分箱的方法來表示數據的近似分布。圖1以橫坐標表示成績,縱坐標表示百分比,用Visual Basic 處理數據。

從圖1可以看出,考試中成績優秀的只占很小一部分,而成績及格和中等卻占比很大。一般意義上成績良好也可以說是成績好,因此將成績良好和優秀(score>=3)都定義為成績好。

3 數據挖掘算法及改進

3.1 關聯分析和經典頻繁集算法

關聯分析發現關聯規則,這些規則展示屬性-值頻繁地在給定數據集中一起出現的條件。關聯規則是形如X=>Y的規則,支持度為在所有交易集中同時符合X與Y的交易數與所有交易數之比,可信度指在所有交易集中同時符合X與Y的交易數與符合X的交易數之比。關聯規則可表示為:

關聯分析主要算法有經典頻繁集算法和FP-growth等改進算法,本文采用經典頻集算法思想對數據進行關聯分析。經典頻繁集算法思想如下:①找出所有具有超出最小支持度的支持度項集(itemsets),由Apriori算法實現;②利用大項集(litemsets)產生所需規則(rules)。算法實現如下:

3.2 關聯分析算法優化

根據上面的歸約,分析學生某科(幾科)成績與其它科目成績關系。把一門課程成績好(score>=3)作為一個項,每個學生的考試可作為一項交易,下面討論進行關聯分析時遇到的問題和解決辦法。

3.2.1 關聯分析問題

由于數據結構關系,本次關聯分析遇到以下問題:①經典頻繁集算法理論一般只介紹同一字段值之間的關系,而考試成績分析涉及到課程和成績兩個字段,屬于多維關聯規則;②課程數量很多(1 000門左右),但大多數課程只有部分學生選修,如果支持度要求太高就得不到有意義的規則,故頻繁-1項集也會比較多。數據倉庫中每次考試都存儲為一條記錄,需要過于頻繁地掃描數據量巨大的事實表。

3.2.2 多維關聯規則處理方法和頻繁-1項集找尋

為了簡化多維關聯規則,建立一個頻繁項集表,結構如表4所示。

3.2.3 交易集表產生和算法優化

如果直接在事實表中搜尋層次為2以上的頻繁項集,需對每個學生確認頻繁集組合條件是否符合,對每個學生都要掃描記錄數巨大的考試事實表數次。為解決此問題,建立了專門的交易集表(也可在學生表中直接加一個字段,但這需要更新數據倉庫的學生表,并影響其它分析),表結構見表5。

3.2.4 層次較高的頻繁集和規則產生

找出頻繁-1項集并生成交易集表后,即可依次找出頻繁-2項集等層次的頻繁集,其中一個2項集由兩項頻繁-1項集構成,一個 n項集由一個頻繁n-1項集和一個頻繁-1項集構成??蓮念l繁項集表中推出構成每個多項集的頻繁-1項集,掃描交易集表即可找出該頻繁多項集的支持度,最終找出所有頻繁項集。以下程序可確定某頻繁項集包含的所有頻繁-1項集:

其中,array()是用于保存該頻繁項集包含的所有頻繁-1項集數組,也可直接生成查詢條件:將array(i)=rs2(“p2”)改為str1=”$”+cstr(rs2(“p2”))+”$%”,該字符串可直接用于判斷交易集表中的交易是否包含該頻繁項集的所有條件。

通過掃描交易集表找出所有頻繁大項集后生成規則,若支持度大于給定的支持度即可輸出為關聯規則。

3.2.5 興趣度分析及規則輸出

關聯分析規則是否有興趣,主要評價標準是可信度和支持度。通常使用固定的可信度和支持度標準,但由于本例中頻繁項數量很多,高層關聯規則產生算法的復雜度也相對較高。而較高層次頻繁項的支持度要比較低層次頻繁項低很多,可將支持度低的低層次頻繁項不產生高層次頻繁項,予以清除。本例中各層次使用不同的支持度標準,該標準從低層到高層遞減。

經過最后篩選,輸出部分規則如下(最小可信度為30%):

(漁業導論>=3)AND(大學英語1>=3)=>(法律基礎>=3)支持度5.1% 可信度33.3%

(法律基礎>=3)=>(漁業法規>=3) 支持度5.2% 可信度53.1%

(漁業法規>=3)=>(法律基礎>=3) 支持度5.2% 可信度61.2%

注:倒過來不一定有足夠可信度,例如由于可信度不到30%的緣故,(法律基礎>=3) =>(大學英語1>=3)沒有作為規則輸出。

4 結語

數據挖掘是一項復雜技術,本文介紹了經典頻繁集算法進行多維關聯分析的方法,討論了如何將多維關聯分析簡化為一維關聯分析,將多次掃描龐大的事實表轉化為掃描相對較小的交易集表。

課程很多,項集也會很大,而經典頻繁集算法的缺點之一正是建立了大量頻繁項集,頻繁掃描事實表。所以對此種關聯分析,經典頻繁集算法不是最好的算法,但分步優化和使用高維數據能使算法復雜度大大降低。

參考文獻:

[1] 張兵令,付熙徐,張丹玨.數據倉庫的建立與維護[J].微型電腦應用,2006(2):1519.

[2] 朱揚勇.高級數據庫應用開發[M].北京:清華大學出版社,2007.

[3] JIAWEI HAN,MICHELINE KAMBR.數據挖掘——概念與技術[M].影印版.北京:高等教育出版社,2001.

[4] [美]OLIVIA PARR RUD.數據挖掘實踐[M].朱揚勇,左子葉,張忠平,譯.北京:機械工業出版社,2003.

[5] 康曉東.基于數據倉庫的數據挖掘技術[M].北京:機械工業出版社,2004.

(責任編輯:杜能鋼)

猜你喜歡
關聯分析數據挖掘
基于并行計算的大數據挖掘在電網中的應用
基于隨機函數Petri網的系統動力學關聯分析模型
一種基于Hadoop的大數據挖掘云服務及應用
數據挖掘的分析與探索
基于GPGPU的離散數據挖掘研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合