李楚進,付澤正
(華中科技大學 數學與統計學院,武漢 430074)
對樸素貝葉斯分類器的改進
李楚進,付澤正
(華中科技大學 數學與統計學院,武漢 430074)
分類是十分基礎且很關鍵的數據分析技術,而基于貝葉斯理論的樸素貝葉斯分類技術是當前數據分析領域的一個研究熱點。文章針對條件獨立性假設提出了基于主成分分析的改進方法,以期能夠充分體現樸素貝葉斯分類器在分類中的優勢,實現改進分類效果的目的。
數據分析;樸素貝葉斯分類器;條件獨立性;主成分分析
隨著信息時代生活中數據量的爆炸式增長,大數據已經融入我們生活的方方面面。在大數據環境下,對數據分析與處理要求的提升在理論和實際應用中正引起越來越多學者和專業人士的關注。不僅要關注數據的收集、整理,而且要有效地從大數據中學習知識、提升能力,并將其轉化為現代社會可以利用的高效生產力。
在數據分析中,分類起著既基礎又十分關鍵的作用。利用已知訓練樣本集生成需要的模型或函數,在所給類別已知的情況下,通過所獲得的模型或函數將未知的待分類樣本集通過判斷分類給某個類別。比如,在網絡技術中使用分類算法來判斷一個帳號是否為非真實帳號等。而目前構造分類器的方法眾多,常見的有貝葉斯網絡、決策樹、人工神經網絡、支持向量機、遺傳算法等。其中,基于貝葉斯理論的樸素貝葉斯分類模型由于計算效率高、精確度高,具有深刻的數學統計理論基礎,而成為眾多方法中十分流行的方法之一。
樸素貝葉斯分類器其分類性能在分類經典算法中屬于較為高效的算法。然而其條件獨立性假設在很多情形下并不成立,這使得實際分類效果受到很大的影響,考慮借助其他算法改進其性能效率的討論就顯得很有意義。本文針對獨立性假設前提提出了基于主成分分析的改進方法,以期能夠充分利用樸素貝葉斯分類器在分類中的優勢,將主成分分析和樸素貝葉斯模型結合,達到改進分類效果的目的。
1.1 樸素貝葉斯分類模型(NBC)
樸素貝葉斯分類算法的分類思路是:對于一個未知的樣本,它在某個類別出現的前提下,出現的概率最大。則該樣本在概率意義下可以認為屬于條件概率最大的樣本。其定義為:
(1)設x={a1,a2…am}為一個測試樣本,a為x的屬性變量。
(2)類別集合C={y1,y2…yn}。
(3)計算P(y1|x),P(y2|x)…P(yn|x)。
(4)如果 P(yk|x)=max{P(y1|x),P(y2|x)…P(yn|x)}則x?yk。
其中第(3)步條件概率的計算方法如下:
①處理訓練樣本集,對已知類別的樣本集進行統計分析。各個類別的屬性變量的條件概率值的獲取可以通過訓練集統計處理得到。即:

②如果每個屬性都是條件獨立的,則依據貝葉斯定理有:

通常這里假設各特征屬性是條件獨立的,從而有:

1.2 條件獨立性假設
樸素貝葉斯分類模型的條件獨立性假設使其在實際分類應用時受到較大限制,研究者們通常致力于通過改進算法,減弱這種獨立性假設帶來的影響。然而,分類模型的復雜化并不一定帶來更好的結果。研究表明,如果模型過于復雜,容易造成過分擬合的情形。其次,完全無限制的貝葉斯分類模型會帶來時間復雜度和空間復雜度的提高。因此,對樸素貝葉斯分類模型的改進研究,大都是考慮具有較寬松條件的貝葉斯網絡分類器的構建。常見有以下若干處理技術:屬性分組技術、屬性刪除技術、局部樸素貝葉斯分類器、概率調整技術、建立依賴關系技術等。
1.3 主成分分析
主成分分析通過降維以達到分析處理的目的,其主要原理是從數據集中提取主成分因子,每一個因子都要與之前的主成分正交,所有的主成分加一起可以解釋所有數據的變異性,即代表了數據的全部信息。通常在降維時,前面的主成分可以解釋大部分的變異信息,從而可以選取能解釋大部分變異信息的幾個靠前的主成分因子。為了降低數據的維度,可以取前q個主成分而忽略剩余的p-q個主成分。選擇q的常用方法有如下幾種:
(1)Kaiser準則:保留解釋變異信息比例大于平均變異信息比例的主成分因子。(2)前幾個主成分因子已經可以解釋大部分的變異信息。(3)有時需要考慮主成分因子在實際應用中的解釋性,以實際為準。
(4)使用崖底碎石圖繪出特征值與其順序的關系,選取較為明顯的一個拐點作為界限。
主成分分析的步驟:
假設X1…Xp為p個隨機變量,他們的協方差矩陣為∑,其對角線上的值表示Xk的方差(k=1,…p)。主成分分析的步驟如下;
(1)尋找第一個主成分。
選擇系數向量a1=(a11…a1p)T,使得:

②線性組合 a11X1+…+a1pXp的方差最大。令Y1=a11X1+…+a1pXp,它被稱為第一主成分。
(2)尋找第i個主成分(i=2…p)。
選擇系數向量ai=(ai1…aip)T使得:

②對任意的1≤j
③線性組合 ai1X1+…+aipXp的方差最大。令Yi=ai1X1+…+aipXp,它被稱為第i個主成分。
2.1 基本方案
通過屬性選擇技術對原數據集的屬性進行選擇,使近似滿足條件獨立性假設,然后在新的屬性數據集上構建樸素貝葉斯分類器。主成分分析以方差貢獻為依據,對數據集進行主成分分析,構造新的屬性,新的屬性數據集既能代表原始數據所能提供的大部分信息,又能消除屬性間的依賴性。利用主成分分析提取獨立屬性的性質,達到改進分類效果的目的。
PCA-NBC算法的步驟:
步驟1:對數據集進行檢驗。原數據集中不應包含類型變量,對類型變量可以進行LOGISTIC變換轉化為數量變量。
步驟2:對數據集應用主成分分析的方法構建包含新屬性的數據集,新屬性滿足條件獨立性假設。
步驟3:基于新屬性數據集構建樸素貝葉斯分類器。步驟4:對訓練集進行模型訓練,得到參數列表。
步驟5:利用含參數的的樸素貝葉斯分類器對未知類別的樣本進行分類。
2.2 實驗數據
為了對算法進行數據仿真實驗,驗證改進算法的分類效率,選取了機器學習數據庫(http://archive.ics.uci.edu/datasets)的6個數據集利用R軟件進行實驗。
數據集wine記錄了對意大利某地區出產的178種葡萄酒進行化學分析所得的酒精度、蘋果酸、灰度、灰分堿度等13種指標,這些葡萄酒分別釀自三種不同品種的葡萄,數據集中的V1變量表示各種葡萄酒所使用的葡萄的品種。獲取方式為:http://archive.ics.uci.edu/ml/datasets/ wine。其他各數據集的獲取地址如下:
http://archive.ics.uci.edu/datasets/iris
http://archive.ics.uci.edu/datasets/glass
http://archive.ics.uci.edu/datasets/adult
http://archive.ics.uci.edu/datasets/bank
其中,PimaIndiansDiabetes2是一個北美印第安人糖尿病數據集,包含了9個變量,768個樣本。因變量即是對糖尿病的判斷類別,為一個二元類別變量,其他因變量均為數值變量。
2.3 實驗步驟
以PimaIndiansDiabetes2數據集即北美印第安人糖尿病數據集為例,做仿真實驗。實驗步驟如下:
(1)加載數據集,并對缺失值使用袋裝方法進行插補,得到完整可使用的數據集。
(2)對未進行主成分分析處理的數據集利用樸素貝葉斯分類算法進行分類,得到準確率和混淆矩陣等結果。
(3)對數據集進行主成分分析,并構建一個新的屬性數據集。
(4)對新的屬性數據集再應用程序,得到改進后的樸素貝葉斯分類算法的預測準確率和混淆矩陣結果。
(5)驗證新數據集的屬性相關性,從理論上對樸素貝葉斯分類算法的改進進行解釋。
2.4 實驗結果分析
(1)對插補后的數據集進行樸素貝葉斯分類,得到的準確率和混淆矩陣如圖1所示:

圖1 總體分類精度和Kappa系數

表1 相關系數
混淆矩陣:
Confusion Matrix and Statistics
Reference
Prediction neg pos
neg 414 102
pos 86 166
Accuracy:0.7552
95%CI:(0.7232,0.7852)
No Information Rate:0.651
P-Value[Acc>NIR]:3.033e-10
Kappa:0.4537
Mcnemar's Test P-Value:0.274
可以看出,對原始數據集PimaIndiansDiabetes2應用樸素貝葉斯分類模型,768個樣本中有580個正確分類,分類正確率為75.52%。
(2)對經過主成分分析后的數據集進行樸素貝葉斯分類,得到的準確率如圖2所示:

圖2 總體分類精度和Kappa系數
混淆矩陣:
Confusion Matrix and Statistics
Reference
Prediction neg pos
neg 435 118
pos 65 150
Accuracy:0.7617
95%CI:(0.73,0.7914)
No Information Rate:0.651
P-Value[Acc>NIR]:2.156e-11
Kappa:0.4504
Mcnemar's Test P-Value:0.0001211
可以看出,分類準確率為76.17%,經過主成分分析對屬性數據集進行處理后,樸素貝葉斯分類器的分類效率得到提高。
(3)從理論上來看,對新屬性的數據集進行相關系數矩陣分析,得到的結果如表1所示,從中可見新數據集的屬性間是滿足相互獨立條件假設的,因而有更好的分類效果。
(4)對各個數據集的測試得到的預測精確度的比較(如表2所示)

表2 分類結果匯總 (單位:%)
從以上結果來看,對數據進行基于主成分分析構建的新的數據集進行樸素貝葉斯分類,得到的分類預測準確度在總體上有比較明顯的改善。
本文提出基于主成分分析的樸素貝葉斯分類模型,并通過數據集的仿真實驗結果顯示PCA-NBC模型的分類效果優于樸素貝葉斯分類模型。其實,關于貝葉斯分類,在算法與應用等方面都還有很多有意義的問題。比如:對于類型變量的處理,以使其能更好地適應主成分分析以及如何處理有確實數據的情形等。
[1]Han J,Kambr M.Data Mining:Concepts and Techniques[M].San Framcisco,CA:Morgan Kaufmann Publishers.2001.
[2]Langley P,Sage S.Induction of Selective Bayesian Classifiers:In Pro?ceedings of the Tenth Conference on Uncertainty in Artificial Intelli?gence[C].San Framcisco,CA:Morgan Kaufmann Publishers,1994.
[3]姜卯生.數據挖掘中基于貝葉斯技術的分類問題的研究[D].合肥:合肥工業大學,2004.
[4]王斌會.多元統計分析及R語言建模[M].廣州:暨南大學出版社, 2011.
[5]王雙成.貝葉斯網絡學習、推理與應用[M].上海:立信會計出版社,2010.
[6]王星等.大數據分析:方法與應用[M].北京:清華大學出版社, 2013.
[7]朱曉丹.樸素貝葉斯分類模型的改進研究[D].廈門:廈門大學, 2014.
(責任編輯/易永生)
0212
A
1002-6487(2016)21-0009-03
華中科技大學教改基金資助項目(2013070;2015068);華中科技大學自主創新基金資助項目(2013QN171)
李楚進(1977—),男,湖北襄陽人,博士,講師,研究方向:隨機動力系統與數理統計。