在线看片免费人成视久网,无码日本被黑人强伦姧视频 ,中日产幕无线码一区,无码精品av久久久免费

樸素貝葉斯分類器

發(fā)布時(shí)間:2018-04-10  |   來(lái)源: 川總寫量化

作者:石川

摘要:樸素貝葉斯分類器由于假設(shè)特征之間條件獨(dú)立,使用起來(lái)非常簡(jiǎn)單。它在實(shí)戰(zhàn)中的效果往往非常優(yōu)秀。


1 引言


有監(jiān)督分類是量化投資中常見(jiàn)的情景之一。比如,我們希望根據(jù)上市公司財(cái)報(bào)中的各種指標(biāo)特征,區(qū)分出優(yōu)秀的和差勁的股票,這就是一個(gè)分類問(wèn)題。在機(jī)器學(xué)習(xí)中,有監(jiān)督分類的算法有很多,比如 SVM、ANN 以及基于決策樹(shù)的 AdaBoost 和隨機(jī)森林等。這其中自然也少不了今天的主角樸素貝葉斯分類器(Na?ve Bayes classifiers)。它代表著一類應(yīng)用貝葉斯定理的分類器的總稱。樸素(naive)在這里有著特殊的含義、代表著一個(gè)非常強(qiáng)的假設(shè)(下文會(huì)解釋)。


樸素貝葉斯分類器雖然簡(jiǎn)單,但是用處非常廣泛(尤其是在文本分類方面)。在 IEEE 協(xié)會(huì)于 2006 年列出的十大數(shù)據(jù)挖掘算法中,樸素貝葉斯分類器赫然在列(Wu et al. 2008)。捎帶一提,另外九個(gè)算法是 C4.5、k-Means、SVM、Apriori、EM、PageRank、AdaBoost、kNN 和 CART(那時(shí)候深度學(xué)習(xí)還沒(méi)有什么發(fā)展)。


樸素貝葉斯分類器以貝葉斯定理為基礎(chǔ)。在《貝葉斯統(tǒng)計(jì)》一文中,我們?cè)榻B過(guò)貝葉斯定理。為了保證本文的完整性,在下面首先回顧一下(熟悉貝葉斯定理的朋友可以跳過(guò)第 2 節(jié))。之后會(huì)闡釋“樸素”的意義并介紹樸素貝葉斯分類器。文章的最后使用一個(gè)例子說(shuō)明如何使用樸素貝葉斯分類器選股。


2 貝葉斯定理


貝葉斯定理的推導(dǎo)始于條件概率。條件概率可以定義為:在事件 B 發(fā)生的前提下,事件 A 發(fā)生的概率。數(shù)學(xué)上用 P(A|B) 來(lái)表示該條件概率。條件概率 P(A|B) 的數(shù)學(xué)定義為:


f1.png


這個(gè)公式的白話解釋為:“當(dāng) B 發(fā)生前提下 A 發(fā)生的概率”等于“A 和 B 同時(shí)發(fā)生的概率”除以“B 發(fā)生的概率”。生活中條件概率屢見(jiàn)不鮮。比如“在沒(méi)有趕上 8 點(diǎn)這趟地鐵的前提下,上班遲到的概率是多少?”應(yīng)用條件概率的定義可知“在沒(méi)有趕上 8 點(diǎn)這趟地鐵的前提下,上班遲到的條件概率”等于“沒(méi)趕上 8 點(diǎn)這趟地鐵且上班遲到的概率”除以“沒(méi)趕上 8 點(diǎn)這趟地鐵的概率”。將上式左右兩邊同時(shí)乘以 P(B) 得到:


f2.png


類似的,我們也可以求出 P(B|A),即在 A 發(fā)生的前提下,B 發(fā)生的概率是多少。在上面例子中,這對(duì)應(yīng)著“在上班遲到的前提下,沒(méi)有趕上 8 點(diǎn)這趟地鐵的概率是多少”?(上班遲到的原因可能很多,比如沒(méi)趕上這趟地鐵是一個(gè),又比如在公司樓下的咖啡館里耽擱了 10 分鐘也是一個(gè),或者因?yàn)樵缟习l(fā)燒先去醫(yī)院了等等。)根據(jù)定義:


f3.png


同樣,兩邊同時(shí)乘以 P(A) ,并且由 P(A∩B) = P(B∩A),得到:


f4.png


由此可知 P(B)P(A|B) = P(A)P(B|A)。這個(gè)結(jié)果也可以寫作如下形式,即大名鼎鼎的貝葉斯定理(Bayes rule)


f5.png


3 何為“樸素”


下面我們將貝葉斯定理應(yīng)用于有監(jiān)督的分類場(chǎng)景。令 X 代表一個(gè) n 維特征向量(它代表著一組特征,即 features),這些特征用來(lái)描述一個(gè)對(duì)象;C 代表該對(duì)象所屬的類別。分類的目的是找到 X 和 C 之間的映射關(guān)系,從而計(jì)算出 P(C|X),即當(dāng)待分類的對(duì)象具備 X 這些特征時(shí),它屬于 C 類的條件概率。


假設(shè)類別的個(gè)數(shù)為 K(即 C 的取值有 K 個(gè)),那么對(duì)于每一個(gè)可能的取值(記為 c_k,k = 1, 2, …, K),我們需要根據(jù)給定的特征 X 計(jì)算出概率 P(C=c_k|X)。然后,只要從所有的 P(c_k|X) 中挑出取值最大的概率對(duì)應(yīng)的 c_k 作為最有可能的分類即可。利用貝葉斯定理,P(C=c_k|X) 可以寫作:


f6.png


由于對(duì)有所的 P(C=c_k|X) 來(lái)說(shuō),上式右側(cè)的分母都相同(和 C 的取值無(wú)關(guān)),因此我們只需要根據(jù)訓(xùn)練集數(shù)據(jù)來(lái)估計(jì)所有的 P(X|C=c_k) 以及所有的 P(C=c_k) 即可。下面來(lái)看看為了實(shí)現(xiàn)這個(gè)目標(biāo),需要多大的樣本空間。


考慮最簡(jiǎn)單的情況。假設(shè) n 維向量 X 中的每一個(gè)特征以及類別 C 都是二元的(binary)。因此,特征向量 X = {X_1, X_2, …, X_n} 所有可能的取值為 2^n 個(gè)(因?yàn)槊總€(gè) X_i 的取值有 2 個(gè),而一共有 n 個(gè) X_i)。此外,C 的取值也是 2 個(gè)。因此,僅從 P(C=c_k|X) 來(lái)說(shuō),需要估計(jì)的參數(shù)就高達(dá) 2×(2^n - 1) 個(gè)。而這僅僅是從特征空間所有取值組合可能性出發(fā)的最低要求。事實(shí)上,為了得到準(zhǔn)確的參數(shù)估計(jì),對(duì)于每一個(gè) n 維特征的組合,我們都需要多個(gè)觀測(cè)值來(lái)計(jì)算 P(C=c_k|X) 的概率。這進(jìn)一步增加了對(duì)樣本空間大小的要求。舉例來(lái)說(shuō),如果特征空間的維度 n = 30,那么我們需要估計(jì)超過(guò) 30 億個(gè)參數(shù)!


在現(xiàn)實(shí)的應(yīng)用場(chǎng)景中,n = 30 是否常見(jiàn)?非常常見(jiàn)。比如上市公司的特征就可以輕松超過(guò) 30 個(gè)。而在現(xiàn)實(shí)的應(yīng)用場(chǎng)景中,我們擁有超過(guò) 30 億個(gè)樣本來(lái)估計(jì) 30 億個(gè)參數(shù)是否常見(jiàn)?癡人說(shuō)夢(mèng)。因此,想利用有限的樣本數(shù)據(jù)估計(jì)出所有的?P(X|C=c_k)?和?P(C=c_k) 是不切實(shí)際的。為什么有這么多參數(shù)需要估計(jì)呢?這是因?yàn)樵谇蠼?P(X|C=c_k) 時(shí),我們考慮的是 X = (x_1, x_2, …, x_n) 在 C = c_k 這個(gè)條件下的條件聯(lián)合分布,這大大增加了待估計(jì)的參數(shù)的個(gè)數(shù)。為了解決這個(gè)問(wèn)題,“樸素”閃亮登場(chǎng)。


樸素貝葉斯在求解 P(X|C=c_k) 時(shí)做了一個(gè)非常強(qiáng)的假設(shè) —— 條件獨(dú)立性(conditional independence)。它的意思是在給定的類別 C = c_k 下,不同維度特征的取值之間是相互獨(dú)立的。比如令 X_1 和 X_2 代表 n 維里面的兩個(gè)維度,則? P(X_1=x_1|C=c_k) 的概率與 X_2 的取值無(wú)關(guān),即:


f7.png


舉個(gè)例子,下雨、打雷和閃電是三種天氣。我們可以假設(shè)在閃電發(fā)生的條件下,下雨和打雷之間互為條件獨(dú)立。這是因?yàn)殚W電通常會(huì)伴隨著打雷,而當(dāng)閃電發(fā)生時(shí),是否打雷和之后是否一定會(huì)下雨就沒(méi)什么關(guān)系了。當(dāng)然,打雷和下雨通常在非條件下是相關(guān)的,我們僅僅假設(shè)在閃電發(fā)生的條件下,它們滿足條件獨(dú)立。


上述例子強(qiáng)調(diào)了在樸素貝葉斯中,我們僅僅假設(shè)特征之間滿足條件獨(dú)立性,而非一般的獨(dú)立性。在條件獨(dú)立性假設(shè)下,反復(fù)利用條件概率的定義,P(X = (x_1, x_2, …, x_n)|C=c_k) 可以寫成 P(X_1=x_1|C=c_k) × P(X_2=x_2|C=c_k) × … × P(X_n=x_n|C=c_k):


f8.png


在前面提及的特征和類別均為 binary 的情況下,這將待估計(jì)的參數(shù)從 2×(2^n - 1) 個(gè)直接減少到 2n 個(gè)。這大大簡(jiǎn)化了對(duì)樣本空間的要求以及求解的計(jì)算量,使得樸素貝葉斯算法非常簡(jiǎn)單。條件獨(dú)立性的假設(shè)便是“樸素”一詞的來(lái)源。因此,樸素貝葉斯通常也被稱為簡(jiǎn)單貝葉斯(simple Bayes)獨(dú)立貝葉斯(independence Bayes)。


4 樸素貝葉斯分類器


通過(guò)上一節(jié)對(duì)“樸素”含義的說(shuō)明,樸素貝葉斯分類器的大致輪廓已經(jīng)比較清晰了。本節(jié)就來(lái)正式說(shuō)明其數(shù)學(xué)表達(dá)式。對(duì)于特征向量 X 和類別 C,利用貝葉斯定理和條件獨(dú)立性的假設(shè),寫出每個(gè) C = c_k 的條件概率:


f9.png


接下來(lái)使用訓(xùn)練集數(shù)據(jù),估計(jì)出所有的 P(C=c_k) 以及 P(X_i=x_i|C=c_k) 即可,而無(wú)需考慮上式中的分母,因?yàn)樗?C 的取值無(wú)關(guān)。對(duì)于新的待分類樣本,使用它的特征向量取值對(duì)每個(gè) c_k 求出 P(C=c_k) × Π_i P(X_i=x_i|C=c_k),并比較這些值中最大的,就可以確定這個(gè)新樣本的分類:


f10.png


以上就是樸素貝葉斯分類器的數(shù)學(xué)表達(dá)式。在實(shí)際的應(yīng)用中,根據(jù)特征變量是離散的還是了連續(xù)的,在使用訓(xùn)練集數(shù)據(jù)估計(jì) P(X_i=x_i|C=c_k) 時(shí),又有不同的處理方法。在離散的情況下,只需要 counting(計(jì)數(shù)),即:


f11.png


其中 #{X_i=x_iΛC=c_k} 表示訓(xùn)練集中 X_i = x_i 和 C = c_k 共同發(fā)生的次數(shù);#{C=c_k} 表示訓(xùn)練集中 C = c_k 發(fā)生的次數(shù)。這個(gè)估計(jì)方法稱作最大似然估計(jì)(maximum likelihood estimate)。在一些情況下,由于樣本數(shù)據(jù)極度匱乏,很有可能出現(xiàn)某個(gè)特征的取值和某個(gè)類別的取值在訓(xùn)練集中從未同時(shí)出現(xiàn)過(guò),即 #{X_i=x_iΛC=c_k} = 0,這會(huì)造成對(duì) P(X_i=x_i|C=c_k) 的估計(jì)等于零。P(X_i=x_i|C=c_k) = 0 會(huì)導(dǎo)致對(duì)應(yīng)的 P(C=c_k) × Π_i P(X_i=x_i|C=c_k) = 0,即讓我們誤以為這個(gè)樣本屬于某個(gè)類別 c_k 的概率為 0。這是不合理的,不能因?yàn)橐粋€(gè)事件沒(méi)有觀察到就認(rèn)為該事件不會(huì)發(fā)生。


解決這個(gè)問(wèn)題的辦法是給每個(gè)特征和類別的組合加上給定個(gè)數(shù)的虛假樣本(“hallucinated” examples)。假設(shè)特征 X_i 的取值有 J 個(gè),并假設(shè)為每個(gè) x_i 對(duì)應(yīng)的 #{X_i=x_iΛC=c_k} 增加 s 個(gè)虛假樣本,這樣得到對(duì) P(X_i=x_i|C=c_k) 的估計(jì)稱為平滑估計(jì)(smoothed estimate)


f12.png


特別的,當(dāng) s = 1 時(shí),上述平滑稱為拉普拉斯平滑(Laplace smoothing)。類似的,對(duì)于 P(C=c_k) 的估計(jì)也可以采用平滑的方式:


f13.png


其中,t 為對(duì)每個(gè)類增加的虛假樣本數(shù),K 是類別個(gè)數(shù),#{C} 表示訓(xùn)練集的樣本數(shù)。當(dāng)特征是連續(xù)變量時(shí),情況稍微復(fù)雜一些。在使用訓(xùn)練集求解 P(X_i=x_i|C=c_k) 時(shí),需要假設(shè)該條件概率分布的形式。一種常見(jiàn)的假設(shè)是認(rèn)為對(duì)于給定的 c_k,P(X_i=x_i|C=c_k) 滿足正態(tài)分布,而正態(tài)分布的均值和標(biāo)準(zhǔn)差需要從訓(xùn)練集學(xué)習(xí)得到。這樣的模型稱為高斯樸素貝葉斯分類器(Gaussian Na?ve Bayes classifier)。


5 一個(gè)例子


下面我們用樸素貝葉斯分類來(lái)選股看看。假設(shè)描述上市公司的特征有 7 個(gè)維度:市盈率、市凈率、凈資產(chǎn)收益率、總資產(chǎn)周轉(zhuǎn)率變動(dòng)率、預(yù)期盈利增長(zhǎng)修正、20 日漲幅、以及市值。為了簡(jiǎn)化討論,令每一個(gè)特征的取值都是 binary 的,即分為高或者低;進(jìn)一步令類別也是 binary 的,即好公司(買入后的一段時(shí)間內(nèi)股價(jià)上漲)或者差公司(買入后的一段時(shí)間內(nèi)股價(jià)下跌)。假設(shè)訓(xùn)練集中共有 20 個(gè)公司,它們的特征和類別如下表所示。


f14.png


使用這個(gè)訓(xùn)練集來(lái)估計(jì)所有的 P(X_i=x_i|C=c_k) 和 P(C=c_k) 的取值。通過(guò)計(jì)數(shù)(counting)以及拉普拉斯平滑就可以求出這些參數(shù)的估計(jì)量(見(jiàn)下表)。


f15.png


使用這些估計(jì)量就可以對(duì)任意給定的新公司分類。比如對(duì)于某上市公司,它的特征分別為:市盈率低、市凈率高、凈資產(chǎn)收益率高、總資產(chǎn)周轉(zhuǎn)率變動(dòng)率高、預(yù)期盈利增長(zhǎng)修正低、20 日漲幅高、市值低。使用樸素貝葉斯,對(duì)好公司和差公司這兩類,分別計(jì)算 P(C=c_k) × Π_i P(X_i=x_i|C=c_k) 的取值:


f16.png


由于 0.00753 > 0.00036,因此樸素貝葉斯分類對(duì)該公司的分類結(jié)果是好公司。


6 結(jié)語(yǔ)


由于條件獨(dú)立性這個(gè)強(qiáng)假設(shè)的存在,樸素貝葉斯分類器十分簡(jiǎn)單。但是,它仍然有非常不錯(cuò)的效果。原因何在呢?人們?cè)谑褂梅诸惼髦?,首先做的第一步(也是最重要的一步)往往?/span>特征選擇(feature selection),這個(gè)過(guò)程的目的就是為了排除特征之間的共線性、選擇相對(duì)較為獨(dú)立的特征。其次,當(dāng)我們假設(shè)特征之間相互獨(dú)立時(shí),這事實(shí)上就暗含了正則化的過(guò)程;而不考慮變量之間的相關(guān)性有效的降低了樸素貝葉斯的分類方差。雖然這有可能提高分類的偏差,但是如果這樣的偏差不改變樣本的排列順序,那么它對(duì)分類的結(jié)果影響不大。由于這些原因,樸素貝葉斯分類器在實(shí)際中往往能夠取得非常優(yōu)秀的結(jié)果。Hand and Yu (2001) 通過(guò)大量實(shí)際的數(shù)據(jù)表明了這一點(diǎn)。


最后,我們以 Wu et al. (2008) 中對(duì)樸素貝葉斯分類器的高度概括作為全文的收尾:


The naive Bayes model is tremendously appealing because of its simplicity, elegance, and robustness. It is one of the oldest formal classification algorithms, and yet even in its simplest form it is often surprisingly effective. It is widely used in areas such as text classification and spam filtering. A large number of modifications have been introduced, by the statistical, data mining, machine learning, and pattern recognition communities, in an attempt to make it more flexible, but one has to recognize that such modifications are necessarily complications, which detract from its basic simplicity.



參考文獻(xiàn)

Hand, D. J. and K. Yu (2001). Idiot's Bayes – not so stupid after all? International Statistical Review 69(3), 385 – 398.

Wu, X., V. Kumar, J. R. Quinlan, J. Ghosh, Q. Yang, H. Motoda, G. J. McLachlan, A. Ng, B. Liu, P. S. Yu, Z. Zhou, M. Steinbach, D. J. Hand, and D. Steinberg (2008). Top 10 algorithms in data mining. Knowledge and Information Systems 14(1), 1 – 37.



免責(zé)聲明:入市有風(fēng)險(xiǎn),投資需謹(jǐn)慎。在任何情況下,本文的內(nèi)容、信息及數(shù)據(jù)或所表述的意見(jiàn)并不構(gòu)成對(duì)任何人的投資建議。在任何情況下,本文作者及所屬機(jī)構(gòu)不對(duì)任何人因使用本文的任何內(nèi)容所引致的任何損失負(fù)任何責(zé)任。除特別說(shuō)明外,文中圖表均直接或間接來(lái)自于相應(yīng)論文,僅為介紹之用,版權(quán)歸原作者和期刊所有。