机器学习中的朴素贝叶斯

朴素贝叶斯

1、概述+推导

先验概率:基于统计的概率,是基于以往历史经验和分析得到的结果,不需要依赖当前发生的条件。

后验概率:从条件概率而来,由因推果,基于当下发生的事件计算之后的概率,依赖于当前发生的条件。

条件概率:记事件A发生的概率为P(A),事件B发生的概率为P(B),则B事件发生的前提下,A事件发生的概率为P(A|B)。
P ( A ∣ B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(AB)}{P(B)} P(A∣B)=P(B)P(AB)

贝叶斯公式就是基于条件概率通过P(B|A)来求解P(A|B):
P ( A ∣ B ) = P ( B ∣ A ) × P ( A ) P ( B ) P(A|B)=\frac{P(B|A)×P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)×P(A)

而朴素贝叶斯就是假设事件(特征)之间没有联系,给定训练数据集,其中每个样本x都包括n维特征,也就是x={x1,x2,x3,...,xn},有k种类别即y={y1,y2,y3,...,yk},对于给定的样本,判断属于什么标记的类别,根据贝叶斯定理可以获得P(yk|x)
P ( y k ∣ x ) = P ( x ∣ y k ) × P ( y k ) ∑ k P ( x ∣ y k ) × P ( y k ) P(y_k|x)=\frac{P(x|y_k)×P(y_k)}{\sum_kP(x|y_k)×P(y_k)} P(yk∣x)=∑kP(x∣yk)×P(yk)P(x∣yk)×P(yk)

而朴素贝叶斯对条件概率分布做出了独立性的假设,所以每个特征相互独立,此时条件概率可以转化为:
P ( x ∣ y k ) = P ( x 1 , x 2 , . . . , x n ∣ y k ) = ∏ i = 1 n P ( x i ∣ y k ) P(x|y_k)=P(x_1,x_2,...,x_n|y_k)=\prod_{i=1}^{n}P(x_i|y_k) P(x∣yk)=P(x1,x2,...,xn∣yk)=i=1∏nP(xi∣yk)

将此式带入到上述的贝叶斯公式中得出:
P ( y k ∣ x ) = P ( y k ) × ∏ i = 1 n P ( x i ∣ y k ) ∑ k P ( y k ) × ∏ i = 1 n P ( x i ∣ y k ) P(y_k|x)=\frac{P(y_k)×\prod_{i=1}^{n}P(x_i|y_k)}{\sum_kP(y_k)×\prod_{i=1}^{n}P(x_i|y_k)} P(yk∣x)=∑kP(yk)×∏i=1nP(xi∣yk)P(yk)×∏i=1nP(xi∣yk)
适用范围:

  • 特征之间是条件独立的情况下,否则分类效果不好,朴素就是指条件独立
  • 主要被使用在文档分类中

常见模型:

  • 高斯模型:处理特征是连续型变量的情况
  • 多项式模型:最常见,要求特征是离散数据
  • 伯努利模型:要求特征是离散的,且为布尔类型,即true和false,或者1和0

2、拉普拉斯平滑

主要是为了解决零概率的情况,所以在分子和分母分别加上一个数值,每个分量x的计数加一造成的概率变化几乎可以忽略不记,却可以有效的避免零概率事件。
P ( A ∣ B ) = N i + α N + α m α :拉普拉斯平滑系数,一般指定为 1 N i : A 中符合条件 B 的样本数量 N :符合条件 C 的所有样本数量 m :所有独立样本的总数 P(A|B)=\frac{N_i+α}{N+αm}\\ α:拉普拉斯平滑系数,一般指定为1\\ N_i:A中符合条件B的样本数量\\ N:符合条件C的所有样本数量\\ m:所有独立样本的总数 P(A∣B)=N+αmNi+αα:拉普拉斯平滑系数,一般指定为1Ni:A中符合条件B的样本数量N:符合条件C的所有样本数量m:所有独立样本的总数

3、相关api

导包:

from sklearn.naive_bayes import MultinomialNB

调用:

MultinomialNB(alpha = 1.0)

alpha:拉普拉斯平滑系数

4、优缺点

优点:

  • 朴素贝叶斯模型有稳定的分类效率。
  • 对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。
  • 对缺失数据不太敏感,算法也比较简单,常用于文本分类。

缺点:

  • 需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
  • 对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)。
相关推荐
www_3dyz_com22 分钟前
人工智能在VR展览中扮演什么角色?
人工智能·vr
刘不二28 分钟前
大模型应用—HivisionIDPhotos 证件照在线制作!支持离线、换装、美颜等
人工智能·开源
feilieren37 分钟前
AI 视频:初识 Pika 2.0,基本使用攻略
人工智能·ai视频
开放知识图谱1 小时前
论文浅尝 | HippoRAG:神经生物学启发的大语言模型的长期记忆(Neurips2024)
人工智能·语言模型·自然语言处理
威化饼的一隅2 小时前
【多模态】swift-3框架使用
人工智能·深度学习·大模型·swift·多模态
人类群星闪耀时2 小时前
大模型技术优化负载均衡:AI驱动的智能化运维
运维·人工智能·负载均衡
编码小哥2 小时前
通过opencv加载、保存视频
人工智能·opencv
发呆小天才O.oᯅ2 小时前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
lovelin+v175030409662 小时前
智能电商:API接口如何驱动自动化与智能化转型
大数据·人工智能·爬虫·python
rpa_top2 小时前
RPA 助力电商:自动化商品信息上传,节省人力资源 —— 以影刀 RPA 为例【rpa.top】
大数据·前端·人工智能·自动化·rpa