机器学习 machine-learning

本技能是关于机器学习全生命周期的综合指南,涵盖从问题定义、数据准备、模型选择、训练评估到生产部署与监控的完整流程。关键词:机器学习、MLOps、模型训练、特征工程、超参数调优、模型部署、A/B测试、数据漂移、模型版本管理、CI/CD。

机器学习 0 次安装 0 次浏览 更新于 2/28/2026

name: machine-learning description: 机器学习开发模式、模型训练、评估与部署。适用于构建ML流水线、训练模型、特征工程、模型评估或将ML系统部署到生产环境。 author: Joseph OBrien status: unpublished updated: ‘2025-12-23’ version: 1.0.1 tag: skill type: skill

机器学习

全面的机器学习技能,涵盖从实验到生产部署的完整ML生命周期。

何时使用此技能

  • 构建机器学习流水线
  • 特征工程与数据预处理
  • 模型训练、评估与选择
  • 超参数调优与优化 n- 模型部署与服务
  • ML实验跟踪与版本管理
  • 生产ML监控与维护

ML开发生命周期

1. 问题定义

分类类型:

  • 二分类(垃圾邮件/非垃圾邮件)
  • 多分类(图像类别)
  • 多标签分类(文档标签)
  • 回归(价格预测)
  • 聚类(客户细分)
  • 排序(搜索结果)
  • 异常检测(欺诈检测)

按问题类型的成功指标:

问题类型 主要指标 次要指标
二分类 AUC-ROC, F1 精确率, 召回率, PR-AUC
多分类 宏平均F1, 准确率 每类指标
回归 RMSE, MAE R², MAPE
排序 NDCG, MAP MRR
聚类 轮廓系数, Calinski-Harabasz指数 Davies-Bouldin指数

2. 数据准备

数据质量检查:

  • 缺失值分析与填补策略
  • 异常值检测与处理
  • 数据类型验证
  • 分布分析
  • 目标泄漏检测

特征工程模式:

  • 数值型:缩放、分箱、对数变换、多项式特征
  • 类别型:独热编码、目标编码、频率编码、嵌入
  • 时间型:滞后特征、滚动统计、周期性编码
  • 文本型:TF-IDF、词嵌入、Transformer嵌入
  • 地理空间:距离特征、聚类、网格编码

训练/测试集划分策略:

  • 随机划分(标准)
  • 分层划分(类别不平衡)
  • 基于时间的划分(时序数据)
  • 分组划分(防止数据泄漏)
  • K折交叉验证

3. 模型选择

算法选择指南:

数据规模 问题 推荐模型
小 (<10K) 分类 逻辑回归, SVM, 随机森林
小 (<10K) 回归 线性回归, 岭回归, SVR
中 (10K-1M) 分类 XGBoost, LightGBM, 神经网络
中 (10K-1M) 回归 XGBoost, LightGBM, 神经网络
大 (>1M) 任意 深度学习, 分布式训练
表格数据 任意 梯度提升 (XGBoost, LightGBM, CatBoost)
图像 分类 CNN, ResNet, EfficientNet, Vision Transformers
文本 NLP Transformers (BERT, RoBERTa, GPT)
序列 时间序列 LSTM, Transformer, Prophet

4. 模型训练

超参数调优:

  • 网格搜索:穷举,适用于小空间
  • 随机搜索:高效,适用于大空间
  • 贝叶斯优化:智能探索 (Optuna, Hyperopt)
  • 早停法:防止过拟合

常见超参数:

模型 关键参数
XGBoost learning_rate, max_depth, n_estimators, subsample
LightGBM num_leaves, learning_rate, n_estimators, feature_fraction
随机森林 n_estimators, max_depth, min_samples_split
神经网络 learning_rate, batch_size, layers, dropout

5. 模型评估

评估最佳实践:

  • 始终使用预留的测试集进行最终评估
  • 开发过程中使用交叉验证
  • 检查过拟合(训练集与验证集差距)
  • 使用多个指标进行评估
  • 定性分析错误

处理不平衡数据:

  • 重采样:SMOTE, 欠采样
  • 类别权重:加权损失函数
  • 阈值调优:优化决策阈值
  • 评估:使用PR-AUC而非ROC-AUC

6. 生产部署

模型服务模式:

  • REST API (Flask, FastAPI, TF Serving)
  • 批量推理(定时任务)
  • 流式处理(实时预测)
  • 边缘部署(移动端, IoT)

生产注意事项:

  • 延迟要求 (p50, p95, p99)
  • 吞吐量(每秒请求数)
  • 模型大小与内存占用
  • 回退策略
  • A/B测试框架

7. 监控与维护

监控内容:

  • 预测延迟
  • 输入特征分布(数据漂移)
  • 预测分布(概念漂移)
  • 模型性能指标
  • 错误率与错误类型

重训练触发条件:

  • 性能下降至阈值以下
  • 检测到显著数据漂移
  • 计划性重训练(每日、每周)
  • 新训练数据可用

MLOps最佳实践

实验跟踪

为每个实验跟踪:

  • 代码版本(git提交)
  • 数据版本(哈希或版本ID)
  • 超参数
  • 指标(训练集、验证集、测试集)
  • 模型工件
  • 环境(包、版本)

模型版本管理

models/
├── model_v1.0.0/
│   ├── model.pkl
│   ├── metadata.json
│   ├── requirements.txt
│   └── metrics.json
├── model_v1.1.0/
└── model_v2.0.0/

ML的CI/CD

  1. 持续集成:

    • 数据验证测试
    • 模型训练测试
    • 性能回归测试
  2. 持续部署:

    • 预生产环境验证
    • 影子模式测试
    • 渐进式发布(金丝雀)
    • 自动回滚

参考文件

如需详细模式和代码示例,请根据需要加载参考文件:

  • references/preprocessing.md - 数据预处理模式与特征工程技术
  • references/model_patterns.md - 模型架构模式与实现示例
  • references/evaluation.md - 综合评估策略与指标

与其他技能的集成

  • performance - 用于优化推理延迟
  • testing - 用于ML特定测试模式
  • database-optimization - 用于特征存储查询
  • debugging - 用于模型调试与错误分析