码迷,mamicode.com
首页 > 其他好文 > 详细

sklearn中的朴素贝叶斯模型及其应用

时间:2018-11-26 13:40:01      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:get   技术分享   垃圾   ima   target   fit   lin   info   multi   

1.使用朴素贝叶斯模型对iris数据集进行花分类

尝试使用3种不同类型的朴素贝叶斯:

高斯分布型

多项式型

伯努利型

#高斯分布型
from sklearn import datasets
iris=datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
gnb=GaussianNB()
pred=gnb.fit(iris.data,iris.target)
y_pred=gnb.predict(iris.data)
print(iris.data.shape[0],(iris.target != y_pred).sum())

技术分享图片

 

#伯努利型
from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import BernoulliNB
gnb = BernoulliNB()
pred = gnb.fit(iris.data, iris.target)
y_pred = pred.predict(iris.data)
print(iris.data.shape[0], (iris.target != y_pred).sum())

技术分享图片

#多项式型
from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import MultinomialNB
gnb =  MultinomialNB()
pred = gnb.fit(iris.data, iris.target)
y_pred = pred.predict(iris.data)
print(iris.data.shape[0],(iris.target !=y_pred).sum())

技术分享图片

 

2.使用sklearn.model_selection.cross_val_score(),对模型进行验证.

#高斯分布型的准确率
from sklearn.model_selection import cross_val_score
NB_model=GaussianNB()
sco=cross_val_score(NB_model,iris.data,iris.target,cv=10)
print("准确率:%.3f"%sco.mean())

#伯努利型的准确率
from sklearn.model_selection import cross_val_score
NB_model=BernoulliNB()
sco=cross_val_score(NB_model,iris.data,iris.target,cv=10)
print("准确率:%.3f"%sco.mean())

#多项式型的准确率
from sklearn.model_selection import cross_val_score
NB_model=MultinomialNB()
sco=cross_val_score(NB_model,iris.data,iris.target,cv=10)
print("准确率:%.3f"%sco.mean())

技术分享图片

技术分享图片

技术分享图片

 

3.垃圾邮件分类.

 

sklearn中的朴素贝叶斯模型及其应用

标签:get   技术分享   垃圾   ima   target   fit   lin   info   multi   

原文地址:https://www.cnblogs.com/a1234tt/p/10019467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!