摘要:關聯規則是數據挖掘的重要的組成部分之一。利用關聯規則的Apriori算法,以學生成績數據庫為研究對象,挖掘課程之間的良好關系,為教學管理部門設置安排課程提供理論指導。
關鍵詞:數據挖掘;關聯規則;Apriori算法
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2011)04-0730-02
Application of Association Rules in Student Achievement Management System
WANG Li-jun, HU Min
(Computer and Information School, Hefei University of Technology, Hefei 230009, China)
Abstract: Association rules is an important area of data mining.Adopts Apriori algorithm of association rules and makes use of the database of students' achievement as research object,to mine the correlationship of courses,it gives teaching administration department a theoretical advise to arrange course.
Key words: data mining; association rules; Apriori algorithm
高校學生成績管理系統中存儲了大量的學生成績信息,但目前對學生成績的處理僅停留在的數據保存、查詢及簡單的統計階段,并沒有對成績數據進行深入地挖掘分析,發揮其應有的作用。數據挖掘是解決數據豐富而知識貧乏的有效途徑,其實質是從大量數據中提取隱含的、未知的和潛在有用信息的過程。關聯規則是數據挖掘研究的主要模式之一。文章將探究關聯規則在學生成績管理系統中的應用,采用關聯規則的Apriori算法對學生的成績進行挖掘生成頻繁項集,找出課程之間的良好關系,從而為教學管理工作提供決策支持。
1 基本理論
1.1 關聯規則[1]
關聯規則是形如A=>B的蘊涵式,其中A?奐I,B?奐I,并且A∩B=?覫。規則A=>B在事務集D中成立,具有支持度s,其中s是D中事務包含A∪B的百分比即概率P(A∪B)。規則A=>B在事務集D中具有置信度c,其中c是D中包含A的事務同時也包含B的百分比即條件概率P(B|A)。即
support(A=>B)=P(A∪B)
confidence(A=>B)=P(B|A)
項集的出現頻率是包含項集的事務數,簡稱為項集的頻率、支持度或計數。如果項集I的支持度大于或等于最小支持度(由用戶或領域專家設定),則I為頻繁項集。關聯規則的挖掘可以分兩個步驟完成。
1) 找出所有的頻繁項集。即找出所有那些支持度大于等于最小支持度min_sup的項集。
2) 由頻繁項集產生強關聯規則。即產生那些支持度和置信度分別大于或等于最小支持度min_sup和最小置信度min_conf的關聯規則。
1.2 Apriori算法[2]
Apriori算法是R.Agrawal和R.Srikant于1994年提出的為布爾關聯規則挖掘頻繁項集的原創性算法。Apriroi算法使用逐層搜索技術。首先掃描數據庫找出滿足最小支持度的頻繁1項集L1,然后通過L1×L1產生候選2項集C2,掃描數據庫計算C2中的每個候選項集的支持度計數,確定頻繁2項集的集合L2,同理產生候選3項集C3,從C3開始就可以根據Apriroi性質(頻繁項集的所有非空子集也必須是頻繁的)進行剪枝來壓縮C3,然后掃描數據庫計算C3中的每個候選項集的支持度計數,確定頻繁3項集的集合L3,以此類推確定其他頻繁項集,算法直到候選項集為空時執行完畢。
1.3 由頻繁項集產生強關聯規則[3]
根據Apriori算法找出頻繁項集后,可直接由它們產生強關聯規則(強關聯規則滿足最小支持度和最小置信度)。置信度可以用如下公式計算。
confidence(A=>B)=P(B|A)= s_count(A∪B)/s_count(A)
條件概率用項集的支持度計數表示,其中,s_count(A∪B)是包含項集A∪B的事務數,而s_count(A)是包含項集A的事務數。根據該式,關聯規則可以產生如下:
對于每個頻繁項集L,產生L的所有非空子集。
對于L的每個非空子集s,如果s_count(t)/s_count(s)min_conf,則輸出規則“s=>(L-s)”。其中,min_conf是最小置信度閾值。
2 關聯規則在學生成績管理系統中的應用
學生成績管理系統是采用ASP+Access技術制作,學生每一學期的成績都存放在Excel文件(即一學期一個Excel文件),每一個班級都存放在一個工作表并且以班級命名,每一個工作表的標頭都是以學號、姓名、專業以及該學期的課程名稱命名。
2.1 數據集成選擇
用戶通過學生成績管理系統的首頁登錄成功后即可進入后臺管理,在后臺管理中點擊關聯挖掘鏈接跳轉到關聯挖掘頁面。在該頁面當用戶選擇了相應的專業后,頁面會自動顯示出該專業相應的公共基礎課程、專業基礎課程和專業課程,供用戶選擇課程進行關聯挖掘,點擊添加按鈕后程序代碼遍歷所有的Excel文件搜尋該專業的學生的所有成績,并將已經學過所選課程的學生學號、課程名稱、成績存儲到Access數據庫中的SJWJ表中,并將學號、課程名稱、成績信息顯示在頁面上。下面以C語言程序、VB程序設計、VC程序設計和VFP程序設計四門課程為例。
2.2 數據格式化
經過數據集成選擇后,發現已經學過上面四門課程的人數為42人,對符合要求的學生成績進行關聯挖掘時,需要邏輯型數據,因此需要將學生成績轉化成布爾型。因為挖掘的是各課程之間的良好關系,所以將大于等于75分的成績轉化為1,將小于75分的成績轉化為0。執行SQL語句完成數據格式化。
2.3 關聯挖掘
為方便書寫將C語言程序設計用H1代替,VB程序設計用H2代替,VC程序設計用H3代替,VFP程序設計用H4代替。
Apriori算法的應用:首先,用戶可以自行設置最小支持計數,本例中將最小支持計數設置為14,頁面開始執行SQL語句統計數據庫中SJWJ表中的每門課程的良好人數,再跟最小支持計數比較,發現四門課程的良好人數都大于14,確定頻繁1項集的集合L1,并將四門課程名稱存在L1數組中;繼續執行程序代碼,算法使用L1×L1產生候選2項集的集合C2,再次執行SQL語句統計SJWJ表中C2中每個候選項集的良好人數,再跟最小支持計數比較,并將符合條件的課程名稱存在L2數組(二維數組)中,本例中{ H2,H3}、{ H2,H4}和{ H3,H4}符合要求存入L2;繼續執行程序代碼,算法使用L2×L2產生候選3項集的集合C3,此時C3只有{ H2,H3,H4}一個候選值,再次執行SQL語句統計三門課程都良好的人數為15,符合條件確定頻繁3項集的集合L3,并將{ H2,H3,H4}存入L3數組中,至此程序執行完成。頁面執行完成后生成頻繁項集的效果圖,如圖1所示:
圖1 生成頻繁項集效果圖
2.4 由頻繁項集產生強關聯規則
頻繁項集l={{ H2,H3,H4}},l的非空子集有{ H2,H3}、{ H2,H4}和{ H3,H4},{ H2},{H3},{ H4}共6個非空子集。設置最小置信度為50%,結果強關聯規則如下:
H2∧H3=>H4confidence=15/18≈83.3%H2,H3同時良好,H4有大于83.3%的良好可能;
H2∧H4=>H3confidence=15/18≈83.3%H2,H4同時良好,H3有大于83.3 %的良好可能;
H3∧H4=>H2confidence=15/18≈83.3%H3,H4同時良好,H2有大于83.3%的良好可能;
H2=>H3∧H4confidence=15/21≈71.4%H2良好,H3,H4有大于71.4%的良好可能;
H3=>H2∧H4confidence=15/25=60%H3良好,H2,H4有大于60%的良好可能;
H4=>H2∧H3confidence=15/23≈65.2%H4良好,H2,H3有大于65.2%的良好可能;
因此,VB程序設計、VC程序設計和VFP程序設計三門課程之間是相互影響的。一些課程學生成績的好壞會影響另一些課程。VB程序設計學習的好壞對另兩門課程的影響較大,故應提前開設VB程序設計,并加強該課程的教材建設和師資隊伍建設;其次是對VFP程序設計課程的建設。
3 結束語
采用關聯規則挖掘算法在學生成績管理系統中進行數據挖掘,可以得到很多有價值的信息,本文挖掘出的課程之間的良好關系,為教學管理部門設置安排課程提供理論指導。舉一反三,還可以從學生成績管理系統中挖掘出更多的關系,例如課程之間的不及格關系,從而發現導致學生成績不及格的課程名稱。數據挖掘技術將會在教育領域中的發揮越來越大的作用。
參考文獻:
[1] Han Jiawei,Kamber M.數據挖掘概念與技術[M].北京:機械工業出版社,2008.
[2] 邵峰晶.數據挖掘原理與算法[M].北京:中國水利水電出版社,2008.
[3] 陳安,陳寧,周龍驤.等.數據挖掘技術及應用[M].北京:科學出版社,2006.