机器学习之朴素贝叶斯

本文围绕朴素贝叶斯展开,介绍其是用于分类的生成模型,利用特征条件独立假设学习联合概率分布。阐述了先验、后验、条件概率等基本概念,给出分类器公式。还提及sklearn中的应用,分析其优缺点,以及处理连续值特征和未同时出现特征与标签值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

朴素贝叶斯简述

朴素贝叶斯用于分类,是一种生成模型。它利用特征条件独立假设学习联合概率分布,再通过贝叶斯定理求后验概率最大的输出。

基本概念
  1. 先验概率、后验概率、条件概率
    先验概率也叫事前概率,也就是没有新数据进来计算的事件的概率。而后验概率理所当然是新信息加入后更新的概率。后验概率是事件A在事件B发生前提下发生的概率。A在朴素贝叶斯中表示特征,B表示标签。至于条件概率,后验概率就是一种条件概率,某某事情发生的前提下另一件事情发生的概率。
  2. 联合概率分布
    联合概率分布是指两个及以上变量组成的随机变量的分布。
  3. 贝叶斯定理
    贝叶斯定理是根据先验概率求后验概率的公式
    P ( B i ∣ A ) = P ( B i ) P ( A ∣ B i ) ∑ j = 1 n P ( B j ) P ( A ∣ B j ) P\left( {{B_i}|A} \right) = \frac{{P\left( {{B_i}} \right)P\left( {A|{B_i}} \right)}}{{\sum\nolimits_{j = 1}^n {P\left( {{B_j}} \right)P\left( {A|{B_j}} \right)} }} P(BiA)=j=1nP(Bj)P(ABj)P(Bi)P(ABi)
  4. 条件独立假设
    P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . . , X ( n ) = x ( n ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P\left( {X = x|Y = {c_k}} \right) = P\left( {{X^{\left( 1 \right)}} = {x^{\left( 1 \right)}},...,{X^{\left( n \right)}} = {x^{\left( n \right)}}|Y = {c_k}} \right) = \prod\limits_{j = 1}^n {P\left( {{X^{\left( j \right)}} = {x^{\left( j \right)}}|Y = {c_k}} \right)} P(X=xY=ck)=P(X(1)=x(1),...,X(n)=x(n)Y=ck)=j=1nP(X(j)=x(j)Y=ck)
朴素贝叶斯分类器

根据先验概率和条件独立假设以及贝叶斯定理可以得到贝叶斯分类器:
y = a r g m a x c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y = \mathop {argmax}\limits_{{c_k}} P\left( {Y = {c_k}} \right)\prod\nolimits_j {P\left( {{X^{\left( j \right)}} = {x^{\left( j \right)}}|Y = {c_k}} \right)} y=ckargmaxP(Y=ck)jP(X(j)=x(j)Y=ck)

sklearn中的朴素贝叶斯
'''
	sklearn中有三个不同的朴素贝叶斯算法:
	GaussianNB——适合特征大部分是连续值
	MultinominalNB——适合特征大部分是多元离散值
	BernoulliNB——适合特征是二元离散值或者稀疏的多元离散值
'''
from sklearn.naive_bayes import GaussianNB
#GaussianNB的参数特别少,基本上不必设置
clf= GaussianNB()
clf.fit(data,label)
朴素贝叶斯面试
  1. 朴素贝叶斯优缺点
    优点:
          小规模数据表现很好;可以批量训练;算法简单,经常用于NLP;对缺失值不敏感
    缺点:
         条件独立性假设不容易满足;对数据格式很敏感
  2. 朴素贝叶斯是如何处理连续值特征的
    如果特征是连续值,可以假设特征服从某种概率分布,然后估计参数。
  3. 测试集里面某个特征的取值和它的标签值没有在训练集中同时出现过怎么办
    没有同时出现在训练集中不表示它不会发生,因此需要使用拉普拉斯平滑,在随机变量各个取值的频数上赋予一个正数 λ \lambda λ
内容概要:本文档详细介绍了基于MATLAB实现的多头长短期记忆网络(MH-LSTM)结合Transformer编码器进行多变量时间序列预测的项目实例。项目旨在通过融合MH-LSTM对时序动态的细致学习和Transformer对全局依赖的捕捉,显著提升多变量时间序列预测的精度和稳定性。文档涵盖了从项目背景、目标意义、挑战与解决方案、模型架构及代码示例,到具体的应用领域、部署与应用、未来改进方向等方面的全面内容。项目不仅展示了技术实现细节,还提供了从数据预处理、模型构建与训练到性能评估的全流程指导。 适合人群:具备一定编程基础,特别是熟悉MATLAB和深度学习基础知识的研发人员、数据科学家以及从事时间序列预测研究的专业人士。 使用场景及目标:①深入理解MH-LSTM与Transformer结合的多变量时间序列预测模型原理;②掌握MATLAB环境下复杂神经网络的搭建、训练及优化技巧;③应用于金融风险管理、智能电网负荷预测、气象预报、交通流量预测、工业设备健康监测、医疗数据分析、供应链需求预测等多个实际场景,以提高预测精度和决策质量。 阅读建议:此资源不仅适用于希望深入了解多变量时间序列预测技术的读者,也适合希望通过MATLAB实现复杂深度学习模型的开发者。建议读者在学习过程中结合提供的代码示例进行实践操作,并关注模型训练中的关键步骤和超参数调优策略,以便更好地应用于实际项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值