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

8.25 朴素贝叶斯

一、贝叶斯

1.贝叶斯公式
P(C|X) = P(C) · P(X|C) / P(X)
P(C):先验 Prior,对类别的事前信念。
P(X|C):似然 Likelihood,在该类别下出现这组特征的概率。
P(C|X):后验 Posterior,看到特征后类别的新信念。
P(X):证据 Evidence,仅作归一化,可忽略常数。

2.“朴素”假设
特征之间条件独立:P(x1,x2,…,xn|C)=∏i P(xi|C)。
→ 把高维联合概率拆成一堆一维概率相乘,极大减少需要估计的参数。

3.决策规则
对一个新样本 X=(x1,…,xn):
ŷ = argmax_C P(C) · ∏i P(xi|C)
实际代码里用 log 化乘法为加法,防止下溢:score(C)=log P(C)+Σi log P(xi|C)。

4.模型训练(即“计数”)
先验:P(C)=类别 C 的样本数 / 总样本数。
似然:P(xi|C)= 类别 C 中特征 xi 出现的次数 / 类别 C 的总特征计数。
P(xi|C)= (count(xi,C)+1) / (count(C)+|V|),|V| 为特征取值数或词典大小。

5.拼写纠错实例

问题:用户输入 D="tlp",候选词 h∈{top, tip, tap…}。
计算:h* = argmax_h P(h) · P(D|h)
P(h):词频先验,可来自大规模语料。
P(D|h):编辑距离/键盘邻近度生成的“生成模型”概率。

6.垃圾邮件过滤实例
类别:h+(垃圾)、h–(正常)。
特征:邮件中出现的单词 w1,…,wn。
P(h+|D) ∝ P(h+) · ∏i P(wi|h+)
P(h–|D) ∝ P(h–) · ∏i P(wi|h–)
决策:若 P(h+|D)/P(h–|D) > τ 则判为垃圾(τ 可调)。

二、
1. 多项式朴素贝叶斯模型

适用于离散型数据,参数 alpha 为浮点型可选参数,默认为 0.1,用于控制拉普拉斯平滑。
参数“是否考虑先验概率”默认为 true,表示需根据数据集计算词频作为先验概率。
通过网格搜索法可调整超参数,实现模型性能优化。

2. 高斯朴素贝叶斯模型

适用于连续性特征变量,假设特征服从正态分布(呈钟形曲线),在均值附近概率高,远离均值则迅速下降。
优于多项式模型处理连续数据,因其更符合实际数据分布,可显著提升准确率。

3. 伯努利朴素贝叶斯模型

用于处理仅含“有/无”两种取值的二值特征,如文档中是否包含某关键词,要求每个特征为布尔类型(0 或 1),在文本分类中可表示特征是否存在。
参数“是否进行特征二值化”可设定阈值(如大于 0.5),默认为 0,可按需设置;若设为 null,则认为特征已二值化。
与多项式模型不同,伯努利模型强调特征的二值属性,适用于垃圾邮件识别等场景。

4. 模型调用与训练流程

模型调用使用 fit 方法进行训练,X 代表训练集特征,Y 代表训练集标签,训练完成后用于预测
预测时使用测试集特征(X_test)进行推理,输出各分类的概率值,可选择是否对概率取对数(log)以简化计算,通过 score 方法可获取模型评分(如查准率、查全率等),用于评估模型性能。

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

相关文章:

  • [AI] Firebase Studio :AI+云端 IDE
  • C++深度优先搜素
  • 说明哈夫曼树查询过程的例子
  • 基于MATLAB的遥感图像变化检测
  • 嵌入式系统学习Day22(进程)
  • 【React】案例:B站评论
  • C#/.NET/.NET Core技术前沿周刊 | 第 51 期(2025年8.18-8.24)
  • Coze用户账号设置修改用户头像-后端源码
  • 【系统架构设计师】数据库设计(一):数据库技术的发展、数据模型、数据库管理系统、数据库三级模式
  • 容器学习day02
  • [React]Antd Cascader组件地区选择
  • SpringBoot整合Elasticsearch
  • SQL语法指南
  • Docker基本使用方法和常用命令
  • Spring文件上传核心技术解析
  • Java 编辑器与 IDE:开发者手中的利剑与盾牌
  • 彻底解决PyCharm中Matplotlib无法显示图形及中文乱码问题
  • Nginx + Certbot配置 HTTPS / SSL 证书
  • 无人机航拍数据集|第21期 无人机四种动物目标检测YOLO数据集2857张yolov11/yolov8/yolov5可训练
  • 数据分析编程第三步:分组统计
  • 无人机航拍数据集|第17期 无人机油棕树目标检测YOLO数据集1803张yolov11/yolov8/yolov5可训练
  • 读《精益数据分析》:A/B测试与多变量测试
  • 【41页PPT】SAP数据仓库和数据分析方案(附下载方式)
  • 【C++游记】List的使用和模拟实现
  • 【机器学习入门】1.1 绪论:从数据到智能的认知革命
  • Java基础 8.25
  • 如何在Debian服务器上设置Node.js日志轮转
  • 深度学习入门第一课——神经网络实现手写数字识别
  • java后端如何实现下载功能
  • Python爬虫实战:Selenium模拟操作爬取马蜂窝旅游攻略