数据预处理|3 数据 - 它到底是什么?
本章提出了对数据的概念性理解,并介绍了对有效数据预处理至关重要的数据概念、定义和理论。首先,本章揭开了 "数据 "这个词的神秘面纱,并提出了一个最有利于数据预处理的定义。接下来,它提出了通用的数据结构--表,以及大家用来描述它的通用语言。然后,我们将谈论四种类型的数据值以及它们对数据预处理的意义。最后,我们将讨论信息和模式这两个术语的统计意义及其对数据预处理的意义。本章将涉及以下主题。
-
• 什么是数据?
-
• 最普遍的数据结构:表
-
• 数据值的类型
-
• 信息与模式
1 数据是什么
数据的定义是什么?如果你向不同领域的专业人士询问这个问题,你会得到各种各样的答案。我总是在我的数据相关课程开始时问这个问题,而我总是得到各种各样的答案。以下是我的学生在被问到这个问题时的一些常见答案。
-
• 事实和统计数字
-
• 数据库中的记录集合
-
• 信息
-
• 储存在计算机中或被计算机使用的事实、数字或信息
-
• 数字、声音和图像
-
• 记录和交易
-
• 报告
-
• 计算机操作的东西
前面的答案都是正确的,因为在不同的情况下,数据这个词可以用来指前面所有的内容。所以,下次有人说我们在分析数据后得出了XYZ的结论,你知道你的第一个问题应该是什么,对吗?是的,下一个问题将是了解他们所说的 "数据 "到底是什么意思。所以,让我试着回答这个问题,数据是什么意思,关于这本《使用Python进行数据预处理的实践》。从数据预处理的角度来看,我们需要退一步,提供一个更普遍的、包罗万象的定义。在这里,我们把数据定义为代表现实的测量或模型的符号或标志。这些符号和标志本身是无用的,直到用于更高层次的约定和理解(higher-level conventions and understandings:HLCU)。我喜欢前面的定义的两点。
-
• 首先,这个定义是普遍的,包含了你能想象到的所有种类的数据,包括我的学生提供的数据。
-
• 第二,它表达了所有其他定义中的一个隐含假设--HLCU的存在。
没有HLCU,数据就是一堆毫无意义的符号和标志。
注意:在继续前进之前,请注意--在本章中我将经常使用 "HLCU",所以也许要多读几遍它的定义,以便将它记在心里。
在人工智能出现之前,我们可以有把握地说,HLCU几乎总是人类的语言和理解力。然而,现在算法和计算机正在成为一个合法的、在某些方面更强大的数据HLCU。
1.1为什么要这样定义?
对于数据预处理,你要决定的第一件事是你要使用的HLCU。也就是说,你准备的数据是什么。HLCU?如果数据是为人类理解而准备的,其结果将与为计算机和算法准备的数据非常不同。不仅如此,不同的算法的HLCU可能也不一样。人类的理解力和计算机作为高级计算单元之间的一个明显区别是,人类不能一次消化超过两到三个维度的数据。能够处理具有更大维度和尺寸的数据是算法和计算机的标志。这两个HLCU之间有一个重要的、独特的关系,需要了解这个关系才能有效地进行数据预处理。让我们先了解一下DIKW金字塔,我将以此来讨论这一区别。
1.2 DIKW金字塔型
数据、信息、知识和智慧(DIKW),也被称为智慧层次或数据金字塔,显示了这四个要素中每个要素的相对重要性和丰富程度。下图显示了各阶段之间的交易步骤,即四个要素。下图显示了各阶段之间的交易步骤,即处理、认知和判断。此外,该图规定,只有智慧,即最稀有和最重要的元素,是属于未来的,其他三个元素,即知识、信息和数据,是属于过去的。

image.png
四个要素的定义介绍如下。
-
• 数据。符号的集合 - 不能回答任何问题。
-
• 信息。经过处理的数据--可以回答谁、何时、何地、什么等问题。
-
• 知识。信息的描述性应用--可以回答如何的问题。
-
• 智慧。知识的体现和对原因的理解。
虽然DIKW金字塔在许多数据分析书籍和文章中被反复引用,但你可以看到,该金字塔的HLCU是人类的语言和理解力。这就是为什么即使金字塔有很多意义,它仍然不完全适用于数据分析。
1.2.1 针对机器学习和人工智能的DIKW更新
我将DIKW金字塔更新为数据、数据集、模式和行动(DDPA),因为我认为它与机器学习(ML)和人工智能更相关。

image.png
DDPA的所有四个要素的定义如下。
-
• 数据。来自所有数据资源的所有可能的数据
-
• 数据集。数据集:从所有可用的数据源中选出的相关数据集合,为下一步工作进行清理和组织
-
• 模式。模式:数据集中有趣和有用的趋势和关系
-
• 行动。行动:根据所识别的模式做出的决定。
让我们来看看DDAP金字塔四个要素之间的三个交易步骤:
-
1. 预处理是选择相关数据,为下一步做准备。
-
2. 挖掘是对数据应用数据挖掘算法,寻找模式。
-
3. 最后,风险分析是考虑所识别的模式的不确定性并达成决定的步骤。
DDPA金字塔显示了数据预处理的关键作用,是能够从数据中推动行动的目标。数据的预处理也许是从D到A(数据到行动)最重要的一步。并非世界上所有的数据都能在特定情况下推动行动,而开发的数据挖掘算法也无法在所有类型的数据中找到模式。
1.2.2 用于数据分析的DIKW的更新
重要的是要记住,数据预处理绝不仅仅与ML和人工智能有关。当使用数据可视化分析数据时,数据预处理也有一个举足轻重但略有不同的作用。无论是DIWK还是DDPA金字塔,都不能很好地应用于数据分析。如前所述,DIWK是为人类语言和理解而设计的,而我为算法和计算机创造了DDPA,所以它更适合于机器学习和人工智能。然而,数据分析介于这两端之间,人类和计算机都参与其中。我专门为数据分析及其独特的HLCU设计了另一个金字塔。由于数据分析的HLCUs既是人也是计算机,因此数据、数据集、可视化和智慧(DDVW)金字塔是其他两个金字塔的组合。

image.png
DDVW的所有四个要素的定义如下。
-
• 数据。来自所有数据资源的所有可能的数据
-
• 数据集。数据集:从所有可用的数据源中挑选出的相关数据集合,并为下一步的工作进行组织
-
• 可视化。可视化:对在数据集中发现的内容进行可理解的展示(类似于DIKW中的知识--信息的描述性应用)
-
• 智慧。知识的体现和对原因的理解(与DIKW中的智慧相同)。
虽然DDVW的第一个交易步骤与DDPA相似(都是预处理),但第二和第三步却不同。DDVW的第二个事务性步骤是分析。这就是数据分析师的工作--利用技术来做以下工作。
-
1. 探索数据集。
-
2. 测试假设。
-
3. 报告相关的发现。对决策者来说,最容易理解的报告结果的方式是视觉化。决策者会理解可视化的内容,并使用判断(DDVW的第三个交易步骤)来开发智慧。
1.3 数据分析的数据预处理与机器学习的数据预处理的比较
数据预处理是数据分析和机器学习的一个关键步骤。然而,必须认识到数据分析的预处理与机器学习的预处理有很大不同。正如在DDPA中看到的,机器学习的唯一HLCU是计算机和算法。然而,正如DDVW中所示,数据分析的HLCU首先是计算机,然后转到人类。因此,从某种意义上说,机器学习的数据预处理比较简单,因为只有一个HLCU需要考虑。然而,当数据被预处理用于数据分析时,需要考虑两个HLCU。
1.3.1 大数据的三个V
一个有助于区分机器学习和数据分析的非常有用的概念是大数据的三个V。这三个V是数量、种类和速度。一般的经验法则是,当你的数据具有高容量、高种类和高速度时,你要考虑机器学习和人工智能而不是数据分析。作为一般规则,这可能是真实的,但当且仅当你在适当的数据预处理后拥有高容量、高种类和高速度。因此,数据预处理起着重要的作用,这一点将在介绍完三个V后详细说明。
-
• 量。你拥有的数据点的数量。你可以粗略地把数据点看作是Excel表格中的行。因此,如果你收集的现象或实体有很多发生,你的数据就是高容量的。例如,如果Facebook有兴趣研究它在美国的用户,那么这个数据的容量就是美国的Facebook用户数量。请注意--在对Facebook的研究中,数据点是该平台的美国用户。
-
• 多样性。你拥有的不同数据来源的数量,这些数据给你带来了新的信息和对数据点的看法。你可以粗略地认为你的数据的多样性是你在Excel电子表格中的列数。继续以Facebook为例--Facebook拥有其用户的姓名、出生日期和电子邮件等信息。但是,Facebook还可以通过包括行为栏来增加这些数据的多样性,如上周的访问量,帖子的数量,以及更多。脸书的多样性并不止于此,因为它还拥有用户可能正在使用的其他服务,如Instagram和WhatsApp。脸书可以通过包括其他服务的相同用户的行为数据来增加多样性。
-
• 速度。你获得新数据对象的速度。例如,Facebook美国用户数据的速度要比Facebook员工数据的速度高很多。但Facebook美国用户数据的速度要比Facebook美国职位的数据低得多。注意是什么改变了数据的速度--它是你所收集的现象或实体发生的频率。
1.3.2 三个V对数据预处理的重要性
大量涉及人类理解的数据分析无法容纳具有高容量、高种类和高速度的数据。然而,有时高V是由于缺乏适当的数据预处理而发生的。成功的数据预处理的一个重要因素是包括与分析相关的数据。仅仅因为你必须挖掘高V的数据来准备一个数据集,这还不足以成为放弃数据分析而选择机器学习的理由。
2 最通用的数据结构--表
不管你的数据有多复杂,有多高V,甚至不管你想做数据可视化或机器学习,成功的数据预处理总是会产生一个表。在成功的数据预处理结束时,我们希望创建一个可以被挖掘、分析或可视化的表格。我们把这个表称为数据集。下图向你展示了一个具有结构元素的表。

image.png
如图所示,对于数据分析和机器学习,我们使用特定的关键词来谈论一个表的结构:数据对象和数据属性。
2.1 数据对象
我相信你已经看到并成功地理解了那么多的表格,也创建了那么多的表格。我敢打赌,你们中的许多人从来没有注意过表的概念基础,这使你们能够创建它们并使它们具有意义。表的概念基础是它对数据对象的定义。数据对象有许多不同的名字,如数据点、行、记录、例子、样本、图元等等。然而,正如你所知道的,为了使表格有意义,你需要数据对象的概念性定义。你需要知道这个表是为什么现象、实体或事件呈现数值的。数据对象的定义是所有行共享的实体、概念、现象或事件。例如,把一个关于客户的信息表放在一起的实体是 "客户 "这个概念。表中的每一行都代表一个客户,并给你更多关于他们的信息。一些表的数据对象的定义是直截了当的,但不一定。在阅读一个新的表时,你想弄清楚的第一个概念就是该表的数据对象的假定定义是什么。你最好的方法是问以下问题:表中所有的列所描述的一个实体是什么?一旦你找到了这一实体,宾果! 你就找到了数据对象的定义。
2.1.1 强调数据对象的重要性
对于数据预处理,数据对象的定义变得更加重要。很多时候,数据分析师或机器学习工程师是需要首先设想数据需要被预处理成的终端表。这个表格需要既现实又有用。在下面两段中,我将讨论我所说的现实和有用的意思。
-
• 现实的:表格需要是现实的,因为你有数据、技术和权限来创建这个表格。例如,我可以想象,如果我有一个关于新婚夫妇的数据表格,其中有关于他们结婚第一个月的列,如他们接吻的次数,或他们对对方消极攻击的次数,我可以建立一个通用模型,可以告诉夫妇们他们的婚姻是否会成功。在这种情况下,数据对象的定义是新婚夫妇,而所有想象中的列都描述了这个实体。然而,现实中想出这样一个表是非常困难的。顺便提一下,华盛顿大学的约翰-戈特曼和牛津大学的詹姆斯-穆里确实创建了这个模型,但只是用700对夫妇,他们在讨论有争议的话题时愿意被记录下来,并愿意与研究人员分享他们关系的最新情况。
-
• 有用。想象中的表格还需要对分析目标有用。例如,假设我们以某种方式获得了所有新婚夫妇第一个月的视频记录。这些记录被储存在不同的文件中,按天组织。因此,我们着手对数据进行预处理,统计每段录像的接吻次数和被动攻击事件的数量,并将其存储在一个表中。这个表的数据对象定义是一对新婚夫妇一天的视频记录。这个数据对象定义对预测夫妻成功与否的分析目标有用吗?不,需要对数据进行不同的整理,所以数据对象是新婚夫妇。
2.2 数据属性
如图3.4所示,表的列被称为属性。不同的名称,如列、变量、特征和维度,可能被用来代替属性。例如,在数学中,你更可能提到 "变量 "或 "维度",而在编程中,你更经常提到 "变量"。属性是表内数据对象的描述者。每个属性都描述了关于所有数据对象的一些情况。例如,在我们为新婚夫妇设想的表格中,亲吻次数和消极攻击事件的数量是该表的属性。
3 数据值的类型
为了成功地进行数据预处理,你需要从两个不同的角度了解不同类型的数据值:分析学和编程。我将回顾这两个立场的数据值类型,然后与你分享它们的关系和它们的联系。
3.1 分析的角度
从分析学的角度来看,主要有四种类型的值:名义值、顺序值、区间刻度值和比率刻度值。在文献中,这四种类型的值被归为四种数据属性。原因是每个属性的数值类型必须保持一致,因此,你可以将数值类型推断为属性类型。

image.png
前面的图显示了属性类型的树。上述四种类型在中间。正如你在树上看到的那样,名义和顺序属性被称为分类(或定性)属性,而区间比例和比率比例属性被称为数字(或定量)。
3.1.1 名义属性(Nominal attributes)
顾名思义,这种类型的属性指的是对象的命名。除了一组简单的字母和符号作为对象的名称或对象的类别外,这种属性并没有描述其他信息。当数据对象是个人时,名义属性的一个突出例子是性别。虽然这个属性可能以不同的方式显示,但它所包含的信息是人类的两个类别的简单名称。我见过这种信息以许多方式表示。下表显示了名义属性性别的所有不同呈现方式。无论类别如何呈现,这个类别所收集的信息是:一个人是男性或女性。

image.png
当数据对象是个人时,其他名义属性的例子是头发颜色、皮肤颜色、眼睛颜色、婚姻状况或职业。关于名义属性,需要记住的是,除了名字之外,它们不包含任何其他信息。
3.1.2 有序属性(Ordinal attributes)
顺序属性,包含更多与某些类型的顺序有关的信息。例如,当数据对象是个人时,教育水平就是一个顺序属性的典型例子。虽然高中、学士、硕士和博士是指教育学位的名称,但所有这些学位之间都有一个公认的顺序。从逻辑上讲,没有人能够对诸如性别这样的名义属性的价值之间的重要性、价值或认可度给出任何顺序。然而,假设某人为获得学士学位所花费的资源(时间、金钱、精力)数量多于高中学位,这是很容易接受的。顺序属性的其他例子是课程字母等级(A、B、C、D),以及调查率(高度同意、同意、中立、不同意、高度不同意)。到目前为止,我们知道序数属性比名义属性可以包含更多的信息。同时,序数属性本身也是有限的,因为它们不包含一个序数属性的每个可能值与其他属性的不同程度。例如,我们知道,拥有博士学位的个体A可能比拥有学士学位的个体B更能处理研究项目。但是,我们不能说个体A会比个体B快20小时完成研究任务。简单地说,序数属性不包含允许在数据对象之间进行区间比较的信息。
3.1.3 区间尺度的属性
这些属性比顺序属性包含更多信息,因为它们允许在数据对象之间进行区间比较。通过从顺序属性到区间属性,我们也从符号和类别转移到了数字(分类属性到数字属性)。有了数字,我们就有能力知道数据对象之间存在多大的差异。例如,当数据对象是个人时,身高是一个区间属性。例如,罗杰-费德勒的身高是6英尺1英寸,大家都会同意他比胡安-马丁-德尔波特罗矮5英寸,因为德尔波特罗的身高是6英尺6英寸。当数据对象是个人时,另一个区间属性的例子是体重。当数据对象是天时,以华氏或摄氏为单位的温度测量也是一个区间尺度属性的例子。区间属性的局限性在于,我们不能用它们来进行基于比率的比较。例如,我们是否能够说一个人的身高是另一个人的两倍?你可能在想是的。但答案是否定的。原因是,人类身高的概念没有有意义的零。也就是说,不存在身高为零的个体。即使你有一个非常矮小的室友,而且你每天都看到他,从数学上讲,身高的乘法是没有意义的,因为不存在绝对的零。没有一个人的身高可以被你赋予零值。据记载,世界上最矮的人是Chandra Bahadur Dangi,他的身高是1英尺10英寸。另外,罗伯特-瓦德洛,身高8英尺3英寸,据说是世界上最高的人。为了说明问题,请看下图,你可以将平均身高与记录的极端值进行比较。

image.png
看看这两个极端可能会挑战我们对身高的成见。然而,如果你去掉这两个极端,你会开始感到更舒服。这种不舒服的原因是,对于我们的大脑来说,身高是一种间隔属性。我们在日常生活中不会遇到非常高的人或非常矮的人。尽管对大多数人来说,如果你说你比另一个人高2英寸,这完全说得通,但如果你要声称你比世界上最矮的人高3倍以上,这就说不通了。例如,由于我是6英尺3英寸,你会认为我比世界上最矮的人高3.41倍。虽然这个计算方法是正确的((612+3)/(61+10)=3.41),但你不能说我比世界上最矮的人高3.41倍,因为世界上最矮的人是人类高度概念中的零。充其量,你可以说我比钱德拉-巴哈杜尔-丹吉高3.41倍的物体。但为了能够做到这一点,你必须将数据对象的定义从个人改为物体。即使你有个室友是个很矮的人,而且你每天都看到他,从数学上来说,身高的倍数是没有意义的,因为没有绝对的零。没有一个人的身高可以被你归结为零值。
3.1.4 比例缩放属性
当我们转向比率标度的属性时,最后一个限制,即无法对区间标度的属性进行乘法或除法,也被消除了,因为我们可以为它们找到一个固有的零。例如,当我们的数据对象是个人时,月收入就是一个比率标度属性的例子。我们可以想象一个没有月收入的个人。例如,如果你报告说你爸爸每月的收入是你的两倍,那就完全说得通了。另一个比率刻度属性的例子是当数据对象的定义是一天时,温度的单位是开尔文。
3.1.5 二元属性
二元属性是只有两种可能性的名义属性。例如,你出生时被分配的性别是男性或女性,所以出生时分配的性别(Sex Assigned At Birth,SAAB)是一个二元属性。有两种类型的二元属性:对称的和不对称的。对称的二元属性,如SAAB,是指两种可能性中的任何一种发生得同样频繁,对我们的分析具有同样的重要性。然而,不对称二元属性的两种可能性之一发生的频率较低,通常更重要。例如,COVID测试的结果是一个不对称的二元属性,其中阳性结果发生的频率较低,但在我们的分析中更为重要。你可能认为对称二元属性比非对称二元属性更常见,然而,这与现实相差甚远。试着想一想其他的对称二元属性,如果你找到几个好的,就用电子邮件发给我。传统上,二元属性中较罕见的可能性用正数(或一)表示,而较常见的可能性则用负数(或零)表示。
3.1.6 了解属性类型的重要性
随着分析方法变得越来越复杂,犯错误也会变得越来越容易,而且永远不会知道这些错误。例如,你可能无意中把一个整数编码的名义属性输入到一个将这些值视为实数的算法中。你所做的是把没有现实基础的数据对象之间的随机假设关系输入到一个不能自我思考的模型中。
3.2 程序设计的角度
总的来说,对于计算机来说,数值要么被称为数字、字符串,要么被称为布尔运算。数字可能被识别为整数或浮点,但仅此而已。 整数是指从零到无穷大的整数。例如,0、1、2、3,等等都是整数值。浮点是数字。它们可以是正数或负数,有小数点。例如,1.54,-25.1243,和0.1都是浮点数。我希望你能看到这里的挑战--从分析的角度来看,你可能有名义或顺序的属性,但计算机只能将它们显示为字符串。同样,从分析学的角度来看,你可能有比率刻度或区间刻度的属性,但计算机只能将它们显示为数字。编程值类型和分析值类型之间唯一完全匹配的是二进制属性,可以完全用布尔值呈现。下表介绍了分析学和编程视角之间的属性(值)类型的映射。当你在发展有效预处理数据的技能时,这种映射应该成为你的第二天性。例如,你想了解用布尔值、字符串或整数来表示一个序数属性的选项,以及每个选项会带来什么。

image.png
4 信息与模式的对比
本章旨在用数据预处理所需的所有必要定义和概念来武装你,在结束本章之前,我们需要再介绍两个概念:信息和模式。
4.1 了解 "信息 "一词的日常使用
首先,我需要提请你们注意信息一词的两个具体但又非常不同的功能。第一个是 "信息 "的日常使用,它意味着 "关于某人或某事的事实或细节"。这就是《牛津英语词典》对信息的定义。然而,虽然统计学家也使用这个词的这一功能,但有时信息这个词也有另一个目的。
4.2 "信息 "一词的统计学使用
术语 "信息 "也可以指一个属性在数据对象群体中的价值变化。换句话说,信息是用来指一个属性对数据对象群体的空间知识的补充。让我们来探讨一个数据集的例子,customer_df,如下面的截图中所示。这个数据集相当小,有10个数据对象和4个属性。下面这个数据集的数据对象的定义是customers。
import pandas as pd
customer_df = pd.read_excel('Customers Dataset.xlsx')
customer_df

image.png
4.2.1 分类属性的统计信息 .unique()
客户姓名是一个名义属性,这个属性对这个数据集的空间知识所增加的价值变化是名义属性可能的最大限度。每个数据对象在这个属性下都有一个完全不同的值。从统计学上讲,这个属性的信息量是非常大的。属性存储的情况则正好相反。这个属性增加了一个名义属性可能增加的最小信息--也就是说,这个属性下的每个数据对象的值都是一样的。当这种情况发生时,你应该删除这个属性,看看是否可以或许更新数据对象的定义。如果我们把数据对象的定义改为Claremont Village商店的星巴克顾客,我们就保留了这些信息,我们可以安全地删除这个属性。
4.2.2 数值属性的统计信息
数字属性的统计信息的问题有一点不同。对于数字属性,你可以计算一个叫做方差的指标来驱动每个数字属性有多少信息。方差是一个统计指标,它捕捉了一组数字之间的分布。它是通过每个数字与所有数字的平均值的平方距离的总和来计算的。一个属性的方差越大,该属性的信息就越多。例如,上周访问次数属性的方差是3.12,上周购买金额属性的方差是109.63美元。使用Pandas计算方差是非常容易的。请看下面的屏幕截图。
customer_df.var()
'''
Last week number of visits 3.122222
Last week Purchase $ 109.628044
dtype: float64
'''
如果属性有类似的范围,我们就可以说上周购买$的属性比上周访问次数的属性有更多的信息。然而,这两个属性的取值范围完全不同,这使得这两个差异值无法比较。有一个方法可以解决这个问题--我们可以将这两个属性归一化,然后计算它们的方差。归一化是一个概念,我们将在本书后面介绍。
4.2.3 数据冗余 - 呈现类似信息的属性
如果一个属性的值在一个数据集的各个数据对象中的变化与另一个属性的变化过于相似,我们称之为冗余。为了检查数据冗余,你可以为你怀疑呈现类似信息的变量画一个散点图。例如,下面的截图绘制了customer_df的两个数字属性的散点图。
import matplotlib.pyplot as plt
customer_df.plot.scatter(x='Last week number of visits',
y='Last week Purchase $')
plt.show()

image.png
你可以看到,似乎随着访问量的增加,购买量也在增加。
研究数据冗余的相关系数
你也可以使用相关系数来调查数据的冗余度。相关系数的数值在-1和1之间。当数值接近于零时,意味着这两个属性没有显示类似的信息。当两个数字属性之间的相关系数更接近光谱的两端(-1或+1)时,表明这两个属性显示了类似的统计信息,也许其中一个是冗余的。当两个属性具有显著的正相关系数(大于0.7),这意味着如果一个属性的值增加,另一个属性的值也会增加。另一方面,当两个属性具有显著的负相关系数(小于-0.7)时,这意味着一个属性的增加会导致另一个属性的减少。下面的截图使用了.corr()来计算customer_df中数字属性之间的相关系数。
customer_df.corr()

image.png
相关系数为0.82,这被认为是高的,表明两个数字属性中的一个可能是多余的。高相关度的截断规则是0.7--也就是说,如果相关系数高于0.7或低于-0.7,就可能存在数据冗余的情况。现在我们对信息一词有了很好的理解,让我们把注意力转向模式一词。
4.3 "模式 "一词的统计学意义
虽然 "信息 "的统计意义是一个数据集的数据对象中一个属性的价值变化,但 "模式 "的统计意义是关于数据对象中一个以上的属性的价值变化。一个数据集的数据对象中一个以上的属性的每一个具体数值变化都被称为模式。重要的是要明白,大多数模式既没有用,也不有趣。数据分析师的工作就是要从数据中找到有趣和有用的模式,并将它们呈现出来。此外,ML工程师的工作是精简一个模型,从数据中收集预期的和有用的模式,并根据收集的模式做出计算决策。
4.3.1 寻找和运用模式的例子
在以下情况中,我们发现customer_df的两个数字属性之间的关系可以说是很有用的。克莱蒙村星巴克店的经理犯了一个巨大的错误,不小心从记录中删除了10位顾客的上周购买$的数值,但幸运的是她知道数据分析的力量,上周的访问次数属性是完整的。下面的截图显示了这个数据的第二部分。
customer2_df = pd.read_excel('Customers Dataset 2.xlsx')
customer2_df

image.png
商店的经理在看到上周访问次数和上周购买美元之间的高度相关性后,可以使用简单的线性回归来提取、制定和包装10位顾客的所有数据的模式。在回归模型训练完成后,经理可以用它来估计那些有缺失值的顾客的购买金额。 简单线性回归是一种统计方法,其中一个数字属性(X)的值与另一个数字属性(Y)的值相联系。在统计学上,当我们观察到两个数字属性之间的密切关系时,我们可以调查一下X是否可以预测Y。下面的截图说明了Seaborn模块中的.regplot()的应用,以显示与customer_df中前10个客户的数据拟合的线性回归线。
import seaborn as sns
sns.regplot(x='Last week number of visits',
y='Last week Purchase $',data=customer_df)
plt.show()

image.png
拟合的回归模型的方程如下:

image.png
现在,这个方程允许我们估计customer2_df的缺失值。下面的截图显示,前面的方程被应用于customer2_df来计算缺失值。
customer2_df['Last week Purchase $'] = customer2_df[
'Last week number of visits'].apply(lambda v:1.930 + 4.867 *v)
customer2_df

image.png
所以,这样一来,克莱蒙特村的星巴克店的经理就能够挽救这一切,用基于数据中发现的可靠模式的估计值来替换缺失的数值。在继续之前,请允许我承认,我们在本书中还没有涉及线性回归(我们将在第6章预测中进行)。然而,在这个例子中,我们使用线性回归来展示一个提取和使用数据集中的模式进行分析的实例。我们这样做是为了理解我们所说的 "有用的模式 "是什么意思,以及提取和包装模式供以后使用。

浙公网安备 33010602011771号