李曉光
(哈爾濱學(xué)院,黑龍江 哈爾濱 150086)
在現(xiàn)代科學(xué)的不斷進步的今天,高校的教學(xué)管理也不可避免的要趨于日益規(guī)范化、信息化和網(wǎng)絡(luò)化。其主要側(cè)重點要轉(zhuǎn)向項目研究、方法創(chuàng)新、優(yōu)化服務(wù)而非單一的規(guī)范管理。通過數(shù)據(jù)挖掘和知識發(fā)現(xiàn)技術(shù),我們可以從現(xiàn)有數(shù)據(jù)中分析提取潛在有用的知識信息并應(yīng)于與教學(xué)管理中。本文將介紹學(xué)分制選課成績信息的關(guān)聯(lián)規(guī)則挖掘的相關(guān)內(nèi)容,并結(jié)合Oracle數(shù)據(jù)庫的教學(xué)數(shù)據(jù)庫系統(tǒng),對關(guān)聯(lián)數(shù)據(jù)挖掘技術(shù)進行探討。
基本的數(shù)據(jù)挖掘算法主要包含置信度(confidence)和支持度(support)兩個參數(shù)。Apriori是已知的最早的關(guān)聯(lián)規(guī)則的挖掘基本算法。它的主要作用是用來描述用戶對挖掘出來的規(guī)則的偏好程度。把瀏覽大量事務(wù)數(shù)據(jù)時的每一個的單個項累加起來,在所有事物瀏覽完畢后,把自身支持度小于用戶給出的支持度的項目刪除,以此為基礎(chǔ)拓展到多項事務(wù)中去。
在應(yīng)用服務(wù)器層上進行數(shù)據(jù)邏輯處理的工作,是在普遍的C/S和B/S數(shù)據(jù)庫應(yīng)用系統(tǒng)中所采取的辦法,我們通常把數(shù)據(jù)庫當(dāng)成一個儲存數(shù)據(jù)的工具來看待和管理,在返還給數(shù)據(jù)庫之前,我們想要先提取數(shù)據(jù)庫中的某一種特定數(shù)據(jù)并進行處理。在這個過程中,Oracle數(shù)據(jù)庫是目前是最常用也是最優(yōu)秀的有關(guān)于數(shù)據(jù)存儲,、轉(zhuǎn)換、應(yīng)用的中心系統(tǒng)。數(shù)據(jù)挖掘系統(tǒng)在工作時,時常要對數(shù)據(jù)表中所有數(shù)據(jù)進行徹底掃描,因為這樣可以將盡可能多的把整體數(shù)據(jù)轉(zhuǎn)換和處理過程放在數(shù)據(jù)庫系統(tǒng)內(nèi)來執(zhí)行,以提高數(shù)據(jù)掃描效率。
首先,我們需要學(xué)生成績的事務(wù)型數(shù)據(jù)表,這是因為使用關(guān)聯(lián)挖掘算法需將具體學(xué)生的所有成績數(shù)據(jù)元組組合并成一個事務(wù)數(shù)據(jù)。通常數(shù)據(jù)庫中存儲學(xué)生成績的方式為N對N的元組,即“學(xué)號——課程號——成績”的形式。不難發(fā)現(xiàn),我們很難把它們組裝到一個事務(wù)中去,因為每個學(xué)生在數(shù)據(jù)表中都是由多個元組組成的。倘若這樣大型的事務(wù)性數(shù)據(jù)表要在在挖掘過程中重新創(chuàng)建,那就要花去很長的運算時間,得不償失,所以將其一直存儲在數(shù)據(jù)庫內(nèi)才是正確的選擇。
筆者認(rèn)事物數(shù)據(jù)的建立可以分解為:數(shù)據(jù)集成、數(shù)據(jù)選擇和預(yù)分析。
(1)數(shù)據(jù)集成。在這個步驟中,從操作型環(huán)境中提取并集成的數(shù)據(jù)中語句不可避免的會含有許多語句的二義性問題,我們要首先把它統(tǒng)一起來或者直接消除。消除語義二義性是在教學(xué)系統(tǒng)的數(shù)據(jù)處理時的主要工作。例如對于《c語言程序設(shè)計》,有的表則會將其顯示為:“c語言”。而他們指的其實是一回事,所以我們要把它們合二為一。建立在園區(qū)網(wǎng)絡(luò)的系統(tǒng)研發(fā)應(yīng)該以兩個數(shù)據(jù)集市為主題,即學(xué)生與課程。
(2)數(shù)據(jù)選擇。減小數(shù)據(jù)量、保證數(shù)據(jù)挖掘結(jié)果的優(yōu)質(zhì)性是預(yù)分析和數(shù)據(jù)選擇的主要功能。因為在之前的過程中,由于數(shù)據(jù)倉庫的容量會不斷增加。數(shù)據(jù)挖掘時的一次耗時也會相應(yīng)地加長。會給用戶造成巨大的負(fù)擔(dān)。
(3)數(shù)據(jù)預(yù)處理。首先,要將處于離散狀態(tài)的多元組的學(xué)生成績數(shù)據(jù)和成績轉(zhuǎn)化為事務(wù)性的成績數(shù)據(jù),一個事務(wù)元組配對一個學(xué)生,既學(xué)號——成績事務(wù)組。具體形式如下:(0243041087,“C語言程序設(shè)計B,軟件工程B,數(shù)據(jù)結(jié)構(gòu) A,?”)或(0243041293,“C 語言程序設(shè)計 A,匯編語言 B,人工智能 B,? ”)。其中,用一個足夠長的字符串來存儲,每個事務(wù)用逗號作為間隔,使用的時候通過很簡單的字符串分析就能夠提取出里面的所有成績事務(wù)。
取得課程間的相關(guān)信息,進而指導(dǎo)學(xué)生選課是關(guān)聯(lián)規(guī)則對學(xué)生成績數(shù)據(jù)庫進行數(shù)據(jù)挖掘的最終目標(biāo)。Apriori、AIS、SETM和 Partitio等是關(guān)聯(lián)規(guī)則的主要分析算法,本文中的實例將采用Apriori算法。
在進行處理時,學(xué)生考試成績,隸屬院系等基本信息以及在數(shù)據(jù)預(yù)備階段形成的各課程所隸屬的課程分類信息都是關(guān)聯(lián)規(guī)則分析中可能用到的,應(yīng)該加以留存。依據(jù)學(xué)生的考試成績,分析出各門課程之間的內(nèi)在聯(lián)系,提高數(shù)據(jù)挖掘的精確度,僅僅靠考慮可信度以及支持度在實際應(yīng)用中是遠(yuǎn)遠(yuǎn)不夠的,有時甚至還會引起不必要的誤導(dǎo)。筆者認(rèn)為可以通過在原來的關(guān)聯(lián)規(guī)則上增加興趣度閾值這一手段來實現(xiàn)。例如《C語言程序設(shè)計》(以下簡稱《C語言》)和《軟件工程》(以下簡稱《軟件》)成績?yōu)閮?yōu)的學(xué)生數(shù)量在成績庫中占15%,但是《軟件》中優(yōu)秀的學(xué)生數(shù)量在《C語言》為優(yōu)的學(xué)生中占到數(shù)量的50%,我們可以由這兩個足夠大的支持度和可信度得出:“提高《C語言》的教學(xué)水平有助于《軟件》教學(xué)成績的提高”,這種結(jié)論看似合理,而實際的情況卻是原始記錄顯示選修《軟件》的學(xué)生有60%成績都是優(yōu),也就是說有35%的學(xué)生《C語言》成績非優(yōu)但《工程》的成績?yōu)閮?yōu)。而且《軟件》成績優(yōu)秀的概率高于已知《C語言》成績?yōu)閮?yōu)的概率這一定律,對于任意我們不知道信息的學(xué)生都成立。所以,如果用戶在選擇時沒有仔細(xì)分析,上面的信息很顯然會給他們造成很負(fù)面的誤導(dǎo)。所以我們引入興趣度閾值這一參數(shù)來解決這個問題。
定義規(guī)則R的興趣度公式為:IR=(CRSRH)/max(CR,SRH)
其中CR是規(guī)則R的可信度|H∧B|/|B|,SRH就是原始記錄中支持該規(guī)則推出的信息即規(guī)則右部H的比例。很顯然CR與SRH之間是不具有任何關(guān)聯(lián)性的,興趣度IR在計算時,R的結(jié)果可正可負(fù)。正負(fù)就是R值得意義所在。如果為負(fù),就表示該規(guī)則是具有誤導(dǎo)性的,應(yīng)該舍棄。反之則表示該規(guī)則有效,輸出。
在于對事務(wù)的計數(shù)上是關(guān)聯(lián)挖掘算法Apriori的主要處理過程。但要是因排列組合導(dǎo)致事務(wù)個數(shù)特別多,就可能導(dǎo)致產(chǎn)生的候選式遠(yuǎn)遠(yuǎn)超過一般計算機內(nèi)存的承受力。因此,內(nèi)存與外存之間的切換是Apriori算法過程中必然需要考慮到的問題。解決這個問題,最簡單的辦法就是直接將候選式保存在Oracle數(shù)據(jù)庫中,建立一張臨時的數(shù)據(jù)表—CanidateTable。 CanidateTable內(nèi)剩下的元組就是頻繁項了,頻繁項可以用DELETE FROM Candidate Table WHERE支持度計數(shù)<最小支持度計數(shù)執(zhí)行完成后得到。對于產(chǎn)生的候選式十分巨大的情況,我們可以通過建立索引,提高上述篩選候選式的效率。
我們可以利用可視化工具將數(shù)據(jù)挖掘獲取的信息以用戶理解和觀察的方式反映給用戶。在本系統(tǒng)中選用表格進行反映表述。用表格去表示某學(xué)院學(xué)生成績挖掘結(jié)果,范式為(no,front,rear,C,S,I),這些單詞和字母分別代表的是是產(chǎn)生關(guān)聯(lián)規(guī)則的序號、關(guān)聯(lián)規(guī)則前件、關(guān)聯(lián)規(guī)則后件、可信度、興趣度和支持度。
通過分析挖掘,我們可以得到課程之間的相關(guān)關(guān)系,這樣可以幫助管理者做出正確的決策,指導(dǎo)他選課過程,有助于學(xué)生更加有針對性的學(xué)習(xí)各門課程。
[1]HAN J,KAMBER M.Data Mining:Concepts and Techniques.Beijing:Higher Education Press,2001.
[2]Rakesh Agrawal,Tomasz Imielinski,Arun Swami.MiningAssociation Rules between Sets of Items in Large Databases,1993
[3]董彩云,曲守寧.數(shù)據(jù)挖掘及其在高校教學(xué)系統(tǒng)中的應(yīng)用[M].濟南大學(xué)學(xué)報,2004.
[8]張梅峰,張建偉,張新敬,等.基于Apriori的有效關(guān)聯(lián)規(guī)則挖掘算法的研究[J].計算機工程與應(yīng)用,2002,39(19):196-198.
[9]張智軍,方穎,許云濤.基于Apriori算法的水平加權(quán)關(guān)聯(lián)規(guī)則挖掘 [J].計算機工程與應(yīng)用,2002,39(14):197-199.