
1.2 什么是预测分析
近年来,全世界可观测数据的数量呈现指数型增长态势,而相关科技术语的数量更是呈现突飞猛进的增长。业界、媒体和学术界的话题逐渐转向了(有时风头会过热)大数据、数据挖掘、分析、机器学习、数据科学、数据工程、统计学习和人工智能等。当然,本书的主题预测分析也是其中之一。
目前,这些术语还都比较新,因此术语本身及其确切含义多存在不少易混淆之处,不同的术语之间也会有重复。为便于理解,我们并没有定义所有术语,而是针对主要术语给出了实用性定义。这些定义足以刻画预测分析的内涵:
预测分析是一个应用领域,它基于数据应用各种量化方法进行预测。
下面让我们分析一下上述定义。
● 应用领域。事实上,所谓的理论性的预测分析并不存在。预测分析始终面向各行各业解决实际问题,涉及金融、电信、广告、保险、医疗、教育、娱乐等行业。记住,预测分析的目的是解决特定领域的某个问题,因此预测分析的关键是问题的背景和行业知识。我们将在第2章对此进行深入讨论。
● 应用各种量化方法。预测分析会应用多种理论、技术、实践方法、实证结论,用到的理论涉及计算机科学和统计学这样的数理科学领域,具体包括最优化、概率论、线性代数、人工智能、机器学习、深度学习、算法、数据结构、统计推断、可视化和贝叶斯推断等。这些知识虽然可以为解决问题提供分析工具,但不会产生任何理论结果,因此分析结论必须与既有理论一致。这意味着工具必须用对,因此你需要具备一定的概念基础,需要熟悉前面提到的一些专业基础知识,这样才能预测分析得既正确又严格。在后续章节中,我们会以一种抽象的方式讨论各个领域的相关基础知识。
● 基于数据。量化方法是预测分析的工具,数据则是构建模型的“原材料”。预测分析的关键在于从数据中提取有用的信息。事实证明,基于数据制定决策的价值很大。全世界的组织大都采用数据驱动的方法(而非随意)来制定各种决策,从而导致他们对数据的依赖越来越强。预测分析也是一种数据应用,即先根据数据进行预测,再根据预测结果解决问题。
预测分析(或其他任何类型的高级分析)中的操作通常会超出电子表格的功能范畴,有鉴于此,为了正确执行预测分析,我们可以应用编程语言——Python和R已经成为主流选择(也可以选择其他编程语言,如Julia)。
此外,你需要直接利用数据存储系统(如关系数据库或非关系数据库)或者大数据存储解决方案,因此需要熟悉相关工具(如SQL和Hadoop)。但是,这些工具涉及的操作超出了本书的范围。在本书中,我们不关心数据的提取,并假定所有示例提前从存储系统获取了数据。针对示例的分析,我们会从原始数据开始,展示预测分析过程常用的一些操作和变换。本书所涉及的处理都是用Python及相关工具完成的,具体操作过程参见后续章节。
● 进行预测。定义最后的部分看起来很直接,但需要澄清的是,在预测分析的背景下,预测(Prediction)针对的是未知事件,并不等同于口语意义上的未来。比如,我们构建一个医学预测模型,使用病人的临床数据预测该病人是否患有疾病X。当病人的数据收集完毕时,病人是否患有疾病X已是既定的事实,不需要预测病人是否在未来会患疾病X。模型给出的是未知事件“病人患有疾病X”的评估(是有根据的推测)。当然,预测有时候会与未来有关,但并不必然是一回事。
下面我们介绍预测分析领域中的一些重要概念,这些概念是需要你牢牢掌握的。