朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
利用朴素贝叶斯进行文本挖掘
代码如下:
#从sklearn.datasets导入新闻数据抓取器
from sklearn.datasets import fetch_20newsgroups
#fetch_20newsgroups抓取器需要即时地从互联网下载数据
news=fetch_20newsgroups(subset='all')
print(news)
#查看数据规模的细节
print(len(news.data))
print(news.data[0])
#对新闻数据进行分割
from sklearn.cross_validation import train_test_split
#随机选取25%用于样本测试
X_train,X_test,Y_train,Y_test=train_test_split(news.data,news.target,test_size=0.25,random_state=33)
#导入特征向量转化模块
from sklearn.feature_extraction.text import CountVectorizer
vec=CountVectorizer()
X_train=vec.fit_transform(X_train)
X_test=vec.transform(X_test)
#导入朴素贝叶斯模型
from sklearn.naive_bayes import MultinomialNB
#初始化朴素贝叶斯模型
mnb=MultinomialNB()
#利用训练数据对模型参数进行估计
mnb.fit(X_train,Y_train)
#对测试样本进行类别预测,结果存储在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))
结果如下: