??? 摘 要:關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘的主要技術(shù)之一,是描述數(shù)據(jù)庫中一組數(shù)據(jù)項(xiàng)之間的某種潛在關(guān)系的規(guī)則,。以學(xué)生CET4成績數(shù)據(jù)為研究對(duì)象,,運(yùn)用關(guān)聯(lián)規(guī)則挖掘算法Apriori算法,找出學(xué)生CET4成績中聽力,、閱讀、寫作、綜合測試四部分成績之間的關(guān)系,,以及這四部分成績與總分之間的關(guān)系。
??? 關(guān)鍵詞:關(guān)聯(lián)規(guī)則,;Apriori算法,;頻繁項(xiàng)集;數(shù)據(jù)挖掘,;CET4
?
??? 數(shù)據(jù)挖掘技術(shù)應(yīng)用于教學(xué)管理中的主要方法是根據(jù)現(xiàn)有信息系統(tǒng)中的數(shù)據(jù),,挖掘高校教學(xué)管理工作中平常看不見,、也無從知道的規(guī)律,,以此來提高管理效率,幫助教師改進(jìn)現(xiàn)有的教學(xué)方式和方法,,從而增強(qiáng)高校的競爭優(yōu)勢,。關(guān)聯(lián)規(guī)則形式簡潔,易于解釋和理解,,并可以有效地捕捉數(shù)據(jù)間的重要關(guān)系,。
1 關(guān)聯(lián)規(guī)則的原理
??? 一般地,關(guān)聯(lián)規(guī)則挖掘是指從一個(gè)大型的數(shù)據(jù)集中發(fā)現(xiàn)有趣的關(guān)聯(lián)或相關(guān)關(guān)系,,即從數(shù)據(jù)集中識(shí)別出頻繁出現(xiàn)的屬性值集,,也稱為頻繁項(xiàng)集(簡稱頻繁集),,然后再利用這些頻繁集創(chuàng)建描述關(guān)聯(lián)規(guī)則的過程[1]。
??? 關(guān)聯(lián)規(guī)則可形式化定義為:
??? 設(shè)I={i1,i2,…,im}是由m個(gè)不同的項(xiàng)組成的集合,。給定一個(gè)事務(wù)數(shù)據(jù)庫D,,其中每一個(gè)事務(wù)T是I中一組項(xiàng)的集合,則事務(wù)T包含項(xiàng)集X,。
??? 關(guān)聯(lián)規(guī)則是形如并且X∩Y=Ф,,如果D中事務(wù)包含X∪Y的百分比為S,則稱S為關(guān)聯(lián)規(guī)則X=>Y的支持度,,它是概率P(X∪Y) ,;如果D中包含X的事務(wù)同時(shí)也包含Y的百分比為C,則稱C為關(guān)聯(lián)規(guī)則X=>Y的置信度,,它是條件概率P(Y/X),。習(xí)慣上將關(guān)聯(lián)規(guī)則表示為X=>Y(S%,C%),。
??? 關(guān)聯(lián)規(guī)則的發(fā)現(xiàn)任務(wù)或問題就是在事務(wù)數(shù)據(jù)庫D中找出所具有用戶給定的最小支持度閾值(min_ sup)和最小置信度閾值(min_cof)的關(guān)聯(lián)規(guī)則,,即這些關(guān)聯(lián)規(guī)則的支持度和置信度分別不小于最小支持度和最小置信度,這樣,,每條被挖掘出來的關(guān)聯(lián)規(guī)則就可以用一個(gè)蘊(yùn)涵式(X=>Y)和兩個(gè)閾值(最小支持度min_sup和最小置信度min_cof)表示[1],。
2 關(guān)聯(lián)規(guī)則挖掘算法
2.1 Apriori算法:使用候選項(xiàng)集找頻繁項(xiàng)集
??? Apriori算法通過對(duì)數(shù)據(jù)庫D的多次掃描來發(fā)現(xiàn)所有的頻繁項(xiàng)目集。在第一次掃描數(shù)據(jù)庫時(shí),,對(duì)項(xiàng)集I中的每一個(gè)數(shù)據(jù)項(xiàng)計(jì)算其支持度,,確定出滿足最小支持度的頻繁1項(xiàng)集的集合L1,然后,,L1用于找頻繁2項(xiàng)集的集合L2,,如此下去……在后續(xù)的第k次掃描中,首先以k-1次掃描中所發(fā)現(xiàn)的含k-1個(gè)元素的頻繁項(xiàng)集的集合Lk-1為基礎(chǔ),,生成所有新的候選項(xiàng)目集CK(Candidate Itemsets),,即潛在的頻繁項(xiàng)目集,然后掃描數(shù)據(jù)庫D,,計(jì)算這些候選項(xiàng)目集的支持度,,最后從候選集CK中確定出滿足最小支持度的頻繁k項(xiàng)集的集合Lk,并將Lk作為下一次掃描的基礎(chǔ),。重復(fù)上述過程直到再也發(fā)現(xiàn)不了新的頻繁項(xiàng)目集為止,。
2.2 由頻繁項(xiàng)集產(chǎn)生關(guān)聯(lián)規(guī)則
??? 找出了所有的頻繁項(xiàng)集,由它們產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則就很方便了(強(qiáng)關(guān)聯(lián)規(guī)則滿足最小支持度和最小置信度),。對(duì)于置信度,,公式為:confidence(X=>Y)=P(Y|X),其中support_count(X∪Y)是包含項(xiàng)集X∪Y的事務(wù)數(shù),。support_count(X)是包含項(xiàng)集X的事務(wù)數(shù),。關(guān)聯(lián)規(guī)則產(chǎn)生如下:
??? 對(duì)于任意一個(gè)頻繁項(xiàng)集L和L的任何非空子集則生成關(guān)聯(lián)規(guī)則
且該規(guī)則的置信度和支持度分別為:
support(R)=support(L)[2],。
3 關(guān)聯(lián)規(guī)則的應(yīng)用
??? 以下以Visual Foxpro6.0為工具進(jìn)行討論。
3.1 數(shù)據(jù)預(yù)處理
??? 對(duì)現(xiàn)有的學(xué)生CET4成績進(jìn)行數(shù)據(jù)預(yù)處理(Data preprocessing),,包括2個(gè)步驟:數(shù)據(jù)清理(Data Clearing)和數(shù)據(jù)變換(Data Transformation),。
??? (1)數(shù)據(jù)清理:對(duì)表中的原始數(shù)據(jù)進(jìn)行數(shù)據(jù)清理,消除一些冗余數(shù)據(jù),,消除噪聲數(shù)據(jù),,消除重復(fù)記錄。很多學(xué)生的CET4成績數(shù)據(jù)都為0,通過調(diào)查知道這些數(shù)據(jù)缺失的原因是學(xué)生未參加考試,,把這些數(shù)據(jù)都從數(shù)據(jù)庫表中刪除,。數(shù)據(jù)清理后的如圖1所示。
?
??? (2)數(shù)據(jù)變換:將數(shù)據(jù)轉(zhuǎn)換成適合于挖掘的形式,。由于學(xué)生CET4成績是以數(shù)字的形式給出的,,不利于數(shù)據(jù)挖掘的進(jìn)行,,因此需對(duì)聽力,、閱讀、寫作,、綜合測試4項(xiàng)的連續(xù)屬性值進(jìn)行離散化處理,,即轉(zhuǎn)換為優(yōu)秀、良好,、中,、及格、不及格5個(gè)等級(jí),。因?yàn)镃ET4的分值分配為:總分710,,聽力249,閱讀249,,寫作142,,綜合測試70,所以要把分?jǐn)?shù)換算為百分制,。如分?jǐn)?shù)高于85為“優(yōu)”,,介于80~85之間為“良”,70~80之間為“中”,,60~70之間為“及格”,,60分以下為“不及格”?!安患案瘛?、“及格”、“中”,、“良”,、“優(yōu)”設(shè)定為1,、2、3,、4,、5;用“A”代表總分,,“B”代表聽力分?jǐn)?shù),,“C”代表閱讀分?jǐn)?shù),“D”代表寫作分?jǐn)?shù),,“E”代表綜合測試分?jǐn)?shù),;將除了學(xué)號(hào)的所有字段都改為字符型。數(shù)據(jù)變換后如圖2所示,,總計(jì)1 814條記錄,。
?
3.2 設(shè)計(jì)思路
3.2.1求解頻繁項(xiàng)集
??? 圖2中的學(xué)生成績表.DBF為本文要研究的事務(wù)數(shù)據(jù)庫,它有6個(gè)字段,,均為字符型,。求解頻繁項(xiàng)集步驟如下:
??? (1) 建立一個(gè)項(xiàng)目數(shù)據(jù)表ITEM.DBF,該表中有1個(gè)字段,字段名為A,,數(shù)據(jù)類型為字符型,,用于存放CET4成績中每個(gè)組成部分的所有分?jǐn)?shù)段的表達(dá)值,該表中每條記錄代表一種表達(dá)值,,表中的記錄數(shù)就是表達(dá)值形式的數(shù)目,。該數(shù)據(jù)表中的記錄升序排列,分別為a1,、a2,、a3、b1,、b2,、b3、c1,、c2,、c3、d1,、d2,、d3、d4,、e1,、e2、e3、e4,、e5,。
??? (2) 建立6個(gè)空數(shù)據(jù)表FRENQ1、FRENQ2,、FRENQ3,、FRENQ4、FRENQ5,、FRENQ6,,分別用來存放1、2,、3,、4、5,、6頻繁項(xiàng)集和它們的支持度計(jì)數(shù),。其中FRENQ1中有2個(gè)字段A、SUP,,F(xiàn)RENQ2有3個(gè)字段A,、B、SUP,,F(xiàn)RENQ3有4個(gè)字段A,、B、C,、SUP,F(xiàn)RENQ4有5個(gè)字段A,、B,、C、D,、SUP,,F(xiàn)RENQ5有6個(gè)字段A、B,、C,、D、E,、SUP,,F(xiàn)RENQ6有7個(gè)字段A、B,、C,、D、E、F,、SUP,,只有SUP為數(shù)值型,其余的數(shù)據(jù)類型均為字符型,。
??? (3) 利用成績表產(chǎn)生一個(gè)輔助數(shù)據(jù)表ITEM1,,該表中只有一個(gè)字段ITEMSET ,數(shù)據(jù)類型為字符型,,記錄數(shù)與成績數(shù)據(jù)表相同,數(shù)據(jù)為成績表中的A+B+C+D+E的值,。
??? (4) 在求每個(gè)頻繁項(xiàng)目集時(shí),分2步進(jìn)行:第1步產(chǎn)生候選項(xiàng),,第2步生成頻繁項(xiàng)目集,。具體過程如下:首先,掃描ITEM表中每一條記錄,對(duì)應(yīng)在ITEM1.DBF求出所有的長度為1的該候選項(xiàng)的支持度,,如果支持度大于給定的最小支持度,就把它存入FRENQ1.DBF中,,直至把ITEM中的記錄數(shù)掃描完為止。隨后,利用FRENQ1.DBF產(chǎn)生長度為2的候選項(xiàng),掃描ITEM1.DBF求出所有長為2的該候選項(xiàng)集的支持度, 如果支持度大于給定的最小支持度,,就存入FRENQ2.DBF中,直至掃描完FRENQ1.DBF中的記錄為止,。其余的以此類推,直到求出所有的頻繁項(xiàng)目集。若發(fā)現(xiàn)某頻繁項(xiàng)集的數(shù)目為零,,則停止計(jì)算,。最后,輸出所有項(xiàng)目的頻繁集,。在該程序中依然運(yùn)用了Apriori算法的性質(zhì):如果一個(gè)項(xiàng)集是頻繁的,則它的所有子集也是頻繁的[3-6],。
??? 設(shè)定最小支持度為0.04,支持度計(jì)數(shù)為73,,產(chǎn)生了79個(gè)頻繁項(xiàng)集,。實(shí)驗(yàn)結(jié)果如圖3所示。
?
3.2.2 提取關(guān)聯(lián)規(guī)則
??? 從已經(jīng)產(chǎn)生的頻繁項(xiàng)集中確定它們的子集,,然后根據(jù)關(guān)聯(lián)規(guī)則的挖掘算法原理,,假設(shè)最小置信度為30%,由程序得出350個(gè)關(guān)聯(lián)規(guī)則,。部分試驗(yàn)結(jié)果如圖4所示,。
?
?
4 結(jié)果分析
??? (1) 聽力、寫作與總分之間的關(guān)系是雙向的,,即聽力或?qū)懽鞣州^低,,總分一般也較低;反之,,總分較低,,聽力或?qū)懽饕草^低,。因?yàn)閷?duì)于學(xué)生而言,一般學(xué)習(xí)聽力,、寫作的主動(dòng)性較差,,而這兩種題型也是一般學(xué)生考試中最棘手的題型。
??? (2) 閱讀,、綜合測試和總分之間的關(guān)系主要表現(xiàn)為單向,,即閱讀、綜合測試分較低,,總分極有可能較低,,但反之未必。這是由于CET4中的閱讀和綜合測試兩項(xiàng)的分值比例相對(duì)較大引起的,。
??? (3) 任意兩項(xiàng)(或兩項(xiàng)以上)得分較低,,總分都較低。其中,,聽力和閱讀是影響總分最大的兩個(gè)因素,。
??? (4) 在聽力、閱讀,、寫作和綜合測試四項(xiàng)中,,綜合測試題得分與其他三項(xiàng)得分的關(guān)系相對(duì)較小,;而聽力和寫作則與閱讀和綜合測試的關(guān)系比較緊密,。
??? (5) 從與總分的關(guān)系,以及與其余單項(xiàng)的關(guān)系來看,,聽力,、閱讀、寫作和綜合測試四項(xiàng)中,,聽力是最突出的,。
??? 最后得出這樣一個(gè)結(jié)論:在日常教學(xué)中應(yīng)進(jìn)一步強(qiáng)調(diào)聽力題的重要地位,進(jìn)一步加強(qiáng)聽力的訓(xùn)練,。
??? 關(guān)聯(lián)規(guī)則的應(yīng)用很廣泛。本文根據(jù)關(guān)聯(lián)規(guī)則的挖掘過程,,對(duì)學(xué)生CET4成績的各個(gè)部分進(jìn)行了分析,。利用Apriori算法,借助于計(jì)算機(jī),,可以對(duì)于海量數(shù)據(jù)進(jìn)行分析,,從而可以進(jìn)行更為全面和客觀的預(yù)測與決策。分析的結(jié)果將會(huì)對(duì)某門課程的教學(xué)提供大量有用的信息,,從而指導(dǎo)我們的教學(xué),。
參考文獻(xiàn)
[1] 陳文偉,黃金才. 數(shù)據(jù)倉庫與數(shù)據(jù)挖掘[M]. 北京:人民郵電出版社,2004.
[2]?韓家煒. 數(shù)據(jù)挖掘概念與技術(shù)[M]. 北京:機(jī)械工業(yè)出版社,,2000.
[3]?齊曉峰. 數(shù)據(jù)挖掘技術(shù)在學(xué)生成績管理中的應(yīng)用研究[D]. 阜新:遼寧工程技術(shù)大學(xué),,2006.
[4]?趙輝. 數(shù)據(jù)挖掘技術(shù)在學(xué)生成績分析中的研究及應(yīng)用[D].大連: 大連海事大學(xué),2007.
[5]?陸楠. 關(guān)聯(lián)規(guī)則的挖掘及其算法的研究[D]. 長春:吉林大學(xué),,2007
[6]?羅可,,吳建華,吳杰. 一種用Visual Foxpro求頻繁項(xiàng)目集的方法[J]. 計(jì)算機(jī)工程,,2001(5).