逆向设计数据科学项目

2021-03-01  本文已影响0人  数科每日

本文内容来自于 backwards design


逆向设计是以结果为导向的设计方式, 是数据科学项目中非常行之有效的一种方法。 数据科学项目往往会出现结果和客户预期不符的情况, 导致最终难以产生实际价值。 原因之一在于对数据科学的认知差异。 客户由于缺乏数据知识, 难以将头脑中的预期用数据科学的语言表达出来。 而数据科学家缺乏业务领域的知识, 难以理解具体问题。 而逆向设计可以非常有效的解决这个问题。

概览

逆向设计会首先提出最终结果的样子, 这样就可以方便的和雇主对最终产品进行沟通。 在有了一个实在的产品以后, 双方对项目理解上的差异就很容易体现出来。 一般来说, 在数据科学项目中, 后向设计包括以下几个部分:

  1. 定义要解决的 problem
  2. 找到一个可以帮助解决那个 problem 的 question。
  3. 明确答案的样子(什么样子的答案, 才能明确的解决问题)
  4. 确定需要的变量
  5. 寻找包含这些变量的数据

1 定义problem

第一步应该是最直接的步骤,但是当你看到众多失败的案例时, 你也许会感到惊讶。人们经常对数据科学的想法感到非常兴奋,以至于他们经常向你(数据科学家)索要数据集,并说“用这个做一些数据分析!”因此,在启动数据科学项目时,应该始终做的第一件事就是确保你可以清楚地阐明该项目的目标。此外,你应始终确保你的客户同意你要解决的问题的明确表述!没有什么比在项目上花费几周然后发现对你的客户实际上没有任何价值更糟糕的了。

以下是一些良好定义的问题:

2 找到你想要回答的Question

尽管并非所有人都同意我们的观点,但我认为数据科学从根本上说就是使用数据量化地回答有关世界的问题的实践。

例如,当我们对各种人口统计学变量以及母亲是否在怀孕期间吸烟时进行出生体重回归分析时,这些模型回答的问题是“母亲吸烟是否与较低的出生体重相关(在控制了其他混杂因素后在统计学上具有显着意义的水平) ?”

如果经营商务网站的某人运行A / B测试,其中随机分配访问该网站的用户以查看新着陆页的两个版本,然后我们跟踪其购买行为,那么当我们对这些数据进行统计分析时,这样做是在回答“这些设计中的哪一种在吸引顾客购买商品方面更有效?”的问题。

最后,我们可以认为监督式机器学习算法可以回答两种类型的问题:存在一个广泛的问题,你可以通过建立模型并进行评估来回答(“我们可以从患者的X射线中识别出癌症,如果可以的话,效果如何? ”,然后每次运行模型时都会回答一个狭窄的问题(“鉴于X射线,该患者患癌症的可能性有多大?”)。 (在有监督的机器学习上有一点点偏离,如果你感兴趣的话,请在本文结尾处使用“数据科学是关于回答问题”的概念框架)。

因此,向后设计的下一步就是问自己:如果回答了哪个问题,将帮助你解决你的问题?

定义好的 Question

一个好问题的一个关键特征是它是一个具体的,易处理的并且可以由数据科学项目回答的问题。如果问题含糊,以至于你没有立即开始考虑要收集的数据,那么这不是一个很好的问题。

坏问题:

好问题

对于这些可回答的问题,你可以想象问题的答案将是什么样的:对于第一个问题,可以进行回归分析,以对控制犯罪的大陪审团的可用性进行回归;第二个问题,可以想象一个表格,该表格将客户与非客户的各种人口统计特征进行比较。

为什么要定义一个好问题

因为它将帮助您集中精力,避免您迷失在数据中。 它能够清楚地表达您希望回答的问题,可以确保你回答该问题实际上有助于解决问题。( 没有什么比一开始兴奋,深入研究数据,进行大量工作,然后得到实际上无助于解决问题的更糟糕的了(但是这种情况一直在发生)。

3 明确答案的样子

这一步要严肃的去做, 而不是抽象的:我的意思是绘制图形,图表,表格,数据集,其中包含预测值和预测变量的列,或者要生成的模型诊断集,以作为回答问题的一种方式。

为什么:

可证伪性

现在你写下了问题的答案。但是,上面没有提到的好问题的另一个关键特征是:它可以证伪,这意味着

(a)你应该能够阐明关于答案的假设,并且
(b)知道什么你的问题的结果长得是什么样。

因此,写下你的答案应该是什么样时,请执行以下操作:

例如,考虑一下我们关于大陪审团和判刑的问题。我的假设可能是,大陪审团会导致更长的刑期,因为它们使委托人与问责制隔离开来。

如上所述,我的结果可能是一个回归表,在该表中,我可以对某县是否有大陪审团以及对犯罪行为的控制进行判决。

为什么要这样?因为它有助于确保我们回答问题的方式是有效的。

4 确定需要的变量

恭喜!现在,你已经完成了数据科学项目中最困难的部分:定义目标。现在我们来看简单的东西。

首先,现在你知道你的目标(上述结果),我们将转向如何实际回答我们的问题。因此,问问自己:

因此,让我们考虑一下一个业务试图寻找新客户。显然,我们需要有关(a)客户支出和(b)这些相同客户的人口统计数据。

我们还需要有关花很多钱的人和不花很多钱的人的数据,以便我们可以比较这两个人群。为此,我们可以通过获取所有客户的数据并比较购买量不多的人(如果支出水平数据存在很大差异)中的大笔消费来做到这一点,或者可以将现有客户与普通大众进行比较(其中大多数不是客户)。

5 寻找数据

好的,现在你知道需要测量的变量以及需要这些变量的总体。现在,让我们找出:

我在哪里可以得到这些数据,以及

如果数据来自不同的数据集,我将如何合并它们?

例如,在上面的客户示例中,我们可以从查找公司已经拥有的当前客户的数据开始。这些数据是什么?

我们还可以使用诸如美国社区调查(美国人口普查局进行的年度调查)之类的资源查找非客户的类似人口统计数据。

如果我们将政府数据用于我们的比较组,则必须确保我们获得可比较的样本,因此我们要确保我们可以将我们对年龄,性别和人们居住地的观察结果与我们的观察结果相匹配,因此我们需要确保我们在两个数据集中都有这些变量。

6 总结

到完成这5个步骤时,你已经成功地制定了具体的计划以准确确定自己的工作时间,并且几乎可以保证所产生的结果。解决你或你的客户的问题。仍然有很多困难,但是至少你不会在迷失数据中,或者做很多工作最终对任何人都没有帮助!

题外话: 有监督机器学习

如上所述,我们可以将机器学习视为回答两种类型问题的工具:第一个问题是,“我们可以使用[我们拥有的变量]和[我们可以使用的训练集来预测[感兴趣的结果]吗?第二个问题是更狭窄的预测问题,“对于给定的一组预测变量,模型对于给定的观察结果将预测[感兴趣的结果]的值是多少?”?

我认为,第一个非常简单。但是,要理解的第二个问题有一个细微的差别,那就是要理解这一点:当我们要求进行有监督的机器学习是针对给定观察值的预测时,我们从根本上问你的模型是:“你如何看待标记数据的实体?你的训练数据集会如何标记新观察结果?

因为这是有监督的机器学习的全部工作:它是旨在复制行为的模型,这些行为导致了用于训练模型的数据集。例如,如果你训练一种有监督的机器学习算法,通过将图片中动物的名字喂入一堆被“美国大学生”标记过的图片中,从而在图片中用动物的名字标记图片,那么你所训练的是机器学习算法要做的是回答每次看到未贴标签的照片时“美国大学生如何给这张照片贴标签”的问题。(意思是, 不光动物图片重要,谁标记的图片同样重要)

显然,不同的监督式机器学习算法会尝试以不同的方式回答这个问题,根据情况的不同,有些算法会比其他算法更成功(这就是为什么我们在机器学习课程中花很多时间研究模型选择的原因),但是回答了这个问题问题始终是他们追求的目标。

这有点离题,但我认为这很重要:因为它可以帮助数据科学家了解受监督的机器学习算法的局限性。令人惊讶的是,很长一段时间以来,人们认为机器学习算法不存在种族或性别偏见。毕竟,它们只是数学而已,数学不能成为种族主义者,对吗?因此,像亚马逊这样的公司试图建立监督式机器学习算法,以帮助他们决定招聘谁。但是,问题在于,他们使用人类员工过去决定雇用的人员的数据以及人类主管人员进行的主观员工评估得出的数据对他们进行了培训。而且由于这产生了一种算法,该算法可以查看人们的简历并问自己“亚马逊(非常人性化的)招聘员工和主管对这个人有什么看法?”,因此该算法当然继承了这些人的所有偏见。因此,OOPS !,当亚马逊突然意识到“他们的新招聘引擎不喜欢女性”时,他们不得不放弃该项目。

上一篇 下一篇

猜你喜欢

热点阅读