美文网首页
机器学习实战 - 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