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