一、简介:数据科学过程
1918 年 6 月。一个由爱丁顿教授、戴森爵士和其他人组成的小组委员会安排了去巴西北部索布拉尔和普林西比岛的探险。这两次探险的目标?为了在 1919 年 5 月 29 日发生的日食期间收集一些数据…
- 一个叫爱因斯坦的家伙创造了一个新的引力模型,他称之为广义相对论 ,,似乎很少有人理解。基于这一模型,他在 1915 年预测,当光线接近太阳时,会偏转大约 1.75 弧秒。爱因斯坦根据过去几个世纪收集的数据创建了他的模型;他的模型甚至解释了水星运动的一个令人困惑的方面,这在牛顿物理学之前是无法解释的。但是这种靠近太阳的光线偏转到目前为止还没有被观察到。因此,这次探险——它的唯一目的是收集接近太阳的光线路径的数据。这些新数据将验证或否定爱因斯坦的引力模型。
…1919 年 5 月 29 日。这可能是物理学史上最重要的一次日食。日食让科学家们能够收集关于某些恒星位置的数据,这将表明恒星发出的光在到达地球上我们这里的途中擦过太阳时所走的路线。
1919 年 11 月。数据分析证实了爱因斯坦的预测。广义相对论被认为是对我们宇宙中万有引力定律的更恰当的描述,而不是现有的标准——牛顿定律。
我们所说的数据 科学
引力模型如何演变,以及广义相对论如何最终被接受的故事,是科学方法的例证。
给定某些观察结果,科学家首先创建一个能够解释这些观察结果的模型。在这样做的时候,模型可能无法解释的一些观察结果,例如,牛顿物理学如何不能令人满意地解释水星运动的某些方面。无论如何,这样的模型可能是有用的,只要它实际上是可应用的并且足够通用,例如,牛顿物理学足够通用来描述地球上大多数常见情况下的吸引力和由此产生的运动。
即使一个模型实际上是有用的,寻找更好的模型——那些可以更好地解释观察结果或更好地预测未知情况下特定事件的模型。这种基于观察证据验证模型的概念是科学方法的基石之一。因此,科学家继续这个观察循环➤模型➤观察,每次通过这个循环都会产生更好的模型。
牛顿和爱因斯坦的引力模型解释了宇宙中物体间的吸引力和由此产生的运动。一般来说,我们使用术语模型来指代任何能够被充分解释和/或预测观察结果的现实表示。
一个简单得多的模型示例是建筑师按比例缩小的规划城镇模型 1 ,该模型显示了住宅和商业空间、路线和其他设施的布局——我们可以使用这样一个按比例缩小的模型来确定两栋建筑之间的距离,或者从您计划购买的房屋到达附近学校可能需要的时间。从按比例缩小的模型中获得的这些预测在现实世界中足够有用和准确。
将科学方法应用于宇宙中的物质及其行为称为物理学,将科学方法应用于活的有机体称为生物学。同样,将科学方法应用于任何数据都可以被视为数据科学。更实际的是,在当前时代,数据科学的特点是使用软件来日益自动化这一科学过程中的步骤。
在本书中,我们将 运用软件 将科学方法应用到数据中称为 数据科学 。根据我们的经验,我们发现这个概念实际上更有用——它强调科学方法是学科的核心,软件是科学的主要机制/设备。
从团队所需的技能到需要使用的工具和技术,这种数据科学视角将影响为您的企业构建数据科学实践的每一个决策。
现在,让我们来看看将科学方法应用于数据时通常遵循的数据科学流程。
数据科学过程
对于数据科学,即使用软件将科学方法应用于数据,数据科学团队遵循迭代过程。在数据科学的背景下,这种科学方法通常被称为数据科学过程。
这个过程可以分解为一系列宽泛的步骤,从收集数据的第一步开始(数据捕获步骤)。接下来是选择相关数据,清理,并根据需要进行转换(数据准备),然后使用图表/绘图进行可视化探索和理解(数据可视化)。这种探索和理解对于下一步至关重要——从数据中学习以构建模型(机器学习),这是这一过程的核心。然后,这些模型用于推断新观察的结果(推断)。图 1-1 描述了这些步骤,这些步骤将在本节的剩余部分进行更详细的解释。
*
图 1-1
数据科学流程(迭代隐含在这些步骤中)
请注意,这是数据科学流程的简化表示,因为您很少会遇到要求您按顺序执行这些步骤的数据科学问题。大多数问题都需要在不同的步骤之间来回重复,我们称之为数据科学过程的迭代。让我们看几个例子:
-
您可能会在数据可视化步骤中意识到大量数据被破坏(例如,传感器读数超出预期范围),因此您可能会返回到数据捕获步骤以收集更多正确的数据。
-
您可能会在机器学习步骤中意识到,如果输入的数据以某种方式转换,您选择的模型可能会表现得更好,因此您可以返回到数据准备步骤,以适当的方式转换数据。
-
您可能会注意到,在推理步骤中,您的模型没有以期望的准确度预测生产环境中的结果,并且可能会决定返回到机器学习步骤,尝试构建更准确的模型。
正如我们所看到的,数据科学流程并不仅限于创建模型,它还会继续下去,以确保模型可以部署到生产运营中并得到监控。随着时间的推移,这导致不断收集观察证据来验证或改进模型。
技术、工具和技能的整个生态系统都是围绕这一数据科学过程的——我们将继续回到它,看看它是如何作为端到端解决方案的一部分实现的。这个数据科学过程也将构成我们在第三部分中如何对各种技术、工具和技术进行分类的基础。
让我们看几个简单的例子来分别说明这个过程中的每一步。我们将从科学方法的核心步骤——机器学习——开始,它会产生候选模型。
机器学习
让我们从图 1-2 中的机器学习步骤开始,因为这是理解该过程其他步骤的基础。
图 1-2
机器学习:基于经验预测工资的例子
在图 1-2 所示的例子中,我们有一个给定行业的雇员及其工资的数据。在这个简单的例子中,我们假设我们有关于工作经验的信息,我们想确定这个行业中员工的经验和工资之间的典型关系。一旦我们知道了这种关系,它将帮助我们根据个人的经验来预测个人的典型工资——这在招聘过程中会很有用。
机器学习步骤获取经验和工资的数据,仅仅通过查看这些数据,它就自动确定 2 一般来说
工资(K) = 8 ×经验(年)+ 40
这个模型现在可以用于下一步,*推理,*来预测新个人的工资。例如,如果个人有 2.5 年的经验(这个值在最初的观察中没有出现),这个模型将预测他们的工资是 60K。
请注意,像所有模型一样,这只是对现实的充分有用的表示——肯定会有一些误差和近似。举个例子,从数据中我们看到 6 年的经验应该是 87K 的工资,但是我们的模型会预测 88K,误差 1K。但是尽管如此,如果我们一起考虑所有的数据点,这个模型产生了一个可接受的总体误差。 3 如果误差是可接受的,就像在这个例子中,这个模型是有用的。如果误差太大,我们将继续寻找更好的模型。
机器学习算法和产生的模型在结构上可能变得越来越复杂。虽然在这种情况下,我们有一个方程可以表示我们的模型,但其他一些模型可以表示为树或复杂的图形拓扑等。我们将在第十六章中讨论这些内容。
数据捕捉(来自 世界 )
一个模型完全依赖于我们从世界收集的观察数据。例如,想象一下,如果我们没有关于水星轨道的数据,我们不会知道牛顿的模型有一些缺点,或者爱因斯坦的模型似乎更有前途。如果我们缺乏对世界的了解,也就是说,缺乏对获取数据的系统的了解,那么我们可能会忽略一些对构建良好模型至关重要的数据。让我们借助一个例子来看这个问题。
图 1-3 显示了一个场景,其中我们捕获了特定位置的温度、湿度和降雨量的样本数据,以创建一个机器学习模型。
图 1-3
数据采集:降雨预测示例
在这种情况下,我们的前提是我们能够根据当前的温度和湿度读数预测下一个小时的降雨量。 4 在推断期间,该模型将大致确定,如果温度为 22 度,湿度为 75%,那么在接下来的一个小时内预计降雨量为 8 毫米。
但实际上,降雨量也取决于风速。现在,我们输入到机器学习中的数据可能都是在风速约为 10 公里/小时时捕获的——如图 1-4 中的灰色栏所示,表明这没有被捕获。
图 1-4
数据捕捉:降雨量取决于风速
由于没有捕捉到风速,并且模型仅使用温度和湿度,因此不管风速如何,它预测在温度为 22 度、湿度为 75%的情况下降雨量为 8 毫米。只有当当前风速也接近 10 公里/小时时,这个预测才是正确的。如果风速与 10 公里/小时(比如 20 公里/小时)相差很大,预测可能不正确。
该模型不能充分代表现实,因为它无法了解降雨量是否以及如何受到风速的影响。这里的主要潜在问题是,我们没有获取所有必要的数据来创建一个能够充分代表现实的模型。
虽然这个例子非常简单,但现实世界中的许多数据科学项目都因为类似的问题而面临最初的失败。数据科学家可能会创建看起来不错的模型,也就是说,他们在创建模型所基于的数据/观察值上有非常小的误差,但有时他们会在生产中神秘地失败。在第十六章中,我们将介绍一些数据科学技术来防止这种情况。但是对该领域的基本理解需要来自业务,以防止由于数据不足而导致的这种有缺陷的模型。 6
数据准备
捕获的数据通常需要以某种方式进行转换,以从中提取最大限度的信息。图 1-5 展示了一个典型的销售预测案例。
图 1-5
数据准备:将交易时间转换为销售预测有用数据的示例
在由系统捕获的交易数据中,比如零售店的收银台,交易时间被捕获为以纪元时间表示的时间戳,即自 1970 年 1 月 1 日午夜 UTC 以来的毫秒数。 7 交易数据还捕获每笔交易的销售额。我们期望销售模式不依赖于交易的时间戳,而是依赖于星期几和月份。例如,周末或假日的销售模式将不同于平日。类似地,像 12 月这样的休假月份会有不同于其他月份的模式。此外,在给定的一天中,不同时段的销售额会有所不同。
因此,我们合计交易销售额来计算每小时的总销售额。因此,我们最终得到五个字段:小时、日、月、年、和相应的销售额。这将使我们能够可视化模式,如前面提到的模式,并允许机器学习步骤确定销售如何受到这些领域的影响。
根据您的业务,您将确定最初捕获的数据中的哪些字段包含哪种有用的信息。另一个例子是,数字传感器读数被转换成高/中/低枚举,如果这与您的用例更相关的话。机器学习步骤将相应地从这些信息中学习,以产生更好的模型。
数据可视化
一旦数据科学家准备好数据,他们首先要探索数据和各个领域之间的关系。我们将这一步骤称为数据可视化。通常,在这种可视化分析过程中,数据科学家会发现一些模式,使他能够决定哪些机器学习技术可能表现得更好。
例如,两个字段(如薪水和经验)之间的线性关系会促使数据科学家首先尝试线性回归模型。类似地,他们可以基于视觉模式来确定某些字段之间是否存在相关性,或者某些行是否是异常值。这些分析有助于数据科学家完成机器学习步骤的设计。用于数据可视化的技术将在第十五章中介绍。
推理
这是机器学习之后的步骤,一旦数据科学团队确定已经创建了足够好的模型,就会执行该步骤。结果模型通常被部署为生产系统的一部分,以根据属性推断关于新观察的信息。例如,如果温度、湿度和风速的当前读数可用,降雨模型可用于推断当天晚些时候的降雨量。或者,给定一个未来的日期,我们可以使用销售模型来预测潜在的销售额。
将模型部署到生产系统中的行为是从科学规程到(软件)工程规程的过渡。这种过渡边界有其独特的挑战以及应对这些挑战的相应技术和工具。在过去的几年里,这个利基领域已经发展成为一门学科,命名为 ML Ops ,我们将在第十七章中详细介绍。
回想一下,对于科学方法,我们需要继续收集模型表现如何的信息。作为科学方法的一部分,验证模型或揭示模型问题的观察证据对于改进模型至关重要。因此,收集到的关于模型的观察结果通常会持续存在,并有效地成为数据科学流程中下一次大迭代的世界的一部分。
数据工程
到目前为止,我们看到的所有步骤都需要软件工程技术来优化数据的存储和计算。大数据规模的数据科学实验通常需要专门的工程支持,以确保对数据的优化和随时访问,尤其是在有多个应用程序或数据源的情况下,这在当今相当常见。
我们将在第三部分更详细地讨论数据工程。目前,关键的一点是,我们将数据工程视为推动科学发展的工程主干,因此是数据科学过程中无处不在的水平。
简要介绍了什么是数据科学,并对数据科学过程有了一个概述,让我们看看它与这些天流行的一些其他时髦词汇有什么关系。
术语混乱:AI、ML、数据科学、深度学习等。
数据科学、机器学习、AI、深度学习等。,人们通常不确定哪个术语适用于特定的问题或用例。因此,现在我们越来越经常地看到诸如 DS/ML、AI/ML 等术语。
虽然术语和炒作游戏将会继续,但重要的是要准确理解在你的业务中需要哪种技术来解决哪种问题,并理解应用这些技术需要哪种技能。
考虑到这一动机,我们将参照图 1-6 简要介绍这些术语对我们的意义。
图 1-6
术语混乱
AI 或人工智能是一个相当通用的术语,用来表示高级应用程序或自动化,它们似乎像人类在类似情况下一样智能地运行。 8
让我们考虑一个可以检测电子邮件是否是垃圾邮件的人工智能引擎 9 。在高层次上,有两种可能的方法来解决这个问题。
基于规则的方法
我们知道哪些是垃圾邮件中出现的典型单词和短语。例如,像“提供”、“免费”、“额外现金”、“你是赢家”等词和短语。指示垃圾邮件。一个简单的 规则 可以是,如果这些单词或短语中的任何一个出现,引擎就宣布该电子邮件为垃圾邮件。稍微复杂一点的规则可以基于电子邮件中这种指示词出现的次数或频率来计算电子邮件的得分。当然,随着垃圾邮件发送者变得越来越有创意,开发者需要将更多这样的规则添加到引擎中。此外,随着文本中指示垃圾邮件的模式的复杂性随着时间的推移而增加,规则的复杂性也会相应增加。
基于误报调整引擎也是困难的。也就是说,如果引擎声明一封电子邮件是垃圾邮件,但用户覆盖并说该电子邮件不是垃圾邮件,那么相应地调整规则可能会变得很棘手,除非跟踪到原因,即导致此异常的潜在模式。
请注意,这个垃圾邮件过滤器的示例以及我们采用的解决方案相当简单。一般来说,根据问题的复杂程度,基于规则的人工智能系统中的规则可以变得越来越复杂和精密。几十年来,基于规则的人工智能已经足以为各行业的专家系统提供动力,并在国际象棋方面变得如此强大,以至于大师们最终在 2000 年代中期停止了与国际象棋引擎的竞争。
数据科学方法
现在,考虑一种不同的数据驱动的科学方法,其中我们试图根据新电子邮件与我们的历史电子邮件数据集中过去的垃圾邮件或非垃圾邮件的相似性来推断新电子邮件是否是垃圾邮件。
根据数据科学的流程, 11 我们从数据捕获*、开始,也就是通过收集关于电子邮件的观察(数据),也就是说,我们有大量被标记为垃圾邮件或非垃圾邮件的电子邮件。然后,数据科学家尝试基于这些数据构建一个模型。为此,他们将首先执行数据准备步骤,应用技术将电子邮件文本转换为有助于机器学习算法的格式。然后,他们将执行一些数据可视化*,以确定这些数据的分布或模式。 12 相应地,他们将执行机器学习—他们将选择合适的机器学习算法,该算法可以利用准备好的数据创建一个模型,该模型可以将电子邮件分类为垃圾邮件或非垃圾邮件。然后,他们将评估该模型的性能;在这种情况下,他们可能会选择垃圾邮件检测的准确性作为评估模型好坏的标准。根据模型性能,他们将继续完善模型和整体方法;这通常需要通过数据准备到机器学习步骤的迭代。
一旦找到满意的模型,就可以将其部署在电子邮件服务器上进行垃圾邮件检测,这是数据科学过程的推理步骤。如果有误报,也就是说,如果模型说某封电子邮件是垃圾邮件,而用户说它不是,那么该电子邮件及其标签(非垃圾邮件)将被添加回我们的数据,即邮件正文和标签。下次机器学习步骤运行时,它会从这些新信息中学习,并建立一个模型,该模型可以在未来将类似的邮件分类为非垃圾邮件,而无需任何人工干预。
Hype Notes
在过去的几十年里,人工智能经历了衰落和复兴的不同阶段。在 2000 年代中期至后期经历了十年的相对炒作停滞后,始于 2012 年左右的基于数据科学的人工智能方法的流行将人工智能推回了炒作的聚光灯下。
最近在深度学习方面持续的创新和成功,特别是过去几年的 GANs 和强化学习,正在维持和推动人工智能的炒作。这一次,我们预计人工智能将继续存在。
正如我们在前面的例子中看到的,机器学习技术在数据科学中发挥着关键作用。随着时间的推移,术语机器学习,或 ML ,已经扩大了它的范围,包含了几乎所有现有的统计和计算方法。你可能听说过决策树、SVM(支持向量机)、线性回归和其他类似的 ML 技术,我们将在第十六章中介绍。在所有的 ML 技术中,一种称为深度学习的技术子类在解决图像中的对象检测和自然语言处理(NLP)等复杂问题方面获得了很大的普及和采用,特别是自 2015 年左右以来。深度学习技术基于神经网络的概念。尽管该理论有着悠久的历史,但当前的复兴始于 2010-2012 年期间,当时具有更多层和复杂性的更深层次的网络可以被成功训练来解决图像处理问题,如对象检测和图像分类。13
实际上,与其他经典的 ML 技术相比,使用深度学习技术所需的方法和技能有显著的不同。我们将在第三章和第二十章中详细阐述这些细微差别。
Rule-Based vs. Data Science
重要的是要记住,数据科学这个术语是在最近十年才开始流行的。深度学习虽然在理论上相当古老,但也只是在最近十年才开始变得容易处理和有用。
但是人工智能已经存在很久很久了。专家系统控制着复杂的机器,计算机程序变得比任何国际象棋大师都强大,远在数据科学这个术语流行之前。因此,很有可能你的企业并不真正需要数据科学——更传统的人工智能,例如基于规则的方法,在许多情况下就足够了。
让我们看一个例子,人们可能会感受到数据科学的魅力,但基于规则的系统可能就足够了。考虑一个智能城市解决方案,它集成了多种设备、系统和传感器,以支持可操作的策略。您可能遇到过的一个常见政策类别是停车政策——基于一天中的时间和一周中的某一天的分级停车费率很常见。智慧城市平台可以允许更复杂的政策,这些政策可以根据当前的占用率、附近的交通和天气情况动态地增加或减少停车位的停车率,因为所有这些信息都已经集成到智慧城市平台中。在这种情况下,人们可能会尝试创建一个基于数据科学的模型来估计停车需求并相应地决定定价。这有几个问题。首先,在开始之前,我们需要收集大量关于在各种交通和天气条件下停车的历史数据。第二,定义一套规则可能会简单得多,而且足以根据这些规则来改变停车费率。一个示例规则是,如果附近车道的交通流量增加一倍,则将停车费率提高 20%。分析师可以访问一个应用程序,他们可以在其中观察规则是如何执行的,并随着时间的推移对它们进行调整。
请注意,基于规则的方法通常可以充当替身、引导机制,直到有足够的数据可用于创建基于数据科学的预测模型。在我们刚刚看到的停车示例中,一旦我们启用了基于规则的动态定价并收集了几个月的数据,就可以使用数据科学来确定基于预测模型的最佳定价规则。
结论
我们讨论了数据科学的过程,这是本书其余部分的方向。我们还看到了数据科学过程如何有效地允许我们使用软件将科学方法应用于数据,即进行数据科学。
然后,我们澄清了一些与数据科学和人工智能相关的术语,以帮助确定哪一个最适合手头的业务问题。业务问题的种类决定了最适合解决这些问题的技术种类。基于所需技术的种类,您可以确定团队中所需的适当技术和技能组合。
因此,在下一章中,我们将开始研究数据科学如何融入业务,以及它如何为业务带来好处。
进一步阅读
《戴森、爱丁顿和戴维森》(1919)中给出了爱丁顿和戴森探险的扣人心弦的叙述。幸运的是,数据科学项目的数据收集要简单一些。至少,在这个互联网和基于云的数据时代,我们在收集数据时很少需要担心“轮船公司罢工”之类的情况。
文献中有大量关于数据科学的不同定义和解释。有关数据科学的更多理论和历史背景,请参考布拉施勒、施塔代尔曼和斯托克林格(2019)的第 1 、 2 和 8 章。
参考
布拉施勒、马丁、蒂洛·施塔代尔曼和库尔特·斯托克杰。应用数据科学,从数据驱动型业务中吸取的经验教训。瑞士楚格的查姆:施普林格,2019。
戴森,F. W .,A. S .爱丁顿和 c .戴维森。根据 1919 年 5 月 29 日日全食时的观测,确定太阳引力场对光线的偏转英国皇家学会哲学汇刊。伦敦,1920 年。291-333.
请注意,这个模型是“工程”而不是科学的结果。虽然“模型”的概念并不局限于科学,但在本书中,我们将使用术语 model 来指代通过应用科学方法创建的模型。
2
这种情况下的算法是线性回归,我们将在第十六章中介绍。
3
车型性能评估也将在第十六章中详细介绍。
4
这是一个极其简单化的观点。但是预测降水(在我们的例子中是降雨)的基本公式是基于其他因素,如温度、湿度等。,尤其适用于局部天气预报,例如,当您在自己的工业场所有自己的气象站时。
5
为了简化图示,我们只提到了风速。实际上,还有其他因素,如大气压力等。,也是。
6
领域专家(业务分析师)的角色将在第二十一章中介绍。
7
这是软件系统存储时区无关的时间表示的一个传统习惯。
8
哲学注释:关于人工智能是什么有不同的观点。对此我们将跳过哲学角度。
9
你可能知道这个人工智能引擎的名字是垃圾邮件过滤器。
10
你可能听说过一些技术,像极小极大,阿尔法-贝塔剪枝等。,广泛应用于基于规则的人工智能系统。这方面的大量文献不容忽视。
11
参见图 1-1 。
12
根据他们所看到的,在我们进行下一步之前,可能会有数据准备的迭代。
13
我们将在第十章的中介绍更多关于计算机视觉的细节。
*
二、数据科学和您的业务
理解了数据科学过程及其所包含的内容之后,我们现在深入研究数据科学的业务适用性。
我们将首先介绍数据科学可以为您的企业带来的各种好处,包括每种好处的几个示例。然后,我们将讨论一些要考虑的方面,以确保您的企业已准备好开始进行数据科学。
数据科学如何融入企业
数据科学可以以几种不同的方式在企业中使用。图 2-1 从较高的层面说明了这一点。
图 2-1
企业中的数据科学
让我们从头到尾走一遍,从业务流程框开始。当业务策略(a)被执行时,要么产品被创建,要么某些操作过程被自动化(b)。产品的一个例子是你的技术公司可能已经创建的云托管应用。运营自动化的一个例子是 SCADA 1 系统或物联网基础设施,您可能已经将其作为企业数字化的一部分进行了设置。
在这两种情况下,都会生成数据©。例如,数据可以是关于客户如何在线使用你的服务的,或者是关于你的车间设备如何运行的。所有这些数据都可以被数据科学团队使用(d)2(e),以创建通过运营优化/产品增强来帮助改进流程/产品的模型(f),和/或为业务提供战略洞察力(g)。
为了向业务提供这些不同种类的好处,数据科学团队使用为您的业务策划的技术(I)和技术(j)来执行数据科学流程(h)。回想一下,我们将使用软件将科学方法应用于数据视为数据科学——数据科学过程中使用的技术实现了科学方法,而技术实现了所需的软件。(我们将在本书的第三部分中探讨技巧和技术。)
现在让我们通过一些例子来更深入地研究前面提到的业务优势。
运营优化
数据科学团队可以创建预测模型来指示特定活动可能发生的时间,这些预测模型可用于优化活动的计划。
例如,考虑预测加油站的库存需求的情况。假设我们使用数据科学来创建模型,该模型可以根据过去的使用数据来预测燃气公司主终端附近的每个加油站何时需要补充每种燃料。提前很好地了解补充需求允许为将来的日期创建从主终端到加油站的优化交付计划。优化可以基于加油站所需的燃料类型/数量、未来日期可用的卡车类型以及在这些日期完成再加注的最佳路线。
RoI Notes
在这个预测加油站库存需求的例子中,从预测模型到业务 RoI 的路径已经被标出。因此,从事数据科学将是一个明智的决定。你也做好了知识准备,数据科学产生的预测模型不是终结;在这些模型的基础上,需要更复杂的优化算法来开始看到 RoI。
产品增强
如果您正在构建技术产品,数据科学模型可以帮助您为产品添加与众不同的功能。一个常见的例子是推荐引擎,它在网飞上推荐电影或者在亚马逊上推荐产品。推荐引擎通常基于相似用户过去的选择进行推荐。基于语音的技术、聊天机器人等。,是可以添加到任何产品中以改善客户互动的其他示例。
假设你有一个客户服务的技术解决方案。您可以在您的解决方案中添加一项功能,在语音通话过程中自动检测客户是否失望、愤怒或有任何负面情绪。为了实现这一点,您可以使用语音转录服务,将语音实时转换为文本。然后,您可以将这些文本输入到基于数据科学的情绪分析模型中,该模型可以对客户的情绪进行分类。一旦你的产品可以实时了解客户情绪,它就可以提供各种商业利益。它可以作为团队领导的实时反馈回路。离线分析还可以确定哪些客户服务主管面对难缠的客户,以及他们如何处理这些情况。作为产品的创造者,您可以将这些分析作为增值服务提供给客户(客户服务公司)。
同样,物联网解决方案通常使用基于数据科学的预测功能来区分自己。例如,用于监控工业能源或水消耗的基于云的物联网解决方案可以提供增值服务,根据为特定客户量身定制的模型来预测能源或水需求。预测性维护是另一个常见的用例——比如说,特定设备或装置的功率读数异常可以表明潜在故障的开始。这些异常由基于过去读数趋势的模型检测到。主动解决此类情况有助于预见和防止运行期间的停机。因此,如果您的物联网解决方案提供这样的功能,它将对潜在的工业客户更具吸引力。
战略洞察力
数据驱动的业务战略转型一直呈上升趋势,特别是自大数据革命以来。数据科学在战略决策和管理咨询中发挥着越来越重要的作用。
考虑确定开设新店的最佳地点的问题。传统上,这是基于客户的人口统计因素和地理因素,如靠近交通枢纽、购物中心和竞争对手的商店。在过去几年中,关于人们使用移动应用程序和位置移动的数据迅速增加,称为移动数据。鉴于潜在客户流动性的可见性增加,现在有可能创建更复杂的 ML 模型,将流动性以及地理和人口因素纳入决策制定。 3 这样的模型可以确定一组候选地点中的哪一个可能吸引最多的访问次数。
另一个传统问题是识别潜在的客户流失。除了确定可能流失的客户,我们还想确定可能的原因。为此,我们将首先创建一个模型,该模型可以预测哪些客户会流失,还可以对销售渠道、折扣、产品分类等因素进行排序。,这是很重要的。这将有助于做出解决这些根本原因的战略决策。 4 例如,如果您发现折扣是一个重要因素,您可以根据模型进行模拟分析,以确定更高的折扣可以减少客户流失的程度——这种分析将有助于获得最佳折扣,从而在对收入影响最小的情况下减少客户流失。
您的企业为数据科学做好准备了吗?
每个人似乎都同意数据科学显然很酷。它似乎适用于解决您业务中的一些问题。接下来呢?假设,如果你现在有一个数据科学团队听从你的命令*,*他们会在做什么?他们有足够的生产力吗?
甚至在开始数据科学之旅之前,就需要规划出实现业务投资回报的潜在途径。这一点的重要性怎么强调都不为过。
警示故事
我们看到的一个例子是,一家公司投资开发了一种能力,可以根据每次运行几天的化学过程中的各种控制参数和读数来预测化学产品的产量。聪明的人使用尖端的深度学习算法,并能够随着过程的进行预测产品的产量。他们在这些预测中取得了非凡的准确性,甚至构建了一个应用程序来显示产量的预测趋势,并在实际产量与预测值相差很大时通知关键人员。
达到这一里程碑后,他们现在想回去调整控制参数以提高产量。由于使用了极其复杂的神经网络,他们无法解释 5 的预测,也没有真正获得关于控制参数如何影响产量的可操作的见解。因此,事实证明,到目前为止,他们的所有投资都没有产生预期的重大商业价值。
另一方面,我们在上一节中看到的例子,特别是那些运营优化的例子,是在开始研究数据科学之前概述了实现业务 RoI 的途径的例子。一旦我们知道了业务目标,我们就可以尝试开始数据科学。
一开始是数据
正如我们从数据科学过程中看到的,数据科学的起点是数据。这是一个显而易见的观点,但是它的含义和重要性经常被忽视。
您的组织是否拥有从事数据科学来解决您的问题所需的数据?如果没有,您将首先需要定义一个旨在收集面向该目标的数据的数据策略。数据战略最好由首席数据科学家这样的人来定义。如果你雇佣了一个首席数据科学家,他们可以帮助定义策略,但是在策略被执行和数据可用之前,他们会相对闲置。因此,实际上最好的办法是在这个早期阶段找一个顾问。
数据是和谁一起的?
如果您拥有必要的数据,那么数据科学家加入您的组织后,他们是否可以访问这些数据?在大型企业中,数据分散在多个业务线和数十个(如果不是数百个)应用程序中,数据科学家最常见的抱怨是他们无法访问所需的数据。在数据科学开始之前,通常需要为数据科学创建一个数据沙箱,并确保必要的管道将数据传送到这个沙箱中。这需要定义一个开发数据管道的战略路线图,与数据科学试图解决的业务问题保持一致。
Hiring Notes
数据源的复杂性和范围也可能决定您的数据科学团队的最初雇佣——有些数据科学家将进行必要的数据集成和清理 6 ,而其他人则希望为他们提供适当的数据,以便他们专注于纯粹的科学分析。 7
模特说“我在这里,送我”
到目前为止,您已经确保了数据可以通过必要的基础设施获得和访问。对于成功的数据科学之旅,要确保的另一个方面是组织流程足够成熟,可以部署和使用最终将创建的数据科学模型。您将需要与各自系统的工程团队协调,以确保在创建模型时已经做好准备。
企业经常进行数据科学研究,结果却是数据科学家抱怨数据,或者模型在生产中不见天日。根据本节中的概述进行业务准备情况分析将有助于尽早降低数据科学实践的风险。
结论
商业考虑是最重要的——即使是像数据科学这样酷的东西;尤其是像数据科学这样的跨学科领域。数据科学可能需要企业进行大量投资并做好准备,如果做得好,投资回报会非常高。但也有一些陷阱,从事数据科学的仓促决定往往在事后才被发现。
在本章中,我们讨论了数据科学带来的好处,以及在开始研究数据科学之前需要考虑的方面。在下一章中,我们将深入探讨数据科学的两种文化,以及它们如何与您的业务相关联。当你着手组建一个数据科学团队时,这些考虑将有助于确定你的团队成员需要什么样的技能和科学文化才能最好地与你的业务目标保持一致。
进一步阅读
本章介绍的数据科学的业务和运营方面将在本书的第四部分更详细地介绍。
数据科学在商业战略和管理咨询中的应用在《丘鲁苏》(2018)中有相当深度的论述。
参考
杰瑞米·大卫·丘鲁苏。数据驱动,21 世纪管理咨询导论。纽约州纽约市:斯普林格,2018 年。
卡拉姆舒克、德米特罗等人。艾尔。"地理定位:挖掘基于位置的在线服务,以优化零售店布局."第 19 届 ACM SIGKDD 知识发现和数据挖掘国际会议论文集。计算机械协会,2013 年。793-801.
监控和数据采集(SCADA)被工业广泛采用来监控和控制设备。
2
本书的第四部分涵盖了数据科学团队中的技能、角色和典型结构。
3
参考 Karamshuk (2013)的详细示例,其中移动性因素基于 Foursquare 签到数据。
4
关于示例模型,请参考杰里米·丘鲁苏的《通过结合机器学习和敏感性分析制定商业战略》, https://aws.amazon.com/blogs/machine-learning/developing-a-business-strategy-by-combining-machine-learning-with-sensitivity-analysis/
,2019 年 11 月 13 日。
5
我们将在第 16 、 20 和 23 章中更详细地介绍这一关键方面。
6
也称为数据争论、蒙骗和其他丰富多彩的术语。
7
我们将在第二十一章中了解数据科学团队的技能框架。
三、僧侣与牛仔:数据科学文化
在您的业务环境中接触了数据科学之后,现在是时候确定什么样的数据科学文化最适合您的业务了。数据科学主要有两种文化——僧侣文化(由僧侣定义和实践)和西部蛮荒文化(被牛仔形象化)。
在这一章中,我们将详细阐述这两种文化如何实践数据科学以及这两种文化的商业含义。这将有助于确定你希望主要灌输哪种文化。主导文化不仅会推动技术和工具的选择,还会推动你的招聘策略——僧侣和牛仔都倾向于称自己为数据科学家,辨别你的形成团队需要谁对实现你的业务目标至关重要。
数据科学的两种文化
回想一下我们在第一章对科学方法的讨论,模型有两个目的:解释观察结果和预测未来观察结果。例如,参见图 1-2 。在这种情况下,该模型揭示了一个潜在的事实,即员工的工资从大约 4 万英镑开始,每年增加(大约)8 万英镑。基于这种理解,我们也可以预测未来经验观察的工资。因此,这款?? 1T7 同时满足了两个目的。
因此,考虑到两个目的——解释观察结果和预测未来观察结果—,数据科学的两种文化围绕着关注两个目的还是只关注预测。为了进一步澄清这一点,让我们回顾一下在前面章节中看到的几个例子,更深入地研究正在解决的问题。
回想一下第二章中的警示故事,我们看到预测化学品产量的能力不足以帮助调整控制参数以获得最佳产量。在这种情况下,人们需要更深入地了解化学过程在自然中如何工作,也就是说,在给定控制参数和初始混合物的情况下,反应将如何随时间进行以及最终的产量。仅仅预测产量是一个相对简单的问题,而不是确定所有控制参数本身之间的相互关系以及它们对产量的集体影响。在这种情况下,尤其是涉及到自然过程时,关注估计数据背后的真相,也就是说,可能产生数据的过程,通常是有益的。这允许我们控制某些参数,以在很大程度上影响底层过程本身。一旦完全理解,化学过程本身在很大程度上是不变的——除非引入新的参数/化学物质,否则我们可以永远继续使用相同的模型。
相比之下,预测商店对产品的潜在需求是一个难题。在这种情况下,我们可能会使用历史销售数据和其他几个数据源,如来自社交媒体的趋势、商店周围可能发生的事件等。,建立一个预测需求的复杂模型。在这种情况下,我们的主要目标是预测,以便我们可以相应地计划库存。
了解哪些因素对需求的影响比其他因素更大可能是有用的;在某些情况下,如社交媒体因素,我们甚至可能试图推动趋势。但是控制潜在因素的这一方面是次要的和附带的——需求预测才是目标。随着销售数据、社会趋势和附近事件的不断变化,我们也可以用新数据频繁更新我们的模型。
与前面的化学过程例子相比,需求预测案例中的模型着眼于短期的、相对偶然的方面,而不是自然过程背后的长期事实。
这两个极端的例子凸显了两种数据科学文化的特征。一种文化侧重于完全理解产生观察结果的基本过程,而另一种文化主要侧重于能够准确预测未来的观察结果。相应地,在这两种文化中,数学、统计和算法技术的选择往往是不同的。
我们把第一种文化称为修道文化,它专注于破译潜在的真理。我们称第二种文化为西部文化,它专注于预测准确性的经验目标。根据我们的经验,虽然专家数据科学家可以在修道院和蛮荒的西部地区导航,但他们往往天生就有一种默认的主导文化。我们将在本章的后面部分讨论数据科学家的文化背景。
我们认为,理想情况下,问题陈述和业务目标应该规定哪种文化/方法适合于该问题。对于某些业务来说,混合方法可能是合适的。
混合文化
例如,考虑一家气象公司。由于业务主要依赖于自然天气过程,因此投入精力更详细地了解潜在的天气系统是非常有意义的。这使得企业能够在技术上推进该领域,创造更好的工具和数据收集来源以及先进的天气模型。对于这方面的业务,修道文化是合适的。
面向客户的业务可能不仅仅局限于预测天气。也许你正在为航运公司提供高级服务,比如基于你的天气预测和其他海洋数据的路线算法。或者,您可能正在向海岸线行业提供服务,使用整合了您的天气模型以及客户行业的其他数据的模型来预测中断。在这些情况下,为您的客户提供的更具体的模型可以基于狂野西部文化,因为了解客户数据的底层流程对您的核心业务没有太大好处。经常更新这些为您的客户量身定制的模型也是合理的。
如果在这一点上,这两种文化看起来有点抽象,不要担心——我们将在本书中继续添加更多的细节来区分这两种文化。在本书中如此早地介绍这两种文化的主要原因是,我们相信采用适合您业务的文化是增加您数据科学实践成功机会的关键之一。
在下面的章节中,我们将详细阐述与这两种文化相关的一些因素,并将这些因素与您的业务目标对应起来。
文化差异
表 3-1 总结了两种文化之间的主要差异。我们将在第二十章中继续添加这个表格。
表 3-1
修道院与狂野西部:第一版
|因素
|
修道文化
|
西部文化
|
| — | — | — |
| 心态 | 找到导致观察的潜在的、永恒的真理(自然) | 现在就找到有效的方法。可以经常更新。经验主义是唯一永恒的真理 |
| 目的 | 对观察结果背后的真理的估计,从而使预测和更深刻、准确的因果 2见解成为可能 | 预测准确性是首要目标因果往往是一种损失。因果洞察力要么是不相关的,不太准确的,要么只是有好处的 |
| 估价 | 我的估计有多接近事实? | 我得到的预测是否如我所愿的那样准确? |
在下一部分,我们将看看这些文化因素如何与您的业务相关联。
数据科学文化和您的业务
虽然我们还不知道僧侣和牛仔是如何工作的,以及他们在实践中有什么不同,但我们对他们的根本动机有足够的了解。基于此,我们已经可以看到如何识别哪种文化更适合您的业务问题的轮廓。表 3-2 总结了这些因素。需要注意的是,这些并不详尽,也不具有规定性,它们只是指示性的。
表 3-2
哪种文化适合你的企业?
|因素
|
修道文化适合如果
|
西部文化适合如果
|
| — | — | — |
| 商业目标 | 推进自然科学是一种商业策略,例如,洞察天气系统 3 | 管理、战术决策或产品/运营增强是战略目标,例如,需求预测 4 |
| 病因(因果关系) | 病因学是至关重要的,例如,影响化学过程的控制参数 5 | 病因有好有坏,例如,需求预测、网飞推荐等。 |
| 数据同质性 | 您的数据来自特定人群/环境,因此可以确定生成数据的单一、真实、潜在(自然)过程,例如,您公司的某个化学过程 6 | 您处于大数据领域,具有多个数据源和各种人口/环境,其中可能不存在单一的潜在事实,例如,使用社交媒体和历史销售的需求预测 |
在某些情况下,甚至在一个企业中,不同的问题似乎需要不同的文化。当我们团结一致地看待一个企业中现存的问题时,一种主导的文化就会出现——通常这种主导文化也足以解决未来的问题。
对于与主流文化大相径庭的偶然问题,一个实用的方法是找一个顾问来解决这个特定的问题。例如,如果你灌输一种西部文化,并且有一个问题需要病因学的洞察力(例如,说生物学的原因因素与你的问题的背景相关),你可以得到咨询僧侣(例如,生物统计学家)的帮助。
数据科学家的文化谱系
数据科学家的僧侣与牛仔二分法最好被视为如图 3-1 所示的一系列特征。
图 3-1
数据科学家——特征谱
虽然来自这两种文化的专家通常可以根据需要灵活地调整自己,但如果您团队的形成成员更接近与您的业务目标一致的文化,通常会更顺利。
数据科学的理论和实验
大多数科学努力都有两个相互交织的方面——理论和实验。例如,在物理学中,提出新的候选模型如爱因斯坦或牛顿的引力模型 7 是理论方面。进行实验来收集数据——因为没有足够的观察来创建模型或验证模型——是实验的方面。爱丁顿和戴森的探险是实验的一个例子。
和其他科学领域一样,数据科学也需要理论和实验。就数据科学而言,理论由数据科学过程中使用的众多统计技术和算法组成,构成了数据科学家的武器库。实验包括编写软件代码来反复应用这些技术,以获得候选模型。
僧侣和牛仔都使用统计技术和算法——尽管他们在实践中的默认选择通常不同,这取决于他们在早期光谱中的位置。相应地,理论和实验的首选方法在两种文化中也有所不同。直觉上,僧侣文化更倾向于正式的统计方法和由人类洞察力驱动的实验。另一方面,狂野西部文化倾向于日益复杂的算法和自动化,如图 3-2 所示。我们将在第二十章中用具体的例子涵盖这些变化,并用更多的技术细节总结文化方面。
图 3-2
两种文化中的理论和实验
请注意,如前一节所述,该图仅说明了极端情况下的特征。数据科学家通常涵盖整个早期的范围,但在不同程度上倾向于范围的一端。
这些方面会间接影响数据科学团队的基础设施和工程需求。
数据工程
工程需求通常由数据科学文化驱动。这主要与之前讨论的数据同质性因素有关。
如果您的数据科学家主要是修道士,他们可能更喜欢同质数据,因为它更容易发现潜在的“真相”对于异构数据,不太可能发现单一的潜在真相。因此,他们可能通常处理相对包含和同质的数据。这通常意味着可能要花费更多的数据工程工作来提供干净的、相关的数据子集。这样的数据集大小通常适合在单台机器上进行分析。僧侣们往往倾向于分析一个单一的同质数据集几个星期来制作他们的模型,因为他们对真相的洞察力越来越强。
另一方面,牛仔对同质数据没有特别的偏好。他们经常处理从多个来源获得的异构数据,这是大数据的特征。在最极端的情况下,他们会在机器学习步骤中在多个 GPU 上运行深度学习。考虑到数据的异构性,他们也从数据准备步骤开始,更快地迭代多个变量。在这种情况下,更多的数据工程工作将用于数据科学流程中所有步骤的大数据高效访问,包括数据准备、数据可视化和机器学习。
需要注意的是,这些只是根据我们的经验得出的一些观察结果——我们已经看到了与这些典型趋势的偏差。最终,这一切都取决于数据科学家针对手头的问题所采取的具体方法。
结论
已经介绍了数据科学中的两种文化——这些文化之间差异的潜流将贯穿本书。这一讨论将在第二十章继续,我们将总结进一步的差异,包括技术方面。
我们还谈到了业务目标如何勾勒出适当的文化——为了建立适当的文化,数据科学团队需要由僧侣或牛仔组成。在第二十二章中,我们将重温僧侣和牛仔的定义特征,特别是关于他们的技能和背景——这将有助于概述基于理想文化的团队形成方面。
第一部分概述
至此,我们结束了本书的第一部分。我们在第一章中介绍了数据科学流程,在第二章中介绍了数据科学如何与您的业务相关联。在本章中,我们看到了科学方法的更多细节,尤其是数据科学中的两种文化。关键要点是,业务目标应该决定如何引导数据科学实践——本书的这一部分广泛涵盖了这些形成因素。
我们现在准备更深入地研究使用数据科学解决的问题类别。我们将在第二部分中讨论这些内容。
回想一下第一章中提到的,这是一个用于说明目的的简化示例。更现实的模型将包括额外的因素,然后一个类似的模型(线性回归)将确定工资和所有其他因素的综合影响之间的关系。
2
注意,我们在这里松散而直观地提及因果关系。数据科学家从来没有自信地推导出因果关系;他们只是试图获得指示可能因果关系的洞察力。在第二十章中,我们将在技术上更加精确地描述这一点。
3
另一个例子:基于其他健康因素的人类语音产生。
4
另请参考第二章中的其他示例。
5
另一个例子:疾病的临床试验。
6
临床试验是数据同质性的典型。
7
参见第章 1 。
8
自动化可以处于各种级别,从自动化特征提取(例如,使用 CNN 从图像)到自动化模型选择(例如,AutoML)。我们将在第三部分中讨论这些内容。
9
按需扩展,通常在云上。但通常还是单台机器,而不是集群。
四、分类
先说一类常见的问题,叫做分类问题。分类问题要求您根据一些观察到的属性的值来推断/预测新观察值所属的类别/范畴。例如,根据邮件正文、发件人的电子邮件地址等推断邮件是“垃圾邮件”还是“普通邮件”。;根据交易的详细信息,如交易地点、支付金额和方式等,推断数字支付交易是“欺诈”还是“非欺诈”。
假设一家汽车公司推出了一款新车,营销团队执行了有效的广告策略,吸引了感兴趣的客户源源不断的询问。数据科学可以帮助识别最终可能购买汽车的感兴趣客户,以便销售团队可以关注这些客户,从而提高销量。这是一个分类问题,因为这里的目标是推断一个感兴趣的客户属于购买汽车的客户类别还是不购买汽车的客户类别。让我们看看实现这一目标可以遵循的数据科学流程的详细步骤。这是我们讨论的第一个端到端问题,我们将在后面的章节中更详细地讨论它的步骤。我们还将利用第一个问题来介绍一些我们将在整本书中使用的新术语。
数据捕捉
目标是预测哪些客户最终会购买汽车。数据科学中一切魔力的源泉是 数据 。如果可以的话,您可以使用包含以前类似汽车的感兴趣客户的详细信息的过去数据。如果这些数据不可用,您可以定义一个策略来获取最初几个感兴趣的客户的相关详细信息。然后,这些数据将用于数据科学流程的后续步骤,以构建模型,根据初始客户的趋势预测未来哪些感兴趣的客户可能会购买汽车。因此,作为数据获取策略的一部分,您可以指导销售团队获取每个初始客户的性别、年龄、职业和年收入 1 以及该客户的结果以表明该客户是否购买了汽车。您认为应该可以根据其他四个变量的值以合理的准确度预测感兴趣的客户的结果。做出预测所依据的变量(性别、年龄、等)。,在这种情况下)被称为特征,而你试图预测其值的变量(在这种情况下为结果)被称为目标。请注意,这里的目标变量的值就像所有分类问题中的值一样,都是类别(购买、未购买等)。).所收集数据的快照如图 4-1 所示。假设在这种情况下,销售团队在 excel 文件中手动输入这些详细信息。我们将在第三部分讨论如何以编程方式捕获数据,以及帮助您这样做的工具/库。
图 4-1
数据捕获步骤中收集的数据的快照
数据准备
获取数据后,您需要以各种方式准备数据,以构建有效的模型。我们在上一步中捕获的数据中有一些行的结果为打开,这表示正在进行查询。这些客户发起了调查,并在收集数据时与销售团队进行了积极的讨论。由于我们不知道这些客户最终是否会购买汽车,因此这些客户的数据与构建我们的预测模型无关。作为准备数据的一部分,我们将删除对此类客户的观察。如果您查看图 4-2 中数据准备步骤准备的数据快照,您会注意到数据准备步骤已经删除了对这些客户的观察。
在处理分类问题时,您可能还会遇到这样的情况,即 target 变量中的类没有被同等地表示。例如,与那些结果被购买的客户相比,你可能有更多的结果是而非被购买的客户。这被称为类别不平衡,可能会导致代表性不足类别的预测准确度较低。 2 您可以选择在数据准备步骤中解决类不平衡,方法是转换您的数据集,使其更加平衡。 3 此外,捕获的数据可能会有错误的观察结果。例如,您可能会遇到年龄为“0”的行,这表示在输入该客户的详细信息时出错。作为准备数据的一部分,您应该删除这些错误的观察/行;否则,你可能会创建一个学习错误趋势的模型。在第三部分中,我们将会看到更多在这一步中常用的技术,以及帮助您将这些技术应用到数据中的工具/库。
图 4-2
数据准备步骤准备的数据快照
数据可视化
在这一步中,您可以使用强大的可视化功能来分析您的准备数据,以深入了解趋势。这些见解在很多方面都很有用,可以帮助你在机器学习步骤中建立有效的模型。图 4-3 显示了基于我们准备好的数据在这一步创建的可视化。这里的可视化效果是一个堆积条形图,它将每个收入段中没有购买汽车的客户数量堆积在购买汽车的客户数量之上。每个条形的总高度表示相应细分市场中感兴趣的客户总数,每个条形中的绿色部分表示实际购买了该细分市场中汽车的感兴趣客户。我们可以看到,在过去,我们有更多对高收入细分市场感兴趣的客户。此外,在高收入人群中,购买汽车的感兴趣客户的比例似乎更高。这意味着年收入似乎对一个客户最终是否会买车有影响,也就是说年收入似乎影响结果。这种洞察力会让你对使用年收入来建立预测结果的模型更有信心。你也可以想象其他的功能,一旦你对你选择的功能感到自信,你就为下一步做好了准备,机器学习。
正如前面提到的*、因为这是一个分类问题,所以目标变量中的值是我们在这个可视化中堆叠的类(购买,而不是)。如果目标*变量包含连续值(如薪水),可视化效果会有所不同,回归问题将在下一章讨论。数据可视化本身是一个庞大的主题,为您的问题设计正确的可视化的艺术可以帮助您轻松发现趋势,否则很难识别。在第三部分中,我们将会看到一些更流行的可视化工具,以及可以用来创建这些可视化工具的工具/库。
图 4-3
分类问题的数据可视化
机器学习
由于我们的目标变量中的值是类(购买的,而不是购买的),我们将在这一步使用分类机器学习算法之一。分类机器学习算法从过去的观察中学习,以推断新观察的类别。为了简单起见,我们在这里选择一个决策树算法,因为我们还没有介绍更复杂的算法,这些算法将在本书的第三部分讨论。第三部分还讨论了实现这些算法的相应工具/库。
决策树算法基于我们准备好的数据建立一个决策树模型。图 4-4 显示了我们的决策树模型的局部视图,它关注于与本讨论相关的部分,而忽略了其他细节。请注意,决策树了解到,35 岁以下的女性不会购买汽车,无论她们的职业或收入如何。另一方面,年龄超过 35 岁、收入超过 10 万英镑的男性购买汽车,与他们的职业无关。该模型现在能够预测未来哪些感兴趣的客户可能会购买该车。
图 4-4
机器学习步骤创建的决策树模型的局部视图
推理
既然所有的艰苦工作都已完成,该是收获收益的时候了。现在,您可以将刚刚创建的模型部署到生产环境中,并请求应用程序开发人员创建一个应用程序,销售主管可以用它来预测新客户是否会购买汽车。销售主管将在应用程序中填写感兴趣的新客户的详细信息(性别、年龄、职业、年收入),应用程序会将这些详细信息传递给你部署的模型进行预测。该模型将基于细节遍历树来进行预测。图 4-5 显示了部署的决策树模型如何基于新客户的详细信息遍历该树,以预测结果。这里的新客户是 30 岁的女性,因此模型将在性别节点向左 4 ,然后在年龄节点再次向左,并预测未购买,表明客户不可能购买汽车*。应用程序将接收这个预测的结果*,并将其显示在主管的屏幕上。我们将在第三部分中研究一些在生产环境中部署模型和使用它们进行推理/预测的常用方法以及相关的工具/库。
图 4-5
推理过程中决策树模型的遍历
数据工程
数据工程在整个数据科学过程中负责数据的存储和访问,如图 4-6 所示。在本例中,我们假设数据在数据捕获步骤中存储在电子表格中,然后在后面的步骤中读入适当的数据结构。因此,在我们的场景中,我们不需要繁重的数据工程,但是当您处理大量数据时,数据工程对于确保高效存储和快速访问变得非常重要。在第三部分中,我们将研究一些有效存储和访问数据的技术以及相关的工具/库。对于后面章节中的其他问题,我们将跳过数据工程部分,除非某个问题需要从数据工程的角度进行独特的处理。
图 4-6
分类问题的数据工程
结论
分类问题是数据科学家工作中最常见的问题类型之一。因此,如果你正在建立一个数据科学实践,很有可能你或你的团队最终会从事这方面的工作。在这一章中,我们研究了什么是分类问题,并讨论了一个具体的场景来演示如何解决这类问题。
以美元报告的年收入。
2
我们建议对阶层失衡问题进行深入研究。
3
有一些简单的技术常用于修改数据集,使它们更加平衡。我们建议您熟悉这些内容。
4
读者的左边。
五、回归
一个回归问题需要你根据一些观察到的属性的值来推断/预测对应于一个新观察到的量。我们在第一章中简单讨论过的问题,目的是根据一个人的经验来预测他的工资,根据温度、压力等来预测降雨量。,都是回归问题的例子。
假设您是一家提供健康保险的保险公司,想要优化保险费以实现利润最大化。虽然你可能想提供一个负担得起的保费,以吸引客户,你会收取更高的保费,为客户谁可能索赔高数额,以减少您的损失。您可以建立模型来预测客户可能索赔的金额,并将其作为决定该客户最终保费的因素之一。这是一个回归问题,因为我们想要预测数量索赔金额。让我们来看看您可以在数据科学过程的不同步骤中针对此问题使用的可能技术。
数据捕捉
您将从查看过去用户的存储策略记录及其索赔详细信息开始。让我们看看影响客户索赔金额的因素。老年人更有可能需要医疗护理,因此可能会要求更高的金额。身体质量指数较高的人可以要求更高的金额,因为他们患心脏病的风险更高。同样,吸烟者可能会要求更高的金额,因为它对健康有不良影响。还有许多其他因素,如性别、职业等。一个人索赔的金额取决于此。你可以找出所有相关的细节(年龄,吸烟状况等)。)作为我们模型的特征,以及索赔金额,这是我们从策略记录中的目标到另一个位置,以便在数据科学流程的后续步骤中轻松访问。为简单起见,我们将只关注年龄、吸烟状况、和性别作为特征。注意,这里的目标变量就像所有的回归问题一样,是连续值。我们假设每个客户只有一份年度保单,并且索赔金额是该客户在相应年度索赔的总金额。从策略记录中提取的数据的快照如图 5-1 所示。这里的每一行对应一个用户及其策略。 1
图 5-1
从保单记录中提取的数据
数据准备
由于这是一个回归问题,你将需要在后面的机器学习步骤中选择一个回归机器学习算法。通常情况下,假设您决定在最初的实验中使用线性回归算法。线性回归试图创建一个线性方程,解释如何根据要素值计算目标变量的值。第一章的例子中,机器学习步骤得出的等式“薪水(K) = 8 ×经验(年)+ 40”是线性回归的一个例子。很明显,这样的等式只对数字特征有效,也就是说,特征的值是数字。在我们捕获的数据中,年龄是一个数字特征,但是我们也有类似性别的特征,它们是分类的,也就是说,它们包含类别或类(例如,男性/女性)。
因此,作为准备数据的一部分,我们需要将我们的分类特征(性别、吸烟状态)转换成数字特征。这些特性中的每一个都只有两个可能的值,因此您可以轻松地将一个值编码为 0 ,将另一个值编码为 1 。因此,对于性别,您可以将男性编码为 1 ,将女性编码为 0 。对于吸烟状态,您可以将吸烟者编码为 1 ,将不吸烟者编码为 0 。图 5-2 显示了编码后准备好的数据的部分快照。
图 5-2
具有编码分类特征的准备数据
数据可视化
现在让我们探索我们的目标变量及其与特征的关系。由于这是一个回归问题,目标变量包含连续值,因此,我们设计了在这种情况下有用的可视化。让我们把注意力集中在可视化目标索赔金额与年龄的关系上。您可以生成一个散点图,将每个客户/保单显示为一个标记,其 x 坐标基于客户的年龄,y 坐标基于他们的索赔金额。你可以通过限制一次只调查一部分顾客来简化调查——让我们看看女性和不吸烟的顾客。如果你看图 5-3 ,你会注意到索赔金额与年龄成线性关系。假设您注意到其他人群(男性吸烟者、男性不吸烟者等)的索赔金额与年龄呈线性关系。)也是。这使得这个场景适合尝试线性回归算法,该算法可以计算出这种线性关系。所以现在你有一个令人信服的理由在机器学习步骤中使用线性回归。
图 5-3
可视化索赔金额和年龄之间的关系
机器学习
由于我们的目标变量包含连续值,我们将在这一步使用回归机器学习算法之一。回归机器学习算法从过去的观察值中学习,预测对应于新观察值的量。我们已经讨论了在这种情况下使用线性回归算法构建预测模型的各种原因。
线性回归算法基于准备好的数据构建一个线性回归模型,如前所述,该模型是一个线性方程,解释了如何从特征值计算目标变量值。图 5-4 显示了线性回归算法为该问题建立的线性方程。根据这个等式,我们可以知道索赔额随着年龄的增加而增加 0.4K。我们还可以看出,男性(性别= 1)的索赔金额比女性高 2.1K。吸烟者(吸烟状态=1)倾向于比不吸烟者多索赔 2.9K。这个模型现在能够根据新客户的年龄、性别和吸烟状况来预测他们的索赔金额。
图 5-4
由机器学习步骤创建的线性回归模型
推理
我们刚刚创建的线性回归模型可以部署并用于预测新客户的索赔金额。该模型将简单地使用该等式,使用年龄、性别和吸烟状况来计算索赔金额。图 5-5 显示了部署的线性回归模型如何使用两个新客户的等式计算索赔金额。该模型预测,第二个吸烟的男性顾客可能会比第一个顾客要求更高的金额,尽管他是年轻的顾客。所以你会建议向第二个顾客收取更高的保险费。
图 5-5
推断时用线性方程预测索赔额
结论
在这一章中,我们介绍了回归问题,并作为例子详细讨论了一个具体问题。我们讨论了这个问题的数据科学过程,给出了可以用于这类问题的技术的概述。如前所述,每个新问题都需要您决定最适合解决它的技术。
以美元计算的索赔金额。
六、自然语言处理
正如在第一章中所讨论的,人工智能指的是像人类一样有智能行为的计算机。人类智力的一个方面是理解和说语言的能力。人工智能的子领域专注于让计算机像人类一样理解和生成语言,被称为自然语言处理。我们将从此用流行的缩写 NLP 来指代这个子领域。教计算机如何理解和说自然语言有很多好处。人类可以做数学计算,但是当计算机学会做数学计算时,它们可以比人类更快地完成更复杂的计算。同样,当计算机学习人类语言时,它们可以处理更多的语言数据,这带来了无数的可能性。
正如刚刚讨论过的,NLP 包括让计算机理解和生成人类语言。前者被称为自然语言理解或NLU,后者被称为自然语言生成或 NLG 。让我们来看看几个常见的 NLP 问题:
-
情感分析是指找到一段文字的整体情感。例如,发现来自客户的评论是正面的还是负面的。对公司产品在不同平台上的所有评论进行情感分析,可以让你对客户对产品的接受程度有一个总体的了解。
-
文档分类是指将文档分配到类或类别中。情感分析可以被认为是文档分类的特殊情况,其中类别是正面的、负面的或中性的。
-
自动完成是指根据输入的前几个字符预测文本的其余部分。例如,当您开始在搜索引擎的搜索框中键入时,预测您的查询文本可以将您从在手机的小键盘上键入整个文本的痛苦中解脱出来。
-
语言翻译是指将一种语言的文本翻译成另一种语言。
-
意图分类指的是将一个意图(来自一组给定的意图)分配给一段文本。例如,聊天机器人可以使用意图分类来判断用户输入文本的意图是购买还是安装或者其他意图,然后发送回与该意图相关的详细信息。
-
文本摘要是指对一大段文本自动生成摘要。
就像它的父领域 AI 一样,NLP 有两种方法:基于规则的方法和数据科学的方法。让我们详细看看一个文档分类问题,看看如何使用数据科学方法来解决它。假设你的公司有一个个人助理产品,可以帮助用户管理他们的待办事项、电子邮件、会议、设备等。,基于来自他们的语音命令。假设这个个人助理的用户是一名工程师,他接收与产品开发、研究工作、培训等相关的电子邮件。他们可能会发现为每个类别创建一个文件夹并通过将每个电子邮件移动到其相关文件夹来组织他们的电子邮件是很有用的。你可以给助手添加一个有趣的功能,自动将用户的电子邮件移动到正确的文件夹中。例如,如果用户收到了要求他们完成在线培训的电子邮件,则助手可以根据电子邮件中的文本,判断出该电子邮件属于类别“培训”,并因此将其移动到文件夹“培训”。这个问题属于文档分类,因为这里的目标是将每个文档(在这个例子中是电子邮件)分配到一个类别。让我们看看数据科学如何通过在每个步骤中选择适当的技术来帮助您实现这一目标。
数据捕捉
当用户将电子邮件移动到适当的文件夹时,助理在初始阶段默默地观察用户。电子邮件的这种初始手动移动捕获了必要的数据,助理将使用这些数据来学习如何在未来基于电子邮件文本自动确定每封电子邮件的正确文件夹,而无需询问用户。图 6-1 显示了用户已经移动到这些文件夹中的文件夹和一些样本邮件。
图 6-1
电子邮件和包含文件夹的快照
数据准备
这个问题的解决方案与我们到目前为止讨论的解决方案不同,因为数据科学流程的所有步骤都是在助手中自动完成的,而不是由数据科学家来执行每个步骤。作为数据准备的一部分,助理可以从每封电子邮件中去掉问候(例如嗨汤姆、)和结束(例如问候、丰富的),并用其类别标记剩余的电子邮件正文,该类别是包含该电子邮件的文件夹的名称。图 6-2 显示了整合数据的快照,其中剥离的电子邮件正文标有其类别。这个想法是,助理将使用这些数据来建立一个模型,该模型学习如何通过查看电子邮件正文中的重要单词来推断电子邮件的类别。
图 6-2
包含电子邮件正文及其类别的准备数据
接下来,助手通过删除标点符号、将其转换为小写、提取单个单词以及删除“a”、“in”、“the”等停用词来预处理每个电子邮件正文。,这对于推断电子邮件的类别可能没有用。图 6-3 显示了这些预处理步骤后的准备数据。
图 6-3
删除标点符号、转换为小写、标记化和删除停用词后的准备数据
如前所述,助手试图学习如何通过查看电子邮件正文中重要单词的出现来推断类别。单词的不同屈折形式可能不会给出关于电子邮件类别的任何额外线索。例如,电子邮件是否包含单词“课程”或“课程”并不重要,两者都表明该电子邮件可能属于“培训”类别因此,助手可以对电子邮件单词执行词汇化,这将把单词的屈折形式转换回它们的基本形式。所以所有邮件中的“course”和“courses”都会变成“course”这个基本词。将所有电子邮件中的多种变形形式转换为基本单词也将减少助理必须处理的词汇(唯一单词的总集)。图 6-4 显示了词汇化后的准备数据——Email _ Base _ Words一栏包含了邮件单词的基本形式。为了简单起见,我们有意避免在术语化过程中详细处理的词性 1 。在实际项目中,在执行词汇化时,您可能需要考虑每个单词所属的词性。
图 6-4
词汇化后的准备数据
助手将创建一个模型,该模型学习推断电子邮件的类别。因此,准备数据中的类别是模型的目标变量。但是该模型还需要基于其值进行预测的特征。所以,助手会使用某种机制从 Email_Base_Words 中提取特征。让我们假设助手使用单词袋技术来实现这一点——我们将在第十四章中探讨一种更高级的技术。单词包将确定所有电子邮件中唯一基本单词的总集合,然后为词汇表中的每个基本单词创建一个特征。电子邮件的特征值是相应的基本词在该电子邮件中出现的次数。图 6-5 显示了使用单词袋技术提取的特征的局部视图;该图还显示了目标变量类别。你可以看到,在我们的词汇中,每个基础词对应一个特征。第一封电子邮件的特征修复的值是“1 ”,因为基础词修复在该电子邮件的基础词列表中出现过一次。对于第二封电子邮件,该特征的值为“0”,因为第二封电子邮件不包含单词 fix 。类似地,特征可视化的值对于第三封电子邮件是“2”,因为该电子邮件的基本单词列表包含单词“可视化”两次。现在功能和目标都可用了,助手可以继续进行数据科学流程的下一步。由于没有数据科学家积极参与其中,他们可以查看可视化并从中得出见解,因此助手将直接进入机器学习步骤。
图 6-5
词汇袋技术应用后的特点和目标
机器学习
助手现在会将这些准备好的数据交给机器学习算法,该算法可以学习如何根据特征值推断电子邮件所属的类别。这个问题现在被简化为一个简单的分类问题,所以我们不会涉及太多的细节,因为我们已经在前面的章节中讨论过这样的分类问题。助手可以尝试不同的可用分类机器学习算法,包括深度学习算法。我们将在第十六章中讨论深度学习。该助理还需要一种机制来评估不同算法产生的模型能够推断出电子邮件的类别。根据性能评估,它可以决定哪个模型具有最佳性能,以及该性能是否足以让它开始推断新电子邮件的类别,并相应地将它们移动到正确的文件夹。我们将在第十六章的后面部分研究评估模型性能的这个关键方面。一旦助手瞄准了一个看起来有希望的模型,它就会切换到推理模式。
推理
助手直到现在只是观察和学习;现在,它变得活跃,并试图路由新的电子邮件到正确的文件夹。它将使用已经创建的模型来推断每个新收到的电子邮件的类别,并将其移动到与该类别相对应的文件夹中。但是,正如上一节所讨论的,该模型只能根据特性的值来推断类别。这意味着助理需要从每封新邮件中提取特征值,然后将它们传递给模型进行推理。为此,它将遵循前面数据准备一节中描述的相同预处理步骤。图 6-6 显示了一封新收到的电子邮件以及它在推断之前所经过的预处理。首先删除问候语和结束语,然后删除标点符号、转换为小写、提取单词和删除停用词。接下来是词汇化,最后,单词袋应用于基本单词列表,以生成传递给模型的特征值。请注意,功能修复和发布的值都是“1”,因为这封电子邮件的基本单词列表中这两个单词都出现了一次。然后,该模型基于特征值推断出该电子邮件的类别是产品开发、,因此助理将该电子邮件移动到文件夹产品开发。
图 6-6
使用从新电子邮件中提取的特征的模型进行推断
可能发生的情况是,模型错误地推断出电子邮件的类别,助手最终将电子邮件放在了错误的文件夹中。当用户阅读电子邮件时,他们会将其移动到正确的文件夹中,作为对助手的反馈。下一次助理重复使用电子邮件及其文件夹来建立模型的整个过程时,新模型将自动从新电子邮件及其文件夹中学习。当助手开始使用新模型时,之前可能分类错误的电子邮件现在可能会正确分类。因此,随着时间的推移,助手在将电子邮件移动到正确的文件夹方面变得越来越好。
结论
NLP 是人工智能的一个热门子领域,正在快速发展。我们看到了 NLP 的两个方面,并简要地看了几个常见的 NLP 问题。我们讨论了自然语言处理的数据科学方法,并介绍了制作能够将电子邮件移动到适当文件夹的个人助理产品的步骤。这涉及到 NLP 中使用的一些常见的文本预处理步骤的讨论。这些步骤还介绍了如何将文本转换成 ML 模型使用的数字特征。
比如动词、名词等。
七、聚类
我们几乎本能地倾向于判断两个物体何时相似或不相似。例如,当我们看到自然界中的无数物体时,我们倾向于将它们分成两组:一组能够摄取食物并将其转化为能量,能够繁殖等等。而第二组没有表现出这些特征的物体。一旦我们辨别出两个如此明显不同的群体,我们就给他们一个名字——有生命的和无生命的的*。虽然这似乎是一个过于简单的例子,但基于生物特征、进化等的类似分组。,导致各种生物分类学。?? 1*
当零售商店之类的公司希望根据客户的人口统计数据、购买模式和其他个人信息对客户进行分组时,也会出现同样的趋势。
这些是我们人类“智能”的一个基本方面的几个例子——我们天生的趋势和能力,即创建相似的对象/观察的组,也就是说,创建组,使得一个观察与其组中的其他观察更相似,而不是与其他组中的观察更相似。我们称这样的观察组为星团。我们将涉及识别给定一组观察值的聚类的问题称为聚类。
对于聚类,我们首先决定关注观察的哪些特征/属性。一旦基于这些属性创建了聚类,我们就分析这些聚类以理解每个聚类内的确切相似性;这将为每个集群产生一个名称和有用的描述。最后,对这些集群的这种洞察会带来一定的商业利益,例如为零售店的目标客户群(集群)确定适当的营销活动。
在这一章中,我们将看一个基于购买模式对客户进行聚类的端到端示例。这将说明如何使用数据科学过程来解决聚类问题,以从数据中获得洞察力。
数据捕捉
假设我们有一家商店的客户交易数据,包含客户购买的各种产品的详细信息,如图 7-1 所示。
图 7-1
客户交易
每行捕获客户购买的产品数量。 2 注意,客户通常在一次交易中购买多种产品——在这种情况下,相应的行具有相同的值 Trans_id 。
有了这些数据,我们有兴趣在我们的客户中找到共同的行为(购买)模式。
数据准备
在这种情况下,让我们假设我们只对最近的趋势和模式感兴趣。因此,我们将首先过滤数据,只关注上个月(比如 4 月)的交易。为此,我们可以根据 Trans_date 来过滤行。
然后,我们将汇总并透视最近交易的数据,以获得图 7-2 所示的结构。
图 7-2
每位客户每种产品的总数量
请注意,我们已经合计了整个四月份每位客户的产品数量,例如,Alice 在四月份总共购买了四种薯片。
处理缺失值
对于聚类,考虑如何处理观察值中的任何缺失值是很重要的。对于聚类来说,丢失值的处理可能相当微妙。一些技术遵循迭代方法,其中仅基于可用值形成聚类,然后使用聚类来推断缺失值。通常需要对域有深入的了解,以确保如果推断出任何值来替换丢失的值,不会对集群产生负面影响。
在我们的例子中,我们没有任何缺失值——如果客户没有购买某个特定的产品,我们在前面的表中的值就是零。
正常化
有些属性的取值范围可能与其他属性大相径庭。例如,一些产品可能比其他产品更频繁地被购买(例如,袜子可能比电子产品更频繁地被购买)。在这种情况下,我们可以对这些值进行标准化,以便所有产品的数量都落在相似的范围内。这有助于确保销售更多的产品不会严重偏向集群。
在我们的例子中,我们相信产品没有这样的变化。所以我们可以继续使用之前的数据。
数据可视化
一种特别适用于聚类的数据可视化技术是树状图。这通常在机器学习步骤之后的第二次迭代中使用。因此,我们将在机器学习步骤的一个小节中研究它。
机器学习
我们将使用一种叫做凝聚聚类的技术。 3 这种想法很简单,它的工作原理如下:
-
从单观测值分类开始,也就是说,创建与观测值一样多的分类,并为每个分类分配一个观测值。
-
将最相似**的两个集群合并成一个更大的集群。
-
重复执行这个步骤,直到一个单独的集群包含所有的观察值。
-
跟踪各种合并操作——这些操作会产生集群的层次结构。
**
-
**当前面的步骤完成后,我们将有一个集群的层次结构,可以在图中可视化,如图 7-3 所示。
图 7-3
树状图:聚类的层次结构
我们将在下一节“数据可视化迭代”中详细分析这个图。但在此之前,我们先暂停一下,理解一下前面步骤中的“相似”到底是什么意思——我们如何量化观察值的相似性?
观察的相似性
有几种方法可以定义两个观察值的相似性——参见图 7-4 中的一些方法。
图 7-4
相似性度量的动机
参考 A、B、C 三点及其对应的向量。现在,让我们比较两个相似的概念:
-
点与点之间的距离:如果我们观察点与点之间的成对距离,我们会发现 A 和 B 彼此最接近。因此,如果这个度量——欧几里得距离——被当作相似性度量,那么 B 将更类似于 A,而不是 c。
-
向量之间的角度:如果我们观察向量对之间的角度,我们会发现 B 和 C 彼此“最接近”。因此,如果将该度量作为相似性度量,那么 B 将更类似于 C,而不是 a。角度的余弦,称为余弦相似性,是一种常见的度量,因为其值恰好落在-1(非常不相似)和 1(非常相似)之间。注意余弦相似度只判断向量的方向,而不判断向量的大小。
总而言之,如果观察值被表示为 n 维空间中的点,,那么欧几里德距离将测量两个观察值彼此接近的程度,而余弦相似度将测量两个观察值指向相同方向的程度。
因此,我们看到可能有多种“相似性”的概念——领域决定了哪一个是最合适的。例如,如果某些属性表示陆地上的实际位置,则可以使用欧几里德距离-例如,如果您有来自不同位置的多个传感器的读数,并且您希望根据它们的读数和位置对它们进行分组,那么这可能是适用的。
在我们的特定案例中,我们对客户的偏好感兴趣,也就是说,他们比其他人更喜欢哪种产品。如果我们选择欧几里德距离,那么购买数量较少的客户将倾向于聚集在一起,而不管他们的偏好——就像在前面的例子中 A 和 B 被认为更相似。我们需要一个不受所购买产品的绝对数量影响的指标,而只受表明偏好的各种产品的相对数量影响—这完全取决于向量的“方向”,而不是它们的大小。 5 因此,我们决定在本例中使用余弦相似度作为相似度度量。在下一节中,我们将看到这对集群的影响。
相似性度量的选择是聚类中最关键的因素。正如我们所看到的,这很大程度上依赖于对领域的理解。因此,相似性度量最好通过与数据分析师/领域专家密切合作来决定。
ADVANCED NOTE: LINKAGE
回想一下,在凝聚聚类的步骤 2 中,我们需要合并最相似的两个聚类。当两个集群有多个观测值时,为了合并它们,我们还需要一种机制来量化两个集群的相似性——这被称为链接。
通常使用的三种联动方式是单、全和平均联动。 6 它们根据从每个聚类中选择哪个(些)观察值来表示两个聚类的总体相似性而变化。通常,用各种链接机制评估模型,以得出最有用的变体。链接的更多细节超出了我们的范围。
在我们的例子中,我们使用了平均链接。
创建了凝聚聚类模型后,现在让我们更详细地分析图 7-3 中的树状图。关于数据科学过程,这可以被视为数据可视化步骤的迭代。
数据可视化迭代
现在让我们更详细地浏览图 7-3 的树状图。
x 轴包含使用客户标记的初始单观察聚类。
每个横条代表由两个聚类合并而成的聚类,例如,红色横条代表由包含 Alice 和 Bob 的两个初始单观察聚类合并而成的聚类。同样,绿色横条表示由 Chandler 集群和红色集群(包含 Alice 和 Bob)合并而成的集群。
我们现在可以从底部到顶部阅读树状图,以了解集群形成的顺序。当我们从底部向顶部移动时,我们遇到水平线的顺序表明了星团形成的顺序。因此,集群按以下顺序形成:
-
通过合并 Dilbert 和 Einstein 的集群得到的 Magenta 集群:首先,这两个客户彼此最相似。
-
红色群集通过合并 Alice 和 Bob 的群集。
-
通过合并钱德勒星团和红色星团的绿色星团:钱德勒更像爱丽丝/鲍勃,而不是呆伯特/爱因斯坦。
-
通过合并品红色和绿色集群来合并蓝色集群。
y 轴表示相异度,即,较低的值表示较高的相似度。在我们的例子中,因为我们使用了余弦相似度,所以相异度被计算为(1–余弦 _ 相似度),这也被称为余弦距离。因此,我们可以从图中看到,呆伯特和爱因斯坦的聚类之间的余弦距离约为 0.03(品红色水平线的高度),而品红色和绿色聚类之间的余弦距离约为 0.26(蓝色水平线的高度)。
已经理解了如何阅读树状图,现在让我们看看如何解释树状图,以及从中可以推断出什么样的见解。
ADVANCED NOTE: ROLE OF THE SIMILARITY MEASURE
请注意相似性度量在聚类中的作用——尽管 Dilbert 购买的产品比 Einstein 多得多,但它们被认为是相似的,因为我们使用了余弦相似性,并且它们都有相似的方向,即相似的偏好。例如,他们似乎都更喜欢水果/果汁,而不是巧克力/蛋糕。
如果我们使用欧几里德距离,爱因斯坦会首先与爱丽丝/钱德勒聚集在一起,因为他们购买的产品更少,而且在欧几里德空间中的点上更接近。
推理
在前面的章节中,我们看到了在推理步骤中预测新观察值的例子。在聚类的情况下,我们根据创建的聚类来推断一些见解,这也被称为知识发现。 7
解读树状图
使用聚集聚类的优点之一是,我们可以分析层次结构,以确定哪种聚类在业务环境中最有意义。参考图 7-5 了解如何在我们当前的示例中实现这一点。
图 7-5
从树状图中识别有意义的聚类
在树状图中,当我们从顶部向底部移动时,聚类的数量增加。如果我们在任何地方画一条水平线,那么它相交的垂直线的数量决定了集群的数量。图 7-5 中显示了两条这样的水平线,它们代表了识别星团的两种可能机制,我们称之为 L1 和 L2。
-
L1 得到两个聚类:一个聚类包含 Dilbert 和 Einstein,第二个聚类包含 Chandler、Alice 和 Bob。
-
L2 得出三个聚类:一个聚类包含呆伯特和爱因斯坦,第二个聚类只包含钱德勒,第三个聚类包含爱丽丝和鲍勃。
数据分析师可能会调查每个集群中的观察结果,并确定,如图 7-5 所示,
-
在 L1 的例子中,两个集群分别代表喜欢健康食品和垃圾食品的顾客。 8
-
在 L2 的例子中,这三个分类分别代表喜欢健康、甜食和油炸食品的顾客。
领域理解和业务环境将决定选择 L1 和 L2 中的哪一个。例如:
-
如果爱吃甜食的客户群很少,吸引/锁定他们的成本很高,那么只有两个客户群可能是有用的。因此,L1 将被选中。
-
如果爱吃甜食的人恰好是该行业的一个重点领域,那么 L2 可能会被选中。
营销的可行见解
根据业务环境的不同,可以有不同种类的可操作的见解。假设你选择了 L2,下面是几个市场营销的例子:
-
假设你计划储备一些新产品,比如黄油饼干和能量棒。你知道这些新的黄油饼干是油炸的,能量棒是健康的。
-
你可能会向油炸食品爱好者群宣传黄油饼干。由于饼干也有点甜,你也可以向爱吃甜食的人做广告。
-
你可能会向注重健康的人群宣传能量棒。如果你知道能量棒碰巧也很甜,例如,含有天然糖,你也会向爱吃甜食的人宣传它。
-
-
假设在使用 L2 创建这些集群后不久,您已经储备了一种新产品。甚至没有深入分析产品的内容/性质,谁可能会喜欢等等。,您可以使用集群来提出建议。例如,如果你发现 Dilbert 在购买新产品,你可以向 Einstein 推荐(例如,使用折扣券)。同样,如果你发现 Bob 在购买新产品,你也可以向 Alice 推荐。我们将再次讨论第九章中的建议。
结论
在任何捕获了大量数据并希望从中获得一些见解的企业中,都经常会遇到聚类问题。解决聚类问题通常会带来关于客户、流程、领域等的新知识。,并且是从数据中进行知识发现的常用方法之一——通常称为 KDD。我们将在第二十三章中再次关注 KDD 项目。
在这一章中,我们看了一个集群问题的端到端例子。用于聚类的思维过程和技术通常适用于其他领域——我们将在第九章“建议”中看到一个例子
进一步阅读
James 等人(2013)对集群问题和典型挑战进行了出色的介绍。它还涵盖了各种聚类技术的更多细节,包括聚集聚类。
参考
詹姆斯、加雷斯等人统计学习导论。纽约:施普林格,2013 年。
例如,参见 https://tree.opentreeoflife.org/
2
在实际系统中,客户、产品和 Trans_id 应该是 UUIDs(通用唯一标识符),而不是这样简单的名称/数字。此外,产品将有一个复杂的类别层次结构,一个交易将捕获 SKU。最后,将捕获事务的时间戳,而不是 Trans_date。为了简单起见,我们忽略了这些细节。
3
也称为自底向上的层次聚类。
4
其中不同维度上的点的坐标是基于相应观察的不同特征的值。
5
例如,假设图 7-4 中的横轴和纵轴分别代表产品 P1 和 P2 的(标准化)购买值。那么 A 显然更喜欢 P2 而不是 P1,而 B 和 C 都稍微喜欢 P1 而不是 P2。这由相应矢量的方向表示。
6
还存在其他连接,如质心和向心。
7
聚类问题在 KDD/数据挖掘项目中相当常见——参见第二十三章。
8
请注意,这仅仅是一个说明性的例子,我们希望对大多数读者来说是直观的——我们并没有考虑“巧克力是垃圾食品吗?”这里有一些争论。
9
我们将这种营销活动称为交叉销售。
**
八、异常检测
通常,我们倾向于对观察结果是意外的还是异常的有一个固有的概念。似乎表现不稳定或给出很少看到的读数的传感器;前所未闻的症状/测试读数组合,或医学图像(如 CT 扫描)中的罕见模式;和不寻常的 IT 系统中的网络流量,这些是容易引起注意的一些情况。检测数据中的任何异常事件被称为异常检测。
大体上,根据您拥有的数据类型,异常检测分为三类:
-
标记数据:如果您知道数据中的哪些观察值是正常的,哪些是异常的,并且目标是预测哪些新的观察值是异常的,那么这类似于将两个目标分类为正常和异常的分类。既然你把某些观察结果视为异常,那么很可能你的正常观察结果要比异常观察结果多得多。所以,你需要恰当地处理阶级不平衡。因为这可以用分类技术来解决,所以我们在这一章中将不再讨论。
-
未标记的数据:如果您不知道哪些观察值是正常的,哪些是异常的,那么您需要首先训练一个模型来确定现有数据中的异常观察值。然后,您可以在新的观察中应用相同的模型来检测异常。在这种情况下,一个隐含的假设是,异常观察的百分比相对较小。
-
纯数据:你有你知道不包含任何异常观察的数据。在这种情况下,您需要训练一个模型来学习什么是正常观察值。然后,您可以确定是否有任何新的观察结果被模型视为不正常,也就是说,是否有任何新的观察结果对于模型来说是新奇的。一个新的观察可以潜在地指示一个异常。异常检测的这个子类通常被称为 新奇检测 。
在关于异常检测的这一章中,我们将首先介绍使用未标记数据和纯数据进行异常检测的例子。然后,我们将看一个端到端的例子,说明在数据科学过程中,针对无标签数据和纯数据的异常检测问题的步骤。然后我们将稍微更正式地总结异常的概念以及 ML 算法的选择如何影响这个概念。最后,我们将看几个复杂异常的例子,包括集体异常和上下文异常的概念。
使用未标记数据的异常检测
-
你有来自病人的数据,他们中的一些人患有你有兴趣研究的特殊疾病,比如说乳腺癌。癌症患者在人口中所占的比例相当小,因此您可能希望将此视为异常检测问题,即识别异常的患者,这可能预示着乳腺癌。在这种情况下,除了医学图像之外,特征可以包括患者的相关医学信息。
-
您拥有企业中数千用户远程登录的审计数据。根据登录模式,您希望推断是否发生了任何入侵攻击,例如,潜在的用户帐户被黑客攻击。在这种情况下,这些特征可以包括用户在一天中登录的 IP 地址的数量、远程登录的地理位置、月份、星期几以及其他这样的因素。我们的目标是检测是否发生了任何异常模式,例如,一个用户通常在一天内从四到六个不同的 IP 地址登录,突然在一天内从十个以上的 IP 地址登录。
-
您有工厂生产的零件的各种测量数据。根据之前对您的工业流程的分析,您知道通常有 2%的制造零件在某种程度上是有缺陷的。您对通过将异常检测技术应用于每个零件的测量来持续自动确定哪些零件有缺陷感兴趣。(其更复杂的变化是能够基于每个零件的多个图像来检测这些有缺陷的零件。)
使用纯数据的新颖性检测
-
作为视频监控系统的一部分,你有正常情况的视频。如果看到任何不正常的图像或动作,你需要发出警报。例如,在火车车厢上的正常情况下,人们会平静地行走或坐着。如果我们使用这些视频训练一个模型,该模型就可以检测出异常情况(图像或视频),如有人挥舞枪支、骚扰或人群恐慌。
-
您的公司生产管道,这些管道用于形成输送石油或天然气的长管道。管道通常延伸到无监督的偏远地区,很容易被篡改。管道包含监测振动的传感器,目标是检测是否出现任何异常振动,例如,由于在管道中钻孔而出现的异常振动。在这种情况下,您将捕获许多关于正常振动值的数据,但由于实际限制,您可能没有关于有人以不同方式闯入管道的数据。在这种情况下,您的数据(正常振动值的数据)可以被视为纯数据,您的目标是训练一个可以正确捕捉正常行为的模型。当振动值与正常行为大相径庭时,我们可以称之为异常,这可能表明管道中存在篡改或故障。
异常检测的数据科学过程
在本节中,我们将查看一个示例数据集( HeartDisease ),并涵盖异常检测环境中数据科学流程的步骤。
世界和数据采集
数据 1 包含来自一组患者的读数、与心脏功能相关的某些测试的读数、一些症状和先前存在的状况,以及诸如年龄和性别的患者元数据。有了这些信息,我们的目标是找到哪些患者是异常的——异常可能表明,比如说,潜在心脏状况的存在。
捕获的数据类型将决定进一步的分析。例如,如果我们只有一组健康的患者,那么我们需要使用处理纯数据的技术。另一方面,如果我们的队列也可能包含心脏病患者,并且他们的百分比相对较小,那么这就是使用未标记数据进行异常检测的情况。在这一点上,检查世界(在分析师的帮助下——在这种情况下,可能是诊断医生或临床医生)是否在我们观察的人群中存在已知的心脏病患病率也是有意义的。这可以帮助我们以后确定异常分数的阈值。
数据准备
常见的数据准备方面,如处理缺失值等。,在这里也适用。此外,快速查看各种特性的值的范围表明,一些特性(如性别)是分类的,而另一些是数字的。数字特征也具有不同的范围。
通常,对于处理数字特征的算法来说,归一化使所有的值落在 0 和 1 之间是很有用的。在这种情况下,让我们也准备一个规范化数据集。(在某些情况下,我们可能只有在对数据进行初步的探索性视觉分析后才这样做。)
数据可视化
通常情况下,我们会首先查看单个要素的任何值是否是异常值。例如,这可以从箱线图中看出。此外,我们可以尝试查看特征值的某些组合是否相当罕见,例如,散点图。
注意,我们在这里使用术语异常值是指图中的一个点是“视觉”异常值。图中的异常值可能表示也可能不表示异常观察值;目测异常值通常只是分析的起点。
例如,这种分析可能会指出哪些特征更有可能识别异常,并有助于获得关于数据的更多直觉。
箱线图
让我们先来看看图 8-1 中的一个特征血清胆固醇的方框图。
图 8-1
血清胆固醇箱形图
该图表明大多数观察值倾向于落在 126 和 360 之间(一半的观察值落在 210 和 273 之间)。我们可以将 126–360 范围之外的值视为异常值。对于我们用来绘图的库,它用十字表示极端异常值,用圆圈表示轻度异常值。在这种情况下,我们看到有三个异常值,其中一个是极端异常值。
让我们仔细看看这个方框图中的不同视觉元素在高层次上代表了什么。方框的下边缘代表第一个四分位数(Q1) ,表示 25%的观察值低于该值(210)。方框的上边缘代表第三个四分位数(Q3) ,表示 75%的观察值低于该值(273)。方框内的粗水平线代表中值,表示 50%的观察值低于该值(240)。第三个四分位数和第一个四分位数之间的距离称为四分位数间距(即 IQR = Q3–Q1)。上须延伸至最大观察值,该值落在从 Q3 开始测量的 IQR 的 1.5 倍的距离内(因此上须延伸至 360°)。较低的须状物延伸到最小的观察值,该观察值落在从 Q1 测量的 IQR 的 1.5 倍的距离内(因此较低的须状物延伸到 126)。正如你在图 8-1 中看到的,两个胡须之外的观察结果被绘制为异常值。请注意,在这种情况下,下须下方没有异常值。
箱线图是一种快速获得单个要素值的直观方法。
您可以记下一些看起来有趣的观察结果,例如,它们是否是多个特征的箱线图中的异常值,等等。,以便与领域专家或业务分析师进一步讨论。在这种情况下,领域专家可以是诊断医生/心脏病专家。
该分析仅使用了数字特征。我们可以使用条件盒图在分析中进一步包括分类特征。
条件盒图
为分类要素的每个值创建的箱线图称为条件(或分组)箱线图。例如,图 8-2 显示了跨越性别值的血清胆固醇的条件箱线图(比如,男性/女性表示为 0/1)。
图 8-2
条件盒图–不同性别值的血清胆固醇水平
如果我们将其与图 8-1 中血清胆固醇的早期箱线图进行比较,我们可以看到异常值是如何受患者性别影响的。例如,我们在血清胆固醇水平箱形图中看到三个异常值,但在这里,我们只看到一个。这是因为 Sex=0 的正常范围要大得多,从 141 到 417。因此,我们之前认为图 8-1 中的两个异常值现在看起来是图 8-2 中雄性的正常值*。此外,我们看到在女性中,似乎没有血清胆固醇水平异常。*
因此,一个人的性别会影响哪些 ?? 血清胆固醇值被认为是正常的。这就是特征之间的关系对于异常检测的重要性。类似地,我们还会使用其他分类特征来查看条件盒图,例如 *ChestPainType、*等。
数字特征之间的关系也可以类似地相关。为了分析两个数字特征之间的关系,我们可以使用散点图。
散点图
散点图用于可视化两个数字特征之间的关系,如图 8-3 所示。请注意,在这里,我们使用了归一化的特征值,因此两个要素在相同的比例上。
图 8-3
血清胆固醇与最大心率的散点图
我们用较大的点突出显示了几个点,这些点表示潜在的异常观察,因为它们在图中似乎有些孤立。还要注意点 X,它看起来比它的邻居更加孤立。通过独立地观察这两个特征,我们可能会注意到其他潜在的异常观测,但是我们的注意力不会被吸引到像 x 这样的观测上。
我们可以绘制多个散点图,以确定哪些对特征潜在地指示一些异常。
使用诸如盒图和散点图之类的技术,我们可以得到一些直觉,哪些特征可能与指示异常相关。在研究了一些可视化之后,我们通常会对异常如何依赖于多个特征有所了解。潜在地,也有可能一个观察值对于仅仅一个或两个特征不是异常,但是所有特征的值的组合可能是异常。
一旦我们超越了两三个特征,我们就不可能“可视化”数据来获得这种类型的洞察力。但是到目前为止,我们的直觉确实表明,我们可以希望根据 n 维空间中观察结果的相对位置来检测一些异常。现在让我们转向机器学习,以帮助我们使用多种特征将我们的视觉直觉扩展到 n 维空间。
机器学习
当我们使用箱线图和散点图时,我们实际上是在目测观察结果之间的距离,也就是说,被视为很远的观察结果被视为异常。有几种算法通过将概念扩展到多个特征,以类似的方式基于观测值之间的距离来检测异常。
我们将使用局部异常因子(LOF)算法。我们在这里的选择是出于以下原因。首先,它是直观的,与我们视觉上倾向于感知的异常值高度共鸣。其次,它是少数几种可以合理地用于两种情况的算法之一——无标签数据或纯数据。最后,在像这样的医疗保健例子中,我们可能感兴趣的是找到与“相似”患者不同的患者,而不是与整个队列不同的患者。这自然会导致我们发现“局部”异常,也就是说,异常的观察值与相似的观察值不同,但不一定与整个数据集相关。LOF 发现的观察值与其邻居相比相对孤立,因此能够检测局部异常。
我们将使用观测值的术语“局部密度”来表示该观测值周围邻居的密度,也就是说,如果邻居在观测值周围密集,则该观测值的局部密度高。 3 LOF 致力于直觉,如果一个观测值的局部密度低于其邻居的局部密度,那么该观测值比其邻居更反常。图 8-4 用一个玩具的例子提供了一个快速的直觉。
图 8-4
局部异常因素:具有两个特征的玩具示例 4
正如我们从该图中看到的,与相邻点相比相对孤立的点会得到较高的异常值(异常值)分数。在这种情况下,异常分数实际上是一个观测值的局部密度相对于其邻居的偏差的函数。例如,点 A 的局部密度与其两个最近邻居的局部密度相似,因此 A 获得与其两个最近邻居相似的分数。另一方面,点 B 的局部密度小于其最近邻居的局部密度,由于这一点,B 得到比其邻居更高的分数。
如果我们在我们的心脏病数据集上运行 LOF,但仅使用两个特征 SerumCholestoral 和MaxHeartRate,我们会得到如图 8-5 所示的结果。
图 8-5
LOF 只使用两个特征:血清胆固醇和最大心率
我们可以将其扩展到使用标准化心脏病数据集中的多个特征来运行 LOF 算法,以获得所有观察值的异常分数,并根据异常分数对它们进行排序。当我们使用七个选定的特征运行 LOF 时,包括血清胆固醇、最大心率、和性别,我们获得了如图 8-6 所示的异常值。
图 8-6
心脏病数据集上使用 LOF 的异常评分
这些异常分数现在可以用于推断。
推理
现在,模型已经为机器学习步骤中的观察值生成了异常分数,我们可以继续确定异常。为了做到这一点,我们将首先为异常分数设置一个适当的阈值。例如,如果我们保持阈值为 1.3,我们会将前五次观察称为异常。这就是分析师的洞察力在决定一个合适的阈值时有用的地方。分析师还可以确定相对异常分值是否合适,例如,检查正常观察值是否没有得到高异常分值。基于来自分析师的输入,我们可以通过修改参数和 LOF 算法中使用的特征来执行进一步的迭代。
NOVELTY DETECTION USING LOF
注意,LOF 算法也可以与纯数据一起用于新颖性检测。在这种情况下,每一个新的观察都要进行独立的新颖性测试。新观测值的局部密度与其相邻观测值的局部密度(在纯数据中)进行比较,以确定其异常值。如果新观测的局部密度显著低于其邻居的局部密度,则它可以被视为新观测。
异常现象的剖析
看到异常检测的例子后,让我们稍微更正式地研究一下当我们说“这个观察是异常”时,我们到底是什么意思我们很少说一个观察结果本身是不正常的,我们通常是说它与我们看到的其他观察结果相比感觉不正常。
这种直觉反映在由大多数异常检测技术生成的异常分数中。异常分数可以用来确定相对异常,正如我们在前面的心脏病例子中看到的。例如,业务分析师可以根据观察值的异常分数对其进行排序,并确定一个适当的阈值——分数超过该阈值的观察值可以被标记为异常。在我们需要更深入地了解异常行为的情况下,这种将业务分析师包括在内的方法非常有益。例如,分析师可以根据领域需求定制虚警 6 比率:
-
一个医疗诊断用例会建议,错误警报越多越好,而不是冒着疾病未被检测到的风险。因此,分析师可能会选择一个保守的低门槛。
-
在物联网使用案例中,来自众多传感器的数据点数以百万计,虚警可能会使分析变得不堪重负。如果异常不指示严重故障,而是可容忍的故障或者仅仅是感兴趣的观察,则可以选择更高的阈值来减少错误警报,这是冒着忽略偶然故障的风险的。
除此之外,各种异常检测技术对异常是什么强加了它们特定的概念和解释。例如:
-
在基于最近邻的技术中,观察值被视为 n 维空间中的点。然后,以某种方式将每个观察值与其邻居进行比较,以得出异常分数,即,观察值的异常性由其在 n 维空间中的位置及其最近邻居的位置来确定。(LOF 是这类技术的一个例子。)
-
在基于概率密度函数的技术中,如核密度估计,概率上极不可能发生的观测值被视为异常。
-
在基于聚类的技术中,例如 k-means,观察值根据它们的相似性被分组到聚类中。不属于任何集群、【7】或者远离集群中心、或者属于非常稀疏的集群的点,则可以被视为异常。
确定这些概念中的哪一个最适合手头的问题也是选择相应技术的一个因素。
复杂异常
异常现象不一定是孤立发生的。通常是一组特定的观察结果是异常的,或者异常取决于额外的上下文信息。我们将看一下每种情况的几个例子。
集体异常
几个常见的异常作为一组观察值出现,这样每个观察值本身都不是异常的,但是整个组的出现是异常的。例如,如果在一台计算机上,缓冲区溢出、远程会话启动和数据传输事件同时发生,则这是一个异常,可能表明存在黑客攻击。但是,这三个事件中的每一个都可能在正常操作中单独发生。 8
集体异常的其他典型例子有
-
来自传感器的一系列读数似乎不正常。例如,在我们前面看到的管道示例中,假设我们预期偶尔的单个读取可能是不寻常的,也就是说,它不是异常。但是某种程度上持续的异常读数序列是异常的(并且将指示篡改)。在这种情况下,读数的顺序是一个集体异常。
-
一系列日志或事件可以表明对软件或网络的入侵攻击。在一些复杂的系统中,一系列的日志也有可能指示错误的行为,从而导致不良的用户体验。在这些情况下,NLP 可以与异常检测技术相结合来标记异常。
语境异常
在许多情况下,异常取决于观察数据的环境。常见的上下文是观察的时间和位置。
例如,一个人在任何一天可能通常最多花费 500 美元,除了像圣诞节这样的假期,他们可能花费高达 2000 美元。现在,如果他们在 12 月花费 2000 美元,这是正常的。但如果他们在 7 月份花掉哪怕 1000 美元,也会被认为是反常的。
类似地,位置的地理环境(例如,纬度/经度)、附近的事件/景点以及其他此类信息也可以发挥重要作用。
在某些情况下,精心设计一个概括的上下文来降低复杂性并使分析易于处理是很有用的。例如,在信用卡欺诈检测中,一种方法是将每个人视为一个上下文,因为每个人的消费模式会有很大的不同。但是这将需要大量的模型和增加的复杂性。一个更容易处理的方法是从客户细分中构建概要,并使用概要作为上下文。
合并适当的上下文对于提高异常检测的准确性至关重要。特别是在大数据时代,当互联网上的上下文数据很容易获得时,例如在社交媒体上,您可以尝试将更多的上下文吸收到您的分析中,以提高相关性和准确性。
时间序列
在一段时间内,按时间顺序观察到的一系列数据称为时间序列数据。示例包括传感器读数、金融交易或心电图读数。这里,时间是我们正在分析异常的一系列观察值的上下文。考虑到它的重要性和广泛的适用性,我们将介绍这个特例的几个额外的例子。
忽略时间信息并将这些数据简单地视为一个序列可能是不合适的。将时间信息结合到分析中可以发现依赖于数据周期性的异常。例如:
-
在 ECG 中,特定读数或读数集合可能在正常范围内,但仍然与通常预期的规则和周期形式不一致。读数周期的这种不一致可能表明心律不齐。
-
个人的交易可能具有一定的周期性,例如,定期发生的海外交易,例如,每个季度。如果我们在一个季度内看到多笔海外交易,这将表明一种异常。
-
考虑我们在本节开始时看到的例子,根据登录模式(如远程用户登录的不同 IP 地址的数量)检测入侵攻击。在这种情况下,时间通常是一个重要因素,例如,周末或节假日的登录模式可能与平日不同。此外,个人可能有特定的模式需要考虑,例如,经常在周四和周五出差的人可能在这两天有不同的模式。
结论
在本章中,我们讨论了异常检测问题的各种细微差别和类型。我们还看了一个例子来了解人类的方式(例如,方框图)和算法(有点神秘)来确定异常。
异常检测是领域专家(或业务分析师)可以发挥重要作用的领域之一——尝试了解模型何时标记异常或遗漏异常。这一点的重要性会根据您的业务环境中异常的关键程度和影响而有所不同。
进一步阅读
有许多关于异常检测的调查报告。其中一个经典是 Chandola、Banerjee 和 Kumar (2009)。尽管异常检测技术从那时起已经发展了很多,但是对数据类型、问题/应用程序和技术进行分类的概念框架仍然在很大程度上适用。
有关该领域的更多详细信息和最新报道,请参考 Mehrotra、Mohan 和 Huang (2017)。它涵盖了异常检测在各个领域的应用,随后是用于异常检测的方法和算法。
参考
Chandola,Varun,Arindam Banerjee 和 Vipin Kumar。"异常检测:综述."ACM 计算调查,第 41 卷,第 3 期【2009 年 7 月。
梅赫罗特拉、基尚、奇卢库里·莫汉和黄华明。异常检测原理和算法。瑞士查姆:施普林格,2017。
www.dbs.ifi.lmu.de/research/outlier-evaluation/DAMI/semantic/HeartDisease/
2
在这种情况下,健康意味着没有心脏病。
3
在计算局部密度时要考虑的邻居数量是一个必须根据经验调整的参数。
4
https://scikit-learn.org/stable/auto_examples/neighbors/plot_lof_outlier_detection.html
5
ML 算法的这些参数,例如在计算局部密度时要考虑的邻居数量,被称为超参数。我们将在第十六章中查看超参数。
6
假警报,即算法错误地将正常观察标记为异常。
7
更准确地说,是属于仅包含该一个点的簇的点。
8
缓冲区溢出本身可能是由应用程序中的错误引起的。
九、推荐
曾几何时,你可能有一位密友向你推荐一本书、一首歌或一部电影——因为这位朋友知道你的“品味”,你通常会查看他们的推荐。
在当今的网络世界中,网站和移动应用程序(以及开发它们的公司)已经收集了所有访问者和客户的数据,这些数据可能是在网站/应用程序上发生的每次点击的粒度级数据。这些数据包括他们购买/拒绝和喜欢/不喜欢的每本书/歌曲/电影/产品。
基于这些数据,如果一家公司能够确定用户的“口味”,它就可以伪装成他们的朋友,向他们推荐他们可能感兴趣的东西。这不仅是一个很好的交叉销售/追加销售的机制,因此增加了公司的销售额,而且考虑到这些公司的库存范围,为用户增加了巨大的价值(想想 Amazon.com、网飞等)。)并因此增加客户参与度。
在这一章中,我们将看一个端到端的例子,如何从过去的顾客购买、评级等数据中估计个人的“品味”。,以及如何提出建议来改善用户体验。
数据捕捉
在本节中,我们将首先看一下项目/交互的一般概念,以及关于如何捕获这些数据的一些常见变化。然后我们看看本章中用于确定建议的示例数据。
项目和互动
我们使用术语“项目”来表示用户与之进行“交互”的任何事物,例如,交互和项目可以是:
-
在在线流媒体平台上观看电影;电影是物品。
-
从电子商务网站购买产品;产品就是项目。
-
在交友平台上喜欢/约会另一个人;其他用户是项目。
我们的目标是能够根据用户过去与几个项目的交互数据,向用户推荐他们最可能喜欢的项目。在本章的其余部分,我们将关注用户观看电影的例子——但是类似的概念也适用于其他类型的交互/项目。
量化互动
当用户与一个项目交互时,我们如何捕捉交互的本质和质量?概括地说,有两种方式来捕捉用户关于项目的反馈:
- 隐式反馈:我们确定用户是否隐式地喜欢项目*,例如,他们是否一口气看完了整部电影,然后搜索相似的电影,等等。,他们大概喜欢。如果他们中途离开一部电影并且再也没有回来,他们可能不喜欢这部电影。*
** 显式反馈:我们明确地向用户征求反馈。要求用户使用星级或拇指向上/向下等对电影进行评级。,就是这样的一个例子。*
*所有这些信息最终都以某种量化的形式被捕获,例如,可以是简单地表示用户是否观看了电影的 0/1,1-5 级的评分,或者是使用这些机制的组合计算的复杂评分。
示例数据
在我们当前的示例中,我们将参考图 9-1 中所示的样本数据。
图 9-1
由用户分级的电影,每个用户-电影对一行
在我们的数据中,我们表示用户对各种电影的反馈,评分等级为 1-5,作为明确的反馈。较低的分数表示用户不喜欢该电影,而较高的分数表示用户喜欢该电影,例如:
爱丽丝喜欢《泰坦尼克号》,不喜欢《??》《终结者》,而钱德勒两样都不喜欢。
给定这些数据,我们的目标是向用户推荐他们还没有看过的电影。我们的目标是只推荐他们可能喜欢的电影,也就是我们预测他们会评价很高的电影。
数据准备
我们将旋转数据以获得如图 9-2 所示的结构。
图 9-2
由用户分级的电影,每个用户一行,每个电影一列
这类问题通常需要两种主要的准备步骤:规范化和处理缺失值。
正常化
用户不仅口味/偏好不同,而且提供反馈的方式也不同。用户提供反馈的两种常见方式是
-
一些用户通常倾向于给出高或低的评级。例如,如果一个用户通常倾向于给出高等级,那么等级 3 可能意味着他们根本不喜欢这部电影。
-
具有相似平均评级的用户可能在评级范围上有所不同。例如,考虑两个给出大约 3 的平均评级的用户。其中,假设一个用户几乎给所有电影都打了 3 分,而另一个用户总是只给电影打 1 分或 5 分。现在,如果第一个用户偶尔给 5 分,它比第二个用户给的 5 分更有意义/更有价值。
为了调整这些固有的个人尺度,重要的是标准化数据。诸如的技术意味着居中 1 (对于点 1)或 Z 分数归一化 2 (对于点 2)修改评级以考虑用户可能用来评分的任何固有的个人尺度。
虽然这种规范化有助于改进推荐,但在某些领域的环境中,它们也可能是误导性的或不适当的。例如,假设用户研究一部电影的许多细节(例如,阅读评论、看导演、演员等等)。)才能查看。该用户可能通常只给出高分,不是因为他们倾向于给出高分,而是因为他们只观看他们可能喜欢的电影。在这种情况下,使用上述技术调整他们的分数可能是不合适的。 3
在我们当前的说明性例子中,我们将不应用任何标准化。
处理缺失值
在实践中,数据可能有许多缺失值,特别是如果大多数用户即使在与他们互动后也只对少量项目进行评分。例如,用户可能经常观看电影,但不会对其进行评级。有办法填补缺失的评分;参考薛等人(2005)的例子。
然而,在我们当前的例子中,我们将认为一个丢失的条目意味着用户没有看过那部电影。比如爱丽丝就没看过黑衣人。我们的目标是找出我们是否应该向用户推荐这部电影。但是,对于我们现阶段的分析,我们将只考虑那些已经被所有用户评级的电影,即我们将排除我最好朋友的婚礼和黑衣人。
数据可视化
向用户提供推荐的系统通常是端到端自动化的。因此,我们不包括这种推荐系统的数据可视化。
机器学习
我们将采取的高级方法是,给用户一个
-
找到与 a“相似”的用户。
-
对于 A 还没有看过的电影,根据这些“相似用户”对这些电影的评价,预测 A 会如何评价这些电影
-
推荐 A 预测会获得高评分的电影(即 A 可能会喜欢的电影)。
我们将在下一节中查看步骤 1;步骤 2 和 3 包含在推理部分。
基于聚类的方法
我们首先根据用户对电影的评价对他们进行聚类——这将使我们能够找到与给定用户相似的用户(步骤 1)。从概念上讲,这就像我们在第七章看到的一样。因此,我们将重用我们在第七章中看到的聚集聚类??技术,以产生如图 9-3 所示的聚类层次。
图 9-3
基于用户对电影评价的用户群
让我们假设我们决定形成三个集群——第一个集群包含呆伯特和爱因斯坦,第二个集群仅包含钱德勒,第三个集群包含爱丽丝和鲍勃。(在大规模的自动化系统中,集群数量的选择取决于所使用的 ML 技术;如果我们使用凝聚聚类,这种选择可能会根据树状图中垂直线的相对高度自动进行——这方面的细节超出了我们的范围。)
推理
一旦集群形成,我们就可以根据集群中其他用户对电影的评价来预测用户 A 对电影的评价。例如,我们可以计算他们群中的其他用户对一部电影的简单平均评价;或者我们可以根据另一个用户与 a 的相似程度来计算加权平均值。
在我们的简单示例中,我们可以用图 9-4 中红色显示的预测评级来填充表格。
图 9-4
预测评级用红色表示
具有高预测评级的条目将由系统 6 产生以下推荐:
-
我最好朋友的婚礼会被推荐给鲍勃。
-
黑衣人会被推荐给呆伯特。
端到端自动化
随着用户对电影的观看和评分,我们的数据将继续增长。聚类算法可以自动定期运行以形成用户的聚类。当向用户显示推荐时,我们将运行推理步骤。
集群更新的频率取决于域和用例。在我们的例子中,我们可以每隔几天更新一次集群。
ML TECHNIQUES AND CLASSES OF PROBLEMS
在本章中,我们使用了“凝聚聚类” ML 技术来解决一个“推荐”问题。在第七章和第九章中,我们使用了同样的“凝聚聚类” ML 技术来解决一个“聚类”问题。一般来说,一个 ML 技术可以应用于多个类问题。
结论
推荐系统现在是一些在线服务——网站和移动应用程序——的重要组成部分。在这一章中,我们介绍了一个端到端的例子,使用我们在第七章中首次看到的聚类技术来构建推荐系统。
构建推荐系统的技术继续快速发展——参见“进一步阅读”部分了解一些新的发展。
进一步阅读
我们在本章中基于聚类的推荐方法是受薛等人(2005)的启发。 7
互联网规模的最早的推荐系统之一是在 Amazon.com 在线推荐产品。关于推荐系统的简史和一些使用深度学习技术的最新发展,请参考 Hardesty (2019)。
如果你想在你的应用程序中加入推荐系统,你可以考虑开始使用云服务,比如 Amazon Personalize。
参考
哈迪斯,拉里。亚马逊推荐算法的历史。22 11 2019.< www.amazon.science/the-history-of-amazons-recommendation-algorithm>
。
宁、夏、克里斯蒂安·德罗斯尔斯和乔治·卡里皮斯。"基于邻居的推荐方法的综合调查."推荐系统手册。由…编辑弗朗切斯科·里奇,利奥·罗卡赫和布拉查·沙皮拉。纽约:斯普林格,2015。
薛、桂荣和林、陈曦和杨、强和、和曾、华军和于、雍和陈、郑。"使用基于聚类平滑的可扩展协同过滤."第 28 届 ACM SIGIR 国际信息检索研究与发展年会会议录。巴西萨尔瓦多:计算机协会,2005 年。114–121.
从用户的每个评分中减去用户评分的平均值。
2
用以平均值为中心的评分除以用户评分的标准差。
3
有关这些方面的更详细报道,请参见 Ning、Desrosiers 和 Karypis (2015)。
4
在这种情况下,我们已经基于欧几里德距离进行了聚类。详见第七章。
5
在实践中,我们也可以包括来自其他类似集群的用户-参考薛等人(2005)的更多细节。
6
注意,与第七章不同,在这里,我们对理解集群代表什么不感兴趣,等等。
7
注意,为了概念上的简单,我们使用了具有欧几里德距离的凝聚聚类;本文实际上使用了 k-means 聚类和 Pearson 相关作为相似性度量。
*
十、计算机视觉
术语计算机视觉从根本上来说是指软件算法处理图像和视频等视觉信息的能力,类似于人类处理视觉信息的方式。在人工智能的总体领域下,计算机视觉领域是更复杂、更高级别的“智能”之一从 2012 年开始,计算机视觉深度学习方法的巨大成功复兴了神经网络、数据科学和人工智能。
在本节中,我们将讨论属于计算机视觉范畴的各种问题。我们先来看看涉及图像处理的各种问题,然后再来看看涉及视频处理的问题。然后,我们将简要地看一下一些公共数据集和竞赛,这些数据集和竞赛在过去的十年里将这个领域推向了聚光灯下。最后,我们将用一个简单的例子来总结如何使用数据科学方法来解决计算机视觉问题。
处理图像
作为人类,当我们视觉感知一个场景或图像时,我们会得出各种结论:
-
我们对整个场景进行分类:我们觉得我们在看一个办公室,一个住宅,一个医院,或者一个风景优美的山谷。在这种情况下,我们正在对整个场景(图像)进行分类,而不是专注于单个方面(如人、房间、床、树等。)在场景内。这可以看作是图像分类,即从整体上给每个图像(场景)分配一个目标类。
-
我们分离在一个场景中看到的多个物体。例如,在一个房间里,我们可能会看到多个人、多件家具等等。在自然环境中,我们可以看到山、树、鸟或动物,以及其他人。这被称为对象检测或对象识别。
当我们试图用软件自动化这些感知时,会出现以下几类问题。
图像分类/回归
将总体目标类别或数值分配给图像的能力有几个应用。例如:
-
分类:从活检图像中检测癌症等级,从 CT 扫描中确定癌症的存在,自动注释图像,等等。
-
回归:根据一个人的面部图像来确定其年龄。这是有用的,例如,防止孩子访问某些娱乐途径/网站,或者确定自动售货机的购买者是否未成年。
在本章的后面,我们将看一个从活检图像检测癌症等级的端到端例子。
目标检测
当我们观察任何一个场景时,我们不仅仅检测到诸如人、车辆等物体。还有它们的位置——在我们人类的感知中,我们通常会同时探测到物体的类型和它们的位置。
图 10-1 显示了在图像中检测诸如人和飞机的物体的例子。
图 10-1
物体检测示例 2
请注意,对象的位置可以用几种不同的方式表示:作为对象周围的边界框或多边形边界,或者作为整个对象的精确像素。不同的技术和框架在不同程度上支持这些机制。
自 2012 年以来,目标检测是研究最广泛、发展最快的领域之一。诸如 Mask-RCNN、YOLO 等各种框架在准确性和性能延迟之间提供了不同的折衷。
对象检测具有许多应用,例如,在入侵检测系统中定位意外对象(人)的存在,作为自动交通灯控制系统的一部分通过检测车辆及其类型来监控交通密度,在医学图像中检测肿瘤,等等。
数据集、竞争和架构
2012 年卷积神经网络(CNN)的成功应用赢得了一年一度的 ImageNet 大规模视觉识别挑战赛(ILSVRC),开启了人工智能的新时代,并彻底改变了深度学习的格局。
除了 ILSVRC 所基于的 ImageNet 数据集之外,Pascal VOC(视觉对象类)、MS COCO(上下文中的公共对象)和 Open Images 是在推进计算机视觉领域中至关重要的几个数据集。在对象检测中,各种挑战来自对象的位置、它们的方向、变化的大小等等。MS COCO 和 Open Images 在更真实的设置中包含更丰富的图像集,是评估图像分类和对象检测模型性能的最新标准。
深度学习方法, 3 尤其是基于 CNN 的方法,已经在基于这些数据集的竞争中脱颖而出,成为最成功的方法。我们将在第十六章中讲述神经网络;现在,提到神经网络被组织成多个层和层之间的连接就足够了。神经网络中层和层间连接的这种设计选择被称为其架构。流行的神经网络*、*架构,尤其是那些在之前的数据集上表现最佳的架构,在几乎任何领域的各种计算机视觉问题中找到了广泛的用途。通常,当您着手解决涉及图像处理的计算机视觉问题时,您会首先查找最新的文献,以确定针对这些标准数据集报告的最先进的图像分类架构或对象检测框架。
在撰写本文时,EfficientNet 体系结构系列是性能较好的图像分类体系结构之一。YOLO 是流行的对象检测框架之一。
我们将在第十六章中探讨 CNN,它是所有这些现代图像处理技术的基础。
处理视频
作为人类,当我们随着时间的推移在视觉上感知一个场景时,或者当我们观看录制的视频时,我们会得出各种结论:
-
我们对整体活动进行分类,例如,一个人是否在跳舞,或者一个视频片段是否是体育活动,等等。这被称为视频分类。
-
我们随着时间的推移跟踪各种对象,例如,团队运动中的各种运动员,电影剪辑中的汽车追逐赛中的汽车,等等。这被称为目标跟踪。
我们将看看业内处理录制视频的一些常见应用程序,以获得这样的见解。
视频分类
这里的问题是对整个视频进行分类,例如,确定视频中发生的活动的种类或确定视频的类型。例如,这些可以用于
-
娱乐或教育目的,因为用活动类型或流派自动标记视频可以更快、更准确地搜索和检索相关内容。
-
例如,用于检测人群恐慌或类似异常情况的监视系统
这些都是具有挑战性的问题,技术是一个活跃的研究领域。
目标跟踪
这是视频分析中最常遇到的问题,在各种领域都有应用。例子包括
-
跟踪行人、车辆、物体等的运动。在监视系统或人群/交通监控系统中。这可能是更大的智能城市生态系统的一部分,包括交通控制系统。
-
跟踪车间设备,例如,作为装配线和车间的一部分。
这也是一个活跃的研究领域——虽然最初的采用是在监控系统和智能城市用例中,但我们预计很快也会在制造业的车间中增加采用。
计算机视觉的数据科学过程
在本节中,我们将介绍数据科学过程中的步骤,例如从活检图像中检测癌症等级。
世界和数据采集
这些数据由前列腺组织活检图像和专家确定的 ISUP 分级组成。为了理解专家是如何得出 ISUP 等级的,图 10-2 显示了一个样本图像和分级过程的图解。
图 10-2
ISUP 分级方法论 4
正如我们所见,根据良性腺体和各种癌细胞的外观,有某些局部模式表明癌症的存在。单个图像可能包含几个这样的癌症局部“标记”,它们需要在 ISUP 分级的最终评估中组合在一起。如果没有癌症,我们认为这种情况下为 ISUP 0 级。与我们在本节的报道相关的是,每张图片都被赋予一个 ISUP 等级,这个等级最终是基于特定的局部模式。更多详情可参见“*进一步阅读”*部分。
数据准备
我们从活检图像中看到的挑战之一是,有大量的背景空白,不包含任何有用的信息。此外,图像通常在一个方向比另一个方向更长——大多数图像分类技术最适用于正方形图像,并且可以容忍纵横比的一些变化,但可能不适用于我们图像中的各种变化。
因为在我们的情况下,我们更感兴趣的是指示癌细胞的局部图案,而不是整个图像中的图案,所以一种技术是将图像分割成更小的瓦片,并将瓦片重新组装成正方形图像。在这样做的时候,我们选择具有最少背景空白的图像块,也就是说,最多的组织,从而覆盖大部分的组织区域。通过采用这种方法,我们解决了这两个挑战。图 10-3 显示了一个这样的例子。 5
图 10-3
数据准备:平铺示例。" A "是原始图像。“B”表示创建的瓷砖。“C”是通过将来自“B”的 36 个瓦片重新组合成具有最大组织的正方形图像而形成的变换图像
但是如何将图像分割成图块,也就是图块的大小应该是多少?非常小的瓦片将确保几乎没有背景空白,并且大部分组织区域被保留。但是这可能导致将局部化的图案分解成多个小块,使得难以检测图案。另一方面,大的图块会保留大部分相关的模式,但是可能会导致合并大量的背景空白。这些变化最初是使用视觉分析目测的,如上图所示。
在某些情况下,图像可能包含其他标记,例如病理学家绘制的钢笔标记。最好去除图像 6 中的这种噪声——这也属于数据准备——并可视化(一些)清理后的图像以验证清理过程。
数据可视化
准备好数据后,您可能通常希望设计可视化效果,以获得更多信息,例如基于所选切片的大小和数量的组织覆盖变化等。但是为了简明起见,我们将直接跳到机器学习步骤。
机器学习
我们准备的数据现在具有带有最大组织区域和 ISUP 等级的变换的正方形图像。我们将使用这些准备好的数据训练一个神经网络,直接从一个转换的正方形图像预测 ISUP 品位。 7 从文献中,我们看到,谭和乐(2019)描述的 EfficientNet 系列模型显然是最先进的。EfficientNet 系列模型具有称为 B0、B1 …直到的架构。EfficientNet-B0 是复杂性最低的最简单架构,通常用于创建第一个基线模型。因此,让我们使用一个高效的 Net-B0 模型来解决我们的问题。我们将在第十六章中更详细地了解 CNN,它是 EfficientNet 的基础。
如果模型表现不佳,我们可能需要重新改进数据准备方法,例如,使用具有不同分块大小的分块方法来确定哪种数据准备会产生最佳模型。但是如何确定一个模型是否表现良好呢?换句话说,在这种情况下,我们如何评估模型的性能?
模型性能评估
在许多情况下,例如第四章中的示例,模型在预测类别时的性能取决于模型正确分类的观察值数量——换句话说,预测被视为正确或错误;两者之间没有灰色地带。
在像癌症等级检测这样的问题的情况下,如果癌症等级 4 的图像被预测为 5,这是不正确的,但是仍然比 1 或 2 的预测更接近事实。在这种情况下,等级并不是真正不同的类别,而是根据癌症的严重程度排序的。因此,我们感兴趣的是模型的预测与事实有多接近,而不仅仅是对错。在这种情况下,更合适的指标是类似于加权 kappa 的指标——我们将在第十六章中更详细地了解模型性能评估。与此同时,这份简短的说明旨在强调,当我们使用“模型性能”这样的术语时,它不一定简单地暗示预测是对还是错——度量标准的精确选择取决于手头的问题。
虽然一开始就选择了合适的指标,但该指标通常也是在数据科学流程的多次迭代中精心制作或提炼的。
一旦我们有了一个表现相当好的模型,我们就可以用它来预测活检图像的 ISUP 分级。
ADVANCED NOTE: ENSEMBLES
在多次迭代和实验中,我们可能有几个已经训练好的模型。在实践中,与其使用这些模型中最好的,不如使用模型的集合。
一个集合模型基本上从它的所有组成基础模型中提取预测,并将它们聚合起来以给出最终结果。作为一个粗略的例子,集合可能简单地返回多数结果,例如,如果大多数模型预测 ISUP 等级为 3,则最终结果为 3。
聚合多个模型的结果有多种方法,从简单的多数投票到高级的 ML 聚合技术。细节不在我们的讨论范围之内——关键的一点是,多次实验和迭代在计算机视觉问题中特别有用,在实践中,集成已经显示出很高的预测能力和推广能力。
推理
在推断过程中,我们将需要运行我们在训练中使用的精确的数据准备步骤。例如,在机器学习步骤中创建我们的最终模型之前,我们将使用所选瓷砖的大小和数量的特定值,并将图像转换为方形图像,如数据准备部分所述。在推断过程中,对于所选图块的大小和数量具有相同值的那些精确变换也应该应用于新图像。
ADVANCED NOTE: TEST-TIME AUGMENTATION
在计算机视觉问题的推理过程中,一种常用的技术是测试时间增加(TTA)。TTA 旨在增强对图像方向或位置变化的鲁棒性。
要理解 TTA,有必要了解模型推理如何工作的细节。当我们使用准备好的数据(转换后的正方形图像)和作为 ISUP 等级的目标特征来训练 EfficientNet-B0 模型时,该模型实际上学习预测,给定一个新图像,属于每个 ISUP 等级的图像的概率。然后,我们推断概率最高的 ISUP 等级是预测等级。
现在,对于 TTA,我们可以创建一个增强图像,例如,将原始图像稍微向右移动。然后,该模型用于从原始图像和增强图像推断 ISUP 等级的概率。通过平均原始图像和增强图像中每个 ISUP 等级的概率,我们获得了 ISUP 等级的最终概率。然后,我们预测概率最高的 ISUP 等级作为我们的最终结果。
数据工程
在我们的数据集中,每个单独的图像可能非常大,整个数据集的大小可能在数百千兆字节的数量级。通常,如果您有一个数据科学家团队在大型数据集上协同工作,共享文件系统将会非常有用。这样,当数据科学家执行我们前面看到的各种数据准备步骤时,整个团队也可以访问修改后的图像。
此外,对于训练模型,如基于 CNN 的模型,您需要使用强大的 GPU,因为计算相当密集和复杂。虽然有可能建立这种内部基础设施,但使用 AWS 10 等云服务进行这种深度学习实验越来越常见,也越来越划算。例如,AWS 弹性文件系统(EFS)可以用作共享文件系统,不同大小的 GPU 机器可以用于训练模型。
结论
在这一章中,我们讨论了属于计算机视觉范畴的各种问题的子类。我们还查看了从活检图像检测前列腺癌等级的端到端示例。
进一步阅读
参考刘、欧阳和王(2020)对基于深度学习的对象检测技术的综述。
Chollet (2018)有一章非常精彩,介绍了用于计算机视觉的深度学习的技术细节。
陆等(2019)涵盖了医学影像领域的广泛课题。
有关前列腺癌分级过程的更多详细信息,请参考前列腺癌分级评估(PANDA)挑战。
参考
弗朗索瓦·乔莱。用 Python 进行深度学习。美国纽约:曼宁,2018。
刘,刘,欧阳伟,王。"用于一般对象检测的深度学习:综述."国际计算机视觉杂志 128(2020):261–318。
陆,乐,等用于医学影像和临床信息学的深度学习和卷积神经网络。瑞士查姆:施普林格,2019。
前列腺癌分级评估(Pandas)挑战。 www.kaggle.com/c/prostate-cancer-grade-assessment/overview/additional-resources
。未注明出版日期(nodate)
谭、闵行、郭诉乐。"效率网:重新思考卷积神经网络的模型缩放."第 36 届机器学习国际会议论文集。2019 年,加利福尼亚州长滩。
即确定一幅图像的标签,如树、鸟、猫等。
2
这个例子摘自位于 https://github.com/matterport/Mask_RCNN
的开源 Mask-RCNN 库的文档
3
在第一章中简要介绍。
4
本图来源于www.kaggle.com/c/prostate-cancer-grade-assessment/overview
;我们的例子是基于这个 Kaggle 比赛。
5
www.kaggle.com/iafoss/panda-16x128x128-tiles
参考;这种新颖的数据准备技术被证明是解决这个问题的关键。
6
图像处理领域,涉及过滤、清洗、填充等。,在图像中被称为形态学。数据科学家可能需要获得一些形态学技术方面的专业知识,以提高计算机视觉解决方案的准确性。
7
没有确定我们在图 10-2 中看到的中间格里森分数。
8
我们在这里扮演牛仔的角色——将 EfficientNet 模型视为黑盒,只对预测准确性感兴趣,而不是了解哪些区域可能癌变并导致最终等级等。
9
像 ISUP 等级这样的变量,其值是一组有序的类别,被称为序数。当目标变量是序数时,这个问题被称为序数回归,它与我们前面看到的分类和回归都略有不同。(序号将在第十四章中进一步讨论。)
10
亚马逊网络服务, https://aws.amazon.com/
十一、顺序决策
“智慧”的一个更高级的表现是自愿做出决定的能力,这些决定有意接受短期损失,以期在长期获得预期结果。“预期结果”可以有多种形式——利润/回报最大化(例如,在投资策略中),实现目标的机会最大化(例如,在国际象棋比赛中获胜),或者拯救危及生命的疾病患者。
它们的共同点是能够做出一系列的决定——买/卖,或采取行动,或推荐测试/治疗。这些决策是在环境中动态做出的,而环境本身也在不断变化,并受决策的影响。
强化学习(RL)是 ML 的一个分支,处理自动化连续决策的这一方面,以最大化长期回报,通常以短期损失的看似的代价。虽然顺序决策是一类问题,但 RL 目前是事实上的框架,在这个框架内,这些类型的问题被公式化和解决。在本章的剩余部分,我们将会讨论强化学习。
RL 背后的直觉非常类似于儿童如何根据他们从父母那里获得的奖励或惩罚来学习良好行为——父母的赞赏加强了对良好行为的坚持,而父母的惩罚加强了对不良行为的避免。
RL 最近通过在国际象棋和围棋等游戏中创建最强的人工智能引擎,扩展了人工智能的视野 1 。让我们考虑一下国际象棋的例子:早在 2017 年基于 RL 的 AlphaZero 国际象棋引擎出现之前,我们在 2000 年代就拥有强大的国际象棋引擎,这些引擎已经被认为比最优秀的人类国际象棋选手更强。这些象棋引擎通常能够牺牲棋子,如果它导致快速胜利,例如,通过快速攻击对手的国王;在象棋术语中,就像在现实生活中一样,这些被称为“战术”决定或牺牲。因此,国际象棋引擎被广泛认为是战术怪物,尽管如此,它们仍然很难找到或欣赏人类大师为了长期收益而做出的某些“战略”牺牲——直到 2017 年底,AlphaZero 出现。AlphaZero 似乎不仅欣赏并认可了人类大师会做出的许多战略牺牲,还通过做出让许多人类大师也感到惊讶的更加微妙和大胆的战略牺牲,扩大了创造性的视野。
然而,在体育/游戏竞赛之外的现实生活中,例如在投资或医疗保健领域,这种连续决策本质上是高风险的活动;我们仍然宁愿相信投资银行家或医生的资质,而不是复杂的算法来为我们做决定。因此,RL 是一个活跃的研究领域,特别是关注降低风险的机制。在这一点上,我们认为 RL 远不能取代公司的决策者,因此,在本书中,我们将只提供 RL 基本概念的简要介绍,足以让您确定是否有 RL 可能非常适合的用例。关于 RL 更详细的内容,我们将参考“*进一步阅读”*一节中的参考资料。
RL 设置
作为本章的一个说明性例子,让我们考虑一位诊断专家 House 博士,他的唯一目标是通过在病人屈服于疾病之前及时诊断和治疗病人的神秘疾病来挽救病人的生命。不幸的是,这种一边倒的专注导致他在必要时违反法律、伦理或职业规则和惯例,如果这能让他提高挽救病人生命的机会的话。这通常会导致激烈的措施,如让患者暂时承受极度的疼痛和痛苦,或违反医院政策/法律术语,如果它比没有足够时间的传统测试更快地诊断患者的可能性略有提高。
豪斯处理的每一个病例都是从一个表现出有趣症状的病人开始的。在 House 作出几个连续决定之后,每个决定都建议进行进一步的测试以获得新的观察结果,当患者症状的根本原因被及时确定或当患者死亡时,病例就结束了。豪斯是专家,后一种结果很少见。
让我们看看一个人工智能引擎,内斯特博士, 2 如何被训练成像豪斯一样进行诊断。虽然我们希望内斯特学习豪斯的诊断技能,但我们也希望用一些对非法行为的厌恶来缓和它。在研究如何训练内斯特来实现这一点的过程中,我们将涵盖 RL 的基本变化和一些挑战。
基本知识和规则
首先,内斯特被告知所有基本的医学知识,如已知的疾病、症状和可以采取的行动,如推荐药物和测试。然后,我们准备训练代理在使用这些知识的环境中做出适当的决策。
训练内斯特
根据数据和域的种类,可以用几种不同的方式训练代理。在我们当前的例子中,我们将把培训分成多个阶段。请注意,根据所解决问题的具体情况,所使用的相位种类可能有很多变化——我们所涉及的相位都是针对 Nestor 的示例。
在这一节中,我们将首先理解 Nestor 在试图解决一个案件时是如何与其环境相互作用的;这种与环境的互动在接下来的所有训练阶段都很常见。
插曲
我们根据图 11-1 提供了一个什么是一集的直观概念,图中显示了每一集中发生的事情——这形成了 RL 的基本框架。
图 11-1
RL 中的一集
在我们的示例中,每一集对应于一个患者的病例:
-
代理(Nestor)从其环境状态 S 0 接收到一个初始观察值 O 0 。观察可以是一组症状、病史等。病人的。
-
在获得观察结果 O t ,后,代理人(内斯特)采取行动At——这可能是推荐将获得进一步信息的测试或药物。
-
基于所采取的行动,环境(患者的状态)发生变化;新的症状被发现导致下一次观察 O t+1 。并给予代理人(Nestor)奖励 R t+1 。我们稍后会看到奖励的例子。
如你所见,一集由一系列组成。一个序列构成一个“情节”有多长取决于正在解决的问题,因为的序列会持续到环境达到最终状态。在我们的例子中,当患者被诊断/治愈或者患者死亡时,达到最终状态。至此,内斯特获得最后一次观察 3 并获得奖励,本集结束。
一集如何展开,有几个要点需要注意。首先,每个事件(处理单个患者病例)独立于前一个事件。
其次,奖励对于内斯特如何“学习”什么是好的决定/行动至关重要。假设我们指定了一个奖励函数,它分配奖励
-
-任何非法临时行动为 0.2,即此类行动受到轻微处罚。
-
0 表示所有其他临时措施,也就是说,由于某项措施导致的环境立即变化(例如,发现的新症状或患者病情的任何变化)被视为无关紧要。
-
如果患者得到诊断/治愈,则+1;如果患者死亡,则-1,即事件的最终结果是最重要的因素。
在每一集的结尾,内斯特根据它为所有行为获得的总奖励来“学习”。例如,它知道导致总回报为 1 的决策序列优于导致总回报为 0.6 的决策序列,等等。
**了解了内斯特如何与环境互动,现在让我们看看训练的阶段。
培训阶段
在这一节中,我们将看看训练内斯特的一种可能方式的各个阶段。
过去的案例
在我们当前的例子中,我们将首先使用 House 在发作期间的过去病例文件,因为我们希望 Nestor 像 House 一样进行诊断。
为了对豪斯的过去的案例文件执行先前的框架,设置可以是代理模仿专家(豪斯)的动作,并且环境/观察被更新以反映作为动作的结果在案例中实际发生了什么。给每个动作分配奖励的机制,以及在一集结束时基于总奖励的学习,都和上一节提到的一样。这样,前面解释的基本框架展开了,代理从过去的案例文件和专家对它们的处理中学习。
不断有新病例出现,有模仿的
在根据过去的案例文件进行培训的初始阶段之后,我们可以允许代理也使用正在进行的案例进行培训。在这里,代理可以模仿专家 House 的动作,并得到结果状态/观察和奖励。基于情节的结果和累积的总奖励,代理学习模仿专家。
监督勘探
现在,我们允许代理独立做出决定,而不是模仿专家。在这种情况下,我们将继续监督代理人,也就是说,代理人建议的行动不会在现实世界中执行,除非得到监督诊断专家的批准。可以稍微修改该框架,使得如果建议了完全无意义的 4 动作,代理立即得到严厉的斥责(例如,奖励-1)并且该情节(对于代理)被终止。此外,如果对于某个特定的情节,代理推荐的行为完全没有意义,我们可以让代理模仿该情节的专家(如前一节所述)。除了这些小的修改,框架的其余部分以同样的方式继续,即奖励分配相似,代理在每集结束时学习相似。
一旦内斯特经过训练,并被发现做出合理的决定,它就可以利用对新案件做出决定。(我们的 kid AI engine 现在是少年了。)
监督开采
当被利用时,图 11-1 所示的环境-代理交互和上一节中的管理设置仍然适用,但有一个重要的区别。在早期的监督探索阶段,内斯特试图尽可能多地了解哪些决策更好——因此它经常可以做出新的随机决策,看看它得到了什么回报。在开发阶段,内斯特只会做出它认为会给整集带来最大回报的决定。代理现在可以被认为是通过建议专家仔细评估的新方法来帮助专家——内斯特现在实际上是专家医生“团队”的一部分。
已经看到了训练和使用代理的例子,现在让我们看一些变化,特别是关于用于训练的数据。
RL 设置中的数据
我们将讨论一些变化,特别是关于如何获得数据以及相应地如何训练一个代理。还有几个与如何指定奖励、采取行动或如何模拟环境相关的变化,这些可以在参考资料中找到。
正如我们一再看到的,数据科学始于数据。在前面的例子中,我们需要关于真实病例、诊断过程中采取的措施以及结果的数据。我们从过去的案件档案和正在进行的案件中获得。
根据具体的用例/领域,您可能需要由人类活动生成的真实数据,或者模拟数据可能是合适的。在某些情况下,我们也可以将这两种方法结合起来。我们将简要地看一下这些变化。
专家决策数据
在许多情况下,会使用包括专家决策在内的现有数据。在前一节训练内斯特的前两个阶段,我们使用了豪斯过去和现在的案例文件。这是一个使用专家决策数据训练 RL 代理的例子。
以类似的方式,AlphaGo 的初始版本是在过去由专家进行的围棋比赛中训练的。如果我们有过去的数据,不使用它的唯一原因是我们希望代理完全不受任何人为偏见/限制的影响。
模拟数据
除了从人类的游戏中学习,AlphaGo 的初始版本还从自对弈模拟的数据中学习,即与自己对弈。这个版本的 AlphaGo 强大到足以击败围棋世界冠军李·塞多尔(Lee Sedol)。
AlphaGo 的下一个版本——名为 alpha go Zero——完全由自玩训练,即引擎在不使用任何人类数据的情况下,从随机玩法开始与自己对弈。这样,引擎就不会被人类对游戏的理解所限制。AlphaGo Zero 以 100 局比 0 战胜 AlphaGo。
在这些成功的激励下,最新的 AlphaZero 系统被创建,该系统将 AlphaGo Zero 方法归纳为一个学习国际象棋、围棋和日本象棋等游戏的单一算法。详见 Silver 等人(2018 年)。我们在本章开始时提到的就是这个版本。
同样,在自动驾驶汽车等领域的模拟中, 6 智能体可以尝试汽车的任意随机轨迹,这些轨迹可能会导致撞车,直到它学会正确驾驶。这是开发人员学习 RL 最受欢迎的环境之一。
RL 面临的挑战
在介绍了 RL 的一些基本概念之后,在本节中,我们来看看 RL 中一些常见的实际挑战。
数据的可用性
强化学习需要一批的数据。对于像国际象棋和围棋这样的游戏,除了特级大师游戏的历史档案之外,模拟还可以用来生成任意数量的数据,这也是这些游戏成为第一批“解决”领域的原因之一。对于使用模拟的风险非常高并且因此依赖于专家模仿和/或监督的实际应用,足够数据的可用性是主要挑战。
**### 观察中的信息
即使我们设法获得大量数据,现实情况中的另一个挑战是确保每个观察都有足够的信息。如图 11-1 所示,一个观测只是环境的整体状态的一个子集。换句话说,观察可能无法从环境中获取足够的信息。通常,人类“观察”的数据不能以自动方式获得,例如,对于自动诊断/治疗,专家医生在评估患者时看到的许多方面可能不能作为患者记录中的“读数”被捕获。在某些情况下,人类也往往有一种直觉,引导他们收集更多的信息(即扩大观察的范围)。例如,众所周知,豪斯会闯入病人家中获取更多信息,或将勇敢或利他主义等明显的人格特征视为症状。何时扩大所需观察范围的概念是决策的关键之一,也是自动化的一个挑战。
探索与开发
最后,最基本的挑战之一是勘探与开发的权衡。对于一个继续“学习”的人工智能引擎来说,它需要偶尔做出稍微随机的决定来看看会发生什么——也许一个新的随机决定可能比它之前的“学习”更好我们把代理人学习的这些尝试称为探索;另一方面,当一个代理人做出旨在实现最优结果的决策时,我们称之为剥削。
在我们的示例中,我们已经查看了监督的勘探和开采——一般来说,勘探和开采都可以是监督的或无监督的。终极愿景是一个无监督的代理,它可以自行决定何时可以进行勘探,何时可以继续开发。
越来越多的人开始研究探索与开发之间的权衡——一种常见的直观方法是指数级增加开发的频率(并降低探索的频率)。像这样的机制,加上适当调整的指数衰减,很可能在不久的将来成为 RL 在实际用例中采用的方式。
RL 的数据科学流程
如前所述,根据问题的具体情况,培训 RL 代理的阶段可以有很大的不同;然而,我们通常可以尝试将 RL 代理生命周期中的各个步骤映射到我们的数据科学过程的各个步骤。
在“RL 设置”一节介绍的示例中
-
收集 House 过去的案例文件的数据并将其提供给代理可以被视为数据捕获。同样,当正在进行的案例和专家的行动被用于训练代理时,收集这些数据也可以被视为数据捕获。
-
将数据从医疗记录和设备读数格式转换为代理可以理解的状态/观察格式可能需要的各种转换,这可以被视为数据准备。
-
在训练(探索)期间监视代理如何进展可以被视为数据可视化迭代。
-
基于过去或正在进行的案例的训练阶段可以被视为机器学习迭代。
-
(监督的)开发阶段可以被视为推理。
在完全无监督的智能体的极端愿景中,环境-智能体交互的所有方面,以及智能体如何从奖励中学习的细节,都是作为端到端自动化软件系统的一部分来实现的,也就是说,我们可以认为数据科学过程的所有步骤都是完全自动化的。这在很大程度上已经在国际象棋和围棋等游戏中实现,但在其他现实世界领域,这是最复杂、最具挑战性和最雄心勃勃的愿景之一——不仅是数据科学,也是一般的人工智能。
结论
在这一章中,我们只涉及了现代深度强化学习的一些基础知识,并涵盖了强化学习的基本设置。关于确定奖励的方式,如何根据观察结果采取行动等等,有许多不同的说法。我们将在下一节指出一些相关的文献。
读者可能已经意识到,我们示例中的豪斯医生是根据同名电视连续剧改编的。这一章中半虚构的叙述表明了一个概念,即经典科幻小说(有点让人想起阿西莫夫的几部作品)正日益成为现实,特别是当机器可以像人类一样做出看似“直觉”的决定时。
我们的观点是,除了游戏系统之外,我们还远远没有让人工智能代理人在这个领域里为最大化整体回报而做出连续的决策。最初的采用可能会沿着增加人类专家的路线,以改进基于代理建议的新的、替代的决策路径的决策。这方面的研究越来越多,甚至在医疗保健等领域。
进一步阅读
关于 RL 的详细介绍,包括直观和一些数学细节,请参考萨顿和巴尔托(2018)。
有关 AlphaZero 的里程碑式出版物,请参考 Silver 等人(2018 年)及其补充材料。
Amazon DeepRacer 是最受欢迎的网络服务之一,它开始以动手的方式学习 RL 原则。
对于医疗保健中强化学习的一般调查,没有比医疗保健更真实的了!——参考于、刘、内马蒂(2020)。它对 RL 领域的现有术语和变体提供了一个很好的总体概述,随后是医疗保健中的应用,包括诊断和动态治疗方案,以及重大挑战。在动态治疗推荐领域的真实世界应用的例子是王等人(2018)。
参考
一种通用的强化学习算法,精通国际象棋、日本象棋和自我游戏。科学 3622018 年 12 月 7 日:1140–1144。
理查德·萨顿和安德鲁·巴尔托。强化学习-导论,第二版。马萨诸塞州剑桥:麻省理工学院出版社,2018 年。
王,陆,等,“基于递归神经网络的监督强化学习在动态治疗方案推荐中的应用”美国计算机学会会议记录(17 年会议)。美国纽约州纽约市:ACM,2018 年。
余、晁、和沙米姆·内玛蒂。医疗保健中的强化学习:一项调查。 https://arxiv.org/abs/1908.08796
。2020.
RL 由来已久,理论起源于 20 世纪 50 年代末。但是 RL 结合深度学习(deep RL)导致了最近 2017 年以来 RL 的流行。在本书中,我们简单地使用术语 RL 来指代整个领域。
2
这个名字是向阿西莫夫的小失落机器人中的机器人 Nestor-10 致敬,它没有被喂食防止伤害人类的约束。
3
最终观察结果是患者得到诊断/治愈或死亡。
4
无意义的,即不正确、不适当或不可能执行的。
5
它通过与人类玩家进行数千次比赛来进一步“学习”。
6
例如,参见亚马逊 DeepRacer。
****
十二、技巧和技术:概述
在这一章中,我们提供了用于数据科学的各种技巧和技术的高度概述。该简要概述旨在为第 13–19 章中涉及的细节建立框架。
图 12-1 和图 12-2 分别展示了在数据科学过程的每个步骤中使用的一些技巧和技术。
图 12-2
数据科学过程中每一步用到的一些技术 1
图 12-1
数据科学过程的每个步骤中使用的一些技术
我们将从第十三章到第十七章更详细地介绍其中的一些技巧和技术,数据科学过程的每一步都有一章。在这样做的同时,我们还将在相应的章节中介绍每个步骤的数据工程方面。
有几种工具和服务跨越了数据科学过程的多个步骤。其中一些如图 12-3 所示,在第十八章中有更详细的介绍。
图 12-3
一些跨越数据科学流程多个步骤的工具和服务
因此,在第十八章结束时,我们将已经涵盖了用于数据科学的各种技术。然后在第十九章中,我们将了解这些技术如何在参考架构中融合在一起,以支持数据科学团队的运营。
请注意,本章中的三幅图旨在捕捉撰写本文时数据科学领域中一些关键的代表性术语和概念。我们发现它们作为对整个领域进行分类的框架也是有用的,也就是说,每当遇到新的技术或工艺时,我们发现将它们放在这些图之一的适当类别中是有用的。这有助于获取技术/工艺的主要能力,并使与其他团队成员和利益相关者的交流成为可能。将一项技术或工艺归入适当的类别也有助于确定、比较和评估备选方案。
一个步骤中描述的一些技术可能在其他步骤中也有用。我们将它们包含在我们认为最有用的步骤中。