深度学习7——常见机器学习算法
·
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:某个训练时刻保存下来的模型参数文件
更多推荐




所有评论(0)