模型基础01:机器学习基础
从训练与推理的区别、特征工程、过拟合与泛化,到评估指标和常见算法,理解机器学习的核心概念和适用边界。
机器学习是 AI 的基础,理解它才能真正明白大模型为什么能工作、为什么会出错。这篇文章从核心概念入手,把训练、特征、过拟合、泛化这些词讲清楚。
训练与推理:模型的两个阶段
机器学习模型的生命周期分为两个阶段:训练和推理。理解这两个阶段的区别,是理解模型能力的关键。
训练阶段
训练就是让模型从数据中学习规律的过程:
- 数据准备:收集标注数据,划分为训练集、验证集、测试集
- 模型初始化:定义模型结构,初始化参数(权重)
- 前向传播:输入数据经过模型,得到预测结果
- 计算损失:对比预测结果和真实标签,计算误差
- 反向传播:根据误差调整模型参数(权重)
- 迭代优化:重复上述过程,直到模型收敛
训练集 vs 验证集 vs 测试集:
| 数据集 | 用途 | 占比 | 注意事项 |
|---|---|---|---|
| 训练集 | 学习参数 | 60-80% | 模型直接接触的数据 |
| 验证集 | 调超参数、评估拟合 | 10-20% | 模型间接接触,用于早停 |
| 测试集 | 最终评估 | 10-20% | 模型从未接触,模拟真实场景 |
推理阶段
推理就是用训练好的模型做预测的过程:
- 输入数据:用户输入或生产数据
- 前向传播:数据经过模型,得到预测结果
- 后处理:根据业务规则调整输出
推理阶段模型参数是固定的,不会改变。这和人类的”学以致用”很像——训练是学习知识,推理是用学到的知识解决问题。
特征工程:数据的表达
特征是模型学习的原材料,特征工程决定了模型能学到什么。
什么是特征
特征是对原始数据的结构化表达。比如用户画像:
- 原始数据:用户浏览记录、点击行为、购买历史
- 特征:用户年龄、消费频次、偏好类别、活跃度评分
特征类型
| 类型 | 示例 | 处理方式 |
|---|---|---|
| 数值型 | 年龄、收入、温度 | 归一化、标准化 |
| 类别型 | 性别、城市、产品类别 | 独热编码、嵌入编码 |
| 文本型 | 评论、标题、描述 | TF-IDF、Word2Vec、BERT 嵌入 |
| 时间型 | 时间戳、日期、季节 | 提取小时、周末、节假日 |
| 图像型 | 图片像素、颜色通道 | CNN 自动提取特征 |
特征选择与处理
好的特征应该满足:
- 相关性:与目标变量相关
- 独立性:特征之间不高度相关
- 稳定性:特征分布在训练和推理时一致
- 可解释性:特征含义清晰
过拟合与泛化:模型的关键权衡
过拟合是机器学习最常见的问题,理解它才能判断模型的真实能力。
什么是过拟合
过拟合是模型在训练集上表现很好,但在测试集或真实场景中表现很差的现象。
直观理解:模型记住了训练数据的细节和噪声,而不是学习到普遍规律。
过拟合的表现
- 训练集准确率很高,测试集准确率很低
- 模型在新数据上预测错误率高
- 模型参数值很大,对输入变化敏感
过拟合的原因
- 模型复杂度太高:参数太多,能记住所有训练样本
- 训练数据太少:数据不足以支撑复杂模型
- 数据噪声:训练数据包含错误或异常值
- 特征太多:无关特征引入噪声
如何防止过拟合
| 方法 | 原理 | 适用场景 |
|---|---|---|
| 增加数据 | 提供更多样例,减少记忆 | 数据不足时 |
| 正则化 | 惩罚过大的参数,限制模型复杂度 | 大多数场景 |
| 早停 | 在验证集性能下降时停止训练 | 深度学习 |
| 数据增强 | 对训练数据做变换,增加多样性 | 图像、语音 |
| Dropout | 训练时随机丢弃部分神经元 | 深度学习 |
| 简化模型 | 减少参数数量或特征数量 | 模型过于复杂时 |
泛化能力
泛化能力是模型在未见过的数据上的表现能力。泛化能力强的模型才是好模型。
泛化误差 = 偏差 + 方差
- 偏差:模型的平均预测与真实值的差距(欠拟合)
- 方差:模型在不同数据集上预测结果的波动(过拟合)
偏差-方差权衡:
- 模型太简单 → 偏差大,方差小(欠拟合)
- 模型太复杂 → 偏差小,方差大(过拟合)
- 最优模型 → 偏差和方差都小
评估指标:如何衡量模型好坏
不同任务需要不同的评估指标,选对指标才能正确评估模型。
分类任务指标
| 指标 | 公式 | 含义 | 适用场景 |
|---|---|---|---|
| 准确率 | TP+TN / 总数 | 预测正确的比例 | 类别均衡 |
| 精确率 | TP / (TP+FP) | 预测为正的样本中真正为正的比例 | 关注误报 |
| 召回率 | TP / (TP+FN) | 真正为正的样本中被预测为正的比例 | 关注漏报 |
| F1 分数 | 2精确率召回率/(精确率+召回率) | 精确率和召回率的调和平均 | 需要平衡两者 |
| AUC | ROC 曲线下面积 | 区分正负样本的能力 | 排序任务 |
回归任务指标
| 指标 | 公式 | 含义 | 适用场景 |
|---|---|---|---|
| MAE | 平均绝对误差 | 预测值与真实值的平均距离 | 对异常值不敏感 |
| MSE | 均方误差 | 预测值与真实值差的平方的平均 | 对异常值敏感 |
| RMSE | 均方根误差 | MSE 的平方根 | 与原始数据单位一致 |
| R² | 1 - RSS/TSS | 模型解释方差的比例 | 衡量拟合程度 |
大模型评估的特殊性
大模型(LLM)的评估更复杂,因为:
- 多任务能力:一个模型要评估多个任务
- 生成质量:需要评估文本的连贯性、准确性、多样性
- 人类偏好:需要人工或基于人类反馈的评估
- 成本效率:评估本身需要消耗大量计算资源
常见算法:从简单到复杂
了解常见算法的特点,才能选择合适的工具。
传统机器学习算法
| 算法 | 类型 | 特点 | 适用场景 |
|---|---|---|---|
| 线性回归 | 回归 | 简单、可解释 | 连续值预测 |
| 逻辑回归 | 分类 | 概率输出、可解释 | 二分类 |
| 决策树 | 分类/回归 | 可解释、处理非线性 | 特征交互 |
| 随机森林 | 集成 | 减少过拟合、鲁棒性强 | 通用 |
| XGBoost/LightGBM | 集成 | 梯度提升、高性能 | 竞赛常用 |
| SVM | 分类/回归 | 高维空间、核技巧 | 小样本、高维数据 |
| KNN | 分类/回归 | 简单、惰性学习 | 数据量大时效率低 |
| 朴素贝叶斯 | 分类 | 概率模型、假设特征独立 | 文本分类 |
深度学习算法
| 算法 | 类型 | 特点 | 适用场景 |
|---|---|---|---|
| CNN | 图像 | 空间特征提取 | 图像识别、目标检测 |
| RNN/LSTM | 序列 | 时间序列建模 | 文本生成、语音识别 |
| Transformer | 序列 | Attention 机制、并行计算 | NLP、多模态 |
| GAN | 生成 | 对抗训练、生成逼真样本 | 图像生成、数据增强 |
| AutoEncoder | 自监督 | 降维、特征学习 | 异常检测、数据压缩 |
项目判断清单
- 数据量小(<1000 条)→ 用传统算法,不要用深度学习
- 数据量中等(1000-10万)→ 用 XGBoost/LightGBM,效果好且快
- 数据量大(>10万)→ 考虑深度学习
- 需要可解释性 → 用线性回归、决策树,避免深度学习黑箱
- 需要处理文本/图像 → 用 Transformer/CNN
- 训练集和测试集分布不一致 → 先做数据对齐,再训练
- 模型在验证集上表现好但线上差 → 检查数据泄露或分布漂移