轻松搞定朴素贝叶斯(有例题)

朴素贝叶斯算法:用苹果质量分类来理解

首先我们应该先弄清楚朴素贝叶斯是用来干什么的:

我们收集了大量不同质量苹果的大小、颜色、形状这三个苹果的特征信息后,如果这时又来了一个新的苹果,朴素贝叶斯就可以通过这个苹果的大小、颜色、形状判断这个苹果的质量

接下来我们会讲解公式,但是在讲解公式之前,为了大家便于理解,我们先说一下各个变量是什么:

Y就是苹果的质量

X就是苹果的大小、颜色、形状这三个特征组成的向量;x1就代表苹果的大小,x2代表苹果的颜色,x3代表苹果的形状

朴素贝叶斯可以让我们通过一个苹果的特征向量,判断这个苹果的质量是怎么样的,即在已知苹果的大小、颜色、形状是怎么样的情况下求出这个苹果的质量,也就是P(Y|X)

下面我们结合实例理解朴素贝叶斯公式:

我们收集了10个不同质量苹果的特征信息:

 朴素贝叶斯公式:

给定一个X(即已知这个苹果的大小、颜色、形状),我们就可以分别求出在这个X的前提下,这个苹果的质量是优或者差的概率,即P(Y=优|X)、P(Y=差|X),这两个概率哪个大,那么这个苹果的质量就是哪个。

结合公式进行一个具体的计算: 

例:现在有一个大的、红色的、不规则的苹果,请问他是优的苹果还是差的苹果呢?

根据题意

X=大的、红色的、不规则的,即x1=大,x2=红色、x3=不规则

Y=优、差

我们要分别计算在x1=大,x2=红色、x3=不规则的情况下,Y=优、Y=差的概率

先看分子: 

P(Y=优)为这10个苹果中苹果为优的概率,看题目给出的表,很明显苹果为优的概率是4/10

P(x1=大|Y=优)为在苹果为优的前提下,苹果的大小是大的概率,根据题给的表,这个概率为3/4

P(x2=红|Y=优)为在苹果为优的前提下,苹果的颜色是红色的概率,根据题给的表,这个概率为4/4

P(x3=不规则|Y=优)为在苹果为优的前提下,苹果的形状是不规则的概率,根据题给的表,这个概率为1/4

再来看分母:

由于朴素贝叶斯假设特征向量X中的各个特征x是独立的,所以有下式:

P(x1=大,x2=红,x3=不规则)=P(x1=大) * P(x2=红) * P * (x3=不规则)

P(x1=大)为这10个苹果中苹果的大小为大的概率(只关注苹果的大小),根据题给的表,苹果为大的概率是6/10

P(x2=红)为这10个苹果中苹果颜色为红色的概率(只关注苹果的颜色),根据题给的表,苹果为红色的概率是5/10

P(x3=不规则)为这10个苹果中苹果形状为不规则的概率(只关注苹果的形状),根据题给的表,苹果为不规则的概率是5/10

所以,P(Y=优|x1=大,x2=红,x3=不规则)=(4/10 * 3/4 * 4/4* 1/4) ÷ (6/10 * 5/10 * 5/10) = 1/2

同理,我们可以求P(Y=差|x1=大,x2=红,x3=不规则)

 

先看分子: 

P(Y=差)为这10个苹果中苹果为差的概率,看题目给出的表,很明显苹果为优的概率是6/10

P(x1=大|Y=差)为在苹果为差的前提下,苹果的大小是大的概率,根据题给的表,这个概率为3/6

P(x2=红|Y=差)为在苹果为差的前提下,苹果的颜色是红色的概率,根据题给的表,这个概率为1/6

P(x3=不规则|Y=差)为在苹果为差的前提下,苹果的形状是不规则的概率,根据题给的表,这个概率为4/6

再来看分母(其实和Y=优的情况下是一样的):

由于朴素贝叶斯假设特征向量X中的各个特征x是独立的,所以有下式:

P(x1=大,x2=红,x3=不规则)=P(x1=大) * P(x2=红) * P * (x3=不规则)

P(x1=大)为这10个苹果中苹果的大小为大的概率(只关注苹果的大小),根据题给的表,苹果为大的概率是6/10

P(x2=红)为这10个苹果中苹果颜色为红色的概率(只关注苹果的颜色),根据题给的表,苹果为红色的概率是5/10

P(x3=不规则)为这10个苹果中苹果形状为不规则的概率(只关注苹果的形状),根据题给的表,苹果为不规则的概率是5/10

所以,P(Y=差|x1=大,x2=红,x3=不规则)=(6/10 * 3/6 * 1/6* 4/6) ÷ (6/10 * 5/10 * 5/10) = 1/18

综上所述,在x1=大,x2=红,x3=不规则的前提下,Y=优的概率是1/2,Y=差的概率是1/18

P(Y=优|x1=大,x2=红,x3=不规则)=1/2

P(Y=差|x1=大,x2=红,x3=不规则)=1/18

而1/2大于1/18,即一个大的、红色的、不规则的苹果是优的概率大于是差的概率

所以,如果现在有一个大的、红色的、不规则的苹果,我们可以通过朴素贝叶斯判断这个苹果的质量应该是优


朴素贝叶斯的进阶理解

相信看了上面东西之后你已经完全理解朴素贝叶斯了,但上面的例子中,特征向量X只有三个特征大小(x1)、颜色(x2)、形状(x3),结果Y也只有优(y1)和差(y2)两个可能

接下来,我们假设特征向量X有m维,即X=(x1,x2,......,xm-1,xm)

结果Y有n维,即Y=(y1,y2,.........,yn-1,yn)

P(Y=y1|X), P(Y=y2|X),.........,P(Y=yn|X)就是在给定X的情况下,Y=各个类的概率

给定X的意思就像上面例子中给定一个苹果,他的大小、颜色、形状都是给定的,分别为大、红、不规则

Y=各个类的概率就是在给定苹果的大小、颜色、形状的条件下,苹果的质量为优、差的概率

上图公式推导中的代表这个特征的取值,还是拿苹果例子说明,如果X=(大、红、不规则),那么x1的就是大,x2的就是红,x3的就是不规则。

苹果的特征向量只有三维,他没有x4,x5,x6........,他只有x1-x3,但是如果输入的是一副图像的HOG特征向量,他可能就会有x4,x5,x6......

以上就是朴素贝叶斯理论的讲解了,代码(python)后续会出,有问题可以在评论区指出,谢谢大家。

### 关于朴素贝叶斯分类器的示例题目及解答 #### 示例题目:使用朴素贝叶斯分类器进行鸢尾花种类预测 给定一组鸢尾花的数据集,该数据集中包含了四种特征(萼片长度、萼片宽度、花瓣长度和花瓣宽度),目标是根据这些特征来预测鸢尾花的具体种类。 为了完成这个任务,下面是一个完整的 Python 实现过程: ```python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score, classification_report def iris_naive_bayes(): # 加载鸢尾花数据集 data = load_iris() X = data.data # 特征向量 y = data.target # 类别标签 # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建高斯朴素贝叶斯模型实例并拟合训练数据 model = GaussianNB().fit(X_train, y_train) # 使用测试数据评估模型性能 predictions = model.predict(X_test) print(f'Accuracy Score: {accuracy_score(y_test, predictions)}') print('Classification Report:') print(classification_report(y_test, predictions)) ``` 上述代码展示了如何利用 `scikit-learn` 库中的 `GaussianNB()` 函数快速构建一个基于高斯分布假设下的朴素贝叶斯分类器,并应用于鸢尾花数据集上。通过分割原始数据为训练集与验证集的方式,能够有效地衡量所建立模型的好坏程度[^2]。 此外,在处理实际问题时,如果遇到某些类别下特定属性从未观察到的情况,则可以通过引入拉普拉斯平滑技术来调整概率估计值,从而防止由于某个条件概率等于零而导致最终联合概率也为零的现象发生[^5]。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值