張留決



摘? 要: 本文針對數據挖掘算法中的分類問題,針對連續性數據,提出了基于密度函數的高斯樸素貝葉斯集成算法。首先假設各特征值符合正態分布,計算出各特征值的均值和方差,也就是正態分布的密度函數。然后通過定義的密度函數,計算出其概率密度函數,利用高斯樸素貝葉斯分類器得到預測結果。在對某公司實際分類問題中應用該算法,結果表明該算法的預測能力有很大程度的提升。
關鍵詞: 密度函數; 高斯樸素貝葉斯; 集成算法; 預測能力
中圖分類號:TP391? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)03-20-03
Research on Gaussian Naive Bayes ensemble algorithm based on density function
Zhang Liujue
(Fuzhou University, Fuzhou, Fujian 35000, China)
Abstract: Aiming at the classification problem in data mining algorithms, this paper proposes a Gaussian Naive Bayes ensemble algorithm based on density function for continuous data. First, assuming that each eigenvalues conforms to a normal distribution, calculate the mean and variance of each eigenvalues, which is the density function of the normal distribution. Then calculate the probability density function through the defined density function, and use the Gaussian Naive Bayes classifier to get the prediction result. The algorithm is applied to an actual classification problem of a company, and the result show that the predictive ability of the algorithm has been greatly improved.
Key words: density function; Gaussian Naive Bayes; ensemble algorithm; predictive ability
0 引言
近年來,隨著數據科學的不斷進步,樸素貝葉斯算法(Native Bayes,NB)被工業企業、互聯網行業、證券分析領域、電子信息產業等廣泛應用。樸素貝葉斯算法在數據挖掘領域得到廣泛應用,此算法屬于監督學習,主要用于解決算法中的分類問題。由于該算法在使用時先要假設變量(特征)值之間是相互獨立的,這在一定程度上影響了該算法運用的隨機性。
本文針對多個變量都是連續的問題,利用密度函數,計算出各特征的均值和方差,也就是正態分布的密度函數,然后計算出概率密度函數,融合代入高斯樸素貝葉斯分類器實現算法,實現了較好的預測效果。
1 基于密度函數的高斯樸素貝葉斯集成
1.1 貝葉斯算法的理論基礎
1.1.1 條件概率
已知事件B發生的條件下,事件A發生的概率稱為事件A關于事件B的條件概率,記為[P(A|B)]。對于任意事件A和B,若[P(B)≠0],則“在事件B發生的條件下事件A發生的條件概率”記為[P(A|B)],定義為:
[PA|B=P(AB)P(B)] ⑴
1.1.2 全概率公式
若事件組(A1,A2,…,An)滿足以下關系。
⑴ [Ai(i=1,2,…,n)]兩兩互斥,且[PAi>0]。
⑵ [i=1nAi=Ω,Ω]為樣本空間。
則稱事件組(A1,A2,…,An)是樣本空間[Ω]的一個劃分[1]。
全概率公式:設(A1,A2,…,An)是樣本空間[Ω]的一個劃分,B為任一事件,則有:
[P(B)=i=1nPAiP(B|Ai)]? ⑵
1.1.3 貝葉斯公式
設(A1,A2,…,An)是樣本空間[Ω]的一個劃分,B為任一事件,則有:
[PAi|B=P(AiB)P(B)=P(Ai)P(B|Ai)j=1nPAjP(B|Aj)] ⑶
式⑶中的[Ai]常被視為導致實驗結果B發生的“原因”,[P(Ai)=(i=1,2,…,n)]表示各種原因的可能性大小,故稱先驗概率[2];[PAi|B (i=1,2,…,n)]則反映當實驗產生了結果B之后再對各種原因概率的新認識,故稱后驗概率[3]。
1.2 樸素貝葉斯分類
定義貝葉斯分類準則如下:
如果[p(c1|x,y)>p(c2|x,y)],那么屬于類別[c1];如果[p(c1|x,y)
樸素貝葉斯分類器實現過程相對比較簡單,這里給出離散型數據集的樸素貝葉斯分類器的實現原理。對于樣本量為[m]、維度為[d]、類別數目為[c]的訓練集[D={(xi,yi)}],其中[yi∈{c1,c2,…,cc},xi=(xi1,xi2,…,xid)](i=1,2,…,m)。給定一個待測樣本x[=(x1,x2,…,xd)],判斷其類別標簽[xlabel∈{c1,c2,…,cc}]。
⑴ 計算每個類別的概率
[P(Y=cj),j=1,2,…,c] ⑷
⑵ 計算每個類別下每個特征的條件概率
[P(X=xi|Y=cj)] [⑸]
⑶ 計算
[argmaxP(Y=cj)i=1dP(X=xi|Y=cj)] ⑹
⑷ 計算值最大的類別[cj]值就是待測樣本的類別標簽。
1.3 密度函數集成
針對連續性變量,在實際應用上大體有兩種方法可以處理,一是對數據進行離散化處理,以區間的形式進行劃分;二是利用密度函數,計算出各特征值的均值和方差,也就是正態分布的密度函數。其具體算法如下:
⑴ 計算出各特征值的均值。
[X=x1+x2+…+xnn=1ni=1nxi] ⑺
⑵ 計算出各特征值的方差。
[δ2=(x1-X)2+(x2-X)2+(x3-X)2+…+(xn-X)2n] ⑻
⑶ 得到概率密度函數。
[fx=12πσ2e(-(x-μ)22σ2)] ⑼
1.4 高斯樸素貝葉斯集成密度函數算法
為了在采用樸素貝葉斯分類算法提升預測模型精度的同時,進一步提高模型泛化能力,本文融入了密度函數和高斯樸素貝葉斯的思想,提出了基于密度函數的高斯樸素貝葉斯集成算法,具體流程如圖1所示。
算法具體步驟如下。
⑴ 根據具體應用場景提取特征屬性,并針對每個特征值進行一定程度的劃分,然后由人工對一部分待分類項進行詳細分類,最后形成訓練樣本集合。
⑵ 利用密度函數與高斯樸素貝葉斯算法集成,計算每個類別在訓練樣本中的出現概率及每個特征屬性劃分對每個類別的條件概率估計,并記錄結果。這一階段由Python程序完成。
⑶ 使用分類器對待分類項進行分類,其輸入是分類器和待分類項,輸出是待分類項與類別的映射關系,這一階段主要也是由Python程序完成[4]。
2 實驗結果與分析
本文數據集樣本量采集于某制漿造紙企業生產現場的數據,該數據集包括:反應溫度、反應壓力、漿濃度、氧化白液用量、O2用量、NaOH用量、漿粘度、氣體壓力、水用量、電用量等共32個特征。對數據進行分類后,所得預測結果精度對比如圖2所示。
由此結果可知,通過對連續性變量數據利用密度函數模型計算,并經高斯樸素貝葉斯分類器集成后,整體的預測能力得到了提升。
3 結束語
本文通過Python語言中sklearn模塊中的高斯樸素貝葉斯(Gaussian Naive Bayes)集成密度函數實現算法。除此之外,還有多項式樸素貝葉斯(Multinomial Naive Bayes)、伯努利樸素貝葉斯(Bernoulli Naive Bayes)算法[5]。不管采用哪種算法,其運行結果都會有一定的差異,我們要根據實際情況來對算法予以改進,并使預測結果更符合生產經營的需要。
參考文獻(References):
[1] 周志華.機器學習[M].清華大學出版社,2015.
[2] 范明,范宏建.數據挖掘導論[M].人民郵電出版社,2006.
[3] 于祥雨,李旭靜等.人工智能算法與實踐論[M].清華大學出版社,2020.
[4] 鄭秋生,夏敏捷.Python項目案例開發從入門到實踐[M].清華大學出版社,2019.
[5] 蔡天新.數學與人類文明[M].浙江大學出版社,2008.