1. 逻辑回归

逻辑回归虽然名称中包含“回归”,但主要用于分类任务。

基本流程:

线性组合
→ Sigmoid
→ 输出正类概率
→ BCE计算损失

例如垃圾邮件分类,有多个输入特征:

x1 = 邮件长度
x2 = 链接数量
x3 = 敏感词数量

模型先计算:

z = w1*x1 + w2*x2 + w3*x3 + b

再经过Sigmoid:

p = sigmoid(z)

假设:

p = 0.92
分类阈值 = 0.80

因为0.92大于0.80,所以预测为垃圾邮件。

逻辑回归的本质:

线性模型 + Sigmoid + 二分类交叉熵

优点:

  • 简单
  • 训练速度快
  • 可解释性较好
  • 适合作为分类任务Baseline

缺点:

  • 决策边界本质上是线性的
  • 对复杂非线性关系表达能力有限

2. 决策树

决策树通过不断选择特征和划分条件进行预测。

示例:

年龄 > 30?
├── 是:收入 > 10万?
│   ├── 是:购买
│   └── 否:不购买
└── 否:是否为学生?
    ├── 是:购买
    └── 否:不购买

每个内部节点表示一个判断条件,每个叶子节点表示最终预测结果。

优点:

  • 容易理解
  • 可解释性强
  • 能处理非线性关系
  • 不需要复杂的特征归一化

缺点:

  • 单棵树很容易过拟合
  • 数据轻微变化可能导致树结构明显变化

常见限制方法:

  • 限制最大深度
  • 限制叶子节点数量
  • 设置节点最小样本数
  • 剪枝

3. 随机森林

随机森林由多棵相互有差异的决策树组成。

训练每棵树时通常进行两种随机化:

  • 随机采样训练数据
  • 随机选择部分特征

例如:

原始数据
├── 随机样本和特征 → 树1
├── 随机样本和特征 → 树2
└── 随机样本和特征 → 树3

预测时:

  • 分类任务:多数投票
  • 回归任务:预测结果取平均

优点:

  • 比单棵决策树更不容易过拟合
  • 对噪声和异常数据相对鲁棒
  • 能处理非线性问题
  • 可以评估特征重要性

核心思想:

多个有差异的弱相关模型
→ 集成投票或平均
→ 降低方差

3. XGBoost

XGBoost也是由多棵树组成,但与随机森林的训练方式不同。

随机森林:

多棵树相互独立
→ 可以并行训练
→ 最后投票或平均

XGBoost:

树1预测
→ 树2学习树1的错误
→ 树3继续修正前面模型的错误
→ 多棵树加权求和

随机森林主要通过“多棵不同的树取平均”降低过拟合。

XGBoost主要通过“后面的树不断修正前面的残差”提升模型能力。

优点:

  • 对结构化表格数据通常表现很好
  • 支持正则化
  • 能处理复杂非线性关系
  • 工业界应用广泛

缺点:

  • 参数较多
  • 树过多或过深仍可能过拟合
  • 不适合直接处理原始图像、语音等高维非结构化输入

4. KNN

KNN即K近邻算法,是一种基于距离的监督学习算法。

预测过程:

计算目标样本与所有训练样本的距离
→ 找到距离最近的K个样本
→ 分类任务进行投票
→ 回归任务进行平均

例如K=5:

最近的5个邻居:
猫、猫、狗、猫、狗

最终预测:
猫

特点:

  • 几乎没有显式训练过程
  • 预测时才进行大量距离计算
  • 因此也被称为懒惰学习

优点:

  • 原理简单
  • 适合小规模数据
  • 能表达非线性决策边界

缺点:

  • 数据量大时预测很慢
  • 对特征尺度敏感
  • 对无关特征敏感
  • 高维空间中距离可能失去区分度

使用KNN前通常需要对特征进行标准化或归一化。


5. SVM

支持向量机主要用于分类任务,也可以用于回归。

核心思想:

寻找一个分类边界
使该边界到两类最近样本的距离最大

边界两侧距离最近的样本称为支持向量,它们对最终决策边界影响最大。

可以简单理解为:

不只是把两类样本分开
还要尽可能留出最宽的安全间隔

优点:

  • 在中小规模数据上表现较好
  • 对高维特征有效
  • 最大间隔思想具有较好的泛化能力
  • 可以通过核函数处理非线性分类

缺点:

  • 大规模数据训练较慢
  • 对参数和核函数选择敏感
  • 输出结果的概率解释不如逻辑回归直接

常见核函数:

  • 线性核
  • 多项式核
  • RBF高斯核

6. 几种传统模型的核心区别

模型 核心思想 主要特点
逻辑回归 线性组合后输出概率 简单、可解释、线性边界
决策树 按条件逐层划分 易理解,但容易过拟合
随机森林 多棵独立树投票 稳定、降低方差
XGBoost 后面的树修正前面的错误 表格数据效果强
KNN 最近邻样本投票 几乎不训练,预测较慢
SVM 寻找最大间隔边界 中小数据、高维特征效果好

一次完整训练流程

1. 检查数据质量
2. 划分训练集、验证集和测试集
3. 确定模型结构和激活函数
4. 确定损失函数
5. 确定优化器和学习率
6. 使用训练集进行前向传播和反向传播
7. 每个epoch后在验证集上评估
8. 保存验证集效果最好的模型权重
9. 分析是否欠拟合或过拟合
10. 调整数据、超参数或模型结构
11. 模型和方案完全确定后,在测试集上最终评估

参数、超参数和模型结构需要区分:

  • 参数:训练过程中自动学习,例如权重w和偏置b
  • 超参数:训练前人工设置,例如学习率、batch size、weight decay
  • 模型结构:网络层数、隐藏维度、激活函数等
  • Checkpoint:某个训练时刻保存下来的模型参数文件
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐