Day 13:朴素贝叶斯分类器
📋 目录
- 朴素贝叶斯概述
- 贝叶斯定理基础
- 朴素贝叶斯的"朴素"假设
- 三种朴素贝叶斯模型详解
- 朴素贝叶斯的优缺点
- 拉普拉斯平滑
第一部分:朴素贝叶斯概述
1.1 什么是朴素贝叶斯?
朴素贝叶斯(Naive Bayes) 是一系列基于贝叶斯定理 的分类算法,核心假设是特征之间相互独立。
关键特点:
- 属于生成式模型 (学习联合概率 P(X,Y)P(X,Y)P(X,Y))
- 训练速度极快(只需计算概率)
- 对小数据集表现良好
1.2 应用场景
| 应用领域 | 例子 | 特点 |
|---|---|---|
| 文本分类 | 垃圾邮件过滤、情感分析 | 特征独立假设基本成立 |
| 金融预警 | 极端涨跌预警、信用评分 | 快速筛选高风险样本 |
| 医疗诊断 | 疾病预测 | 可解释性强 |
| 推荐系统 | 用户偏好预测 | 冷启动友好 |
1.3 朴素贝叶斯与其他模型对比
| 特性 | 逻辑回归 | KNN | SVM | 朴素贝叶斯 |
|---|---|---|---|---|
| 训练速度 | 快 | 无训练 | 慢 | 最快 |
| 预测速度 | 快 | 慢 | 快 | 最快 |
| 小数据表现 | 一般 | 好 | 差 | 优秀 |
| 可解释性 | 高 | 低 | 低 | 高 |
| 特征独立假设 | 无 | 无 | 无 | 有 |
第二部分:贝叶斯定理基础
2.1 条件概率
定义 :在事件 B 发生的条件下,事件 A 发生的概率。
P(A∣B)=P(A∩B)P(B) P(A|B) = \frac{P(A \cap B)}{P(B)} P(A∣B)=P(B)P(A∩B)
2.2 贝叶斯定理
P(A∣B)=P(B∣A)⋅P(A)P(B) P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)⋅P(A)
解读:
- P(A)P(A)P(A):先验概率(观察到数据前的信念)
- P(B∣A)P(B|A)P(B∣A):似然(给定类别下,数据的概率)
- P(B)P(B)P(B):证据(数据的边际概率)
- P(A∣B)P(A|B)P(A∣B):后验概率(观察到数据后的信念)
2.3 应用到分类问题
对于分类问题,我们想计算:
P(y=c∣x)=P(x∣y=c)⋅P(y=c)P(x) P(y = c|\mathbf{x}) = \frac{P(\mathbf{x}|y=c) \cdot P(y=c)}{P(\mathbf{x})} P(y=c∣x)=P(x)P(x∣y=c)⋅P(y=c)
预测规则 :
y^=argmaxcP(y=c∣x)=argmaxcP(x∣y=c)⋅P(y=c) \hat{y} = \arg\max_c P(y = c|\mathbf{x}) = \arg\max_c P(\mathbf{x}|y = c) \cdot P(y = c) y^=argcmaxP(y=c∣x)=argcmaxP(x∣y=c)⋅P(y=c)
由于 P(x)P(\mathbf{x})P(x) 对所有类别相同,可以忽略。
第三部分:朴素贝叶斯的"朴素"假设
3.1 特征独立性假设
核心假设 :给定类别 yyy 后,各个特征之间条件独立 。
P(x∣y=c)=P(x1,x2,...,xn∣y=c)=∏i=1nP(xi∣y=c) P(\mathbf{x}|y = c) = P(x_1, x_2, \ldots, x_n|y = c) = \prod_{i=1}^n P(x_i|y = c) P(x∣y=c)=P(x1,x2,...,xn∣y=c)=i=1∏nP(xi∣y=c)
3.2 为什么这个假设"朴素"?
现实情况:特征之间通常存在相关性。
金融数据例子:
- RSI 和 MACD 都与价格相关 → 它们不独立
- 今日收益率和明日收益率 → 时间序列自相关
为什么还管用?:
- 模型对依赖关系具有一定鲁棒性
- 在小数据集上表现优异
- 决策边界可能仍然正确
3.3 独立性假设的影响
| 情况 | 效果 |
|---|---|
| 特征完全独立 | 最优分类器 |
| 特征弱相关 | 仍可良好工作 |
| 特征强相关 | 概率估计不准,但分类边界可能仍正确 |
第四部分:三种朴素贝叶斯模型
4.1 高斯朴素贝叶斯(Gaussian Naive Bayes)
适用场景 :连续特征,假设服从正态分布。
公式 :
P(xi∣y=c)=12πσic2exp(−(xi−μic)22σic2) P(x_i|y = c) = \frac{1}{\sqrt{2\pi\sigma_{ic}^2}} \exp\left(-\frac{(x_i-\mu_{ic})^2}{2\sigma_{ic}^2}\right) P(xi∣y=c)=2πσic2 1exp(−2σic2(xi−μic)2)
其中:
- μic\mu_{ic}μic:类别 ccc 中特征 iii 的均值
- σic2\sigma_{ic}^2σic2:类别 ccc 中特征 iii 的方差
在量化中应用:
- 技术指标(RSI、MACD、波动率)
- 收益率序列
4.2 多项式朴素贝叶斯(Multinomial Naive Bayes)
适用场景 :离散特征(如词频计数),假设服从多项分布。
公式 :
P(x∣y=c)=(∑ixi)!∏ixi!∏iP(xi∣y=c)xi P(\mathbf{x}|y = c) = \frac{(\sum_i x_i)!}{\prod_i x_i!} \prod_i P(x_i|y = c)^{x_i} P(x∣y=c)=∏ixi!(∑ixi)!i∏P(xi∣y=c)xi
在量化中应用:
- 新闻情感词频分析
- 订单流计数数据
4.3 伯努利朴素贝叶斯(Bernoulli Naive Bayes)
适用场景 :二值特征 (0/1),假设服从伯努利分布。
公式 :
P(xi∣y=c)=P(xi=1∣y=c)xi⋅(1−P(xi=1∣y=c))1−xi P(x_i|y = c) = P(x_i = 1|y = c)^{x_i} \cdot (1 - P(x_i = 1|y = c))^{1 - x_i} P(xi∣y=c)=P(xi=1∣y=c)xi⋅(1−P(xi=1∣y=c))1−xi
在量化中应用:
- 技术指标的二值化(如 RSI > 70 → 1)
- 事件标志(如财报发布 → 1)
4.4 模型选择指南
| 数据类型 | 推荐模型 | 例子 |
|---|---|---|
| 连续值(正态分布) | 高斯NB | 技术指标、收益率 |
| 计数/频数 | 多项式NB | 词频、交易次数 |
| 二值特征 | 伯努利NB | 阈值化后的指标 |
第五部分:朴素贝叶斯的优缺点
5.1 优点
| 优点 | 说明 |
|---|---|
| 训练极快 | 只需计算统计量(均值、方差、概率) |
| 预测极快 | 简单的查表和乘法运算 |
| 小数据友好 | 不需要大量样本 |
| 天然处理多分类 | 直接计算每类概率 |
| 可解释性强 | 可以查看每个特征的影响 |
| 对无关特征鲁棒 | 独立假设使其不受无关特征影响 |
5.2 缺点
| 缺点 | 说明 | 解决方案 |
|---|---|---|
| 特征独立假设 | 现实中很少成立 | 特征选择、降维 |
| 零概率问题 | 未出现过的特征组合概率为0 | 拉普拉斯平滑 |
| 概率估计不准 | 独立假设导致概率失真 | 关注分类而非概率 |
| 对特征分布敏感 | 高斯假设可能不成立 | 尝试其他分布或分箱 |
5.3 在量化交易中的价值
核心价值 :快速筛选和预警系统
当需要极快的预测速度 (如实时风控)或处理高维稀疏数据时,朴素贝叶斯是理想的基线模型和预警系统。
第六部分:拉普拉斯平滑(Laplace Smoothing)
6.1 零概率问题
问题 :如果测试集中出现训练集未出现过的特征值,概率会变成 0。
P(xi∣y=c)=NicNc=0⇒P(y=c∣x)=0 P(x_i|y = c) = \frac{N_{ic}}{N_c} = 0 \Rightarrow P(y = c|\mathbf{x}) = 0 P(xi∣y=c)=NcNic=0⇒P(y=c∣x)=0
6.2 拉普拉斯平滑公式
P(xi∣y=c)=Nic+αNc+αK P(x_i|y = c) = \frac{N_{ic} + \alpha}{N_c + \alpha K} P(xi∣y=c)=Nc+αKNic+α
其中:
- NicN_{ic}Nic:类别 ccc 中特征 iii 的计数
- NcN_cNc:类别 ccc 的总样本数
- KKK:特征 iii 的可能取值数
- α\alphaα:平滑参数(通常取 1)→ 加一平滑
6.3 平滑参数的影响
| α 值 | 效果 |
|---|---|
| α = 0 | 无平滑,可能过拟合 |
| α = 1 | 加一平滑,最常用 |
| α > 1 | 强平滑,适用于高维稀疏数据 |