樸素貝葉斯分類是一種十分簡單的分類算法衰倦,叫它樸素貝葉斯分類是因為這種方法的思想真的很樸素袒炉,樸素貝葉斯的思想基礎(chǔ)是這樣的:對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率樊零,哪個最大我磁,就認(rèn)為此待分類項屬于哪個類別。
樸素貝葉斯.png
利用樸素貝葉斯進(jìn)行文本挖掘
代碼如下:
#從sklearn.datasets導(dǎo)入新聞數(shù)據(jù)抓取器
from sklearn.datasets import fetch_20newsgroups
#fetch_20newsgroups抓取器需要即時地從互聯(lián)網(wǎng)下載數(shù)據(jù)
news=fetch_20newsgroups(subset='all')
print(news)
#查看數(shù)據(jù)規(guī)模的細(xì)節(jié)
print(len(news.data))
print(news.data[0])
#對新聞數(shù)據(jù)進(jìn)行分割
from sklearn.cross_validation import train_test_split
#隨機(jī)選取25%用于樣本測試
X_train,X_test,Y_train,Y_test=train_test_split(news.data,news.target,test_size=0.25,random_state=33)
#導(dǎo)入特征向量轉(zhuǎn)化模塊
from sklearn.feature_extraction.text import CountVectorizer
vec=CountVectorizer()
X_train=vec.fit_transform(X_train)
X_test=vec.transform(X_test)
#導(dǎo)入樸素貝葉斯模型
from sklearn.naive_bayes import MultinomialNB
#初始化樸素貝葉斯模型
mnb=MultinomialNB()
#利用訓(xùn)練數(shù)據(jù)對模型參數(shù)進(jìn)行估計
mnb.fit(X_train,Y_train)
#對測試樣本進(jìn)行類別預(yù)測,結(jié)果存儲在y_predict中
y_predict=mnb.predict(X_test)
#分析分類性能
from sklearn.metrics import classification_report
print('The accuracy of Naive Class is:',mnb.score(X_test,Y_test))
print(classification_report(Y_test,y_predict,target_names=news.target_names))
結(jié)果如下:
Paste_Image.png