机器学习工程实践笔记

万仞之巅,始于起步

经典WWH:

  1. WHAT?

    什么是机器学习?

    机器学习有很多定义,广为人知的有如下两条:

    • ArthurSamuel (1959): Machine Learning: Field of study that gives computers theability to learn without being explicitly programmed.

    • TomMitchell (1998) : Well-posed Learning Problem: A computer program is said tolearn from experience E with respect to some task T and some performance measureP, if its performance on T, as measured by P, improves with experience E.

  2. WHY?

    为什么要机器学习

    机器学习专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习的应用很广泛,例如大规模的数据挖掘(网页点击数据,医疗记录等),无人驾驶飞机、汽车,手写手别,大多数的自然语言处理任务,计算机视觉,推荐系统等。

  3. HOW?

    怎样实践机器学习

    • 监督学习

      对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的岐义性低。监督学习是训练神经网络和决策树的最常见技术。这两种技术(神经网络和决策树)高度依赖于事先确定的分类系统给出的信息。

    • 无监督学习

      对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的岐义性高。常见的无监督学习算法有聚类。

    注意: 因为工作只会涉及监督学习, 所以后面内容不再陈述无监督学习部分.

机器学习实践流程

监督学习实践阶段:
image

监督学习实践可以概括成5个阶段:

  1. 业务需求

    • 分析业务
    • 归纳需求
    • 抽象问题

    一句话,怎样帮业务解决问题?

  2. 模型选型

    • 选型
    • 论证

    根据理解选择或设计(没有现成)学习模型, 并从理论层面论证能够解决问题.

    最佳实践: 在选型论证阶段明确模型训练的输入输出与模型应用的输入输出

    • 模型训练的标签数据: 需要明确辨别正负样本的数据.

    • 模型训练的特征数据: 特征数据有high-level与low-level之分. 就重避轻, 选择更多high-level的特征, 减少low-level的特征, 能够加速模型训练的速度. 特别是在计算资源不充裕的情况下, 这种做法很实在.

    • 模型应用的调用参数: 模型计算传递哪些必需参数, 哪些可选参数?

    • 模型应用的输出结果: 模型计算返回哪些数据, 什么意义, 什么类型?

    明确模型训练与模型应用的输入输出, 对于模型开发具有确切的指导!

  3. 模型开发

    名言: 数据和特征决定机器学习上限, 算法和模型只是逼近这个上限而已.  
    

    模型开发的工作都是围绕"数据和特征","算法和模型"这2个核心开展的!

    • 建立数据通道的工作

      • 准备训练样本的标签数据与特征数据, 并保证通道的可靠性与时效性.

      难点系数4:
      训练样本的数据筛选,数据投放与数据回笼, 依赖打通全链路的数据通道.

    • 处理样本(标签数据,特征数据)的工作

      • ETL(抽取,转换,加载)样本数据.
      • 清洗(空值处理,错误处理,完整检查)样本数据.
      • 分类(打标)样本数据.

      难点系数2~3: 需要熟悉样本数据的业务知识. 哪里来! 哪里去!

    • 处理特征的工作

      • 提取特征
      • 选择特征
      • 变换特征
      • 组合特征

      处理特征过程涉及各类特征算法, 习惯上叫特征工程.

      难点系数4: 大多数工程选用成熟开源机器学习工具库.

    • 设计与实现算法

      难点系数5: 大多数工程选用成熟开源机器学习算法.

    • 构建与优化模型

      难点系数5: 大多数工程选用成熟开源机器学习模型.

    • 测试与上线模型

      • 在线部署
      • 离线安装

      难点系数3: 在线接口要求高可用,大并发,低延时. 大多数工程基于水平扩展架构(堆叠Nginx+Regin).

  4. 模型训练

    监督学习闭环图
    image

    模型评估指标:

    对于样本筛选后的结果:

    T F
    P (PT) (PF)
    N (NT) (NF)
    • 准确率:
    A = (PT + NF) / (PT + PF + NT + NF)
    即将正例的判定为正,负例的判定为负.
    
    • 召回率:
    R = PT / (PT + NF) = 1 - NF / (PT + NF)
    即判定正例占全部正例的比重.
    
    • 精确度:
    P = PT / (PT + PF)
    
    • F-measure or balanced F-score
    F = 2 * A * R / (A + R)
    传统所说的F1-measure
    
  5. 模型应用

    详见上

    • 机器学习经过模型训练的(算法,模型,特征)应用于业务需求, 帮助业务解决问题

    • 机器学习经过N次迭代,反复模型训练, 沉湎的(算法,模型,特征)会越来越成熟, 帮助业务解决问题的能力也越来越强. 然而, 这是一个动态的成长历程!

训练样本示例

样例约定

每个样例一行,包含3类数据:

  • 标签数据:

    tag_为前缀的列

  • 用户特征数据:

    usr_为前缀的列

  • 主播特征数据:

    anc_为前缀的列

训练样本hive表结构

维护注意事项:

  • 表字段与下述位置严格一致! 维护时请勿错乱已有字段排列顺序.
字段 类型 注释 来源表
tag_viewclick BIGINT 曝光点击数.正例值大于0,负例值为空或=0
usr_特征1
...
anc_特征1
...

强化训练的思路

使用"曝光点击数据"对"个性推荐模型"进行模型训练.

训练样本的样例格式, 其中点击数为标签.

资源位,用户ID,用户特征....,主播ID,主播特征..., 点击数

  • 先用这批数据提交模型进行预测, 得到预测结果
  • 对比预测结果与"曝光点击数". 求出A, R, P, S指标. 每天出环比曲线图.
posted @ 2017-03-09 16:34  zolo®  阅读(474)  评论(0编辑  收藏  举报