第 1 章 机器学习流程

第 1 章 机器学习流程

在开始学习特征工程之前,我们先花点时间了解一下机器学习的整体流程,这有助于我们更全面地理解特征工程。为此,我们先学习几个基本概念,比如数据模型

1.1 数据

我们所说的数据是对现实世界的现象的观测。例如,股票市场数据包括对每日股价、各个公司的盈余公告,甚至专家学者发表的股评文章的观测;个人的生物特征数据包括对每分钟的心率、血糖水平、血压等指标的测量;客户智能数据包括像“爱丽丝在星期天买了两本书”“鲍勃在这个网站上浏览了这些网页”“查理点击了这个从上周开始的特价销售链接”之类的数据。不同领域的数据示例无穷无尽,不一而足。

每份数据都是管中窥豹,只能反映一小部分现实,把这些观测综合起来才能得到一个完整的描述。但这个描述非常散乱,因为它由成千上万个小片段组成,而且总是存在测量噪声和缺失值。

1.2 任务

我们为什么要收集数据呢?因为有些问题需要靠数据找出答案,比如:“我应该买哪支股票?”“我如何活得更健康?”“我如何才能了解顾客不断变化的喜好,从而更好地提供服务?”

从数据到答案的路上,充满了错误的开始和死胡同(见图 1-1),经常是有意栽花花不发,无心插柳柳成荫。数据处理工作流往往是多阶段的迭代过程。举个例子,股票价格是在交易所中观测到的,然后由像汤森路透这样的中间机构进行汇集并保存在数据库中,之后被某个公司买去,转换为一个 Hadoop 集群上的 Hive 仓库,再被某个脚本从仓库中读出,进行二次抽样和各种处理,接着通过另一个脚本进行清洗,导出到一个文件,转换为某种格式,然后你使用 R、Python 或 Scala 中你最喜欢的建模程序进行试验。接着,预测结果被导出为一个 CSV 文件,再用一个估值程序进行解析。模型会被迭代多次,由产品团队用 C++ 或 Java 重写,并在全部数据上运行,然后最终的预测结果会输出到另一个数据库中保存起来。

图 1-1:数据与答案之间错综复杂的路径

然而,如果我们不被这些杂乱的工具与系统所迷惑,就能够发现这个过程包括两个构成机器学习基础的数学实体:模型特征

1.3 模型

通过数据来理解世界就像是玩拼图,但这副拼图是杂乱且不完整的,而且带有多余的部分。这时数学模型——特别是统计模型——就派上用场了。统计语言中有很多概念,可以描述常见的数据特性,比如错误数据冗余数据缺失数据。错误数据是由测量时的错误造成的。冗余数据则是对同一信息的多次表述,比如,一周中的一天可以用分类变量来表示,它的值为“星期一”“星期二”……“星期日”,还可以表示为 0 和 6 之间的整数值。如果某些数据点中不存在这种星期几的信息,那就出现了缺失数据。

数据的数学模型描述了数据不同部分之间的关系。例如,预测股票价格的模型可以是一个公式,它将公司的收入历史、过去的股票价格和行业映射为预测的股票价格。音乐推荐模型可以基于收听习惯测量用户之间的相似度,然后向收听大量同种歌曲的用户推荐同一个音乐家。

数学公式将数值型的变量联系起来,但原始数据经常不是数值型的。(“爱丽丝在星期三购买了《指环王》三部曲”这一行为就不是数值型的,她随后对这本书发表的评价也不是数值型的。)必须有个什么东西将这二者联系起来,这就是特征的用武之地了。

1.4 特征

特征是原始数据的数值表示。有多种方法可以将原始数据转换为数值型的表示,所以特征可以有多种形式。当然,特征必须采用可用的数据类型。事实上,特征还和模型相关联,这一点可能并不那么显而易见。有些模型更适合使用某种类型的特征,反之亦然。正确的特征应该适合当前的任务,并易于被模型所使用。特征工程就是在给定数据、模型和任务的情况下设计出最合适的特征的过程。

特征的数量也非常重要。如果没有足够的有信息量的特征,那么模型将不能完成最终的任务。如果特征过多,或者多数特征不合适,那么模型将很难训练而且训练成本高昂。在训练过程中可能会出现一些影响模型性能的错误。

1.5 模型评价

特征和模型位于原始数据和我们想得到的知识之间(见图 1-2)。在机器学习流程中,我们要选择的不仅是模型,还有特征。模型与特征相辅相成,对其中一个的选择会影响另一个。好的特征可以使随后的建模步骤更容易,最后得出的模型也更能完成所需的任务。坏的特征要想达到同等性能,则需要复杂得多的模型。在本书后面的内容中,我们将介绍各种不同类型的特征,并讨论它们对于不同类型的数据和模型的优缺点。闲话少说,我们开始吧!

图 1-2:特征工程在机器学习流程中的位置

目录

  • 版权声明
  • O'Reilly Media, Inc. 介绍
  • 前言
  • 第 1 章 机器学习流程
  • 第 2 章 简单而又奇妙的数值
  • 第 3 章 文本数据:扁平化、过滤和分块
  • 第 4 章 特征缩放的效果:从词袋到 tf-idf
  • 第 5 章 分类变量:自动化时代的数据计数
  • 第 6 章  数据降维:使用 PCA 挤压数据
  • 第 7 章 非线性特征化与 k-均值模型堆叠
  • 第 8 章 自动特征生成:图像特征提取和深度学习
  • 第 9 章 回到特征:建立学术论文推荐器
  • 附录 A 线性建模与线性代数基础
  • 作者简介
  • 封面简介