当前位置: 首页 > news >正文

朴素贝叶斯学习笔记

一、贝叶斯基础

1. 贝叶斯核心背景

        人物与贡献:托马斯·贝叶斯(约1701-1761,英国数学家),生前为解决“逆概”问题撰写文章,死后其提出的贝叶斯方法才被认可。

        两类概率问题

        正向概率:已知事件条件(如袋中N个白球、M个黑球),求某结果概率(摸出黑球的概率)。

        逆向概率:未知事件条件(如袋中黑白球比例),通过观测结果(摸出球的颜色)推测事件条件。

2. 贝叶斯公式(以学生性别与着装为例推导)

        已知条件:男生占比60%(P(Boy)=0.6)、女生占比40%(P(Girl)=0.4);男生100%穿长裤(P(Pants|Boy)=1),女生50%穿长裤(P(Pants|Girl)=0.5)。

        公式推导:已知学生穿长裤,推测其为女生的概率,最终得出通用贝叶斯公式:P(A|B) = \frac{P(A) \times P(B|A)}{P(B)},其中P(A)是先验概率,P(B|A)是条件概率,P(B)是证据概率。

二、朴素贝叶斯算法核心

1. 核心假设

假设特征之间相互独立、互不影响,以此简化条件概率计算,这是“朴素”的核心含义。

2. 关键公式

对观测数据D和猜测h,因P(D)对所有猜测为常数,比较时可忽略,故P(h|D) \propto P(h) \times P(D|h)。其中:

        P(h):先验概率,即猜测h本身发生的可能性。

        P(D|h):似然概率,即猜测h生成观测数据D的可能性。

三、朴素贝叶斯典型实例

1. 拼写纠正

        问题:用户输入不在字典的单词D,推测其真实想输入的单词h。

        逻辑:比较不同可能正确单词h_1,h_2,...的P(h|D),概率最大的h即为结果。示例:输入“tlp”时,因“top”先验概率(出现频率)高于“tip”,故推测为“top”。

2. 垃圾邮件分类

        问题:给定由n个单词d_1,d_2,...d_n组成的邮件D,判定其为垃圾邮件(h_+)或正常邮件(h_-)。

        逻辑

        先验概率:P(h_+)(垃圾邮件在邮件库中的比例)、P(h_-)(正常邮件比例),可通过统计获取。

        似然概率:因特征独立,P(D|h_+) = P(d_1|h_+) \times P(d_2|h_+) \times ... \times P(d_n|h_+),P(d_i|h_+)为单词d_i在垃圾邮件中的出现频率。

        比较P(h_+|D)和P(h_-|D),概率大的即为分类结果。

四、三种常见朴素贝叶斯模型(基于sklearn)

1. 多项式朴素贝叶斯(MultinomialNB)

        适用场景:离散型数据(如文本分类,统计单词出现次数)。

        关键参数

        alpha:浮点型,默认1.0,控制拉普拉斯平滑(alpha=0时不添加)。

        fit_prior:布尔型,默认True,是否考虑先验概率。

        class_prior:默认None,可手动指定类别先验概率。

        代码导入:from sklearn.naive_bayes import MultinomialNB

2. 高斯朴素贝叶斯(GaussianNB)

        适用场景:连续型数据(如身高、体重),假设特征服从正态分布。

        关键参数:priors,默认None,手动指定先验概率(未指定则用样本极大似然法计算)。

        代码导入:from sklearn.naive_bayes import GaussianNB

3. 伯努利朴素贝叶斯(BernoulliNB)

        适用场景:离散型数据且特征取值仅为0/1(如文本中“单词是否出现”)。

        关键参数

        alpha:同多项式模型,控制拉普拉斯平滑。

        binarize:浮点数或None,默认0,特征二值化阈值(为None时假定特征已二值化)。

        fit_prior、class_prior:同多项式模型。

        代码导入:from sklearn.naive_bayes import BernoulliNB

五、模型常用方法(sklearn)

方法 功能 
fit(X,Y) 在数据集(X特征,Y标签)上拟合模型 
predict(X) 对数据集X进行类别预测 
predict_proba(X) 预测X属于每个类别的概率 
predict_log_proba(X) 预测X属于每个类别的概率对数值 
score(X,Y) 计算模型在数据集(X,Y)上的准确率 

http://www.dtcms.com/a/349648.html

相关文章:

  • Selenium框架Java实践截图服务
  • 面向过程与面向对象
  • 了解检验和
  • 四,设计模式-原型模式
  • 设计模式5-代理模式
  • 无锁队列的设计与实现
  • jdbc相关内容
  • 基于TimeMixer的帕金森语音分类:WAV音频输入与训练全流程
  • 基于开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序的新开非连锁品牌店开业引流策略研究
  • 云计算之中间件与数据库
  • 蜂窝物联网模组在冷链运输行业的应用价值
  • 盲盒经济新风口:盲盒抽谷机小程序系统开发全解析
  • 审核问题——首次进入APP展示隐私政策弹窗
  • JavaWeb(八)EL表达式,JSTL标签
  • 阿里云短信验证码服务
  • 奔赴少年CIIU携专辑《我们的出发》正式出道 与J.Y. Park同台首秀备受关注
  • 基于SpringBoot的招聘管理系统【2026最新】
  • 【Linux基础知识系列】第一百一十篇 - 使用Nmap进行网络安全扫描
  • C# NX二次开发:绘图区控件和指定矢量控件详解
  • [MH22D3开发笔记]2. SPI,QSPI速度究竟能跑多快,双屏系统的理想选择
  • 基于WebTransport(底层QUIC)实现视频传输(HTML+JavaScript)
  • C语言基础:(二十五)预处理详解
  • 从0到1:用 Qwen3-Coder 和 高德MCP 助力数字文旅建造——国庆山西游
  • Rust面试题及详细答案120道(58-65)-- 集合类型
  • 解锁处暑健康生活
  • Docker:部署Nginx
  • week4-[一维数组]数码个数
  • Gemini 2.5 Flash-Lite 与 GPT-5-mini:高性能低成本模型,如何选择?
  • 链表OJ习题(1)
  • redis-缓存-持久化