【机器学习入门】朴素贝叶斯算法

发布时间:2026/8/5 22:50:39

【机器学习入门】朴素贝叶斯算法
文章目录前言一、核心理论贝叶斯定理与“朴素”假设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朴素贝叶斯轻量化、速度快但受限于特征独立假设不适合特征高度相关的复杂业务。

相关新闻

运维实操分享|ESXi 9.1.0.0200全新集成全驱动定制镜像,DIY 迷你主机 / 台式机完美兼容

运维实操分享|ESXi 9.1.0.0200全新集成全驱动定制镜像,DIY 迷你主机 / 台式机完美兼容

2026/8/5 22:40:39

最近不少同行私信提问,自己组装台式、迷你主机搭建 Homelab 虚拟化环境,使用官方原版 ESXi 部署总是踩一堆硬件兼容坑:各类新旧 NVMe 固态识别失败、USB 外置 2.5G/5G 网卡无驱动、主板瑞昱螃蟹网卡装好直接断网,手动 PowerCLI 封…

MetaGPT | 第十三章:配置系统与 LLM Provider 适配

MetaGPT | 第十三章:配置系统与 LLM Provider 适配

2026/8/5 22:40:39

预计阅读时间:50 分钟 难度等级:进阶 本章导读 前面几章我们已经读完了从需求到 PRD、系统设计、任务拆解、代码生成和项目仓储模型的主链路。 这些能力最终都离不开一个基础问题: Action 调用 LLM 时,到底使用哪个模型、哪个 API 地址、哪个 Provider、哪个超时和哪个…

VMFS‑6 reservations和limits是否影响存储性能?原理与最佳实践

VMFS‑6 reservations和limits是否影响存储性能?原理与最佳实践

2026/8/5 22:40:39

在VMFS‑6分布式文件系统中,由存储I/O控制(SIOC)提供的IO Reservations(IO预留)与IO Limits(IO上限限制)会直接影响虚拟机存储IO性能。Reservation为虚拟机保障最低IO资源配额,用于存…

Linux系统学习【基础部分(四)】

Linux系统学习【基础部分(四)】

2026/8/5 23:50:50

一、命令:type:显示命令类型。which:显示可执行文件的位置。help:获取 shell 内建命令的帮助信息。man:显示命令的手页。apropos:显示适合的命令清单。whatis:显示手册页简述。info:…

为什么92%的前端工程师还没用上AI?揭秘企业级AI前端落地的4大认知断层与破局公式

为什么92%的前端工程师还没用上AI?揭秘企业级AI前端落地的4大认知断层与破局公式

2026/8/5 23:50:50

更多请点击: https://kaifayun.com 第一章:AI学前端开发 当AI开始学习前端开发,它不再只是代码的执行者,而是具备理解HTML语义、CSS布局逻辑与JavaScript运行时行为的学习体。现代大语言模型通过海量开源前端项目训练&#xff0c…

物联网设备二维码设计:微信扫码背后的技术逻辑与工程实践

物联网设备二维码设计:微信扫码背后的技术逻辑与工程实践

2026/8/5 23:50:50

在实际物联网设备管理和智能硬件开发中,设备身份标识与交互方式的设计是产品体验的关键一环。H1000这类设备后脑勺的二维码,通常不是用于普通用户社交软件扫描的,其背后承载的是设备管理、配置、绑定或技术支持等专业功能。当开发者、运维人员…

四款主流AI知识库工具横向评测:功能定位与场景适配分析

四款主流AI知识库工具横向评测:功能定位与场景适配分析

2026/8/5 23:50:50

引言 随着人工智能技术的普及,AI知识库工具已成为个人与团队信息管理的重要辅助。本文选取了四款在市场上具有一定代表性的产品——ima、Ai好记、NotebookLM 和 印象笔记,从核心功能维度进行横向对比分析,旨在客观呈现其技术特性与适用边界&a…

全星研发项目管理APQP软件系统——让研发合规与效率一步到位

全星研发项目管理APQP软件系统——让研发合规与效率一步到位

2026/8/5 23:50:50

全星研发项目管理APQP软件系统——让研发合规与效率一步到位 全星APQP,IATF16949/VDA标准,融FMEA/PPAP/CP/SPC/MSA/ECN,AI赋能,研发合规提效 在汽车及高端制造行业,IATF 16949审核趋严、客户PPAP提交要求越来越高、F…

夸克网盘自动化助手:智能转存与媒体库管理的终极解决方案

夸克网盘自动化助手:智能转存与媒体库管理的终极解决方案

2026/8/5 23:40:50

夸克网盘自动化助手:智能转存与媒体库管理的终极解决方案 【免费下载链接】quark_auto_save 夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙 项目地址: https://gitcode.com/gh_mirrors/qu/quark_auto_save 在数字资源日益丰富的今天&…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Go + 云原生微服务架构实战:2026 企业级开发完整指南

Go + 云原生微服务架构实战:2026 企业级开发完整指南

2026/8/5 0:09:22

Go 云原生微服务架构实战:2026 企业级开发完整指南 CNCF 最新数据显示,2026 年云原生相关岗位增速同比上涨 62%。Kubernetes、Docker、Etcd、Prometheus 等云原生基础设施全部由 Go 语言编写。Go 语言凭借简洁的语法、出色的并发模型、极快的编译速度和…

LangChain项目上线就翻车?团队接手的拦路虎从来不是代码

LangChain项目上线就翻车?团队接手的拦路虎从来不是代码

2026/8/5 0:09:22

聊《一个LangChain项目上线后,最先暴露的并不是代码问题》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 摘要:我见过太多LangChain Demo能跑的项目,一交出去就崩。不是模…

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南

2026/8/5 0:09:22

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现只能在特定客户端播放?当你想在车载音响、…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/4 13:34:51

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…