逻辑森林与贝叶斯算法简介

文章目录


一、逻辑森林:集成学习的代表

1.1 核心思想

逻辑森林并非标准术语,通常指随机森林(Random Forest)在分类任务中的应用,其本质是通过构建多棵决策树并集成结果来提高分类性能。

1.2 关键步骤

  1. 自助采样(Bootstrap):从训练集中有放回地抽取多个子样本
  2. 随机特征选择:每棵树分裂时只考虑特征子集
  3. 投票机制:所有树的预测结果通过多数投票决定最终分类

y ^ = mode { T 1 ( x ) , T 2 ( x ) , . . . , T n ( x ) } \hat{y} = \text{mode}\{T_1(x), T_2(x), ..., T_n(x)\} y^=mode{T1(x),T2(x),...,Tn(x)}

其中 T i ( x ) T_i(x) Ti(x) 表示第i棵树的预测结果。

1.3 示例说明

假设我们要判断一封邮件是否为垃圾邮件:

  • 树1基于"包含'免费'"特征判断为垃圾邮件
  • 树2基于"发件人未知"特征判断为垃圾邮件
  • 树3基于"无正常问候语"特征判断为正常邮件
    最终通过投票(2:1)判定为垃圾邮件

二、贝叶斯算法:概率推理的典范

2.1 贝叶斯定理基础

朴素贝叶斯分类器基于贝叶斯定理,假设特征之间相互独立:

P ( y ∣ X ) = P ( X ∣ y ) P ( y ) P ( X ) P(y|X) = \frac{P(X|y)P(y)}{P(X)} P(y∣X)=P(X)P(X∣y)P(y)

其中:

  • P ( y ∣ X ) P(y|X) P(y∣X):给定特征 X X X时类别 y y y的后验概率
  • P ( X ∣ y ) P(X|y) P(X∣y):似然概率
  • P ( y ) P(y) P(y):先验概率

2.2 朴素贝叶斯公式

对于特征向量 X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn):

P ( y k ∣ X ) ∝ P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) P(y_k|X) \propto P(y_k) \prod_{i=1}^n P(x_i|y_k) P(yk∣X)∝P(yk)i=1∏nP(xi∣yk)

预测时选择概率最大的类别:
y ^ = arg ⁡ max ⁡ y k P ( y k ) ∏ i = 1 n P ( x i ∣ y k ) \hat{y} = \arg\max_{y_k} P(y_k) \prod_{i=1}^n P(x_i|y_k) y^=argykmaxP(yk)i=1∏nP(xi∣yk)

2.3 文本分类示例

判断"便宜机票"是否为广告:

  • 先验: P ( 广告 ) = 0.3 P(广告)=0.3 P(广告)=0.3, P ( 正常 ) = 0.7 P(正常)=0.7 P(正常)=0.7
  • 条件概率:
    • P ( 便宜 ∣ 广告 ) = 0.4 P(便宜|广告)=0.4 P(便宜∣广告)=0.4, P ( 机票 ∣ 广告 ) = 0.3 P(机票|广告)=0.3 P(机票∣广告)=0.3
    • P ( 便宜 ∣ 正常 ) = 0.1 P(便宜|正常)=0.1 P(便宜∣正常)=0.1, P ( 机票 ∣ 正常 ) = 0.2 P(机票|正常)=0.2 P(机票∣正常)=0.2
  • 计算:
    P ( 广告 ∣ 文本 ) ∝ 0.3 × 0.4 × 0.3 = 0.036 P(广告|文本) ∝ 0.3×0.4×0.3=0.036 P(广告∣文本)∝0.3×0.4×0.3=0.036
    P ( 正常 ∣ 文本 ) ∝ 0.7 × 0.1 × 0.2 = 0.014 P(正常|文本) ∝ 0.7×0.1×0.2=0.014 P(正常∣文本)∝0.7×0.1×0.2=0.014

预测为广告类(0.036 > 0.014)

三、应用选择

特性 逻辑森林(随机森林) 朴素贝叶斯
假设条件 特征可交互 特征相互独立
计算效率 训练慢,预测快 训练预测都快
数据需求 需要较多数据 小样本也能工作
过拟合风险 通过集成降低 低风险
适用场景 复杂非线性关系 文本分类、简单特征

选择偏向

  • 随机森林当:特征交互复杂、数据充足、需要高精度
  • 朴素贝叶斯当:特征相对独立、需要快速部署、数据稀缺
相关推荐
淡海水1 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
leobertlan1 小时前
好玩系列:训练一个神经网络模型指导小孩玩游戏2-大局观教练
算法
Tisfy2 小时前
LeetCode 3876.构造奇偶一致的数组 II:三种情况分类讨论(其实还是脑筋急转弯)
算法·leetcode·题解·脑筋急转弯
乐迪信息3 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
来让爷抱一个3 小时前
2026 智能体安全实战:把护栏写进SPEC,MonkeyCode 云端跑通
人工智能·安全·机器学习
木井巳4 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
心抵鹊5 小时前
归并排序之翻转对(hard)
数据结构·算法
白山编程大哥5 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
shehuiyuelaiyuehao5 小时前
算法34,位运算符操作,总结
算法
Navigator_Z5 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode