本發(fā)明涉及關(guān)聯(lián)規(guī)則挖掘算法、知識關(guān)聯(lián)分析研究
技術(shù)領(lǐng)域:
,具體是一種知識點關(guān)聯(lián)的挖掘方法。
背景技術(shù):
:隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)在線教育也蓬勃興起,網(wǎng)絡(luò)課程在方便學(xué)生學(xué)習(xí)知識的同時,也帶來了大量學(xué)生的學(xué)習(xí)行為數(shù)據(jù)。通過對這些學(xué)生的學(xué)習(xí)行為數(shù)據(jù)進行挖掘可發(fā)現(xiàn)學(xué)生的學(xué)習(xí)規(guī)律,找網(wǎng)絡(luò)課程知識點間的關(guān)聯(lián)信息,為學(xué)生提供更好地導(dǎo)航與推薦服務(wù)?,F(xiàn)有對知識點關(guān)聯(lián)的研究中,大多主要關(guān)注對知識點之間是否存在關(guān)聯(lián),而并未深入研究這種關(guān)聯(lián)并量化這種關(guān)聯(lián),以區(qū)分關(guān)聯(lián)的強弱。fp-tree(frequentpattern-tree)是一種用于將事務(wù)數(shù)據(jù)庫頻繁模式壓縮存儲的數(shù)據(jù)結(jié)構(gòu),對事務(wù)數(shù)據(jù)庫建立fp-tree后,通過fp-growth算法可獲取事務(wù)數(shù)據(jù)庫所有頻繁模式。fp-tree由一棵以根節(jié)點為“null”標(biāo)記的項前綴子樹以及一個頻繁項頭表構(gòu)成。項前綴子樹中的每個節(jié)點標(biāo)記一個項以及根節(jié)點到該節(jié)點的路徑對應(yīng)項集的支持度,項頭表記錄了頻繁項以及其對應(yīng)支持度,并將項前綴子樹中不同路徑上的相同項用指針鏈接起來,將每個頻繁項的鏈頭指針保存在項頭表中。但fp-growth算法僅能處理事務(wù)數(shù)據(jù)庫的靜態(tài)數(shù)據(jù),當(dāng)事務(wù)數(shù)據(jù)庫新增數(shù)據(jù)時,fp-tree則需要重新創(chuàng)建。另外,fp-growth算法采用單一支持度策略,無法對支持度較低的項進行深入挖掘。技術(shù)實現(xiàn)要素:本發(fā)明的目的是提供一種針對網(wǎng)絡(luò)課程知識點關(guān)聯(lián)的挖掘方法,該方法可通過學(xué)生學(xué)習(xí)知識點的記錄數(shù)據(jù)挖掘知識點之間存在的關(guān)聯(lián),并通過計算知識點關(guān)聯(lián)度量化知識點間的關(guān)聯(lián)。實現(xiàn)本發(fā)明目的的具體技術(shù)方案是:一種知識點關(guān)聯(lián)的挖掘方法,該方法包括以下具體步驟:步驟1:遍歷事務(wù)數(shù)據(jù)庫,計算每一個項的計數(shù)值;創(chuàng)建動態(tài)頻繁模式樹(dynamicfrequentpattern-tree,dfp-tree)的根節(jié)點,并標(biāo)記其為null;再次遍歷事務(wù)數(shù)據(jù)庫,將每條事務(wù)中的項按計數(shù)值遞減序排列后,插入到dfp-tree中;當(dāng)dfp-tree構(gòu)建完成后,事務(wù)數(shù)據(jù)庫新增了事務(wù)而發(fā)生變化時,通過對新增事務(wù)中各項統(tǒng)計排序并判斷是否需要重新構(gòu)建dfp-tree;步驟2:從dfp-tree項頭表底部開始向上遍歷,根據(jù)用戶給定的全局支持度閾值分別設(shè)定每項的最小支持度閾值,并根據(jù)dfp-tree為每項構(gòu)建條件動態(tài)頻繁模式樹(conditional-dfp-tree),根據(jù)每項的條件動態(tài)頻繁模式樹(conditional-dfp-tree)遞歸地生成該項的頻繁模式,再從所得到的頻繁模式中找到所有強關(guān)聯(lián)規(guī)則,最終得到這些強關(guān)聯(lián)規(guī)則所對應(yīng)的知識點關(guān)聯(lián);步驟3:將知識點間的強關(guān)聯(lián)規(guī)則作為知識點間的直接關(guān)聯(lián),而間接地通過第三個知識點產(chǎn)生的關(guān)聯(lián)作為知識點間接關(guān)聯(lián);分別計算知識點直接關(guān)聯(lián)度和知識點間接關(guān)聯(lián)度,并將兩種關(guān)聯(lián)度求和再歸一化后計算得到知識點關(guān)聯(lián)度。其中,步驟1中,所述通過對新增事務(wù)中各項統(tǒng)計排序并判斷是否需要重新構(gòu)建dfp-tree是:當(dāng)事務(wù)數(shù)據(jù)庫新增事務(wù)時,遍歷新增事務(wù),統(tǒng)計事務(wù)數(shù)據(jù)庫的各項的計數(shù)值并按遞減序排列后,判斷各項順序?qū)Ρ刃略鍪聞?wù)前是否發(fā)生變化,若順序改變則需重新創(chuàng)建dfp-tree,若不變則直接將新增事務(wù)插入到dfp-tree中。步驟3中,所述計算得到知識點關(guān)聯(lián)度,具體為:直接關(guān)聯(lián)度根據(jù)公式(1)計算:其中k代表知識點,d為兩個知識點的直接關(guān)聯(lián)度,sim(ka,kb)為知識點a和知識點b共現(xiàn)的次數(shù),為知識點a出現(xiàn)的次數(shù),為知識點b出現(xiàn)的次數(shù);間接關(guān)聯(lián)度需要根據(jù)conditional-dfp-tree計算兩個知識點的約減直接關(guān)聯(lián)度,再根據(jù)公式(2)計算間接關(guān)聯(lián)度:其中i為兩個知識點的間接關(guān)聯(lián)度,d'為兩個知識點約減直接關(guān)聯(lián)度;將兩種關(guān)聯(lián)度求和再做歸一化后計算得到知識點關(guān)聯(lián)度:其中c'為知識點關(guān)聯(lián)度,c為歸一化后的知識點關(guān)聯(lián)度。步驟2中,所述設(shè)定每項的最小支持度閾值的方式為:設(shè)事務(wù)數(shù)據(jù)中的項的集合i={a1,a2,...,an},mis(ai)為項ai的支持度閾值(1≤i≤n),count(ai)為項ai的實際支持度,則mis(ai)=count(ai)*r,其中r為用戶輸入的全局的支持度閾值(0<r<1)。本發(fā)明可根據(jù)學(xué)生在線學(xué)習(xí)知識點的記錄數(shù)據(jù)客觀有效地挖掘知識點間存在的關(guān)聯(lián),并量化知識點間的關(guān)聯(lián),構(gòu)建以知識點和知識點關(guān)聯(lián)為基本要素的知識點關(guān)聯(lián)圖,從而具體地展示知識體系結(jié)構(gòu),可應(yīng)用于在線課程中知識點的推薦和導(dǎo)航。附圖說明圖1為本發(fā)明中的dfp-tree示意圖;圖2為本發(fā)明中的新增數(shù)據(jù)調(diào)整后的dfp-tree示意圖;圖3為本發(fā)明中f項頻繁模式的挖掘過程示意圖;圖4為本發(fā)明中的知識點關(guān)聯(lián)類型示意圖;圖5為本發(fā)明中的間接關(guān)聯(lián)度計算流程示意圖。具體實施方式下面結(jié)合附圖及實施例對本發(fā)明進行詳細闡述,以使本發(fā)明的優(yōu)點和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對本發(fā)明的保護范圍做出更為清楚明確的界定。本發(fā)明提出了一種數(shù)據(jù)結(jié)構(gòu)動態(tài)頻繁模式樹即dfp-tree(dynamicfrequentpatterntree)可更好地適應(yīng)事務(wù)數(shù)據(jù)庫動態(tài)數(shù)據(jù)的挖掘。dfp-tree在構(gòu)建過程中并未對事務(wù)數(shù)據(jù)庫的中項進行過濾,而是將完整的事務(wù)數(shù)據(jù)庫壓縮存儲。其相關(guān)的具體實現(xiàn)方法如下所示:⑴、dfp-tree的構(gòu)建:遍歷事務(wù)數(shù)據(jù)庫,得到每一個項的支持度。創(chuàng)建dfp-tree的根節(jié)點t,并且標(biāo)記它為null。遍歷事務(wù)數(shù)據(jù)庫中的每一條事務(wù),將事務(wù)中的項,根據(jù)每項的支持度遞減序排列。調(diào)用insert_tree([p|p],t)將事務(wù)插入到dfp-tree中。在插入事務(wù)時,存在兩個指針a,b,初始時刻a指向事務(wù)中的首項,b指向dfp-tree的根節(jié)點。查找b所指向的結(jié)點是否存在與a所指的項的名字相同的子節(jié)點,若存在,則該子結(jié)點計數(shù)值增加1,b指向該子節(jié)點,a指向事務(wù)中的下一個項;若不存在,則新增一個結(jié)點作為b所指向結(jié)點的子節(jié)點,并設(shè)置該子節(jié)點的計數(shù)值為1,再使b指向新建的子節(jié)點,a指向事務(wù)中的下一個項,直到遍歷完成該事務(wù)的所有項。⑵、dfp-tree新增事務(wù)處理:遍歷新增事務(wù),得到每一項的支持度。將新增各項支持度與原各項支持度對應(yīng)相加后對各項以支持度遞減序重新排列。檢查項頭表中原有的項的下標(biāo)在排序后是否發(fā)生改變。若改變,重新構(gòu)建dfp-tree。如果未改變,重新遍歷新增事務(wù),將事務(wù)中的項根據(jù)每項的支持度遞減序排列。并根據(jù)(1)中的方法,將新增事務(wù)插入到dfp-tree中。⑶、頻繁模式挖掘:根據(jù)全局最小支持度閾值計算所有項的支持度閾值,從dfp-tree項頭表的底部開始向上遍歷每一項i,執(zhí)行下列操作:由node_link找到dfp-tree中所有含有項i的路徑。截取這些路徑以dfp-tree根節(jié)點的子節(jié)點為開始節(jié)點,項i的父節(jié)點為結(jié)束節(jié)點,并使截取后每條路徑上的節(jié)點的計數(shù)值與項i在該路徑上的計數(shù)值保持一致。根據(jù)處理后的路徑信息為該項構(gòu)建conditional-dfp-treet。若t是空集,進入下一次迭代,否則從t的項頭表的底部開始向上遍歷每一項i,執(zhí)行下列操作:(a)若i的支持度小于最小支持度閾值,進入下一次迭代;否則,記錄該模式及其支持度,并將該模式插入到fcpf-list中。(b)由node_link找到t中所有含有項i的路徑。(c)截取這些路徑以tree根節(jié)點的子節(jié)點為開始節(jié)點,項i的父節(jié)點為結(jié)束節(jié)點,并使截取后每條路徑上的節(jié)點的計數(shù)值與項i在該路徑上的計數(shù)值保持一致。(d)根據(jù)處理后的路徑信息為該項構(gòu)建conditional-dfp-treet’。(e)若t’不是空集,遞歸地從步驟(a)開始,否則進入下一次迭代。⑷、知識點關(guān)聯(lián)度的計算:首先將知識點間的強關(guān)聯(lián)規(guī)則作為知識點間的直接關(guān)聯(lián),而間接地通過第三個知識點產(chǎn)生的關(guān)聯(lián)作為知識點間接關(guān)聯(lián)。直接關(guān)聯(lián)度可根據(jù)公式(1)直接計算,間接關(guān)聯(lián)度則首先需要根據(jù)conditional-dfp-tree計算兩個知識點的約減直接關(guān)聯(lián)度,再進一步根據(jù)公式(2)計算間接關(guān)聯(lián)度。最終將兩種關(guān)聯(lián)度求和再歸一化后作為知識點關(guān)聯(lián)度。實施例給出一個示例:{(c,b,a),(d,a,b),(c,d,a),(c,f,e,a),(b,f,e),(b,a),(c,b,d)}為一個事務(wù)數(shù)據(jù)庫,需要解釋說明的一點是,以事務(wù)數(shù)據(jù)庫中的第一個事務(wù)(c,b,a)為例,其中c,b,a分別代表一個知識點,而一個事務(wù)代表某學(xué)生某次登錄在線學(xué)習(xí)平臺所學(xué)習(xí)的知識點。根據(jù)上述事務(wù)數(shù)據(jù)庫示例,構(gòu)建如附圖1所示dfp-tree,當(dāng)新增兩條事務(wù)(b,a,c,g),(c,a,d)時,則dfp-tree調(diào)整后為附圖2所示。假設(shè)用戶給定的全局最小支持度閾值r=0.4,則mis(f)=0.8/9。以f為例來說明頻繁模式挖掘的過程,如圖3(a)所示,從f的條件模式樹的項頭表底部的項e出發(fā),首先發(fā)現(xiàn)項e的計數(shù)值為2,滿足最小支持度閾值的要求,因此記錄頻繁模式ef,并截取e的所有前綴子路徑構(gòu)建ef的條件模式樹,如圖3(b)所示,ef的條件模式樹不為空,從ef的條件模式樹的項頭表底部的項c出發(fā),項c的計數(shù)值為1,滿足最小支持度閾值的要求,所以記錄頻繁模式cef,并截取c的所有前綴子路徑構(gòu)建cef的條件模式樹如圖3(c)所示,cef的條件模式樹仍不為空,項頭表中只有一個項a,支持度為1,仍然滿足最小支持度的要求,所以acef也為頻繁模式,記錄該頻繁模式后,截取a的前綴子路徑構(gòu)建acef的條件模式樹,發(fā)現(xiàn)該樹為空,則繼續(xù)進行至圖3(b)中的b項,b的計數(shù)值為1,滿足最小支持度閾值的要求,因此bef也是頻繁模式,記錄頻繁模式bef后,截取b的所有前綴子路徑構(gòu)建bef的條件模式樹,發(fā)現(xiàn)樹為空。同理,aef也為頻繁模式。繼續(xù)進行至圖3(a)中的項c,c的計數(shù)值為1,滿足最小支持度閾值的要求,因此cf為頻繁模式,記錄頻繁模式cf后,為cf構(gòu)建條件模式樹,如圖3(d)所示,樹中只有一個結(jié)點a,且滿足最小支持度閾值的要求,因此acf為頻繁模式,但acf的頻繁模式樹為空,繼續(xù)依次檢驗圖3(a)項頭表中的項b,a的計數(shù)值,發(fā)現(xiàn)項b,a所分別代表的bf,af均為頻繁模式且bf,af的條件模式樹也均為空,至此所有關(guān)于項f的頻繁模式均已發(fā)現(xiàn)并記錄。最終可獲得各項的條件模式基和頻繁條件模式如表1所示。表1各項條件模式基和頻繁條件模式支持度大于或等于最小支持度且置信度大于或等于最小置信度的關(guān)聯(lián)規(guī)則被稱為強關(guān)聯(lián)規(guī)則。在本實施例中,最小置信度的取值與全局最小支持度閾值相同。由此,最終可獲得每個知識點的關(guān)聯(lián)知識點集,并獲得知識點間的關(guān)聯(lián)。下面以圖2中的dfp-tree為例詳細介紹公式(2)中兩個知識點約減直接關(guān)聯(lián)的計算方法,當(dāng)構(gòu)建f的條件模式樹時,會形成如圖3(a)的樹結(jié)構(gòu),設(shè)全局最小支持度閾值為0.4,根據(jù)頻繁模式挖掘方法得到知識點f到e和知識點e到a的直接關(guān)聯(lián),因此在知識點f到a的間接關(guān)聯(lián)中,存在通過知識點e形成的間接關(guān)聯(lián),由公式(2)可知,在計算該間接關(guān)聯(lián)時需要先計算知識點f到e的約減直接關(guān)聯(lián)。根據(jù)圖3(a)中描繪的樹結(jié)構(gòu),在計算d'kfke時會將根結(jié)點的左子樹排除在外,因為雖然左子樹中存在e結(jié)點,但也同時存在a結(jié)點,所以左子樹參與了知識點f到a的直接關(guān)聯(lián)度的計算,在計算知識點f到a的間接關(guān)聯(lián)度時則將該部分排除,以免重復(fù)計算。以f項為例,首先根據(jù)其頻繁條件模式可知f項關(guān)聯(lián)知識點的集合為{a,b,c,e},然后獲得其中每個知識點的關(guān)聯(lián)知識點集,知識點a,b,c,e的關(guān)聯(lián)知識點集分別為,{a},{a,b},{a,b,c}。根據(jù)上述關(guān)聯(lián)度計算的算法,可分別計算其與各知識點之間的關(guān)聯(lián)度。如圖5所示,在知識點f到其關(guān)聯(lián)知識點的間接關(guān)聯(lián)度計算過程中,知識點f到a存在3個中介知識點,則需分別計算3個中介知識點對應(yīng)的間接關(guān)聯(lián)度,并求和作為知識點f到a的間接關(guān)聯(lián)度。以此類推,可分別計算出知識點f到b,c,e的間接關(guān)聯(lián)度。表2知識點f到其關(guān)聯(lián)知識點的關(guān)聯(lián)度計算結(jié)果關(guān)聯(lián)知識點直接關(guān)聯(lián)度間接關(guān)聯(lián)度關(guān)聯(lián)度調(diào)整后的關(guān)聯(lián)度a1/27/1213/121b1/21/2112/13c1/21/43/49/13e10112/13表2所示為表1中知識點f到其關(guān)聯(lián)知識點的直接關(guān)聯(lián)度、間接關(guān)聯(lián)度和關(guān)聯(lián)度的計算結(jié)果。本發(fā)明提出了一種針對網(wǎng)絡(luò)課程中知識點關(guān)聯(lián)的挖掘方法,首先,通過改進的頻繁模式樹dfp-tree壓縮存儲學(xué)生在線學(xué)習(xí)知識點的記錄數(shù)據(jù),并對dfp-tree進行挖掘,確立知識點間所存在的關(guān)聯(lián),再進一步通過dfp-tree來量化這種知識點關(guān)聯(lián),該方法可定量地區(qū)分知識點間關(guān)聯(lián)的強弱,有助于改進在線教育系統(tǒng)中知識點的推薦與導(dǎo)航功能。當(dāng)前第1頁12