貝葉斯網絡在學生模型建模中的應用分析
節點的狀態表示學生對該知識項的掌握程度,例如可以用4個等級來表示學生對知識項的掌握程度,A:表示學生對特定知識項已完全熟練掌握; B:表示學生對知識項基本掌握,但是仍有一些問題;C:表示學生處在初級階段,有許多問題;D:表示學生對該知識項完全不了解。每一等級對應一個條件概率值(值的加權和為1),該值是基于對用戶的觀測值得到的用戶對知識項的掌握程度。在系統設計過程中,為了簡化,設置節點的狀態為True(掌握)、False(未掌握)。
2.2.2 條件概率估計
經過上面的分析,接下來將討論如何獲得知識項之間的影響程度的條件概率表。
在貝葉斯網絡構建中所有節點都要給定條件概率,對于沒有父節點的節點,需要給定其先驗概率,條件概率可以通過樣本學習和通過專家估計獲得[4]。
(1)設計分析
在由數據類型(A)、關系運算符(B)、變量(C)、While循環(D)教學資源構成的網絡拓撲結構中,每個節點有兩個離散的狀態:True和False,如果需要,節點也可以包括更多的狀態。設計網絡時,必須指定每個節點的條件概率表,需要獲得P(A)、P(C)、P(B)、P(D/C)、P(D/B)。
(2)樣本收集
經驗數據來自于某校某班學生學習“基本程序控制結構”這一章節后,經過測試,對其測試結果進行分析并獲得學習知識項之間的相互影響程度,這樣就確定了利用貝葉斯網絡所建學生模型中網絡拓撲知識項之間的條件概率函數。
將學生的得分情況分為100~90、90~80、80~70、70~60、60以下5個分數段。認為如果學生答對涉及到該知識項的題目,那么他對該知識項的知識狀態為True(掌握);反之,如果答錯,則認為他對該知識項的知識狀態為False(未掌握)。
(3)學習條件概率表[5-6]
算法的設計思想是:首先按照網絡構建中節點的拓撲順序,根據每個分數段隨機抽取n份考試的試卷用于對網絡中各節點的狀態進行賦值,當所有節點都被賦值一遍后就得到該網絡中的一次采樣樣本,依此重復,得到10 n個樣本,即一個樣本序列;然后對該樣本序列按相關列進行聯合統計可得到網絡近似推理結果。由于隨機采樣時考慮了節點的先驗信息,所以當樣本數n取很大時,這些采樣樣本的邊緣統計量和條件統計量就可以趨近于事件的真實發生概率和條件發生概率。
對所有節點都采樣了m遍,得到m組樣本,即樣本序列S,然后對樣本序列S按列進行單獨統計,得到節點的全概率;對多列進行聯合統計,得到節點間的聯合概率和條件概率。
所謂聯合統計,就是把證據節點和推理目標節點的采樣樣本聯合起來進行統計,就得到了給定證據后目標節點發生的條件概率和聯合概率。對網絡中的所有節點按拓撲順序采樣m次,得到樣本序列S,對樣本序列進行適當的統計,可以得到網絡的近似推理結果。
節點Ni(i=1,…,n)發生的全概率就是單獨對該列進行統計的結果。例如,要知道學生對于“變量”(C)已經True的情況的概率P(C=True),只要把對是T的那些樣本挑選出來,然后統計一下T的個數,除以總的采樣次數m,就可以近似為C這一知識項學生已經True(掌握)的概率,即:

節點Ni(i=1,…,n)發生的條件概率就是把那些條件節點和該節點所在的相關列聯合起來進行統計。例如,計算節點“D”在節點“B”已經True(掌握)情況下發生T狀態(D也為True)的概率,也即求P(D=True|B=True),可以這樣進行:首先,把在“B”中是T的那些樣本挑選出來,形成新的樣本序列So,其組數為no;其次,把樣本序列So中在“D”中是T的那些樣本挑選出來,然后統計T的個數,除以no,就可以近似為“D”在“B”取狀態為True的情況下發生False狀態的概率:

類似地,幾個節點的聯合概率則是把同時滿足這些節點狀態的樣本挑出來,得到的樣本組數除以總的樣本組數m即可。
單獨的節點狀態概率,可以使用條件概率規則,并沿著邊進行傳播。
網絡設計完成后,條件概率表進行了指定,網絡進行了傳播。
通過上面的分析,從定性方面完成了學生所學知識項的邏輯關系,并且通過經驗數據獲得了關于這些知識項之間存在影響程度的定量數據,最終構建成的個性化教學中關于《Delphi程序設計教程》課程中章節知識項的學生模型的框架如圖1所示。
評論