您的位置:首页 > 其它

06-《机器学习及实战》之朴素贝叶斯分类模型

2018-03-22 23:42 435 查看
朴素贝叶斯:单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。
说白了:不要被他吓到了亲。我的理解是,牧场里面目前有3头牛、5匹马、7只羊还有9条狗。那么这个牧场可以私以为分为四个维度(当然这有些太明确了),然后呢随便挑出一个计算他在每一个维度里面的概率来极尽可能的采集这个维度的特征值,然后综合考量之后对后来加入的或者是一头牛或者是一只羊又或者是一只鸡进行合理的分类预测....
使用朴素贝叶斯分类器对新闻文本数据进行类别预测# -*- coding: UTF-8 -*-
#1、读取文本的数据细节
from sklearn.datasets import fetch_20newsgroups
news=fetch_20newsgroups(subset='all')
print len(news.data)
print news.data[0]

#2、20类新闻文本的数据分割
#从sklearn.model_selection的train_test_split模块用于数据分割
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(news.data,news.target,test_size=0.25,random_state=33)
#查询训练样本的数量和类别分布
#print y_train.value_counts()

#3、使用朴素贝叶斯分类器对新闻文本数据进行类别预测
#从sklearn.feature_extraction.text里面导入文本特征向量转化模块
from sklearn.feature_extraction.text import CountVectorizer
vec=CountVectorizer()
X_train=vec.fit_transform(X_train)
X_test=vec.transform(X_test)
#从sklearn.naive_bayes里面导入朴素贝叶斯模型
from sklearn.naive_bayes import MultinomialNB
#从使用默认内置初始化
mnb=MultinomialNB()
#利用训练数据对模型参数进行评估。
mnb.fit(X_train,y_train)
#对测试样本进行类别预测,结果存储在变量y_predict里面
y_predict=mnb.predict(X_test)
print y_predict

#4、对朴素贝叶斯分类器在新闻文本的数据上的表现性能进行评估
#从sklearn.metrics 里面导入classification_report用于详细的分类性报告
from sklearn.metrics import classification_report
print 'the Accuracy of naive bayes Classifier is ',mnb.score(X_test,y_test)
print classification_report(y_test,y_predict,target_names=news.target_names)鸣谢《机器学习及实战》编者范淼、李超等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐