机器学习与Python实践
上QQ阅读APP看书,第一时间看更新

1.1 引言

数据科学指的是使用科学方法分析数据,从数据中提取有效信息,帮助人们理解观测到的现象,并由数据驱动进行预测或决策的理论和方法体系。常用的科学方法包括处理分析数据相关的数学、统计学和计算机科学方法。与数据科学相关的重要概念是机器学习和数据挖掘,它们与当前热门的大数据和人工智能有十分密切的关系。为了进一步说明这些概念,结合实际需求,我们把这些概念放在一个大的问题导向框架下来看。在这个框架下,我们的目标是通过分析数据,解决实际业务中与数据相关的问题。因此,我们需要一个应用场景或一个实际业务中待解决的问题,应用科学方法找到该问题的最优解决方案。

1.1.1 问题导向框架

在问题导向框架下,我们提出一个简化业务流程图,如图1.1所示。该流程图将解决问题的整个流程分为三部分:第一部分是明确问题,例如,我们的目的是要做什么,有什么样的数据,希望从中得到什么等。第二部分是一个大的模型集和方法集,里面有成熟的、模块化的各种数据分析方法和模型。我们一般将这些模型集和方法集划分为三大类,分别是无监督学习、有监督学习和强化学习,每一大类还会根据具体情况和需求有进一步的细分,如有监督学习类根据响应变量的属性又分为分类方法和回归方法等,这些方法在本书后面章节中会具体展开。流程图的第三部分是解决方案,它是能够解决或部分解决前述问题的实现方法和能够达到预期需求的工具,可以是一份完整的分析报告、某个分析处理数据的软件等。

流程图的第一部分到第二部分是一个数学建模或统计建模过程。建模过程将实际问题和需求转化为能用数学和统计语言描述的问题,从模型集和方法集中找到合适求解该问题的方法,这是我们常说的,很多参与过建模竞赛的学生对此是熟悉的。建模过程也包括模型的选择评估、分析结果的解释和推理等。流程图的第二部分到第三部分是一个非常关键的步骤,称为“实现过程”。它包括第二部分的方法论的计算机程序实现,还包括很多具体到某个实际状况的处理方法、技巧甚至一些权宜之计和经验做法。这些情形和处理方法也就是业界常说的“踩坑、填坑”,对实现整个业务流程是十分重要的。

0

图1.1 简化业务流程图

下面举两个不同的例子来说明流程图。第一个例子是垃圾邮件识别。我们每天都会收到很多垃圾电子邮件,因此智能过滤是一个很明确的需求,需求的目标就是根据电子邮件的标题、内容、发送者自动识别并过滤掉垃圾电子邮件。这个问题可以转化为一个分类问题。我们可以很容易地从方法集里面的有监督学习中找到合适的分类方法,比如支持向量机(Support Vestor Machine, SVM)、逻辑回归等。它的解决方案是在电子邮件软件中嵌入某段程序,利用分类方法实现识别功能。建模过程包括特征的生成、选取、模型选择和评估等。垃圾邮件识别属于难度不算高的问题,基于一些训练数据,有一定基础的读者可以自行完成。

第二个例子是量化投资交易。量化投资是金融研究和应用中的一个分支方向,它的投资对象包括股市、债市、汇率和各类金融衍生品,投资的方法包括选股、CTA、套利、统计套利、做市等。在现实中量化投资需要完成数据源、行情源、交易接口和交易系统的开发调试、策略的开发实现、资金管理、风险管理和绩效评估、各级监控和监管等一系列环节,是一个十分复杂的问题。以量化选股中的策略研发为例,它的目标是根据历史走势和相关市场行情判断股票未来一段时间的走势,给出交易信号或投资组合策略,从而获得较为稳定的正收益。一般的策略开发可以放到监督学习或强化学习的框架中研究,读者可尝试各种解决方案。

以上两个例子的每个步骤都可以对应到流程图中,但它们有很大的区别。其中一个主要的区别是数据中的信噪比。我们认为垃圾邮件识别问题中数据的信噪比很高、特征明确,这时使用机器学习方法可以得到非常好的效果。这点在电子商务中的购物和营销数据中也体现得较为明显,在一些复杂的机器学习方法(包括深度学习)中得到了很好的应用。对于金融市场数据,它的信噪比很低,里面包含了大量的噪声和随机误差,以至于业界一部分人对机器学习方法能否在信噪比低的环境中应用持怀疑态度,对过度使用机器学习方法抱有戒心。当然,业界也有很多支持机器学习在这个方向探索的基金,如文艺复兴基金。近几年的一个例子是顶尖深度学习科学家加盟的美国城堡基金(Citadel)。

此外,另一个区别是技术的开放程度。机器学习方法在处理垃圾邮件等很多应用领域的技术(包括一些细节)是相对比较开放的。这些领域还包括电子商务、精准营销和用户画像等,它们行业竞争的壁垒主要不在技术而是在数据的积累和业务的其他方面。但是,在量化交易中,一个高效盈利策略的公开意味着该策略很快失效,因此应用技术的交流和发展相对比较封闭。实践中量化投资以数据科学作为切入点既有很大的风险也有很大的机遇。

1.1.2 数据挖掘和机器学习

数据挖掘与机器学习有很多重合之处,但它们关注的侧重点不同。数据挖掘一般指从数据分析中提取特征、模式和有用信息的过程,涉及机器学习、统计和数据库系统的交叉领域。数据挖掘也被认为是数据库知识发现(Knowledge Discovery in Databases,KDD)中的重要步骤。数据挖掘中的几个主要方法包括分类、聚类、关联规则、异常分析和检测。数据挖掘除了关注建模方法之外,还关注从流程图1.1第一部分到第二部分的建模过程,包括对数据的预处理、描述性统计分析、探索性数据分析、数据展示等。与普通数据分析相比,数据挖掘更关注使用机器学习和统计模型从大数据中寻找未被发现的信息和模式。

机器学习包括理论和应用两个方面。理论研究内容主要集中在流程图1.1第二部分的模型和方法中,它更关心这些模型应该如何求解、方法的理论性质、对应的算法的构造和效率等。机器学习关注一些相对复杂的模型,如SVM、决策树集成、深度学习等。机器学习方法按学习的目标可以分成有监督学习、无监督学习和强化学习三大类;按是否使用了多个层级的函数映射可以分为浅层学习和深度学习两类。本书将在1.2节具体介绍这些细分概念和方法。在机器学习的应用中,我们更关注方法的实际效果,如模型的预测效果。为了达到好的实际效果,机器学习方法侧重特征的构造和选取、模型选择、模型评估、结果的分析和解释,以及方法的效率、稳健性、可扩展性等。这些属于流程图1.1中第二部分到第三部分的实现过程。

1.1.3 人工智能和机器学习

智能是一个比较宽的概念,包括认知、理解、推理、逻辑、学习、创造、批判性思考以及解决问题的能力等。人工智能(Artificial Intelligence,AI)泛指通过计算机来模拟和拓展人类智能的理论方法和技术,也被称为机器智能。人工智能的终极目标之一是创造出具有自我意识的超级智能体。这类话题容易引发大众的担忧,如人类的未来会不会被机器人掌控?在现在的阶段,人工智能的发展离大众所担忧的超级智能还有很遥远的距离,与机器学习的概念更为接近。

人工智能的概念起源于20世纪50年代,发展历程中经历了20世纪70年代中期和20世纪80年代末到90年代初两次低谷,也经历了统计学习方法(如支持向量机和集成决策树学习)的崛起以及神经网络和强化学习方法的复兴。从2006年深度神经网络和系统化的训练方法被引入后,基于深度学习的人工智能得到了学术界和产业界的大量智力和资金的投入,不断蓬勃发展,对现代社会产生了广泛而深刻的影响。

目前人工智能的研究主要集中在一些具体的场景,如游戏AI、医疗AI、无人驾驶、自然语言处理、图像识别和生成等。人工智能所使用的基本方法是机器学习中的深度学习和强化学习,这两个方法在本书第11、12章会进行具体介绍。AlphaGo的创造者之一大卫·西沃(David Silver)博士曾提出AI=RL+DL,即人工智能等于强化学习加深度学习。从2013年起,强化学习在引入深度神经网络后得到了长足飞速发展,两者的结合形成了一个新的研究方向,即深度强化学习,解决了之前看似遥不可及的很多问题,如游戏AI、围棋、自动驾驶等。