The Machine Learning Pipeline
Data
何为数据?数据是真实世界的观察值。
比如:
- 股市每日价格,公司的收益报告,甚至专家的评论文章
- 个人身体数据:实时的心率,血糖等级等等
- 客户情报数据:包括“张三星期天买了两本书”、“李四浏览了这些网页”、“王二上周点击了这个特殊的链接”等。
- 等等
每一片数据都提供了一个了解这个世界的小窗口,所有观察值的集合就给了我们一整个世界。
但是这个世界一团混乱,因为它是由成千上万的碎片组成,而且总是会存在噪声或者缺失。
Tasks
我们为什么搜集数据?
因为数据能回答我们:
- 我应该买哪一支股票?
- 我如何才能过更健康的生活?
- 如何我才能理解客户变化的偏好,以便更好地服务他们?
但是从数据到答案,充满错误的开始或者死胡同:
开始看起来很有希望的路径,最后可能没有用;开始看起来毫无可能的途径,最后有可能是最优解。
数据的工作流往往是多阶段和迭代的过程:
比如:
- 股票价格在交易所被观察到,
- 再由路透等交易所汇总,存在数据库里,
- 被公司买走,转换为 Hadoop 集群上的 Hive 存储,
- 被一段脚本拉出仓库
- 被另一段脚本二次采样,massaged,清洗,存入一个文件中
- 转换成你建模所喜欢的格式
- 预测结果存入一个csv文件中,由评估器解析,模型被迭代多次
不管这流程中的工具或系统,我们可以看到,这个过程包含了两个数学实体(机器学习的面包和黄油):模型和特征。
Models
试图通过数据理解世界,就好像一个用充斥着噪声的碎片(并且包括很多额外的碎片),来拼凑出现实的拼图游戏。
这正是数学模型,特别是统计模型的用武之地。统计语言包含很多数据特征:错误、冗余、缺失。
- 错误数据:观测错误
- 冗余数据:多余的传递同样的信息的数据
- 缺失数据:没有
一个数学模型描述了数据的不同方面的关系
比如:
- 一个股票价格的预测:可能是一个将公司的盈利历史、过去的股票价格和行业与预测的股票价格相联系的公式。
- 一个推荐音乐的模型:推荐音乐的模型可能会衡量用户之间的相似性(基于他们的收听习惯),并向听过很多相同歌曲的用户推荐相同的艺术家。
数学公式将数字量相互联系起来。但原始数据往往不是数字。
"爱丽丝周三买了《指环王》三部曲 "这个动作不是数字,她后来写的关于这本书的评论也不是数字。 必须有一个环节将两者联系在一起。 这就是特征的作用。
Features
一个特征是一个原始数据的数值表达。
-
自然的,特征必须是从可获得的数据推断而来。
-
特征还和模型有关:特定的模型,适合特定的特征,反之亦然。
-
正确的特征与手头的任务相关,应该易于模型摄取。
特征工程是在给定数据、模型和任务的情况下制定最合适的特征的过程。
- 特征的数量同样重要:如果特征太少,没有足够的信息使模型工作;如果特征太多,存在很多不相关的特征,模型会太难训练。
Model Evaluation
模型和特征在原始数据和insights之间。好的特征让后续建模更简单有效;坏的特征可能需要一个更复杂的模型来获得相同级别的效果。