梅曉晴
(天津市學位與研究生教育發(fā)展中心,天津 300381)
機器學習是人工智能及模式識別領域的共同研究熱點,其理論和方法已被廣泛應用于解決工程應用和科學領域的復雜問題。分類算法是機器學習中的重要部分,其基本思想是首先知道大量的樣本對象,并且知道這些樣本對象的“特征”和所屬類別,把這些數據告訴計算機,讓計算機總結分類的原則,形成一個分類模型,再把新的待分類或者未知分類的樣本交給它,讓它完成分類過程。也就是說,先用一部分有種種特征的數據和每種數據歸屬的標識來訓練分類模型,當訓練完畢后,再讓計算機用這個分類模型來區(qū)分新的沒有類別標識的樣本,從而完成該樣本的分類。
貝葉斯分類是統(tǒng)計學中一種利用概率知識進行分類的方法,它可以預測一個未知類別的樣本屬于各個類別的可能性,并且選擇其中可能性最大的一個類別作為該樣本的最終類別。樸素貝葉斯算法(NBC)是簡單常用的統(tǒng)計學分類算法[1],樸素貝葉斯分類器是在機器學習中應用最廣泛的一種分類器,其分類算法包括兩個過程:訓練過程和測試過程[2]。在人們生產生活中,使用樸素貝葉斯分類器的思維解決問題比直接套用公式的機會多。本文通過樸素貝葉斯分類方法,探索利用已有經驗數據來判斷考生行為的規(guī)律,從而有針對的加強監(jiān)考,提高考試管理效率。
貝葉斯分類的理論基礎是貝葉斯定理,貝葉斯定理將事件的先驗概率與后驗概率聯系起來,它在后驗推理、參數估計、模型檢測等諸多統(tǒng)計機器學習領域方面有廣泛而深遠的應用[3]。
設 D1、D2、……、Dn為樣本空間S的一個劃分,如果以 P ( Di)表示 Di發(fā)生的概率,且 P ( Di)>0(i=1,2,…,n)。對于任何一個事件x,P( x)>0,則有:
在一個樣本空間里有很多事件發(fā)生, Di就是指不同的事件劃分,并且用 Di可以把整個空間劃分完畢,在每個 Di事件發(fā)生的同時都記錄事件x的發(fā)生,并記錄 Di事件發(fā)生下x發(fā)生的概率。等式右側的分母部分就是 Di發(fā)生的概率和 Di發(fā)生時x發(fā)生的概率的加和,所以分母這一項其實就是在整個樣本空間里x發(fā)生的概率。P (Djx)這一項是指x發(fā)生的情況下, Dj發(fā)生的概率。因此,左側和右側分母項相乘得到的是在全樣本空間里,在x發(fā)生的情況下又發(fā)生 Dj的情況的概率。右側分子部分的含義是 Dj發(fā)生的概率乘以 Dj發(fā)生的情況下又發(fā)生x的概率。
所以最后等式兩邊就化簡為:
在全樣本空間下,發(fā)生x的概率乘以在發(fā)生x的情況下發(fā)生 Dj的概率,等于發(fā)生 Dj的概率乘以在發(fā)生 Dj的情況下發(fā)生x的概率。
貝葉斯分類通?;谶@樣一個假定:給定目標值時屬性之間相互條件獨立,基于這種“樸素”的假定,貝葉斯公式一般簡寫為:
上式也成為樸素貝葉斯公式,P( A)叫做A事件的先驗概率,就是一般情況下,認為A發(fā)生的概率。P ( BA)叫做似然度,是A假設條件成立的情況下發(fā)生B的概率。P( AB)叫做后驗概率,在B發(fā)生的情況下發(fā)生A的概率,也就是要計算的概率。P ( B)叫做標準化常量,和A的先驗概率定義類似,就是一般情況下,B的發(fā)生概率。
樸素貝葉斯分類器是一個簡單有效而且在實際使用中很成功的一個分類器[4]。設有變量集 U ={X1, X2,…,Xn,C},其中, X1, X2,…,Xn是實例的屬性變量,C是m個值的類變量。假設所有的屬性都條件獨立于類變量C,即每一個屬性變量都以類變量作為唯一的節(jié)點,而屬性變量之間是完全獨立的,就會得到樸素貝葉斯模型。
使用樸素貝葉斯分類器進行分類的方法是:通過概率計算,從待分類的實例的屬性值 x1, x2,… ,xn中求出最可能的分類目標值。即計算各類 cj∈C對于這組屬性的條件概率P (cjx1,…, xn),其中j=1,2,…,m,并輸出條件概率最大的類標簽作為目標值。應用貝葉斯定理和條件獨立性假設[5]:
其中α是正規(guī)化常數。以后驗概率作為分類指示,即輸出具有最大后驗概率 f( x)。
表1 訓練樣本集
圖1
其中 f( x)表示樸素貝葉斯網絡輸出的目標值,常數α可以省略。通常式(5)也作為樸素貝葉斯分類器的定義[6]。
關于 P ( cj)和P ( xicj)的求解,有以下三種常見的模型高斯模型、多項式模型、伯努利模型,當特征是連續(xù)變量的時候,運用多項式模型就會導致很多P ( xicj)=0,此時即使做平滑,所得到的條件概率也難以描述真實情況。所以處理連續(xù)的特征變量,應該采用高斯模型,即:
其中μcj表示類別為c的樣本中,第j維特征的均值,σcj表示類別為c的樣本中,第j維特征的方差[6]。
數據樣本用一個7維特征向量X=(x1,x2,……x7)表示,分別描述性別、年齡、考生類別、學科類別、參加考試次數、參加工作情況,有無違紀行為記錄等對考生行為產生的影響。
性別(x)=(x=1男;x=2女);
年齡(n)=(n=1,年齡<18;n=2,18≤年齡<22;n=3,年齡≥22);
考生類別(l)=(l=1成人在籍本科生;l=2自考在籍本科生);
學科類別(k)=(x=1管理學,經濟學;x=2工學,理學;x=3醫(yī)學,教育學);
參加考試次數(s)=(s=0;s>=1);
參加工作情況(g)=(g=1已參加;g=0未參加);
有無違紀行為記錄(w)=(w=1有記錄;w=0無記錄);
行為判斷結果(p)=(p=0正常;p=1疑似異常)。
以2013-2017年間5次考試的550名考生作為訓練樣本數據,經過加工整理,提取出相關的數據,再對數據進行預處理,除去數據中的冗余信息。數據預處理包括處理缺失值、刪除無效數據等。最后生成包含550個樣本的訓練樣本集,如表1所示。
由于采用樸素貝葉斯分類器進行分類是一個龐大且復雜的計算過程,所以這里只根據已有條件進行簡單預測。通過表1的數據,預測25歲男性成人在籍本科生,專業(yè)為管理學,參加過考試且已經工作,沒有違紀記錄的評估結果,即未知樣本。
在Python的Scikit-learn庫中,雖然對樸素貝葉斯分類算法做了實現,但是對于建模針對性的問題,分別做了幾種貝葉斯分類的變種模型封裝。分別是高斯樸素貝葉斯;多項式樸素貝葉斯;伯努利樸素貝葉斯。這三種訓練的方式非常相近,引用時所寫的代碼也非常簡短。其中,高斯樸素貝葉斯是利用高斯概率密度公式來進行分類擬合的。多項式樸素貝葉斯多用于高緯度向量分類,最常用的場景是文章分類。伯努利樸素貝葉斯一般是針對布爾類型特征值的向量做分類的過程。
本例使用高斯樸素貝葉斯模型,代碼如圖1:
從計算結果可以看出,樸素貝葉斯分類器預測樣本的評估結果為“正常”,這與實際結果相同。通過分析大量評估結果數據,會發(fā)現其中起決定因素的主要是考生年齡、學科類別及工作情況,通過這種潛在聯系的應用,可以為提前預測以及考試過程中判斷考生行為提供合理科學的技術支持。
樸素貝葉斯分類技術在考試管理中的應用,克服了僅憑個人經驗主觀判斷的缺點,它不再是一個簡單的直接套用的公式,而是一種機器學習的思想,對它的靈活運用可以減輕監(jiān)考人員壓力,提高考試管理效率,相信也會在將來有更廣泛的應用。
[1]鄭煒,沈文,張英鵬.基于改進樸素貝葉斯算法的垃圾郵件過濾器的研究[J].西北工業(yè)大學學報,2010,28(4):622-627.
[2]張增偉,吳萍.基于樸素貝葉斯算法的改進遺傳算法分類研究[J].計算機工程與設計,2012,33(2):750-753.
[3]Barber D.Bayesian Reasoning and Machine Learning[M].Cambridge:Cambridge University Press,2012.
[4]RAMONI M,SEBASTIAMI P.Robust bayes classifiers[J].Artificial Intelligence,2001,125(1/2):209-226.
[5]李曉毅,徐兆棣,孫笑微.貝葉斯網絡的參數學習研[J].沈陽農業(yè)大學學報,2007,38(1):125-128.
[6]Gelman A,Carlin J,Stern H,et al. Bayesian Data–Analysis [M]Boca Raton: CRC Press,2013.
[7]王雙成,杜瑞杰,劉穎.連續(xù)屬性完全貝葉斯分類器的學習與優(yōu)化[J].計算機學報,2012,35(10):2129-2138.