机器学习工程实践笔记
万仞之巅,始于起步
经典WWH:
-
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.
-
-
WHY?
为什么要机器学习
机器学习专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习的应用很广泛,例如大规模的数据挖掘(网页点击数据,医疗记录等),无人驾驶飞机、汽车,手写手别,大多数的自然语言处理任务,计算机视觉,推荐系统等。
-
HOW?
怎样实践机器学习
-
监督学习
对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的岐义性低。监督学习是训练神经网络和决策树的最常见技术。这两种技术(神经网络和决策树)高度依赖于事先确定的分类系统给出的信息。
-
无监督学习
对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的岐义性高。常见的无监督学习算法有聚类。
注意: 因为工作只会涉及监督学习, 所以后面内容不再陈述无监督学习部分.
-
机器学习实践流程
监督学习实践阶段:
监督学习实践可以概括成5个阶段:
-
业务需求
- 分析业务
- 归纳需求
- 抽象问题
一句话,怎样帮业务解决问题?
-
模型选型
- 选型
- 论证
根据理解选择或设计(没有现成)学习模型, 并从理论层面论证能够解决问题.
最佳实践: 在选型论证阶段明确模型训练的输入输出与模型应用的输入输出
-
模型训练的标签数据: 需要明确辨别正负样本的数据.
-
模型训练的特征数据: 特征数据有high-level与low-level之分. 就重避轻, 选择更多high-level的特征, 减少low-level的特征, 能够加速模型训练的速度. 特别是在计算资源不充裕的情况下, 这种做法很实在.
-
模型应用的调用参数: 模型计算传递哪些必需参数, 哪些可选参数?
-
模型应用的输出结果: 模型计算返回哪些数据, 什么意义, 什么类型?
明确模型训练与模型应用的输入输出, 对于模型开发具有确切的指导!
-
模型开发
名言: 数据和特征决定机器学习上限, 算法和模型只是逼近这个上限而已.
模型开发的工作都是围绕"数据和特征","算法和模型"这2个核心开展的!
-
建立数据通道的工作
- 准备训练样本的标签数据与特征数据, 并保证通道的可靠性与时效性.
难点系数4:
训练样本的数据筛选,数据投放与数据回笼, 依赖打通全链路的数据通道. -
处理样本(标签数据,特征数据)的工作
- ETL(抽取,转换,加载)样本数据.
- 清洗(空值处理,错误处理,完整检查)样本数据.
- 分类(打标)样本数据.
难点系数2~3: 需要熟悉样本数据的业务知识. 哪里来! 哪里去!
-
处理特征的工作
- 提取特征
- 选择特征
- 变换特征
- 组合特征
处理特征过程涉及各类特征算法, 习惯上叫特征工程.
难点系数4: 大多数工程选用成熟开源机器学习工具库.
-
设计与实现算法
难点系数5: 大多数工程选用成熟开源机器学习算法.
-
构建与优化模型
难点系数5: 大多数工程选用成熟开源机器学习模型.
-
测试与上线模型
- 在线部署
- 离线安装
难点系数3: 在线接口要求高可用,大并发,低延时. 大多数工程基于水平扩展架构(堆叠Nginx+Regin).
-
-
模型训练
监督学习闭环图
模型评估指标:
对于样本筛选后的结果:
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
-
模型应用
详见上
-
机器学习经过模型训练的(算法,模型,特征)应用于业务需求, 帮助业务解决问题
-
机器学习经过N次迭代,反复模型训练, 沉湎的(算法,模型,特征)会越来越成熟, 帮助业务解决问题的能力也越来越强. 然而, 这是一个动态的成长历程!
-
训练样本示例
样例约定
每个样例一行,包含3类数据:
-
标签数据:
tag_为前缀的列
-
用户特征数据:
usr_为前缀的列
-
主播特征数据:
anc_为前缀的列
训练样本hive表结构
维护注意事项:
- 表字段与下述位置严格一致! 维护时请勿错乱已有字段排列顺序.
字段 | 类型 | 注释 | 来源表 |
---|---|---|---|
tag_viewclick | BIGINT | 曝光点击数.正例值大于0,负例值为空或=0 | |
usr_特征1 | |||
... | |||
anc_特征1 | |||
... |
强化训练的思路
使用"曝光点击数据"对"个性推荐模型"进行模型训练.
训练样本的样例格式, 其中点击数为标签.
资源位,用户ID,用户特征....,主播ID,主播特征..., 点击数
- 先用这批数据提交模型进行预测, 得到预测结果
- 对比预测结果与"曝光点击数". 求出A, R, P, S指标. 每天出环比曲线图.