• 机器学习工程实践笔记


    万仞之巅,始于起步

    经典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指标. 每天出环比曲线图.
  • 相关阅读:
    用Asp获取Dll加密新闻内容
    Silverlight编译范围
    c++连接mssql
    委托理解
    NClass,终于找到了可以绘制类图的工具了!
    RIATasks: A Simple Silverlight CRUD Example (using View Model)
    PetaPoco使用
    匿名方法,Action,Func以及lambda的区别
    第一个c++
    System.Threading中Thread和Task区别
  • 原文地址:https://www.cnblogs.com/zolo/p/6526372.html
Copyright © 2020-2023  润新知