周泉錫
摘 要:葡萄酒品質(zhì)測定是數(shù)據(jù)挖掘、信息處理的一個重要應(yīng)用,本文將結(jié)合樸素貝葉斯算法和Adaboost算法,通過二分類手段解決多分類問題,并參考相關(guān)文獻(xiàn)對該問題進行詳細(xì)的探究和解決,并呈現(xiàn)該算法得到的結(jié)果。
關(guān)鍵詞:NA VE bayes;Adaboost提升算法;應(yīng)用二分類分類器處理多分類問題
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2017)08-0037-01
1 背景,應(yīng)用二分類的分類器處理多分類問題
關(guān)于二分類處理多分類問題,目前主要有兩種手段:一種為“一對多”方法,即把一個問題分為“是”或者“不是”,通過對n個元素進行n-1次處理,將其進行分類;另一種為“多對一”方法,即n個元素,對每一個元素之間比較,逐對分類,進行Cn2次,達(dá)到實驗?zāi)康?。目前還有一些其他的方法正在進行研究和學(xué)習(xí),希望得到優(yōu)化算法。
2 推導(dǎo)分析
2.1 算法思想
二分類的算法是解決分類的一個重要手段,在解決多分類問題時,正如上文所述分為兩種主要的方法(“一對多”方法,“多對一”方法),本課題研究著重于前者,“一對多”的問題解決方法。簡單來說,算法本身要處理多組數(shù)據(jù),我們將數(shù)據(jù)依次分為不同的兩類,“是”或者“否”,選擇后將“是”的樣本數(shù)據(jù)留下,將“否”的數(shù)據(jù)繼續(xù)重復(fù)上述的循環(huán)操作,進而遞推篩選,得到需要的結(jié)果。
2.2 算法內(nèi)容
這是一個運用NAIVE BAYES算法對問題的解決。NAIVE算法主要體現(xiàn)在概率的精確求法,用該數(shù)據(jù)的最大概率來對數(shù)據(jù)進行分類從而達(dá)到減小誤差的功能。因此這里運用NaiveByes算法來計算品質(zhì)概率,具體的算法應(yīng)用貝葉斯定理而推導(dǎo)得出。定理的具體內(nèi)容即有一系列待分類數(shù)據(jù)xi(i=1、2……m)和一系列分類項yj(j=1、2……n)用上述公式求得概率P(yj|xi)。我們把xi組成的集合叫做訓(xùn)練樣本集。依次計算統(tǒng)計各個特征屬性即xi的條件概率估計。P(y1|xi),P(y2|xi),……,P(yn|xi),如果各個xi是獨立的,那么由貝葉斯定理可得:
因為分母P(x)對于所有類別均為常數(shù),所以我們只要將分子最大化皆可。又因為xi是條件獨立的,因而可以得到以下公式:
根據(jù)上述分析,我們可以導(dǎo)出貝葉斯分類的流程:
如果有P(yk|xi)=max{P(y1|xi),P(y2|xi),……,P(yn|xi)}則有xi∈yk。進而將數(shù)據(jù)分類,類此將葡萄酒的品質(zhì)進行處理。
同時該算法應(yīng)用Adaboost提升算法,對所處理的數(shù)據(jù)進行精確分類。該算法的內(nèi)容主要在于將n個數(shù)據(jù)賦予相同的權(quán)值1/n,然后將數(shù)據(jù)樣本通過弱分類器處理,如果該樣本已經(jīng)被準(zhǔn)確的分類則權(quán)數(shù)增加,否則權(quán)數(shù)降低。每次添加新的弱分類器通過下一輪迭代,逐步確立分類函數(shù)。其應(yīng)用的方式為通過對閾值的加權(quán)求平均比重,進而對數(shù)據(jù)的分類進行優(yōu)化。具體的操作如下:首先確立一個樣本的集合X:(am,n|m,n=1,2,3……)∈X(其中m代表迭代的輪數(shù),n代表個體的標(biāo)號數(shù))和一個分類集合Y,(y1,y2……yk)∈Y。其次我們確立一個選擇函數(shù)F(x),來使F(x)→{-1,1}從而作為基本的分類器。令F(x)的誤差率為a,a為誤分類的樣本權(quán)數(shù)的和,然后我們計算F(x)的重要程度用w表示w=(1/2)×log[(1-a)/a] 有上述表達(dá)式可以發(fā)現(xiàn)伴隨誤差的減小,w增大,即F(x)的權(quán)增大。我們從而進行下面的循環(huán)操作,逐步對分類的方法進行優(yōu)化選擇,從而達(dá)到降低誤差的目的。此時我們移入一個量Zm作為規(guī)范化因子,Zm=∑am,nexp[-wykF(xk)],從而使得整體的概率和保持為1,從而運用Zm規(guī)范化因子可以使數(shù)據(jù)形成概率分布。最后我們設(shè)計組合各個弱處理器,設(shè)其為g(x),g(x)=∑wF(x)。我們從而得到最終的處理器d(x)=sign(g(x))=sign(∑wF(x)),進而通過此sign函數(shù)對數(shù)據(jù)進行準(zhǔn)確的二分類,評定算法的優(yōu)缺的重要依據(jù)為誤差的大小,該算法成功的利用合理規(guī)范閾值,合理選擇等手段有效的降低了分類的誤差。
3 算法構(gòu)架和流程
3.1 算法構(gòu)架
Initialization→ Data Imput→ Valuable Intializati→ Function Naive bayes→ Training Data→ Testing Data→ Dada Output
3.2 實驗步驟
具體的操作和流程如下:Data采winequalityred,在Function Nave Bayes中,Input為Training_Data,Testing_Data and Training_Data density matrix D.在各類的先驗概率密度估算中采用每一類的先驗概率密度估計采用的是極大似然估計法,總體密度以及類條件密度估計采用的是窗寬為1的parzen窗估計法;以f=@(u,h)exp(u*u/((-2)*h^2))作為Windows Function,其中u是輸向量,h是窗寬,我們把次問題的默認(rèn)值定為1;output由Naive Bayes對Testing_Data的預(yù)測變量的輸出來決定,也就是通過此進行分類,成為n*1的個向量,Y_hat(i)屬于{+1,-1}。在主體程序中,以前1500個數(shù)據(jù)作為Training _Data,后99個數(shù)據(jù)作為Testing_Data。面對多分類問題,本程序采用一對多思想,提取Training_Data中的類標(biāo)號+1,其他類標(biāo)號-1,從而進Naive_Bayes決策。決策的過程是運用和通過Adaboost提升算法,我們利用最多5個弱分類器的加權(quán)投票進而產(chǎn)生結(jié)果。等待程序結(jié)束后,標(biāo)號-1的樣本集合將作為新的Training_Data,繼續(xù)實現(xiàn)上述的步驟,直至最后只剩下兩類為止。由此將一個多分類問題逐步轉(zhuǎn)化為二分類問題。
程序運行的結(jié)果如下:Error_Rate=0.0202
4 總結(jié)評定
評定一個算法的優(yōu)劣重要的參數(shù)是算法的錯誤率,該算法的錯誤率較小,在0.0202。因而從結(jié)果而言這是一個相對準(zhǔn)確而且可以規(guī)?;瘧?yīng)用的算法。其各項指標(biāo)的處理也是十分科學(xué)。但該算法也有一些局限性,比如分類依然存在少量的誤差,原因主要集中在樸素貝葉斯分類的思想具有一定的概率性和偶然性,ADABOOST提升算法對于不同數(shù)據(jù)的誤差值不同。如果我們能運用更為科學(xué)的概率求法以及更為準(zhǔn)確的加權(quán)分類算法的準(zhǔn)確率還會提升。
參考文獻(xiàn)
[1]基于樸素貝葉斯的文本分類算法.
[2]《統(tǒng)計學(xué)習(xí)方法》.
[3]算法雜貨鋪——分類算法之樸素貝葉斯分類(Naive Bayesian classification).
[4]樸素貝葉斯分類器及其改進算法研究.
[5]關(guān)于樸素貝葉斯分類算法的改進.
[6]An Evaluation of Statistical Approaches to Text Categorization.
[7]一種改進的AdaBoost算法——AD AdaBoost.
[8]Revised AdaBoost algorithm - AD AdaBoost.