第十一次作业

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

使用朴素贝叶斯模型对iris数据集进行花分类(用三种不同类型的朴素贝叶斯),并使用sklearn.model_selection.cross_val_score()对模型进行验证

# 导入鸢尾花数据集
from sklearn.datasets import load_iris

# 数据选取
iris_data = load_iris()['data']
iris_target = load_iris()['target']

# 用高斯模型进行预测并评估
from sklearn.naive_bayes import GaussianNB
mol = GaussianNB()
result = mol.fit(iris_data,iris_target)
# 对模型进行评估
from sklearn.model_selection import cross_val_score
scores = cross_val_score(mol,iris_data,iris_target,cv=10)
# 对预测结果的正确个数进行计算
print("高斯模型:")
print("数据总数:",len(iris_data),"  错误个数:",(iris_target != predi).sum())
print("Accuracy:%.3f"%scores.mean())

# 用贝努里模型进行预测和评估
from sklearn.naive_bayes import BernoulliNB
bnb = BernoulliNB()
result2 = bnb.fit(iris_data,iris_target)
pred2 = bnb.predict(iris_data)
# 计算错误个数
print("贝努里模型:")
print("数据总数:",len(iris_data),"  错误个数:",(iris_target != pred2).sum())
#模型评分
scores2 = cross_val_score(bnb,iris_data,iris_target)
print("Accuracy:%.3f"%scores2.mean())

# 用多项式建立模型进行预测和评估
from sklearn.naive_bayes import MultinomialNB
mnb = MultinomialNB()
result3 = mnb.fit(iris_data,iris_target)
# 预测
pred3 = result3.predict(iris_data)
# 计算错误个数
print("多项式模型:")
print("数据总数:",iris_data.shape[0],"  错误个数:",(iris_target != pred3).sum())
# 模型评分
scores3 = cross_val_score(mnb,iris_data,iris_target)
print("Accuracy:%.3f"%scores3.mean())

截图:

 

 

 

posted @ 2018-11-22 09:39  我知道你知道我知道  阅读(191)  评论(0编辑  收藏  举报