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

【第二章:机器学习与神经网络概述】03.类算法理论与实践-(2)朴素贝叶斯分类器

第二章: 机器学习与神经网络概述

第三部分:类算法理论与实践

第二节:朴素贝叶斯分类器

内容:条件独立假设、拉普拉斯平滑、分类准确率。

朴素贝叶斯是一类基于贝叶斯定理且假设特征之间相互独立的概率分类模型,广泛应用于文本分类、垃圾邮件过滤、情感分析等任务中。


一、贝叶斯定理基础回顾

贝叶斯定理描述了在已知先验概率和条件概率下,如何更新后验概率:

P(C \mid X) = \frac{P(X \mid C) \cdot P(C)}{P(X)}

  • P(C∣X):在给定特征 X 的情况下属于类别 C 的概率(后验概率)

  • P(C):类别的先验概率

  • P(X∣C):类别 C 下出现特征 X 的概率

  • P(X):所有类别下特征 X 的总概率(可忽略用于比较)


二、朴素假设:特征条件独立

朴素贝叶斯对贝叶斯定理进行了简化,假设特征之间相互独立,因此:

P(X \mid C) = \prod_{i=1}^{n} P(x_i \mid C)

于是:

P(C \mid X) \propto P(C) \cdot \prod_{i=1}^{n} P(x_i \mid C)

这大大简化了模型训练与推理过程。


三、模型训练与预测流程
  1. 统计先验概率 P(C):每个类别出现的频率

  2. 统计条件概率 P(x_i \mid C):特征在每个类别中出现的频率

  3. 应用拉普拉斯平滑(见下)防止零概率问题

  4. 预测时计算各类别后验概率,选择概率最大的类别作为结果


四、拉普拉斯平滑(Laplacian Smoothing)

当某些特征在某类中未出现时,P(x_i \mid C) = 0,使整体概率为零。
解决方法是对所有概率加一个正数(通常是1):

P(x_i \mid C) = \frac{\text{count}(x_i, C) + 1}{\text{count}(C) + k}

其中 k 是特征总数(对于多项式模型,k 为词汇表大小)。


五、朴素贝叶斯常见变体
模型类型适用数据类型条件概率分布
高斯贝叶斯连续型数据高斯正态分布
多项式贝叶斯计数型特征(如词频)多项式分布
伯努利贝叶斯二元特征(如是否出现)伯努利分布

六、Python 示例(使用 sklearn)
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split# 示例数据
texts = ["good product", "very bad", "excellent service", "worst experience", "nice quality"]
labels = [1, 0, 1, 0, 1]  # 1=好评, 0=差评# 文本向量化
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)# 训练模型
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2)
model = MultinomialNB()
model.fit(X_train, y_train)# 测试准确率
accuracy = model.score(X_test, y_test)
print(f"测试准确率: {accuracy:.2f}")
测试准确率: 0.00

七、评价指标
  • 准确率(Accuracy):预测正确的样本数 / 总样本数

  • 精确率(Precision)、召回率(Recall)、F1-score:在不均衡样本中更常用

  • 混淆矩阵:展示预测与真实类别的分布情况


八、优点与局限
优点说明
计算效率高适用于大规模数据
简单易实现理解与部署容易
可解释性强输出为概率,可量化信心度
局限说明
特征独立假设不现实实际数据特征常常相关
对连续变量建模能力弱需假设高斯分布或离散化

http://www.lryc.cn/news/574146.html

相关文章:

  • Auto-GPT vs ReAct:两种智能体思路对决
  • 【MySQL基础】MySQL复合查询全面解析:从基础到高级应用
  • 左神算法之给定一个数组arr,返回其中的数值的差值等于k的子数组有多少个
  • Flask学习笔记
  • Java数据结构第二十四期:探秘 AVL 树,当二叉搜索树学会 “自我调节”
  • 腾讯云 CodeBuddy 技术评估报告(2025年):编码效率提升40%,复杂工程处理能力领先Cursor 35%​
  • 【Java开发日记】我们详细讲解一下 Java 中 new 一个对象的流程
  • Nginx与Tomcat:谁更适合你的服务器?
  • Python 商务数据分析—— NumPy 学习笔记Ⅱ
  • react gsap动画库使用详解之scroll滑动动画
  • 分布式系统 - 分布式锁及实现方案
  • 【开源工具】一键解决使用代理后无法访问浏览器网页问题 - 基于PyQt5的智能代理开关工具开发全攻略
  • 爬虫002-----urllib标准库
  • 企业主动风险管理破局供应链“黑天鹅”,善用期货
  • PDF-XSS
  • 游戏盾高效防范DDoS攻击的安全防护
  • 跨平台是.NET Framework4.5与.NET8的核心区别
  • 用ESP8266+MQTT构建完全属于自己的物联网平台
  • Life:Internship in OnSea Day 1
  • Excel工具箱WPS版 增强插件 文本处理、批量录入 数据对比 高级排序
  • vivado使用非自带的第三方编辑器
  • 采集MFC软件的数据方法记录
  • Redis Stream 消息队列详解及 PHP 实现
  • 光伏电站 “智慧大脑”:安科瑞 Acrel-1000DP 分布式监控系统技术解析
  • 单片机测ntc热敏电阻的几种方法(软件)
  • 【Android】Activity 的生命周期和启动模式
  • SAP将指定EXCEL工作SHEET的数据上传到内表
  • 基于 BERT 与语义角色标注的细粒度中文仇恨言论检测
  • 剑指offer40_数字序列中某一位的数字
  • 中国风国潮通用PPT模版