机器学习之朴素贝叶斯算法

朴素贝叶斯为根据贝叶斯定理,假设每个特征之间相互独立,然后根据每个特征值所属的概率最大的分类相加,最后得出哪个分类的概率可能性最大,就把预测的数据划分到那个类别下,对实现原理感兴趣的小伙伴,可以翻翻其他的博主的文章看看。

附上本人测试的代码,如下,

# -*- coding:utf-8 -*-
# 导入科学计算工具
import numpy as np
# 导入鸢尾花数据集
from sklearn.datasets import load_iris
# 导入朴素贝叶斯
from sklearn import naive_bayes
from sklearn.model_selection import train_test_split

# 加载鸢尾花数据集
iris = load_iris()
# 提取数据
trainX = iris.data
# 提取标签
trainY = iris.target
# 建立高斯分布的朴素贝叶斯模型

X_train,X_test,y_train,y_test = train_test_split(trainX,trainY,test_size = 0.3)

clf=naive_bayes.GaussianNB()  #高斯分布,没有参数
# 建立多项式分布的朴素贝叶斯模型
# clf=naive_bayes.MultinomialNB()  #多项式分布

# 训练模型
clf.fit(X_train,y_train)
clf.fit(X_test,y_test)
# 输出准确率
print("训练准确率:" + str(clf.score(X_train,y_train)))
print("测试准确率:" + str(clf.score(X_test,y_test)))

'''
# 效果
训练准确率:0.96
测试准确率:0.96
'''

 

posted @ 2020-03-31 14:59  站在云端看世界  阅读(161)  评论(0编辑  收藏  举报