美文网首页
机器学习实战 - How Machine Learning En

机器学习实战 - How Machine Learning En

作者: MatrixOnEarth | 来源:发表于2022-03-04 09:14 被阅读0次

@(ML)[Engineering]

姚伟峰

「大数据其实有点儿像青少年的性。每一个人都兴致勃勃地谈论它,但是没有任何一个人真的知道该怎么做。每一个人都觉得身边的人都在尝试,为了不落人后,于是每个人都在外面宣称自己也已经有『伴儿』了」 - Dan Ariely

基本输出

基本交付

在生产环境中部署建模输出时依赖如下四个基本交付:

  • 如何从线上数据中抽取出模型所需要的特征?
    • 每个特征的意义,如果有的话;
    • 每个特征如何抽取,以及特征如何排列的例程;
    • 对NLP应用而言,可能还有一些字典需要交付,用于辅助特征抽取;
    • 对使用DNN做feature engineering 而言,还需要相应的DNN模型;
  • 模型
    • 一共有几个模型,他们各是如何命名的,用于什么用途,加载顺序是什么,如何验证模型文件的完整性?
  • 如何加载模型以及如何使用模型进行预测?
    • 如何加载模型并初始化预测器?
    • 如何使用模型模型来预测?
  • 模型输出是什么以及如何解释/使用模型输出?
    • 模型输出值的取值范围[min, max]。
    • 输出值的物理意义。
    • 如何使用模型输出,按阈值判断?直接输出给规则引擎?如何与规则引擎结果混合?

模型的持久化方式

持久化建模所得的最终模型,供生产环境使用.

建模环境与生产环境一致

  • Spark
    • save/load w/ corresponding model class(e.g. RandomForestClassificationModel)
  • Scikit
    • pickle.dumps / pickle.loads
    • joblib.dump / joblib.load
  • Weka & other Java based
    • writeObject / readObject methods of Serializable class

建模环境与生产环境不一致

  • PMML(Predictive Model Markup Language)
    • scikit.learn建模,Spark生产,两者都有PMML支持(原生或第三方支持)
  • 直接使用自己的格式或方法
    这个一般用于模型不是很复杂的场合, 如decision tree, LR.
    • Tree & Forest
      • Tree & Forest可以自己写成if-else逻辑deliver <如高架识别例子>
    • LR
      • 直接保存每个特征的系数就好了 <如广告的例子>

工程性输出

工程性输出的目的是从算法角度考虑如何使生产环境更鲁棒,容灾。

异常检测与处理

识别并处理好异常,避免扩散至其他环节。

  • 关键的特征缺失
  • 特征值超出合理范围
  • 预测值超出合理范围

如何监控算法性能

对线上应用而言,需要建立监控平台,监控关键的算法指标和业务指标。在指标出现异常的时候需要告警,以及进行算法/模型的回滚。

版本化的交付

版本化交付,利于问题的追踪以及出现问题后的回滚。

相关文章

网友评论

      本文标题:机器学习实战 - How Machine Learning En

      本文链接:https://www.haomeiwen.com/subject/ehkerrtx.html