机器学习(AI)的通用工作流程

内容纲要

主要流程

  1. 定义任务
    • 理解业务目标
    • 定义问题: 理解数据要要预测的目标, 定义机器学习类型, 分类/回归/推荐/搜索…
    • 关键指标: 业务成功的关键指标
    • 数据: 数据是核心, 尽可能多的收集数据
  2. 开发模型
    • 数据处理: 让数据可以被模型使用
    • 验证: 定义验证指标, 比较模型之间的好坏; 并使用合适的验证方法(留出法/K折)
    • 基线: 基线可能就是一个随机猜测所能达到的分数,必须要能够证明模型能够解决这个问题;做feature engineering, 选择合适的模型和参数训练并打败基线
    • 训练: 模型要能够过拟合
    • 泛化: 通过正则化(L2/Dropout…),特征工程,超参数,调整模型来提升模型的泛化能力
    • 测试: 测试集上验证模型性能, 应该和验证集差不多. 测试集可以是提前准备或真是环境运行后标注
  3. 部署模型
    • 部署: 服务器,移动设备,浏览器…, 将模型变成对应服务
    • 监控: 监控新模型, AB测试/业务影响等等
    • 收集数据: 准备更新下一代模型

数据

数据收集

  1. 数据的作用远大于模型, 尽可能把时间分配给获取(标注)数据.
  2. 要控制数据质量,特别使用一些标注平台或外包
  3. 开发或者使用合适的数据标注工具会大大提升数据标注效率
  4. 数据代表性: 训练数据应该能够代表上线后的数据,不同的来源或者仅有线上极少的分类数据,这样线上泛化性能不能保证
    • 采样偏差(Sampling Bias): 常犯的错误是只从数据中按照条件过滤出一部分数据再采样,这样上线后会见到被过滤掉的没见过的数据, 在这部分的数据上泛化性能差会影响整体性能
  5. 概念漂移(concept drift): 持续的追踪数据并更新模型, 随着时间推移线上数据的特征也在发生变化
  6. 理解数据: 不要把数据当做黑盒,要尽可能仔细了解数据的方方面面

数据准备

  1. 向量化(vectorization): 模型只认向量
  2. 归一化(Value normalization): 数值应该是很小的值,并且范围统一. 常用是均值为0方差为1, 太大的数值可能会让模型难收敛.
  3. 缺失值处理(Missing Value): 分类特征可以加一个未知分类, 数值特征可以使用均值或中值;

发表评论