关于 machine-learning
Machine Learning 是一份覆盖机器学习全生命周期的技能指南,面向构建和维护 ML 项目的从业者。内容从数据准备、特征工程和模型训练延伸到部署、监控及 MLOps 实践,并提供按需参考文件。
主要功能
- 01问题定义与评估指标选择
- 02数据质量检查和特征工程
- 03模型选择、训练与超参数调优
- 04模型评估和类别不平衡处理
- 05生产部署及模型服务模式
- 06实验追踪、版本管理与监控
适用场景
- 01规划分类、回归或聚类项目流程
- 02准备特征并选择数据切分策略
- 03比较模型并检查过拟合或误差
- 04部署模型并监测数据漂移与性能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill machine-learning安装后在 Claude Code 中输入/machine-learning确认已加载。
附带文件references/preprocessing.md
详细介绍
机器学习
涵盖机器学习完整生命周期的全面技能,从实验到生产部署。
何时使用此技能
- 构建机器学习流水线
- 特征工程和数据预处理
- 模型训练、评估和选择
- 超参数调优和优化
- 模型部署和服务
- ML 实验跟踪和版本管理
- 生产环境中的 ML 监控和维护
ML 开发生命周期
1. 问题定义
分类类型:
- 二元分类(垃圾邮件/非垃圾邮件)
- 多分类(图像类别)
- 多标签分类(文档标签)
- 回归(价格预测)
- 聚类(客户细分)
- 排序(搜索结果)
- 异常检测(欺诈检测)
按问题类型划分的成功指标:
| 问题类型 | 主要指标 | 次要指标 |
|---|---|---|
| 二元分类 | AUC-ROC、F1 | Precision、Recall、PR-AUC |
| 多分类 | Macro F1、Accuracy | 各类别指标 |
| 回归 | RMSE、MAE | R²、MAPE |
| 排序 | NDCG、MAP | MRR |
| 聚类 | Silhouette、Calinski-Harabasz | Davies-Bouldin |
2. 数据准备
数据质量检查:
- 缺失值分析和填补策略
- 异常值检测和处理
- 数据类型验证
- 分布分析
- 目标泄漏检测
特征工程模式:
- 数值型:缩放、分箱、对数变换、多项式特征
- 分类型:独热编码、目标编码、频率编码、嵌入
- 时间型:滞后特征、滚动统计量、周期性编码
- 文本:TF-IDF、词嵌入、Transformer 嵌入
- 地理空间:距离特征、聚类、网格编码
训练集/测试集拆分策略:
- 随机拆分(标准)
- 分层拆分(类别不平衡时)
- 基于时间的拆分(时间序列数据)
- 分组拆分(防止数据泄漏)
- K 折交叉验证
3. 模型选择
算法选择指南:
| 数据规模 | 问题 | 推荐模型 |
|---|---|---|
| 小型(<10K) | 分类 | Logistic Regression、SVM、Random Forest |
| 小型(<10K) | 回归 | Linear Regression、Ridge、SVR |
| 中型(10K-1M) | 分类 | XGBoost、LightGBM、Neural Networks |
| 中型(10K-1M) | 回归 | XGBoost、LightGBM、Neural Networks |
| 大型(>1M) | 任意 | Deep Learning、分布式训练 |
| 表格数据 | 任意 | Gradient Boosting(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 |
| Random Forest | n_estimators、max_depth、min_samples_split |
| Neural Networks | 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
-
持续集成:
- 数据验证测试
- 模型训练测试
- 性能回归测试
-
持续部署:
- 暂存环境验证
- 影子模式测试
- 渐进式发布(金丝雀)
- 自动回滚
参考文件
如需详细模式和代码示例,请按需加载参考文件:
references/preprocessing.md- 数据预处理模式和特征工程技术references/model_patterns.md- 模型架构模式和实现示例references/evaluation.md- 全面的评估策略和指标
与其他技能集成
- performance - 用于优化推理延迟
- testing - 用于 ML 专项测试模式
- database-optimization - 用于特征存储查询
- debugging - 用于模型调试和错误分析
评论
支持 Markdown