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

Posted herman-mai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn中的朴素贝叶斯模型及其应用相关的知识,希望对你有一定的参考价值。

1、(1)多项式

from sklearn.datasets import load_iris
iris = load_iris()

from sklearn.naive_bayes import GaussianNB#贝叶斯
gnb = GaussianNB()
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.naive_bayes import BernoulliNB
bnl = BernoulliNB()
pred = bnl.fit(iris.data,iris.target)#g构造模型
y_pred = pred.predict(iris.data)#预测
print(iris.data.shape[0],(iris.target!=y_pred).sum())

技术分享图片

(2)高斯分布型

from sklearn.naive_bayes import GaussianNB
gnb1=GaussianNB()#构造建立模型
pred=gnb1.fit(iris.data,iris.target)#模型训练,拟合
y_pred=gnb1.predict(iris.data)#分类预测
print(iris.data.shape[0],(iris.target!=y_pred).sum())
scores=cross_val_score(gnb1,iris.data,iris.target,cv=10)
print("Accuracy:%.3f"%scores.mean())
print(y_pred)

(3)伯努利型

from sklearn.naive_bayes import BernoulliNB
gnb2=BernoulliNB()#构造
pred=gnb2.fit(iris.data,iris.target)#模型训练,拟合
y_pred=gnb2.predict(iris.data)#分类预测
print(iris.data.shape[0],(iris.target!=y_pred).sum())
scores=cross_val_score(gnb2,iris.data,iris.target,cv=10)
print("Accuracy:%.3f"%scores.mean())
print(y_pred)

 

 

2、

from sklearn.datasets import load_iris
iris = load_iris()

from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import cross_val_score
gnb=GaussianNB()
scores=cross_val_score(gnb,iris.data,iris.target,cv=10)
print("Accuracy:%.3f"%scores.mean())

from sklearn.naive_bayes import BernoulliNB
from sklearn.model_selection import cross_val_score
gnb=BernoulliNB()
scores=cross_val_score(gnb,iris.data,iris.target,cv=10)
print("Accuracy:%.3f"%scores.mean())
from sklearn.naive_bayes import MultinomialNB

from sklearn.model_selection import cross_val_score

gnb=MultinomialNB()

scores=cross_val_score(gnb,iris.data,iris.target,cv=10)

print("Accuracy:%.3f"%scores.mean())

技术分享图片

3、

import csv
file_path=rD:1SMSSpamCollectionjsn.txt
sms=open(file_path,r,encoding=utf-8)
sms_data=[]#邮件的内容
sms_label=[]#邮件的类别
csv_reader=csv.reader(sms,delimiter=	)
for line in csv_reader:
    sms_label.append(line[0])
    sms_data.append(line[1])
sms.close()
sms_data=str(sms_data)#将列表转化为字符串
sms_data=sms_data.lower()#对大小写进行处理
sms_data=sms_data.split()#变成列表的形式
sms_data1=[]#存放处理后的内容
i=0
for i in sms_data:#去掉长度小于3的单词
    if len(i)>4:
        sms_data1.append(i)
        continue

 


以上是关于sklearn中的朴素贝叶斯模型及其应用的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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