读书笔记---Naive Bayes

本文详细介绍了朴素贝叶斯分类器的基本原理,包括基于贝叶斯定理的模型描述及特征之间的条件独立假设。探讨了如何通过统计训练数据来估计类别后验概率,并讨论了模型优化方法如计算优化和平滑处理。

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

读书笔记—Naive Bayes

  依然是《统计学习方法》的读书笔记。
  朴素贝叶斯是一种基于贝叶斯定理和特征之间条件独立(这是一个较强的条件)假设的分类模型。与KNN不同,它仅用于特征为标称型数据的分类(如果硬是要把连续型数据转换成离散作为特征。。也可以吧),是一个基于统计的概率模型。

1.模型描述

  朴素贝叶斯有一个特征之间条件独立的假设,虽然这是一个较强的条件,但是在许多情况下都还是适用的。朴素贝叶斯的cost function用的是数据类别的后验概率,这个后验概率我们可以通过贝叶斯定理得到:

P(Y|X⃗ )=P(X⃗ |Y)P(Y)P(X⃗ )

  由于加了特征条件独立的假设,P(X⃗ |Y)就可以简单地拆成P(X⃗ |Y)=P(x1|Y)P(x2|Y)...P(xn|Y)。而后面这一串连乘可以从训练数据中统计得到(平率估计概率)。而在这个后验概率公式中,其分母是一个归一化项而已,因此我们仅需要考虑分子即可。
  这个模型一定程度上可以说是模型数据生成的过程(不过通过特征条件独立假设大大简化了生成的过程),因此被称之为生成模型(generative model)。
  为了应用这个模型,我们要从训练集中得到的信息(即训练过程)是P(X⃗ |Y)P(Y),换句话说就是学到X⃗ Y的联合概率分布P(X⃗ ,Y)。我们得到这些信息的做法就是通过统计训练集中出现每个特征xiy的出现频率,在模型实现时,要统计并维护一个S×K的似然值矩阵(每个特征s在类别k中出现的频率)和一个K×1的先验值向量(每个类别k出现的频率)。

  因此,得到了cost function,也就是后验概率分布后(这是一个离散分布),我们从直觉的角度想就是要最大化这个后验概率分布,即:
f(Y)=argmaxYP(Y|X⃗ )argmaxYP(X⃗ |Y)P(Y)

这样我们就估计出了特征为X⃗ 的测试数据最可能属于的类别了。
  从形式上看直接从似然函数P(X⃗ |Y)估计Y也是可以的,即统计出每个Y生成各个特征的概率(会形成一个矩阵),那么生成这个目标数据的似然函数即为P(X⃗ |Y)=Ki=1P(xi|Y),然后Y的取值范围里选的能使P(X⃗ |Y)最大那个Y即可,但可以看出,这样的做法丢失了P(Y)的信息,相比后验概率更不靠谱。

2.模型优化

(1)计算优化

  在实际应用中,我们统计得到概率P(X⃗ |Y)P(Y)后,不是直接将其相乘得到后验分布,而是计算

logP(Y|X⃗ )=logP(X⃗ |Y)+logP(Y)=i=1KlogP(xi|Y)+logP(Y)

  使用log值有一下两个优点:

1) log是单调增函数,不会改变原函数的单调性。当概率过小的时候,使用log值可以防止由于小数太小造成的计算机数据下溢问题(太接近0,被截断)。
2) 使用log将乘法转换成加法,可以提高计算机运行效率。

(2)数据平滑

  当我们用极大似然估计得到概率值时,若出现了0概率,不论计算log还是直接计算后验概率,都会出现问题。比如log(0)就不能求;而后验计算时,若其中一项是0,那么由于后验是将所有概率相乘,也就变成0了,而事实是该似然值只是出现概率很低。所以需要对0概率进行平滑。
  平滑的本质是在数据中加入一些伪计数(pseudo count),使统计时那些为0的项变成一个相对较小的非0项,但又保证整体概率分布基本不变。最常见的是在每个统计项上加入一个常数值,比如对于似然值:

Pλ(Xi=ail|Y=Ck)=Nj=1I(X(j)i=ail,Y(j)=Ck)+λNj=1I(Y(j)=Ck)+Siλ

  其中λ是平滑系数;k=1,2,...,K代表类别;j=1,2,...,N代表训练集中的数据点;l=1,2,...,Si代表特征i的可能取值;Xi=ail表示测试集数据中的特征i取值为l;Ni=1I(X(j)i=ajl|Yi=Ck)是统计训练集中类别Y=Ck,特征Xail的数据的出现次数;Si是测试数据中特征j取值的个数。上式用l=1,2,...,Si遍历所有特征,得到这个特征Xi关于取值的分布,因此对于每个特征都有这样的一个分布,而我们此时要做的是在所有特征值上的平滑,当λ=1时,被称之为拉普拉斯平滑。
  另外,对于先验P(Y),也有类似的平滑:
Pλ(Y=Ck)=Nj=1I(Y(j)=Ck)+λN+Kλ
内容概要:本文档详细介绍了一个基于MATLAB实现的电力负荷预测项目,该项目运用遗传算法(GA)优化支持向量回归(SVR)和支持向量机(SVM)模型的超参数及特征选择。项目旨在解决电力系统调度、发电计划、需求侧响应等多个应用场景中的关键问题,特别是在应对高比例可再生能源接入带来的非线性、非平稳负荷预测挑战。文中涵盖了从数据接入、特征工程、模型训练到部署上线的全流程,包括详细的代码示例和GUI设计,确保方案的可复现性和实用性。 适用人群:具备一定编程基础,尤其是熟悉MATLAB语言和机器学习算法的研发人员;从事电力系统调度、电力市场交易、新能源消纳等相关领域的工程师和技术专家。 使用场景及目标:①通过构建面向小时级别的滚动预测,输出高分辨率负荷轨迹,为日内与日前滚动调度提供边际成本最小化的依据;②在负荷高峰和供给紧张时,通过价格信号或直接负荷控制实施需求侧响应,提升削峰效率并抑制反弹;③为灵活性资源(调峰机组、储能、可中断负荷)提供更清晰的出清路径,降低弃风弃光率,提升系统整体清洁度;④帮助市场主体更准确地评估边际出清价格变化,提高报价成功率与收益稳定性,同时降低由预测偏差带来的风险敞口;⑤在运维与审计场景中,对预测产生的原因进行说明,保障业务侧与监管侧的可追溯性。 阅读建议:此资源不仅提供了完整的代码实现和GUI设计,更注重于理解GA优化过程中涉及到的数据处理、特征构造、模型选择及评估等核心步骤。因此,在学习过程中,建议结合实际案例进行实践,并深入研究每个阶段的具体实现细节,特别是适应度函数的设计、超参数空间的定义以及多样性维护机制的应用。此外,关注项目中关于数据对齐、缺失值处理、特征标准化等方面的最佳实践,有助于提高模型的鲁棒性和泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值