朴素贝叶斯算法例题与代码实践

本文通过例题详细介绍了如何使用朴素贝叶斯算法进行分类,包括如何根据训练数据构建朴素贝叶斯分类器,并探讨了三种不同类型的朴素贝叶斯算法:多项式朴素贝叶斯、伯努利朴素贝叶斯和高斯朴素贝叶斯,分别适用于离散值、布尔特征和连续值的分类问题。
摘要由CSDN通过智能技术生成

即之前写了朴素贝叶斯算法的理论部分(https://blog.csdn.net/weixin_41899207/article/details/105714493

现在找些例子与代码总结一下。

例题1.

试由下表的训练数据学习一个朴素贝叶斯分类器并确定x=(2,S)T的类标记y。表中X(1)和X(2)为特征,取值的集合分别为A1={1,2,3},A2={S,M,L},Y为类标记,Y属于C={1,-1}。

 123456789101112131415
X(1)111112222233333
X(2)SMMSSSMMSSSMMSS
Y-1-111-1-1-11111111-1

P(Y=1)=9/15,P(Y=-1)=6/15   *Y行有9个1,6个-1.

对于给定的x=(2,S)T计算:

因为最大,所以y=-1。

 


2.三种不同的朴素贝叶斯算法

2.1 多项式朴素贝叶斯

多项式朴素贝叶斯(Multinomial Naive Bayes)特征值符合多项式分布,多用于高维度向量分类,即样本特征为多元离散值,因此最常用于文章分类。

2.2伯努利朴素贝叶斯

伯努利朴素贝叶斯(Bernoulli Naive Bayes)特征值符合伯努利分布,针对布尔类型特征值的向量做分类,即样本特征为二元离散值,或者为稀疏的多元离散值。

2.3高斯朴素贝叶斯

高斯朴素贝叶斯(Gaussian Naive Bayes)特征符合高斯分布,多用于特征值为连续值,可以利用高斯概率密度公式进行分类拟合。

from sklearn.naive_bayes import MultinomialNB
from sklearn.naive_bayes import BernoulliNB
from sklearn.naive_bayes import GaussianNB

3. 代码

 

# 朴素贝叶斯引入图例
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
from sklearn import datasets
%matplotlib inline

font = FontProperties(fname='/Library/Fonts/Heiti.ttc')

iris_data = datasets.load_iris()
X = iris_data.data[0:100, [0, 1]]
y = iris_data.target[0:100]

plt.scatter(X[0:50, [0]], X[0:50, [1]], color='r',
            s=50, marker='o', label='山鸢尾')
plt.scatter(X[50:100, [0]], X[50:100, [1]],
            color='b', s=50, marker='x', label='杂色鸢尾')
plt.xlabel('花瓣长度(cm)', fontproperties=font)
plt.ylabel('花瓣宽度(cm)', fontproperties=font)
plt.legend(prop=font)
plt.show()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值