机器学习流水线

在深入研究特征工程之前,让我们花点时间看看整个机器学习流水线。这将帮助我们更好地了解应用的大方向。为此,让我们从数据和模型等基本概念入手。

数据

我们所说的数据是对现实世界现象的观察。例如,股票市场数据可能涉及对每日股票价格的观察,个别公司的收益公告,甚至专家的意见文章。个人生物识别数据可以包括我们的心率,血糖,血压等的测量数据。客户情报数据包括诸如:“Alice 在周日买两本书”,“Bob 浏览网站上的这些页面”和“查理点击了上周的特别优惠链接”。我们可以在不同领域得到无数的数据例子。

任务

我们为什么收集数据?因为数据可以帮助我们回答很多问题。这些问题可能是:“我应该投资哪些股票?”,“我怎么样才能活得更健康?”,或者“我如何理解顾客变化的口味,以便我的企业能够更好的服务他们?”。

从数据中获取答案的路途充满了谜题。最开始充满希望的方法可能行不通。最初只是一个预感却可能是最佳解决方案。数据的工作流程通常是一个多阶段的迭代过程。例如,股票价格是在交易所观察到的,由汤普森路透社等中间人汇总,存储在数据库中,由公司购买,在 Hadoop 集群中转换为 Hive 存储,通过脚本从商店中抽出,进行二次抽样,由另一个脚本处理和清理,转储为文件,转换为可以在 R,Python 或 Scala 中最喜欢的建模库中尝试的格式,将预测转储回 csv 文件,由评估程序分析,迭代多次,最后由生产团队用 C++ 或 Java 重写,运行所有数据,并将最终预测输出到另一个数据库。

然而,如果我们暂时忽略工具和系统的混乱,我们可能可以看到上述过程涉及到的两个数学实体,它们是机器学习的黄油和面包:模型和特征。

模型

尝试着从数据中了解世界就像用不完整的拼图以及一堆额外的碎片拼凑出现实。这就是数学模型,特别是统计模型的由来。统计语言中包含许多频繁数据特征的概念:误差,冗余或者缺失。误差数据是测量中的错误导致的。冗余数据意味着数据的多个方面传达完全相同的信息。例如,星期几可以作为“星期一”,“星期二”,...“星期天”的分类变量存在,并且再次被包括为 0 到 6 之间的整数里。如果某些数据点中不存在这种星期几的信息,那么这个数据就产生了缺失。数据的数学模型描述数据不同方面的关系。举个例子。一个预测股票价格的模型可能是一个将公司收益历史、过去股票价格和行业映射到预测股票价格的公式。推荐音乐的模型可能考量了用户的相似处,然后给欣赏很多同样歌曲的用户推荐一样的艺术家。

数学公式将数量相互关联。但是原始数据通常不是数字。(“爱丽丝周三买了‘指环王’三部曲”的行为不是数字,她后来对这本书的评论也不是。)必须有一样东西把两者连接在一起。这就是特征的由来。

特征

特征是原始数据的数学表示。有很多方法可以将原始数据转换为数学测量值,这也是为什么特征最终看起来与许多事情相似。自然的,特征必须来自可用数据的类型。可能它们与模型相关联的事实也没那么明显;一些模型更适合某些类型的特征,反之亦然。正确的特征应该与手头的任务相关并且容易被模型摄取。特征工程是指给定数据、模型和任务是制定最佳特征的过程。

特征的数量也是很重要的。如果没有足够的信息特征,模型就无法完成最终的任务。如果存在太多的特征,或者如果它们大多数是无关紧要的,那么训练这个模型会更加的棘手并且代价更多。在训练过程中可能会出现一些错误影响模型的表现。

模型评估

特征和模型位于原始数据和期望的观察结果之间。在机器学习工作流程中,我们不仅挑选模型,还挑选特征。这是一个双节杆,一个选择会影响另一个。良好的特征使后续的建模步骤变得简单,并且所得到的模型能更容易实现所需的任务。糟糕的特征可能需要更复杂的模型才能达到相同的性能水平。在本书的其余部分中,我们将介绍不同类型的特征,并讨论它们对不同类型数据和模型的优缺点。不要犹豫,让我们开始吧!

标量、向量和空间

单个数字特征也称为标量。标量的有序列表称为向量。向量位于向量空间中。在绝大多数机器学习应用中, 对模型的输入通常表示为数字向量。本书的其余部分将讨论将原始数据转换为数字向量的最佳实践策略.