【机器学习入门】朴素贝叶斯算法
文章目录前言一、核心理论贝叶斯定理与“朴素”假设1.1 贝叶斯定理基础公式1.2 朴素假设朴素贝叶斯的核心1.3 手工演算示例1.4 拉普拉斯平滑alpha参数的作用二、sklearn 朴素贝叶斯三、朴素贝叶斯算法案例3.1 GaussianNB 鸢尾花数据集分类3.2 MultinomialNB 垃圾邮件文本分类演示四、朴素贝叶斯优缺点总结五、适用场景总结六、总结前言在机器学习分类算法中朴素贝叶斯是极简、高效的概率型算法。它以贝叶斯定理为数学基础叠加特征条件独立朴素假设构建分类模型广泛应用于垃圾邮件过滤、文本分类、情感分析、多分类任务。一、核心理论贝叶斯定理与“朴素”假设1.1 贝叶斯定理基础公式贝叶斯定理原始公式P ( 类别 ∣ 特征 ) P ( 类别 ) ⋅ P ( 特征 ∣ 类别 ) P ( 特征 ) P(类别|特征)\frac{P(类别) \cdot P(特征|类别)}{P(特征)}P(类别∣特征)P(特征)P(类别)⋅P(特征∣类别)​多特征场景下若有特征A、B、C类别DP ( D ∣ A , B , C ) P ( D ) ⋅ P ( A , B , C ∣ D ) P ( A , B , C ) P(D|A,B,C)\frac{P(D) \cdot P(A,B,C|D)}{P(A,B,C)}P(D∣A,B,C)P(A,B,C)P(D)⋅P(A,B,C∣D)​符号说明P ( D ) P(D)P(D)先验概率类别D在全部样本中的占比P ( A , B , C ∣ D ) P(A,B,C|D)P(A,B,C∣D)联合条件概率类别D下特征A、B、C同时发生的概率P ( D ∣ A , B , C ) P(D|A,B,C)P(D∣A,B,C)后验概率已知特征A/B/C样本属于类别D的概率分母P ( A , B , C ) P(A,B,C)P(A,B,C)对所有类别均为同一个常数做分类判断时只需要比较分子大小分母可以省略。1.2 朴素假设朴素贝叶斯的核心朴素贝叶斯增加给定类别时所有特征条件相互独立的强朴素假设。于是联合条件概率可以直接拆解为每个特征条件概率的乘积P ( A , B , C ∣ D ) P ( A ∣ D ) ⋅ P ( B ∣ D ) ⋅ P ( C ∣ D ) P(A,B,C|D)P(A|D)\cdot P(B|D)\cdot P(C|D)P(A,B,C∣D)P(A∣D)⋅P(B∣D)⋅P(C∣D)这一步拆解极大降低计算量也是朴素贝叶斯速度快、轻量化的根本来源。注意现实业务中特征往往并不独立该假设大多不成立但朴素贝叶斯依然经常取得不错效果。1.3 手工演算示例数据集3个特征A/B/C标签D0/1二分类共6条样本ABCD101001110100100110000111需求预测样本 A1, B1, C0 所属类别。1. 计算先验概率P ( D 0 ) 3 / 6 0.5 P(D0) 3/6 0.5P(D0)3/60.5P ( D 1 ) 3 / 6 0.5 P(D1) 3/6 0.5P(D1)3/60.52. 分别计算两个类别下每个特征的条件概率类别 0 (D0)P ( A 1 ∣ 0 ) 2 / 3 P(A1|0) 2/3P(A1∣0)2/3D0的3个样本中A1有2个P ( B 1 ∣ 0 ) 1 / 3 P(B1|0) 1/3P(B1∣0)1/3D0的3个样本中B1有1个P ( C 0 ∣ 0 ) 2 / 3 P(C0|0) 2/3P(C0∣0)2/3D0的3个样本中C0有2个类别 1 (D1)P ( A 1 ∣ 1 ) 1 / 3 P(A1|1) 1/3P(A1∣1)1/3D1的3个样本中A1有1个P ( B 1 ∣ 1 ) 2 / 3 P(B1|1) 2/3P(B1∣1)2/3D1的3个样本中B1有2个P ( C 0 ∣ 1 ) 1 / 3 P(C0|1) 1/3P(C0∣1)1/3D1的3个样本中C0有1个3. 带入朴素贝叶斯公式计算每一类的后验分子类别 0 的后验分子P ( D 0 ) ⋅ P ( A 1 ∣ 0 ) ⋅ P ( B 1 ∣ 0 ) ⋅ P ( C 0 ∣ 0 ) 0.5 × 2 3 × 1 3 × 2 3 2 27 ≈ 0.074 P(D0) \cdot P(A1|0) \cdot P(B1|0) \cdot P(C0|0) 0.5 \times \frac{2}{3} \times \frac{1}{3} \times \frac{2}{3} \frac{2}{27} \approx 0.074P(D0)⋅P(A1∣0)⋅P(B1∣0)⋅P(C0∣0)0.5×32​×31​×32​272​≈0.074类别 1 的后验分子P ( D 1 ) ⋅ P ( A 1 ∣ 1 ) ⋅ P ( B 1 ∣ 1 ) ⋅ P ( C 0 ∣ 1 ) 0.5 × 1 3 × 2 3 × 1 3 1 27 ≈ 0.037 P(D1) \cdot P(A1|1) \cdot P(B1|1) \cdot P(C0|1) 0.5 \times \frac{1}{3} \times \frac{2}{3} \times \frac{1}{3} \frac{1}{27} \approx 0.037P(D1)⋅P(A1∣1)⋅P(B1∣1)⋅P(C0∣1)0.5×31​×32​×31​271​≈0.037结论对比分子大小类别 0 的后验概率更大0.074 0.037预测样本属于类别 0。1.4 拉普拉斯平滑alpha参数的作用朴素贝叶斯会遇到零概率问题某个特征在某类别样本中完全没有出现过P ( 特征 ∣ 类别 ) 0 P(特征|类别)0P(特征∣类别)0相乘之后整体后验概率直接归零分类直接失效。解决手段拉普拉斯平滑alpha1拉普拉斯平滑所有特征计数1分母同步增加特征取值数量彻底消除零概率0 alpha 1利德斯通平滑alpha0关闭平滑极易触发零概率bug在实际项目中通常不建议使用。二、sklearn 朴素贝叶斯sklearn提供三套朴素贝叶斯实现分别适配不同数据类型。GaussianNB高斯朴素贝叶斯适用于连续型数据假设每个类别中的特征服从高斯分布P ( x ∣ y ) 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 P(x|y) \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}P(x∣y)2πσ2​1​e−2σ2(x−μ)2​MultinomialNB多项式朴素贝叶斯适用于离散计数数据词频、统计计数文本分类首选。class sklearn.naive_bayes.MultinomialNB(alpha1.0, fit_priorTrue, class_priorNone)参数说明alpha平滑系数默认 1.0fit_priorTrue自动学习类别先验概率class_prior手动指定先验概率BernoulliNB伯努利朴素贝叶斯适用于二值特征只关注特征“有没有出现”。常用内置属性class_log_prior_各类别的对数先验概率feature_log_prob_每个类别下各个特征的对数条件概率class_count_训练集每个类别的样本总数feature_count_每个类别内部各特征出现总次数。三种朴素贝叶斯模型区分模型适用数据典型场景MultinomialNB离散计数特征文本词频、新闻、垃圾邮件GaussianNB连续浮点数值特征鸢尾花、身高温度等普通数值数据集BernoulliNB0/1 二值特征判断关键词是否出现三、朴素贝叶斯算法案例3.1 GaussianNB 鸢尾花数据集分类importpandasaspdfromsklearn.model_selectionimporttrain_test_splitfromsklearn.naive_bayesimportGaussianNBfromsklearnimportmetrics# 读取数据集datapd.read_csv(iris.csv)# 特征跳过第0列索引取到倒数第二列标签取最后一列xdata.iloc[:,1:-1]ydata.iloc[:,-1]# 划分训练集、测试集x_train,x_test,y_train,y_testtrain_test_split(x,y,test_size0.2,random_state0)# 构建并训练高斯朴素贝叶斯模型classifierGaussianNB()classifier.fit(x_train,y_train)# 训练集预测与评估train_predictedclassifier.predict(x_train)print(训练集分类报告\n)print(metrics.classification_report(y_train,train_predicted,digits4))# 测试集预测与评估test_predictedclassifier.predict(x_test)print(测试集分类报告\n)print(metrics.classification_report(y_test,test_predicted,digits4))3.2 MultinomialNB 垃圾邮件文本分类演示importpandasaspdfromsklearn.feature_extraction.textimportTfidfVectorizerfromsklearn.model_selectionimporttrain_test_splitfromsklearn.naive_bayesimportMultinomialNBfromsklearn.metricsimportclassification_report# 模拟文本数据集文本标签垃圾邮件0/正常1text_datapd.DataFrame({text:[免费领现金点链接,今天下午三点开会,中奖通知速领,周末聚餐通知],label:[0,1,0,1]})X_texttext_data[text]y_texttext_data[label]# 文本转数字特征TF‑IDFtfTfidfVectorizer()X_vectf.fit_transform(X_text)X_train,X_test,y_train,y_testtrain_test_split(X_vec,y_text,test_size0.2,random_state1)# 多项式朴素贝叶斯适配离散词频mnbMultinomialNB(alpha1)mnb.fit(X_train,y_train)y_predmnb.predict(X_test)print(classification_report(y_test,y_pred,digits4))四、朴素贝叶斯优缺点总结优点训练、预测速度极快计算开销小原理通俗易懂代码实现简单天然支持多分类任务在小样本数据集上也可以输出稳定 baseline可并行计算适合海量文本工业场景。缺点条件独立假设过于理想化现实特征大多存在相关性会降低模型精度不同数据类型需要选择对应朴素贝叶斯模型连续特征不能直接使用 MultinomialNB对噪声、异常样本比较敏感在复杂图像等高维非稀疏数据集效果弱于树模型、神经网络。五、适用场景总结优先选择朴素贝叶斯文本分类任务垃圾邮件过滤、新闻分类、情感分析需要低延迟的轻量级实时分类数据集样本量较小快速搭建 baseline 基准模型简单二分类、多分类任务。六、总结贝叶斯定理是概率数学公式朴素贝叶斯 贝叶斯定理 特征条件独立假设是可直接使用的机器学习分类算法三套朴素贝叶斯模型对应不同数据连续数值用GaussianNB离散计数词频用MultinomialNB0‑1 二值特征使用BernoulliNBalpha平滑参数解决朴素贝叶斯的零概率问题文本任务默认设置alpha1朴素贝叶斯轻量化、速度快但受限于特征独立假设不适合特征高度相关的复杂业务。

相关新闻

如何用InvenTree构建智能库存管理系统:5大实战场景解析

如何用InvenTree构建智能库存管理系统:5大实战场景解析

如何用InvenTree构建智能库存管理系统:5大实战场景解析 【免费下载链接】InvenTree Open Source Inventory Management System 项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree InvenTree作为开源库存管理系统,通过Python/Django后端…

2026/8/5 22:49:34 阅读更多 →
海外求职害怕高强度 Networking?用这 3 个低沟通硬核岗位破局「蒸汽求职分享」

海外求职害怕高强度 Networking?用这 3 个低沟通硬核岗位破局「蒸汽求职分享」

在海外求职的赛道上,几乎所有的求职指南都在强调“Networking(社交网络)”、“Elevator Pitch(电梯演讲)”和“Public Speaking(公开演讲)”。然而,对于很多性格内向(I 人…

2026/8/5 22:49:34 阅读更多 →
英特尔Day 0支持下的MiniMax H3多卡GPU部署实战指南

英特尔Day 0支持下的MiniMax H3多卡GPU部署实战指南

在实际的多模态视频模型部署场景中,如何高效利用硬件资源,特别是将模型推理任务分布到多张GPU卡上,是提升处理能力和吞吐量的关键。英特尔近期为开源多模态视频模型MiniMax H3提供了Day 0级别的支持,这意味着在模型发布初期&#…

2026/8/5 22:49:34 阅读更多 →

最新新闻

AIGC论文查重现状与降AI率技术指南

AIGC论文查重现状与降AI率技术指南

1. 论文AIGC查重问题的现状与挑战2026年毕业季来临之际,AI生成内容(AIGC)在学术写作中的使用已经成为一个无法回避的现实问题。根据最新学术诚信调查报告显示,超过67%的高校教师表示在批改论文时遇到过明显的AI写作痕迹。各大查重…

2026/8/7 4:50:46 阅读更多 →
监管合规刚需:IoT智能锁如何解决网约房民宿身份核验与远程运维痛点

监管合规刚需:IoT智能锁如何解决网约房民宿身份核验与远程运维痛点

近年来国内网约房、民宿行业监管体系持续收紧,传统线下人工登记、钥匙交接、静态密码管控的运营模式,已无法适配实名溯源、安全管控、合规经营的行业新标准。分散式住宿业态普遍存在入住身份核验不严、外来人员管控失控、权限回收滞后、人工运维成本高昂…

2026/8/7 4:50:46 阅读更多 →
收藏这份2026最新AI大模型学习路线,小白也能轻松入门并掌握核心技术!

收藏这份2026最新AI大模型学习路线,小白也能轻松入门并掌握核心技术!

本文为AI大模型新手提供了四阶段学习路线,从基础编程、Web开发到应用开发、原理深耕、就业实战,帮助读者系统学习并掌握AI大模型技术。每个阶段都有明确目标、核心内容和落地项目,适合零基础转行者和有经验的开发者,助你轻松入门并…

2026/8/7 4:50:46 阅读更多 →
VS Code深度美化指南:从主题、字体到背景特效的完整配置方案

VS Code深度美化指南:从主题、字体到背景特效的完整配置方案

1. 从工具到工作台:为什么我们需要美化VS Code如果你每天有超过6个小时的时间,是盯着一个软件界面度过的,那么它就不再仅仅是一个工具,而成了你工作环境的一部分。VS Code正是这样一个存在。默认的“深色”主题固然经典&#xff0…

2026/8/7 4:50:46 阅读更多 →
Nginx SSL/TLS配置实战:从原理到安全加固与自动化运维

Nginx SSL/TLS配置实战:从原理到安全加固与自动化运维

1. 项目概述:为什么Nginx SSL配置是每个Web工程师的必修课在今天的互联网世界里,网站左上角那个小小的锁头图标,几乎成了用户判断一个网站是否可信的第一道门槛。这个锁头背后,就是HTTPS协议,而实现它的核心&#xff0…

2026/8/7 4:50:46 阅读更多 →
图片审核核心技术解析:从像素限制到AI模型实战

图片审核核心技术解析:从像素限制到AI模型实战

1. 项目概述:为什么图片审核的“像素”之争如此重要?在数字内容爆炸的今天,无论是社交平台的内容发布、电商平台的商品上架,还是企业内部文档的流转,图片审核都扮演着至关重要的“守门人”角色。你可能遇到过这样的场景…

2026/8/7 4:49:45 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →