郜振霞,吳軍華,王學(xué)軍,3
(1.南京工業(yè)大學(xué)電子與信息工程學(xué)院,江蘇南京 210009;2.聊城大學(xué)傳媒技術(shù)學(xué)院,山東 聊城 252000;3.承德石油高等??茖W(xué)校,河北承德 067000)
關(guān)聯(lián)規(guī)則挖掘在網(wǎng)絡(luò)課程推薦中的應(yīng)用
郜振霞1,2,吳軍華1,王學(xué)軍1,3
(1.南京工業(yè)大學(xué)電子與信息工程學(xué)院,江蘇南京 210009;2.聊城大學(xué)傳媒技術(shù)學(xué)院,山東 聊城 252000;3.承德石油高等??茖W(xué)校,河北承德 067000)
以網(wǎng)絡(luò)課程推薦為例探索關(guān)聯(lián)規(guī)則在網(wǎng)絡(luò)教學(xué)平臺(tái)中的實(shí)現(xiàn)與應(yīng)用。引入關(guān)聯(lián)規(guī)則中的Apriori算法應(yīng)用于網(wǎng)絡(luò)課程關(guān)聯(lián)分析,從而挖掘出潛在的網(wǎng)絡(luò)課程相關(guān)規(guī)律,為學(xué)生學(xué)習(xí)、教師安排教學(xué)內(nèi)容等提供科學(xué)依據(jù)。
關(guān)聯(lián)規(guī)則;Apriori算法;網(wǎng)絡(luò)課程推薦
關(guān)聯(lián)規(guī)則挖掘(Association Rule Mining)是幫助發(fā)現(xiàn)大量數(shù)據(jù)庫項(xiàng)集之間的關(guān)聯(lián)關(guān)系,隨著大量數(shù)據(jù)的增加和存儲(chǔ),人們對(duì)于從數(shù)據(jù)庫中挖掘這些規(guī)則越來越感興趣。關(guān)聯(lián)規(guī)則挖掘問題已經(jīng)成為數(shù)據(jù)挖掘中最成熟、最重要、最活躍的內(nèi)容。
關(guān)聯(lián)規(guī)則問題由Agrawal等人于1993年首先提出,以后諸多的研究人員對(duì)關(guān)聯(lián)規(guī)則的挖掘問題進(jìn)行了大量的研究。簡(jiǎn)單地說,關(guān)聯(lián)規(guī)則就是給定一組項(xiàng)目和一個(gè)記錄集合,通過分析記錄集合,推導(dǎo)出項(xiàng)目間的相關(guān)性[1]。
關(guān)聯(lián)規(guī)則挖掘問題可以這樣來表述:設(shè)I={i1,i2,i3,…,im,…,ip}是挖掘的數(shù)據(jù)庫中全體項(xiàng)目(Item)集合,im(m=1,2,…,p)稱為項(xiàng)目(item);D={t1,t2,…,tk…,tn}是挖掘的數(shù)據(jù)集,tk(k=1,2,…,n)稱為事務(wù)(Transaction),其中每個(gè)事務(wù)tk是一個(gè)項(xiàng)目集合,并滿足tk?I。每個(gè)事務(wù)都有唯一的標(biāo)識(shí)符,稱為TID。
一個(gè)關(guān)聯(lián)規(guī)則便是一個(gè)如下形式的蘊(yùn)涵關(guān)系,X→Y,其中X?I,Y?I,且X∩Y=φ。X或Y是一個(gè)項(xiàng)目的集合,X為前件,Y為后件。
規(guī)則X→Y的支持度(Support)是指D中包含X∪Y的事務(wù)的百分比。支持度表示規(guī)則在事務(wù)集合D中使用的頻繁程度。設(shè)n是D中事務(wù)的數(shù)目,規(guī)則X→Y的支持度公式為
規(guī)則X→Y的置信度(Confidence)是指既包含了X又包含了Y的事務(wù)的數(shù)量占所有包含了X的事務(wù)的百分比。規(guī)則X→Y的置信度計(jì)算公式為
支持度和置信度是兩個(gè)常用的衡量關(guān)聯(lián)規(guī)則強(qiáng)度的指標(biāo)。關(guān)聯(lián)規(guī)則挖掘就是指在給定的一個(gè)事務(wù)集合T中找到所有滿足用戶指定的最小支持度(minsup)和最小置信度(minconf)的關(guān)聯(lián)規(guī)則。
關(guān)聯(lián)規(guī)則挖掘過程一般可分為兩個(gè)步驟:1)獲取頻繁項(xiàng)集。根據(jù)最小支持度找出數(shù)據(jù)集中的所有頻繁項(xiàng)集。2)產(chǎn)生關(guān)聯(lián)規(guī)則。根據(jù)頻繁項(xiàng)集合最小置信度產(chǎn)生關(guān)聯(lián)規(guī)則。
在關(guān)聯(lián)規(guī)則的眾多算法中,Apriori算法是最為經(jīng)典的關(guān)聯(lián)規(guī)則挖掘算法,后來的許多算法都是對(duì)Apriori算法的改進(jìn)和擴(kuò)展。Apriori算法是挖掘單維布爾型關(guān)聯(lián)規(guī)則頻繁項(xiàng)目集的有效算法。
Apriori算法分兩步進(jìn)行:第一步生成所有頻繁項(xiàng)目集,一個(gè)頻繁項(xiàng)目集就是一個(gè)支持度高于minsup的項(xiàng)集;第二步從頻繁項(xiàng)目集中生成所有可信關(guān)聯(lián)規(guī)則,一個(gè)可信關(guān)聯(lián)規(guī)則就是置信度高于minconf的規(guī)則。頻繁項(xiàng)目集生成部分,Apriori算法使用逐層搜索的迭代算法,利用k—項(xiàng)集探索(k+1)—項(xiàng)集。它采用多輪搜索的方法,每一輪搜索掃描一遍整個(gè)數(shù)據(jù)集,并最終生成所有的頻繁項(xiàng)目集。以下是Apriori算法產(chǎn)生頻繁集部分算法的描述。
其中Candidate-gen()函數(shù)被用于生成除第一趟之外的每一趟掃描的候選項(xiàng)目集,主要包括合并和剪枝兩步,使用的主要依據(jù)是向下封閉原理,頻繁項(xiàng)集的任一子集也一定是頻繁的,其算法描述這里不再贅述。
學(xué)生登錄不同的網(wǎng)絡(luò)課程網(wǎng)站時(shí)會(huì)留下“痕跡”,采集這些“痕跡”,利用關(guān)聯(lián)規(guī)則挖掘算法進(jìn)行數(shù)據(jù)分析,找到學(xué)生訪問的頻繁網(wǎng)絡(luò)課程集,借此對(duì)學(xué)生進(jìn)行課程推薦。
這里所使用的網(wǎng)絡(luò)課程平臺(tái)是基于網(wǎng)站群技術(shù)建立的。基于此平臺(tái)建設(shè)的網(wǎng)絡(luò)課程獨(dú)立成站并且可以使用不同的服務(wù)器。學(xué)生登錄某一網(wǎng)絡(luò)課程時(shí)就會(huì)在該網(wǎng)絡(luò)課程的服務(wù)器上留下“痕跡”,即產(chǎn)生服務(wù)器日志文件。由于這些“痕跡”分布在不同的服務(wù)器上,數(shù)據(jù)的搜集和清洗都比較困難。針對(duì)學(xué)生需要憑借個(gè)人賬號(hào)登錄學(xué)習(xí)網(wǎng)絡(luò)課程的特點(diǎn),每當(dāng)學(xué)生進(jìn)入某一課程時(shí),平臺(tái)系統(tǒng)會(huì)自動(dòng)寫入一條“登入”記錄到數(shù)據(jù)庫中,對(duì)這些登入數(shù)據(jù)信息進(jìn)行挖掘,就大大簡(jiǎn)化了數(shù)據(jù)預(yù)處理工作。如果需要,也可以按照學(xué)生年級(jí)、專業(yè)對(duì)學(xué)生登入信息進(jìn)行分類存儲(chǔ)。
這里只給出“登入”信息表的片段,借以描述數(shù)據(jù)預(yù)處理的過程。流程如下:
1)數(shù)據(jù)獲取 系統(tǒng)自動(dòng)寫入的登入信息存儲(chǔ)在數(shù)據(jù)庫中相應(yīng)的課程登入信息表中,如表1所示。
2)事務(wù)識(shí)別 學(xué)生登錄課程進(jìn)行學(xué)習(xí),學(xué)習(xí)時(shí)間一般較長(zhǎng),因此在劃分用戶事務(wù)集時(shí),用簡(jiǎn)單的時(shí)間段劃分,這里以日期為依據(jù)劃分用戶事務(wù)。事務(wù)識(shí)別算法如表2所示。
表1 課程登入信息表
表2 課程訪問事務(wù)識(shí)別算法
表1中的舉例信息經(jīng)過事務(wù)識(shí)別,可得到事務(wù)集合,如表3所示。
表3 課程事務(wù)表
使用Apriori算法進(jìn)行關(guān)聯(lián)規(guī)則挖掘,以課程事務(wù)表中的事務(wù)集合為原數(shù)據(jù),進(jìn)行頻繁課程集的挖掘。如果 minsup=40%,minconf=70%,那么從上述事務(wù)表片段中可以得到頻繁集{501805},得出規(guī)則501805→501815。根據(jù)課程號(hào)找到相應(yīng)課程名稱,即501805對(duì)應(yīng)課程《數(shù)據(jù)結(jié)構(gòu)》,501815對(duì)應(yīng)課程《C程序設(shè)計(jì)》,規(guī)則可以解釋為關(guān)注《數(shù)據(jù)結(jié)構(gòu)》的同學(xué)的大多數(shù)(70%以上)還關(guān)注了《C程序設(shè)計(jì)》。因此就可以根據(jù)規(guī)則對(duì)學(xué)生提出網(wǎng)絡(luò)課程學(xué)習(xí)的建議,如果學(xué)生學(xué)習(xí)了《數(shù)據(jù)結(jié)構(gòu)》,便可推薦其再去學(xué)習(xí)或復(fù)習(xí)《C程序設(shè)計(jì)》課程。
網(wǎng)絡(luò)課程平臺(tái)支持網(wǎng)絡(luò)課程的教學(xué),網(wǎng)絡(luò)課程信息量巨大,運(yùn)用關(guān)聯(lián)規(guī)則挖掘算法進(jìn)行數(shù)據(jù)挖掘,能夠得到網(wǎng)絡(luò)課程很多有價(jià)值的信息,本文挖掘出的網(wǎng)絡(luò)課程間的規(guī)則不僅可以向?qū)W生提供課程推薦,而且對(duì)教師安排網(wǎng)絡(luò)課程鏈接、調(diào)整教學(xué)內(nèi)容等也同樣具有指導(dǎo)意義。
[1] 趙軼,周艷山.Apriori算法在高校課程設(shè)置中的應(yīng)用研究[J].林區(qū)教學(xué),2008(6):121-122.
[2] 朱艷麗,高國(guó)紅.Apriori算法研究及其在學(xué)生成績(jī)分析中的應(yīng)用[J].福建電腦,2010(1):147.
[3] 李雪嬋.關(guān)聯(lián)規(guī)則在課程相關(guān)性中研究與應(yīng)用.計(jì)算機(jī)與數(shù)字工程[J],2006,34(9):173-176.
[4] 元昌安.數(shù)據(jù)挖掘原理與SPSS Clementione應(yīng)用[M].北京:電子工業(yè)出版社,2009.
Application of Association Rule in Network Course Recommendation
GAO Zhen-xia1,2,WU Jun-hua1,WANG Xue-jun1,3
(1.School of Electronic and Information Engineering,Nanjing University of Technology,Nanjing 210009,Jiangsu,China;2.School of Media and Communications,Liaocheng University,Liaocheng 252000,Shandong,China;3.Chengde Petroleum College,Chengde 067000,Hebei,China)
The paper mainly uses the network course recommendation as an example to explore the realization and application of association rule in network course platform.It applies the Apriori algorithm to the association analysis of network courses,providing a scientific basis for learning and teaching.
association rule;Apriori algorithm;network course recommendation
TP393-45
A
1008-9446(2011)04-0052-03
2011-10-25
郜振霞(1980-),女,山東聊城人,南京工業(yè)大學(xué)在讀碩士研究生,主要從事計(jì)算機(jī)應(yīng)用、數(shù)據(jù)挖掘的研究。