曹路舟
(池州職業(yè)技術(shù)學(xué)院 信息技術(shù)系,安徽 池州 247000)
為了更好的完成貧困生資助工作,減輕貧困生認(rèn)定過程中的工作壓力,廣義上的數(shù)據(jù)挖掘就是指知識發(fā)現(xiàn)[1]。它是從大量數(shù)據(jù)中發(fā)現(xiàn)并提取隱藏在內(nèi)的、人們事先不知道的、但又可能有價值的信息和知識一種新技術(shù)[2]。狹義的數(shù)據(jù)挖掘只是知識發(fā)現(xiàn)過程中的一個重要步驟,是知識發(fā)現(xiàn)過程中一個最核心的環(huán)節(jié),通過這個環(huán)節(jié)可以發(fā)現(xiàn)需要的模式。關(guān)聯(lián)規(guī)則挖掘技術(shù)是最常用的技術(shù)之一,本論文通過對我校所有在校生的基本信息進行數(shù)據(jù)分析,并利用這些數(shù)據(jù)采用經(jīng)典的Apriori算法進行數(shù)據(jù)挖掘,找出其中的部分?jǐn)?shù)據(jù)之間內(nèi)在的關(guān)聯(lián),從而提高貧困生認(rèn)定工作的效率。
關(guān)聯(lián)規(guī)則[3]的挖掘問題可以用下面的形式來描述:
令I(lǐng)={i1,i2,…,in}為一個項目集。令D為一任務(wù)相關(guān)數(shù)據(jù)構(gòu)成的事務(wù)數(shù)據(jù)庫,每個事務(wù)T是一項目集且TI。每個事務(wù)T都與一個被稱作TID的標(biāo)識符相關(guān)聯(lián)。令A(yù)為一個項目集,當(dāng)且僅當(dāng)AT時事務(wù)T包含A。關(guān)聯(lián)規(guī)則的表示形式為AB,其中AI,BI,且 A∩B=。關(guān)聯(lián)規(guī)則AB以支持度S包含事務(wù)集D,其中S表示事務(wù)集D中包含A∪B的事務(wù)占有的事務(wù)百分比,即概率P(A∪B)。關(guān)聯(lián)規(guī)則AB是以置信度C包含事務(wù)集D,其中C表示事務(wù)集D中既包含A事務(wù)同時又包含B事務(wù)的百分比,即條件概率P(A|B)。表達式如下:
關(guān)聯(lián)規(guī)則的算法主要有Apriori[5]算法,F(xiàn)P-growth[6]算法,以及一些在此基礎(chǔ)上改進的算法。由于Apriori算法屬于單維、單層、布爾關(guān)聯(lián)規(guī)則,思路比較簡單,以遞歸統(tǒng)計為基礎(chǔ),通過剪枝生成頻繁集,所以該算法得以廣泛使用。
Apriori算法挖掘數(shù)據(jù)可以分為兩個階段:
第一階段:全部的頻繁項目集通過循環(huán)迭代識別,并保留滿足支持度不小于用戶預(yù)設(shè)的最小支持度要求的頻繁項目集。
第二階段:從求出的頻繁項目集中挖掘出置信度不小于用戶預(yù)設(shè)的最小置信度的規(guī)則。
算法描述:
數(shù)據(jù)顯示,2017年四川省完成地區(qū)生產(chǎn)總值3.70萬億元。其中,成都以1.39萬億元,占比達到37%,可謂遙遙領(lǐng)先。排行第二的綿陽GDP總量為2074.8億元,成為四川首個跨過2000億門檻的地級市。德陽、宜賓、南充則緊隨其后,逼近2000億大關(guān)。在“1500億”一檔的瀘州、達州、樂山差距并不大。
(1)求出頻繁1-項集L1
(2)求頻繁k-項集Lk,先求出一個候選頻繁k項集Ck。Ck可以由JOIN計算獲得,這被稱為連接步。 如果 r,s∈Lk-1,r={r1,r2,…rk-2,rk-1},s={s1,s2,…,sk-2,sk-1},而且當(dāng) 1≤i<k-1 時,ri=si,當(dāng) i=k-1 時,rk-1≠sk-1,則 r∪s={r1,r2,…,rk-2,rk-1,sk-1}是 Ck這個集合中的元素,頻繁k項集的有可能部分來自于候選頻繁k項集的集合Ck之中。
(3)由于候選項目集Ck是頻繁項目集Lk的超集,這樣Ck中部分元素就有可能不是頻繁的。Apriori算法從Ck中去掉所有非頻繁的 (k-1)-項集,通過剪枝思想使Ck的規(guī)模降低。
(4)經(jīng)過一趟掃描事物數(shù)據(jù)庫D,求出候選項目集Ck中每個項目集的支持度,這被稱為計數(shù)步。
(5)去掉Ck中不滿足最小支持度的項目集,這樣頻繁k-項集Lk就產(chǎn)生了。
重復(fù)操作(2)~(5),直到?jīng)]有新的頻繁項目集生成時結(jié)束。Apriori算法能夠求出滿足最小支持度的所有的頻繁項目集。
算法實現(xiàn)[4]:
其中D是事務(wù)數(shù)據(jù)庫,min_sup是最小支持度,算法 Apriori_gen(Lk-1,min_sup)的功能是:由頻繁項集Lk-1連接生成一個超集Ck作為候選頻繁項集。
2.1.1 數(shù)據(jù)準(zhǔn)備 為了選出滿足資助條件的經(jīng)濟困難學(xué)生,我們需要對所有申請資助的學(xué)生的信息進行匯總,得到與家庭經(jīng)濟困難學(xué)生認(rèn)定有關(guān)的信息表有:
學(xué)生基本情況表(學(xué)號,姓名,性別,出生年月,民族,系,專業(yè),年級,個人特長,入學(xué)前戶口,孤殘,單親,烈士子女,健康狀況,家庭人口數(shù),家庭年收入,家庭通訊地址)。
家庭成員情況表(姓名,年齡,與學(xué)生關(guān)系,職業(yè),工作單位,健康狀況)。
家庭困難認(rèn)定申請表(學(xué)號,姓名,系,專業(yè),年級,班,家庭人均年收入申請理由)。
成績表(學(xué)號,姓名,系,班級,課程名,成績)。
校園一卡通月消費情況表(卡號、學(xué)號,姓名,性別,出生年月,月消費金額)。
助學(xué)貸款情況表(學(xué)號、姓名、系、專業(yè)、年級、班、貸款金額(元)、貸款期限(月)、貸款利率)。
由于這些表來源于各個部門,每個部門所做的數(shù)據(jù)表的形式不一定一樣,于是我們利用sql server 2005中的數(shù)據(jù)轉(zhuǎn)換服務(wù),把這些形式不一的表都轉(zhuǎn)換成數(shù)據(jù)庫中的表,使形式統(tǒng)一起來。如圖1所示:
圖1 貧困生認(rèn)定因素關(guān)系圖
接著以圖1中各表的數(shù)據(jù)作為源數(shù)據(jù),提取與貧困生認(rèn)定有關(guān)的字段進行下一輪分析,去掉對后面分析無作用的字段,再進行適當(dāng)?shù)母袷交D(zhuǎn)換,做好數(shù)據(jù)挖掘的前期準(zhǔn)備工作。提取有關(guān)字段后得學(xué)生基本信息表如表1所示:
表1 學(xué)生基本信息表
2.1.2 數(shù)據(jù)預(yù)處理 因為關(guān)聯(lián)規(guī)則算法只能處理離散型數(shù)據(jù)而不能直接處理連續(xù)型數(shù)值數(shù)據(jù),因此我們先要離散化連續(xù)型數(shù)值數(shù)據(jù),離散化后對應(yīng)的屬性及值域關(guān)系如表2所示:
表2 屬性與值域?qū)?yīng)表
然后將表的值域部分通過設(shè)定的項目代碼編輯對應(yīng)生成表3:
表3 屬性與項目代碼對應(yīng)表
再對事務(wù)數(shù)據(jù)集進行轉(zhuǎn)換,得到表4:
表4 轉(zhuǎn)換后的事物數(shù)據(jù)庫表
2.2.1 挖掘關(guān)聯(lián)規(guī)則 本次挖掘設(shè)定最小支持度是5%,最小置信度是50%。使用Apriori算法對處理后數(shù)據(jù)進行挖掘后,得到如表5的部分關(guān)聯(lián)規(guī)則(這里只考慮無補考的同學(xué)):
表5 關(guān)聯(lián)規(guī)則結(jié)果表
2.2.2 規(guī)則理解和評估
(1)規(guī)則理解
針對表5,選擇其中的兩幾條關(guān)聯(lián)規(guī)則加以解釋:
規(guī)則3:月消費金額<=300,城鎮(zhèn)戶口,父母失業(yè)=>一般困難(置信度=75.15%),這條規(guī)則表明城鎮(zhèn)里同學(xué)在父母雙失業(yè)的情況下,月消費金額不高于300元的同學(xué),申請一般困難的置信度為75.15%,可信度較高;
規(guī)則6:月消費金額<200,農(nóng)村戶口,單親,上學(xué)人數(shù)=2,申請了助學(xué)貸款=>特別困難(置信度=100%),這條規(guī)則表明,有兄弟姐妹在上學(xué)而且是單親的同時申請了助學(xué)貸款,月消費水平也在200元以下的農(nóng)村同學(xué),申請?zhí)貏e困難時的置信度為100%,非常可信。
(2)評估
對全校學(xué)生進行數(shù)據(jù)挖掘生成關(guān)聯(lián)規(guī)則后,保留超過最小置信度50%的同學(xué)信息,同時與學(xué)校實際貧困生資助系統(tǒng)中的貧困生信息作比較如表6:
表6 算法挖掘出的貧困生與資助系統(tǒng)的貧困對照表
對表6進行統(tǒng)計得知:使用Apriori算法挖掘出的貧困生人數(shù)為1415人,而我校實際貧困生資助系統(tǒng)中的貧困生總?cè)藬?shù)為1667人,這說明使用Apriori算法挖掘出的同學(xué)有將近85%的人在實際貧困生資助系統(tǒng)中,該算法針對這次的貧困生的數(shù)據(jù)挖掘效率約為85%,而不是100%。產(chǎn)生這種結(jié)果的原因有多種可能:(1)關(guān)聯(lián)規(guī)則并不代表因果關(guān)系,只是反映了一個客觀現(xiàn)象;(2)處理的數(shù)據(jù)并不代表全面,完全真實;(3)在進行數(shù)據(jù)處理時并沒有考慮到所有的實際情況,盡管如此,通過以上分析,還是能夠在一定程度上反映了貧困生的認(rèn)定與學(xué)習(xí)成績、貸款、消費水平以及家庭情況等之間的關(guān)系規(guī)律,可為貧困生的評定工作提供一定的依據(jù),給決策者提供幫助。
本論文以全體學(xué)生的數(shù)據(jù)為源數(shù)據(jù),使用經(jīng)典的Apriori算法進行數(shù)據(jù)挖掘,找出數(shù)據(jù)間的關(guān)聯(lián)規(guī)則,再通過這些關(guān)聯(lián)規(guī)則來指導(dǎo)學(xué)校學(xué)生管理部門盡量做到公平的進行貧困生認(rèn)定,有一定的現(xiàn)實意義,然而關(guān)聯(lián)規(guī)則挖掘技術(shù)只是數(shù)據(jù)挖掘技術(shù)中的一種,而且每種挖掘技術(shù)的挖掘效率也不盡相同,如何選擇一個好的挖掘算法來提高挖掘的效率是將來研究的主要方向。
[1]紀(jì)希禹.數(shù)據(jù)挖掘技術(shù)應(yīng)用實例[M].北京:機械工業(yè)出版社,2009.
[2]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2010.
[3]JiaweiHan,Micheline Kamber.Data Mining Conceptsand Techniques[M].北京:高等教育出版社,2001.
[4]李劍.數(shù)據(jù)挖掘技術(shù)在學(xué)生助學(xué)系統(tǒng)中的應(yīng)用[D].南京:東南大學(xué),2009.
[5]Jiawei Han,Micheline Kamber.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,等,譯.北京:機械工業(yè)出版社,2001.