基于sklearn的樸素貝葉斯分類器

理論內(nèi)容

貝葉斯定理

貝葉斯定理是描述條件概率關(guān)系的定律
$$P(A|B) = \cfrac{P(B|A) * P(A)}{P(B)}$$

樸素貝葉斯分類器

樸素貝葉斯分類器是一種基于概率的分類器须眷,我們做以下定義:

  • B:具有特征向量B
  • A:屬于類別A

有了這個(gè)定義,我們解釋貝葉斯公式

  • P(A|B):具有特征向量B樣本屬于A類別的概率(計(jì)算目標(biāo))
  • P(B|A):在A類別中B向量出現(xiàn)的概率(訓(xùn)練樣本中的數(shù)據(jù))
  • P(A):A類出現(xiàn)的概率(訓(xùn)練樣本中的頻率)
  • P(B):B特征向量出現(xiàn)的概率(訓(xùn)練樣本中的頻率)

對(duì)于樸素貝葉斯分類器乎婿,進(jìn)一步假設(shè)特征向量之間無關(guān)鞍恢,那么樸素貝葉斯分類器公式可以如下表示$$P(A|B) = \cfrac{P(A)\prod P(B_{i} |A)}{P(B)}$$

以上公式右側(cè)的值都可以在訓(xùn)練樣本中算得絮姆。進(jìn)行預(yù)測(cè)時(shí)伊履,分別計(jì)算每個(gè)類別的概率蝙茶,取概率最高的一個(gè)類別平痰。

特征向量為連續(xù)值的樸素貝葉斯分類器

對(duì)于連續(xù)值,有以下兩種處理方式

  • 將連續(xù)值按區(qū)間離散化
  • 假設(shè)特征向量服從正態(tài)分布或其他分布(很強(qiáng)的先驗(yàn)假設(shè))伍纫,由樣本中估計(jì)出參數(shù)宗雇,計(jì)算貝葉斯公式時(shí)帶入概率密度

代碼實(shí)現(xiàn)

導(dǎo)入數(shù)據(jù)——文本新聞數(shù)據(jù)

# from sklearn.datasets import fetch_20newsgroups
# news = fetch_20newsgroups(subset='all')
# print(len(news.data))
# print(news.data[0])
from sklearn import datasets
train = datasets.load_files("./20newsbydate/20news-bydate-train")
test = datasets.load_files("./20newsbydate/20news-bydate-test")
print(train.DESCR)
print(len(train.data))
print(train.data[0])
None
11314
b"From: cubbie@garnet.berkeley.edu (                               )\nSubject: Re: Cubs behind Marlins? How?\nArticle-I.D.: agate.1pt592$f9a\nOrganization: University of California, Berkeley\nLines: 12\nNNTP-Posting-Host: garnet.berkeley.edu\n\n\ngajarsky@pilot.njin.net writes:\n\nmorgan and guzman will have era's 1 run higher than last year, and\n the cubs will be idiots and not pitch harkey as much as hibbard.\n castillo won't be good (i think he's a stud pitcher)\n\n       This season so far, Morgan and Guzman helped to lead the Cubs\n       at top in ERA, even better than THE rotation at Atlanta.\n       Cubs ERA at 0.056 while Braves at 0.059. We know it is early\n       in the season, we Cubs fans have learned how to enjoy the\n       short triumph while it is still there.\n"

處理數(shù)據(jù)——特征抽取(文字向量化)

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(stop_words="english",decode_error='ignore')
train_vec = vec.fit_transform(train.data)
test_vec = vec.transform(test.data)
print(train_vec.shape)
(11314, 129782)

模型訓(xùn)練

from sklearn.naive_bayes import MultinomialNB
bays = MultinomialNB()
bays.fit(train_vec,train.target)
MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)

模型評(píng)估

使用自帶評(píng)估器

bays.score(test_vec,test.target)
0.80244291024960168

調(diào)用評(píng)估器

from sklearn.metrics import classification_report
y = bays.predict(test_vec)
print(classification_report(test.target,y,target_names=test.target_names))
                          precision    recall  f1-score   support

             alt.atheism       0.80      0.81      0.80       319
           comp.graphics       0.65      0.80      0.72       389
 comp.os.ms-windows.misc       0.80      0.04      0.08       394
comp.sys.ibm.pc.hardware       0.55      0.80      0.65       392
   comp.sys.mac.hardware       0.85      0.79      0.82       385
          comp.windows.x       0.69      0.84      0.76       395
            misc.forsale       0.89      0.74      0.81       390
               rec.autos       0.89      0.92      0.91       396
         rec.motorcycles       0.95      0.94      0.95       398
      rec.sport.baseball       0.95      0.92      0.93       397
        rec.sport.hockey       0.92      0.97      0.94       399
               sci.crypt       0.80      0.96      0.87       396
         sci.electronics       0.79      0.70      0.74       393
                 sci.med       0.88      0.87      0.87       396
               sci.space       0.84      0.92      0.88       394
  soc.religion.christian       0.81      0.95      0.87       398
      talk.politics.guns       0.72      0.93      0.81       364
   talk.politics.mideast       0.93      0.94      0.94       376
      talk.politics.misc       0.68      0.62      0.65       310
      talk.religion.misc       0.88      0.44      0.59       251

             avg / total       0.81      0.80      0.78      7532
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末莹规,一起剝皮案震驚了整個(gè)濱河市赔蒲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌良漱,老刑警劉巖舞虱,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異母市,居然都是意外死亡矾兜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門患久,熙熙樓的掌柜王于貴愁眉苦臉地迎上來椅寺,“玉大人浑槽,你說我怎么就攤上這事》蹬粒” “怎么了桐玻?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)荆萤。 經(jīng)常有香客問我镊靴,道長(zhǎng),這世上最難降的妖魔是什么链韭? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任偏竟,我火速辦了婚禮,結(jié)果婚禮上梧油,老公的妹妹穿的比我還像新娘苫耸。我一直安慰自己,他們只是感情好儡陨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布褪子。 她就那樣靜靜地躺著,像睡著了一般骗村。 火紅的嫁衣襯著肌膚如雪嫌褪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天胚股,我揣著相機(jī)與錄音笼痛,去河邊找鬼。 笑死琅拌,一個(gè)胖子當(dāng)著我的面吹牛缨伊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播进宝,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼刻坊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了党晋?” 一聲冷哼從身側(cè)響起谭胚,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎未玻,沒想到半個(gè)月后灾而,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扳剿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年旁趟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庇绽。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡轻庆,死狀恐怖癣猾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情余爆,我是刑警寧澤纷宇,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站蛾方,受9級(jí)特大地震影響像捶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桩砰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一拓春、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亚隅,春花似錦硼莽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至行疏,卻和暖如春匆光,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酿联。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工终息, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贞让。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓周崭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親喳张。 傳聞我的和親對(duì)象是個(gè)殘疾皇子续镇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容