美文网首页
[机器学习] End-to-End流程

[机器学习] End-to-End流程

作者: 数据麻瓜 | 来源:发表于2018-12-16 02:26 被阅读0次

    Reference: Hands-on Machine Learning with Scikit-Learn and Tensorflow

    1. 确定需求和问题:
    - 项目目标是什么?
    - 在产品中如何实现?
    - 是否有现行的模型或方法,如果有的话,是什么,效果怎么样?
    - 要求是batch-learning还是online learning?
    - 用哪些指标来衡量模型好坏?指标合理吗?
    - 模型的最差结果应该比什么好(eg.现有的、盲猜等)
    - 是否有可以迁移学习的模型?(之前碰到过NLP相关的,那doc2vec是否可以利用原先train好的)
    - 列一下assumptions? 确认这些assumption是否正确

    2. 数据提取:

    • 确定需要什么数据(一般需要一些行业经验做支撑),确认这些数据是否都可以拿到(数据库中是否有这些变量,是否有权限得到这些数据,数据库中的这些变量是否可信)
    • 确认用户敏感数据做了加密处理
    • 确认数据量
    • 确认建模环境
    • 把数据进行一些格式上的整理(例如时间、空间变量的格式转变)

    3. 数据探索:

    • 如果数据量很大的话,sample一部分进行数据探索(尤其是画图的时候)
    • Data Exploration的结果最好可以保留,跟建模的码分开放
    • 数据质量检查:
      • 变量类型:numeric/categorical/order/text or other unstructured data...
      • 缺失值:是否有缺失值?缺失值占比多少?导致数据缺失的原因有哪些?
      • 异常值: 是否有明显的outlier(例如违背了行业逻辑的值)
      • 画变量的distribution,看大概像什么分布
    • 如果是有监督学习,确认target variable
    • 对连续变量做相关性分析 ->(新想到的是是否可以用互信息代替相关性分析,因为互信息的话对discrete的变量也能做,只是个人想法)
    • Visualizetion 探究变量和target variable之间的关系
    • 确定需不需要进行transformation

    4. 数据准备:

    • 数据清洗:异常值处理、缺失值处理(缺失量小的话可以drop,或者用mean/median代替,离散变量的话也可新建一个类别叫unk
    • Feature Selection:
    • Feature Engineering:
      • 离散化连续变量
      • transformation
      • feature整合
    • Feature Scaling: 标准化/中心化

    5. 确定一些待用模型(此步骤不调参):

    • 尝试一些不同的模型,确定每个模型的待调参数有哪些
    • 用CV来评估不同模型的优劣性, 分析每个模型中最重要的变量有哪些?
    • 分析模型为什么会犯错,然后进行模型的调整
    • 根据以上结果再做feature selection 和 feature engineering
    • 循环以上步骤,确定3个比较好的模型

    6.确认模型:

    • 用CV对模型进行调参,用randomgridsearch
    • 尝试一些emsemble
    • 确定模型后进行评估

    7. Presentation:

    相关文章

      网友评论

          本文标题:[机器学习] End-to-End流程

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