TowardsDataScience 博客中文翻译 2020(八百七十四)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

从数据到行动的不稳固的桥梁

原文:https://towardsdatascience.com/the-shaky-bridge-from-data-to-action-f494ab495bc4?source=collection_archive---------54-----------------------

一个现实,不同的事实,不同的观点,相反的行动

注意:在这篇文章中,我试图检验事实和数据之间的关系,以及我们的主观解释和随后的决定。随着我们越来越多地看到对似乎是同一现实的不同解释,这种对这一主题的兴趣最近有所增加。

我太热了——我太冷了……

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果我说“太热了”,你说“太冷了”,那些只是的观点,我们谁也不对!如果你改为说“现在是 70 度”,那么这就是事实这是无可争议的,我们可以就其含义进行更富有成效的对话。

我的一位同事过去就是这样在会议中打断激烈的辩论,并通过敦促人们关注事实和数据来重启讨论的。他的干预往往有助于在最紧张的情况下安抚情绪。在许多方面,这种说法有一种老生常谈的味道,但其中的一些东西确实吸引了我的笛卡尔思维:冰冷的事实和数据是真理的本质,主观意见让我们离真理更远。伦敦统计学会的创始章程(成立于 1834 年)也说了类似的话:数据在任何情况下都必须优先于观点和解释。数据是客观的;观点是主观的。这个信条今天仍然指导着许多统计学家:事实上,我认为对数据的“盲目信仰”比以往任何时候都更强烈,以至于我们故意决定忽略人类专家的意见,而是依赖“数据说了什么”。

在一个事实空前丰富的时代(“大数据”收集了一切,加速了科学进步,倍增了处理数据的计算能力……),我们应该比以往任何一代人都更接近真相!然而,我们的时代也充满了越来越多不同的观点和信仰,不仅是对 20 世纪那样的意识形态,而且是对核心事实(有人知道假新闻吗?).在当今时代,事实和数据从未如此丰富,然而“真相”却更加难以捉摸、相对和主观。

对我来说,这是一个有趣的悖论,值得进一步研究。我在下面试图通过分析我们实际上是如何理解现实并决定什么是真什么是假来做到这一点。我用下面的图表总结了我的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资料来源:Wissam Kahi

  • 事实是描述通过观察过程产生的现实的原始数据,它们是我们能够得到的最接近现实的数据。这是 观察层
  • 描述符(或估计值、模型、统计摘要)允许我们总结原始数据,使其有意义(如平均值、方差、中位数、相关性等)。这是分析层
  • 图表是我们展现真相的各种方式(使用图表、图画、图像甚至描述符本身)。这是 可视化图层
  • 叙述是我们的主观解释。叙述可以通过估计得到信息,但它们也受到许多其他外部因素的严重影响,如我们的价值观、信仰(教育、背景……)。这是 意见层

最后,意见非常重要,因为它们最终会推动行动

让我们用另一个“温度”类比来说明这一点:气候变化。

事实是全球各地不同年份和地点的温度测量、海平面上升和人为碳排放的大量数据集。这些当然是无可争议的,但也是无法实现的(还没有人整合所有的测量数据),而且它们的原始格式不适合人类食用(正如我在以前的博客文章中所阐述的,我们的大脑无法吸收它们)。

估计值和描述符是科学家用来建模、总结和理解数据的各种方法:全球气温和海平面的平均上升,灾难性天气事件和热浪的发生,等等。以及与人为排放的相关性

代表和可视化是代表上述内容的各种出版物、文章和图表。

由此产生的观点和信念当然会有所不同,从光谱的一端人们肯定气候变化和人类行为之间有明确的关系,到另一端声明这种说法没有足够的证据,气候变化纯粹是一种与人类活动无关的周期性现象。在现实中,科学家通常会根据概率来陈述他们的断言(例如,科学家可能会声称,在未来 50 年内,人为引起的气候变化有 70%的可能性会导致海平面上升 50 厘米,或者相反,“自然气候变化有 80%的可能性会导致海平面上升。这是由温室气体排放引起的可能性非常小,几乎可以忽略不计),但实际上,这些问题往往会被简化为更通用、更确定、更简单的陈述(化石燃料导致海平面上升——海平面上升不是由人类引起的,我们对此无能为力)。

行动是作为这些意见的结果而实施的政府政策(或非政策)

这个简单的例子清楚地表明,聪明的受过教育的科学家如何从相同的事实得出不同的结论,更重要的是,政府实施非常不同的政策

那么这种“现实—事实—估计—观点—行动”的脱节发生在哪里呢?让我们分别检查每个维度

I- Facts(观察层)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

海岸线悖论

科学史上有一个故事一直让我着迷:Lewis Fry Richardson 是一位英国物理学家,他想验证一个有趣的理论:两个国家之间发生战争的概率取决于它们共同边界的长度!在研究数据时,他开始发现令人不安的不一致之处:比如荷兰和比利时之间的边界长度,在不同来源之间差异很大。例如,在一个源中可能是 380 公里,而在另一个源中可能是 449 公里。

理查森最终解决了这个悖论,他认识到了一个在今天看来非常直观的东西:边界或任何自然海岸线的长度取决于尺子的大小。如果你用 50 公里的尺子,用 200 公里的尺子你会得到不同的答案(见下图)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

海岸线悖论图解—来源:海岸线悖论—维基百科

这一发现后来被称为“海岸线悖论”,是数学家伯努瓦·曼德尔布罗研究分形的一个重要因素。

你可能会认为这是一个微不足道的发现:当然,用更精细的尺子,我会得到更长的不规则线条。但是我感兴趣的不是 Richardson 的发现本身,而是 T2 在 1950 年制造了它!想想看,当时科学界已经在量子力学和广义相对论等领域取得了重大进展,然而没有人注意到这个很可能被古希腊人发现的微不足道的事实!

被认为是不容置疑的“事实”——西班牙和葡萄牙之间的边界长度是 987 公里,西班牙人声称是 1214 公里,葡萄牙人声称是 1214 公里——结果证明对双方都是错误的。事实上,分形理论表明,随着尺子变得更细,这个长度会发散到无穷大:从理论的角度来看,没有长度可言…

我们看到的和看不到的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Nicholas Nassim Taleb 论文的关键图表“你所看到的和你所没有看到的

我最近读到的最有趣的数学演示之一是纳西姆·塔勒布做的。简而言之,一般结论如下:如果您有 n 个形成特定分布(即,观察值的直方图)的观察值,并且 K 是您的样本中最大的观察值,则未来观察值大于 K 的概率为 1/n(对于所有幂律分布,这是一个非常通用的集合)。这个相当简单的结论却有着深远的影响:它告诉我们一些事情,比如“我们有多大可能遭遇比已有记录的 100 次更强的热浪”或者“下一次金融危机有多大可能比我们目睹的更强”。事实上,许多“专家”过度依赖现有的历史数据,这使得他们低估了隐藏在我们历史上观察到的最大模式背后的潜在“肥尾”。这再次提醒我们,我们的观察有时是自然选择向我们揭示的,但她可能保留了一些隐藏的卡片…

PS:如果你对这个属性的简单图解感兴趣,可以看看麦克·劳勒的伟大 帖子 。这里的数学演示可以进入

结论

有多少其他的“真理”我们今天认为是不容置疑的,结果却被未来的发现动摇了我们的信心?当然,像上面这样的发现并不是每天都会发生,但是当考虑到事实通常是对现实的“测量”时,我们必须考虑到一些误差(即使是出于最好的意图——比如尺子有多精细引起的误差)。

我自己处理原始数据,从我的经验和对同事的观察中我知道,人们对原始数据的质量过于自信,这往往是因为这是你能得到的最好的数据。质疑数据来源、反复检查数据质量并为其分配适当的误差幅度是一项乏味的任务,大多数分析师都会避免,因为直接进行分析更有吸引力……就像理查森对他的战争概率理论所做的那样(这比测量边界更令人兴奋……)。

康德说我们从未真正体验过现实,而只是通过我们感官的面纱来感知它(他称之为感知的面纱*)。记住数据本身是一种人造的人类构造是有好处的:它是我们感知现实的方式——也可以说是通过“面纱”。*

II —描述符(分析层)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

永远不要跨过平均 4 英尺深的河

我写了一篇单独的文章,题目是“ 从不跨过平均 4 英尺深的河——总结战争与和平 ”就在这个话题上。(文章强调了我们汇总数据时面临的挑战和不可避免的“信息丢失”。)的关键前提是,试图使用平均值等描述符来总结数据集有点像试图用几句话来总结“战争与和平”:这是一种高尚的努力,但在某种程度上对于向亲爱的朋友传达这部杰作的内容来说是可笑的。

我不会在这里展开这个主题,但下面只是文章中详细介绍的各种示例中的一个,以便让您有所体会。

我碰巧是一家餐饮公司的合伙人,这家公司从世界各地雇佣有才华的难民厨师。公司厨师开发了几十种来自他们烹饪传统的菜肴——虽然在我看来都很特别,但他们的菜肴对典型的美国人来说或多或少是成功的。在我们不断努力为顾客提供最佳服务的过程中,我们希望了解谁是我们最好的厨师,我们发起了一项调查,顾客可以对每位厨师的烹饪进行评分。在我们承办的每个活动中,每个厨师通常都会准备一道菜。

每位厨师的平均结果如下所示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

《Eat Offbeat》——wiss am Kahi 餐厅每位厨师的评分

在这个节目中,Faven 的评分比她的厨师同事低得多。我们或许应该解雇她,或者至少让她在厨房帮忙,而不是用不为人知、显然不受欢迎的味道折磨我们的顾客?

嗯…没那么快。事实证明,所有这些结论都是错误的,或者至少是误导性的:我们的调查确实要求每个顾客对厨师进行评价,我们知道每个厨师为每个活动准备了不同的菜肴。如果我们不只是平均厨师的结果,而是平均相应菜肴的结果,会怎么样?结果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

《吃另类》每道菜的评分——wiss am Kahi

我们可以清楚地看到,最受欢迎的一道菜是埃及穆萨卡,它是……厨师法文的创造!仅仅依靠平均每位厨师,我们就要解雇负责我们最受欢迎菜肴的人了!Faven 主厨有另外两种菜降低了她的平均水平,这些菜显然不受纽约人的欢迎,应该被淘汰。但她显然有一些天赋,我们应该鼓励她创造一些新的菜肴。

III——表示(可视化层)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

毕加索有一句名言可以作为这一章的最佳副标题:“我们都知道艺术不是真理。艺术是让我们认识到真理的谎言,至少是给我们去理解的真理。”我要说的是,当我们将数据可视化时,我们实际上是在进行一种艺术创作,毕加索的名言与此非常相关。

改变颜色…改变想法

让我用一个我在 Tableau 技术传播者安迪·科特格里夫的博客上读到的例子来说明。下面是 2011 年伊拉克的伤亡图表,来自南华早报

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

伊拉克的血腥工具(2011 年 12 月 17 日—南华早报)

图表中最引人注目的当然是红色“血腥”的使用,以及暗示滴血的倒轴。这是非常有效的煽动读者的情绪和标题“伊拉克的血腥收费”是非常恰当的。

现在考虑安迪·科特格里夫在下图中的旋转:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安迪·科特格雷夫的担当 伊拉克血腥屠杀

事实上,他不仅使用了相同的数据,还使用了相同的图表*——他所做的只是将图表向上旋转(从倒置的数字中可以看出)并赋予它不同的颜色。当然,现在一个不同的标题更合适:“伊拉克:死亡人数在下降”。*

让我们再举一个可能会引起许多美国读者强烈共鸣的例子:下面是 2016 年美国总统大选地图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2016 年美国总统选举县地图(红色=共和党,蓝色=民主党)-来源:土地不投票-人们通过下雨来投票

上面的地图用红色填充,似乎表明特朗普取得了压倒性胜利。但是你可能已经猜到了,用地图来表示人们的投票是非常误导人的。下面的Karim dou EB给出了这种表述的平衡

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Karim Douï eb 人口调整后的 2016 年选举调整地图(红色=共和党,蓝色=民主党)

在这个可视化中,县的大小与其人口成比例,而不是与其地理面积成比例(毕竟所有人都投票,而不是土地面积!)并在视觉上展示了一个非常不同的画面。

一个故事抵得上一千…数据点

**“一个人的死亡是悲剧;100 万人死亡是一个统计数字”——约瑟夫·斯大林(Josef Stalin)狡猾地利用这一数字为自己谋利(当然也损害了人类)。众所周知,故事比统计数据更有影响力,细节比一般的更引人注目,触及心灵比诉诸理性更有效…

我仍然感到震惊的是,即使受过教育的人应该意识到自己的偏见,这仍然是多么真实:例如,一个为难民筹集资金的慈善机构通过展示一个女孩的照片筹集的资金会比展示一群难民的照片筹集的资金更多(甚至更少展示统计数据)。更糟糕的是,展示同一个女孩和她的兄弟或家人也将筹集更少的钱……(有几个关于这个主题的研究,但你可以查看几个这里这里

IV-意见(解释/叙述层)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我最近被选为大陪审团的成员。在 4 周的时间里,我和其他 22 名大陪审团成员坐在一个房间里,助理地方检察官会过来向我们介绍他们针对某一特定被告的案件,我们必须投票决定是否有足够的证据起诉被告(意味着有足够的证据将案件提交审判)。我们在 4 周内回顾了约 40 例病例。

我最初认为这将是一个可怕的负担和巨大的时间浪费,实际上却是一个非常有趣的实验:他非常有见地地观察到不同的陪审员在面对相同的事实时如何得出不同的结论。事实上,在许多情况下,事实是不完整的——但这是人类思维的一个特征,用主观假设来填补这些事实的空白,并建立一个叙事——这不正是一种观点吗?我们没有用自己的感官目睹犯罪,我们被邀请在自己的头脑中建立一个故事,相应地填补空白。

判断是否有足够的证据将案件提交审判或驳回显然是一种意见(从这个角度来看,该系统并不完美,因为它依赖于人们的意见而不是纯粹的事实,但有趣的是,在许多方面,这是我们唯一的“公平”选择)。我同样认为解释或“理解”一个数据图表必然会形成一个关于它的观点*——否则它只是纸上的数字。*

让我们考虑另一个熟悉的类比:杯子满了 1/2 和杯子空了 1/2 都是“6 盎司杯子里有 3 盎司水”(客观现实)这一准确说法的准确意见(主观现实)。后者并不比前者更“真实”。有趣的是,人工智能将只能表达客观陈述,如“杯子里有 50%的水”,而不能区分半满/半空的观点。在可预见的未来,这些区别仍将是人类固有的——这正是我认为它们至关重要的原因。

简而言之,我们处理信息的方式只部分取决于信息本身,同样也取决于我们有偏见的感知。如果表示层(前一章)处理的是作者在传达数据时引入的偏见,那么解释层处理的是数据的读者在理解数据时引入的偏见。扩展一下我使用的比喻:如果表示层是关于作者用不同的颜色画笔来表示数据,那么解释层是关于读者通过他们自己的有色眼镜来看待事实

有几个因素可以显著影响这种解释,其中一些是我们人类固有的潜意识偏见*,另一些根植于我们的内在信仰、文化和世界观,最后还有一些是外部因素,例如我们“消费”事实时碰巧进入的群体。*

1 —潜意识偏见—叙事谬误

诺贝尔经济学家丹尼尔·卡内曼写了一整本书《思考,快与慢》,主题是潜意识偏见。我不会试图在这里总结它——尽管我非常鼓励你去读它——但是我会用一个关于叙述谬误的例子来说明。

叙事谬误

假设您正在尝试评估销售代表在创造收入方面的效率。你将每个客户的收入与销售代表给每个客户打电话的次数进行对比,并生成下图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

增加对客户的呼叫会增加收入

该散点图显示了客户呼叫次数与客户创造的收入之间的密切相关性。你把它展示给公司领导层,每个人都看到了清晰的模式:当我们增加对客户的拜访时,收入也会相应增加。因此,合理的结论是激励我们的销售人员打更多的客户电话——尤其是那些我们过去忽视的客户。

现在想象一下,你反转坐标轴,在 Y 轴上画出呼叫次数。图表如下所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当客户收入较高时,销售人员会增加致电客户的次数

现在至少观众中的一些人会得出不同的结论:当客户收入更高时,销售人员往往会更频繁地拜访他们!

你可能已经猜到这两种说法都存在逻辑谬误。事实上,对这种相关性的一个完全合理的解释是影响这两个指标的第三个混淆变量,例如,客户规模/消费倾向可能会影响销售人员拜访客户的频率以及公司的收入,换句话说,销售人员足够聪明,可以拜访“值得”的客户。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

客户收入与销售拜访频率相关性的潜在解释

你们中的许多人可能对我们在统计学课上学到的著名的“相关性并不意味着因果关系”很熟悉。令人震惊的是,同样意识到相关性/因果关系差异的高管、经理和受过高等教育的人每天仍然经常陷入这个陷阱(实际上上述虚构的例子是从真实事件中获得的灵感)。

丹尼尔·卡内曼谈到了大脑“急于下结论”的倾向。尼古拉斯·纳西姆·塔勒布,另一个我最喜欢的作家,把这解释为叙事谬误

叙事谬误解决了我们在不解释事实的情况下观察事实序列的有限能力,或者,换句话说,在事实上强加一个逻辑链接,一个关系箭头。解释将事实结合在一起。他们使他们更容易记住;他们帮助他们变得更有意义。这种倾向可能出错的地方是当它增加我们理解的印象时

在我们的例子中,我们被训练试图通过 x 轴上的变量的行为来解释 y 轴上的变量。如果我们能把一个因果故事中的变量联系起来,那就有趣多了。但是,翻转轴就足以得到不同的解释……当然,受过训练的人不会相信他们在这方面的第一直觉,而是更深入地挖掘,他们通常会对相同的数据有不同于“常识”的解释。

2-内在价值观和信念

潜意识偏见是人类本性中固有的,从定义上来说,在个体中是普遍的。相比之下,我们的价值观和信仰因人而异,因为它们受到个人教育、教养、文化环境、过去经历等的影响。

气候变化主题是展示这些值如何影响数据解释的理想选择。NOAA 的下图显示了地球大气中二氧化碳的增加,最近已经超过了 410 ppm。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二氧化碳百万分率趋势—【climate.gov 资料来源

保守派评论员兼电台主持人马克·莱文(Mark Levin)利用这一信息辩称,二氧化碳只是地球大气中的一种微量气体。他谴责当权派经常极力劝阻反对意见,并宣称在气候变化问题上科学界近乎一致。“他们从未提及二氧化碳在大气中所占的比例有多小,”莱文说。https://www . Washington examiner . com/Americans-for-carbon-CO2-mark-levins-idea-of-time-come

从纯事实的角度来看,莱文是对的:二氧化碳确实是大气中的一小部分。但是也许有人应该给他一杯水,里面有极少量的砷,并请他向我们展示他有多勇敢——毕竟它是如此之小…

玩笑归玩笑,这是对道德价值观和群体思维(在这种情况下是气候否定论者群体)如何严重影响事实解释的完美例证。一个更细致的图表可能如下,它着眼于一个更长的时间段:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二氧化碳百万分率趋势——资料来源:Climate.gov 的 NOAA

这表明,410 ppm 是历史上前所未有的,引用一个更具戏剧性的数字将是“今天的二氧化碳浓度比过去 80 万年的历史峰值高 30%以上”。

我们在莱文身上看到的是确认偏差在起作用:当面对几个事实时,人们会挑选最能支持他们当前信念的数据,而忽略其他一切。我们在政治光谱的另一端看到了同样的确认偏见,人们挑选的数据会让它听起来最具戏剧性。现实情况是,虽然在这一论点的一端有科学上的多数,但这还不是一个完全的共识,因为在事实分析中仍然存在差距,不能以某种方式提供“不可辩驳的证据”, a)增加是由人类引起的,b)它将导致灾难。尽管存在不确定性(我将在下一章详细阐述),但我对如何解决这个问题有自己的看法。

3-外部因素

我从霍华德·韦纳和哈里斯·l·兹韦林的一篇文章中借用了这个例子,但对其进行了扩展。我还接触了丹尼尔·卡内曼的书《思考的快慢》。

你是一名数据分析师,在一家领先的私人实验室开发一种新的癌症,领导指派你了解肾癌发病率最高的地区。你做了调查,并向领导展示了以下数据图

注:此场景纯属虚构,但数据来自美国国家癌症研究所

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与美国各县人口相比,每 100,000 人的肾癌发病率——资料来源:Howard Wainer 和 Harris L. Zwerling 的数据——wiss am Kahi 的可视化

你把图表展示给围坐在会议桌旁的高管们,在最初的一分钟左右,没有人知道它是怎么回事。但就在这时,眼尖的 CEO 说:“我明白了!癌症发病率最高的县大多是农村、中西部和南部人口稀少的地区。这些州的贫困程度更高,饮食脂肪含量更高,饮酒和吸烟过多,没有良好的医疗保健。完全说得通!“现在每个人都明白了这个模式,并点头表示同意。

如果你自己再次点头表示同意,再想一想,因为结论实际上是错误的。事实上,癌症发病率最低的县也是农村、人口稀少以及中西部、南部和西部的县……下面的图表将人口为< 50,000 和> 50,000 的县分开,并显示它们如何划分肾癌的低发病率和高发病率。如你所见,在这两种类型的县中,癌症低发病率的县一样多,在较小的县中,癌症低发病率和高发病率大致相当。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

南部、西部和中西部癌症发病率低、中和高的县的分布——人口<50,000 vs. > 50,000 的县——资料来源:Howard Wainer 和 Harris L. Zwerling 的数据——wiss am Kahi 的可视化

这里的合理解释是“大数定律”:当我们的样本总体较小时,我们更有可能在平均发病率周围有较高的方差。因此,我们更有可能在较小的样本(在这种情况下是较小的县)中找到极端值(低或高),而较大的样本往往更接近平均值,变化较小(实际上,您可以看到较大的县有更高的百分比属于“中等”类别。)

上述解释基本上是随机的——没有因果关系解释为什么较小的县会有较低或较高的发病率。但是我们的大脑不喜欢随机性,并且会一直积极地寻找因果关系(在丹尼尔·卡内曼的书中会有更多的论述)。

这和上面的叙事谬误类似。但这里还有另一个有趣的影响:注意,解释可能会完全不同:房间里的一些人可能已经注意到许多小县的癌症发病率非常低,并用农村生活方式的好处,没有污染等来解释这一点。这并没有发生:观点向一端的转变是由组织中具有道德权威的人(在这个例子中是 CEO)的权力动态和角色模型驱动的。虽然为了说明的目的,这个例子被明显地夸大了,但是请注意,这在组织中非常频繁地发生,尽管是以更微妙的方式。这些群体动态如何出现的例子包括,例如,谁具有更强的性格或权威,或者有时只是谁第一个发表意见。请注意,在这些情况下,通过在参与讨论之前征求每个人的意见,或者由对统计有更深入了解的人提供更清晰的图表,可以鼓励更健康的辩论。

垂直行动——结束循环

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在我朋友用来说明“事实胜于观点”的“太热/太冷”的例子中,有一点总是困扰着我,那就是感觉不对劲。我花了一些时间才弄明白是什么,事后看来很明显:如果辩论只是关于知道温度是多少,就像科学家试图测量自然现象一样,那么类比是有意义的,但如果类比涉及到人们是否对温度感到舒适,那么类比就不成立。事实上,知道温度“客观上”是华氏 68 度并没有以任何方式减少冷或热的主观感觉。毕竟,带来满足感的唯一方法是他们中的一个站起来调节恒温器,从而带来一个新的现实。换句话说,这个比喻暗示着客观真理应该永远胜过主观真理。然而,最终导致行动的往往与客观无关,而完全与主观有关。

这种“客观与主观”是许多学科中的一个古老的争论。然而,与本文相关的是,行动是主观——或集体主观——的结果,并且这些行动对现实有影响。所以我们描述的线性链条“现实→观点→行动”实际上是一个闭环

*在这里引入反身性的概念是值得的:到目前为止,我们一直在谈论观察者作为一个通过几个镜头(观察、分析、表现、解释……)理解数据和事实的个体,但是假设这个个体仅仅是一个现实的被动观察者,就像科学家观察蚂蚁一样。反身性认为,在许多领域,将个人纯粹视为被动的观察者是不正确的,因为他将形成的观点实际上会对他正在观察的情况产生影响——使关系*具有反身性。换句话说:现实并不独立于参与者的感知——它可以被这种感知所塑造。在前面的章节中,我们已经确定了两个人在面对同样的事实时,是如何形成两种截然不同的观点的。我将在这里解释为什么这种感觉很重要,尤其是当它成为集体的反映时。事实上,这在与人类事务相关的领域尤其相关,例如金融或社会科学,在这些领域中,一群主观观察者同时也是他们所观察的客观现实的参与者。

卡尔·波普尔(Karl Popper)将反身性作为科学中的一个问题,他强调了预测对被预测事件的影响,称之为“俄狄浦斯效应(Oedipus effect)”,指的是希腊传说中实现神谕预言的事件序列受到预言本身的巨大影响。乔治·索罗斯(他的学生)后来在这个话题上有了很大的发展。在金融市场中可以找到一个简单的例子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:乔治·索罗斯的《易错性、反身性和人类不确定性原理》

a)参与者(如对冲基金)对资产价格形成了与事实不同的偏见观点(即,基于主流经济理论的市场基本面应该已经反映了这一观点),根据上述章节,很容易理解为什么这种观点会有偏见。索罗斯称之为认知功能,并引入了易错性的概念来描述人类的偏见

b)然后参与者会根据他们的偏见采取行动。市场会相应地调整价格。这将有利于价格更优惠的公司,因为它们将有更多的机会获得资本,并惩罚不公平地向下倾斜的公司。在某种程度上,这变成了一个自我实现的预言。索罗斯称之为操纵功能。

c)参与者和现实之间的持续互动反映了这种理解和塑造现实的循环努力。

政治调查和民意测验也有类似的现象。由 CNN 或 Fox 发布的“不完美民意调查”不仅仅是潜在情绪的快照——它还会影响他们!

让我们用一个当代问题来说明为什么这也与我们的数据到行动框架密切相关:假新闻和假账户对世界各地的一些选举产生了重大影响。除了影响观点之外,许多这些虚假账户还创建了脸书页面,就各种有争议的话题组织示威活动——通常基于假新闻——真正的共同主持人在不知情的情况下被招募并组织了这些活动。所以“虚构的人”组织了真实的活动,由真实的人参加,他们的情绪被“虚构的新闻”煽动起来!因此,为了进一步证明现实和虚构之间的界限在这种情况下是如何模糊的,想象以下场景:

在某个城镇,一项调查显示,5%的人相信第 x 期。一个虚假账户创建了一个基于假新闻的演示,以推广第 x 期,招募真正的共同主持人,开始在城镇组织集会。一项新的调查显示,10%的城镇支持 X 问题…你认为哪一个百分比(5%或 10%)代表了城镇对 X 问题的真实看法?老实说,我自己也没有一个好的答案——但是这个例子说明了我们如何才能解开这个动态闭环:现实→意见→行动→现实

结论——将所有这些应用到我们当前的危机中?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在,我们已经,至少在概念上,完成了循环,我们已经建立了

  1. 不要盲目相信事实和观察——大自然可能还没有选择亮出它所有的底牌
  2. 总结和分析事实的描述符只是对现实的概括——而总结是不完美的
  3. “画家”可以操纵描述符的图表和表示来影响解释
  4. 由于各种偏见(叙事谬误、价值观和信仰、外部群体压力、小数法则……),人们可能对同一图表有不同的解读
  5. 事实和行动之间的关系不仅仅是线性的,而是循环的,特别是对于涉及人类行为和集体行动(金融、社会科学……)的现象,这使情况更加复杂

那我们该怎么办?我确实想以积极的方式结束发言。我不认为我要努力的是放弃,而是要意识到心流中的不确定性,并保持适度的怀疑。这将继续区分我们人类和人工智能:人工智能本质上是客观的——它不受价值观和文化规范的阻碍,因此应该能够得出公正的结论(例如,基于结果的概率)。这些不完美不是我们软件中的小故障,而是让我们成为人类的一个特征。

某些权势集团坚信“答案就在数据中”。我希望通过上面的例子,我可以驱散这种误解。作为一名数据爱好者,我确实相信数据是一个更大难题中非常重要的一块,这个难题需要包括许多其他学科来进行决策,包括特定领域的专业知识,也包括哲学、伦理以及历史。即使面对不确定性,我们仍然可以明智地选择我们的行动。

现在我将结束这个循环,再次用气候变化来说明。虽然事实和数据往往是无可争议的,但科学界对因果关系没有完全的共识(例如,这是人类行动的原因吗?)和预测模型(即影响发生的速度有多快?),因为这些是更高层次的顺序,更不容易伪造。话虽如此,我认为这种不确定性确实意味着某种行动方针:即使我们对悲观模型正确的概率赋予很小的可能性,预防原则也意味着我们不能什么都不做,因为失败的成本太高了。

脚注:

例如,最近我读到了村上春树的新书《客观不一定超越主观,你知道》。现实不一定会熄灭幻想。”

2 美国国家海洋与大气管理局

3 反身性与 一般均衡理论 不一致,一般均衡理论规定市场走向均衡,非均衡波动仅仅是随机噪音,很快就会被纠正。在均衡理论中,长期均衡价格反映了潜在的 经济基本面 ,不受价格影响。反身性断言,价格确实影响基本面,这些新影响的基本面然后继续改变预期,从而影响价格;这一过程以自我强化的方式继续。因为这种模式是自我强化的,市场趋向于不平衡

咖啡的形状

原文:https://towardsdatascience.com/the-shape-of-coffee-fa87d3a67752?source=collection_archive---------33-----------------------

使用模式识别的颗粒分析

制作咖啡需要研磨,但哪种研磨机最好呢?我不确定,但我看到的是相当多的咖啡研磨分布数据。有些研磨机比其他研磨机更好,仅仅是因为它们有更紧密的分布,但是分布是唯一需要考虑的吗?

我最初研究颗粒大小是因为我编写了分析过滤孔的代码。可以使用相同的处理,但是我发现了两个主要的困难:

  1. 在地面不接触的地方获取图像是很困难的。
  2. 这项技术只能分辨 100 微米的 1 个像素,因此很难更好地感知更细微的颗粒。

另外,粒子不是圆形的。我没多想,因为我还有其他实验在进行,但一年后,我得到了一台显微镜。事实证明,大多数地面都不是圆形的。它们也不是正方形的。那么如何理解它们呢?你如何确定一个粒子的大小?半径不太有意义,但面积可能有意义。

如果你用面积来测量颗粒的大小,你会有两个尺寸分布非常相似但结果不同的研磨机吗?我被这个问题困扰着,为了理解咖啡渣,我求助于模式识别。

在这项工作中,我做了一个简单的预处理,然后我应用了一些标准的模式识别技术。对于每个粒子,我做了一个线性二进制模式(LBP)的特点是规模和旋转不变。然后我应用 k-means 聚类来确定粒子的类型。

我不知道这是否会成为理解粒子研磨的另一种方式,但我打算在未来进行以下测试:

  1. 研磨设置
  2. 筛过的粉末
  3. 研磨机比较
  4. 拍摄前与拍摄后的背景形状

初步加工

我把咖啡放在一张白纸或 iPad 屏幕上。然后我拍了一张照片。在这项工作中,我不担心规模,但这相对容易在以后的日期纳入。这里的关键是加工。然后我反转图像,对每个像素取 RGB 的乘积。应用一个简单的阈值后,我得到了这个图像:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是一个特写图像。即使在这张图片中,你也可以看到各种各样的粒子形状。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最初,我看了一些指标,比如长轴与短轴之比。假设形状是一个椭圆。肯定有分布,而且不是线性相关的。我怀疑这表明了粒子形状的多样性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后我比较了长轴和短轴与面积的比率。同样,存在一个分布,它根据孔的面积而不同。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用于形状分析的模式识别

咖啡颗粒不是圆形的。不同的研磨设置或不同的研磨机会改变出来的颗粒形状吗?我们如何理解不同的形状?

线性二元模式

一种技术是使用线性二进制模式。这是一个应用于每个像素的简单模式,通过简单的等式(像素>中心像素)将周围的像素与中心像素进行比较来生成代码,如下所示。有 2⁸可能模式(256),但如果你考虑围绕中心像素旋转,只有 59 个独特的模式。最后一个特征是图像中属于每个类别的像素百分比的 59 个元素长。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

k 均值聚类

之后,我们可以应用 K-means 聚类来查看不同类型的形状是如何分类的。K-均值聚类包括设置 K 个节点(在本例中为 16 个),并将所有要素分组到它们最近的节点。然后,该算法反复调整节点和分组,以最好地分离数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自 Matlab 的两个节点示例

选择集群的数量更多的是一门艺术而不是一门科学。要使用的主要指标是类内平方和(WSS),随着类数量的增加,会有一个收益递减的点,在本例中是 16 个类。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在,我们可以在全局视图中比较这些不同簇的粒子面积,然后在每个空穴面积箱中进行归一化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我不确定这说明了什么,只知道这是一种观察分布和颗粒大小的新方法。这是一个漂亮的图表,但最终,它能告诉我们什么呢?这些信息能够更好地区分好的研磨机吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我已经在网上看到了很多其他人的粒子分布,但我不清楚如何使用这些信息来区分最好、相当好、好、坏和最差。你可能会说研磨机不好,但我觉得好像少了点什么。我的经验是,我的 200 美元的韩国研磨机制作了很棒的浓缩咖啡,尽管与几千美元的研磨机相比,它并不被认为是一个很好的研磨机。希望,我们作为一个社区,将找到一些客观的衡量标准,这样人们将更容易花几千美元在磨床上。

如果你愿意,可以在 TwitterYouTube 上关注我,我会在那里发布不同机器上的浓缩咖啡照片和浓缩咖啡相关的视频。你也可以在 LinkedIn 上找到我。

我的进一步阅读:

咖啡不圆

搅拌还是旋转:更好的浓缩咖啡体验

香辣意式浓缩咖啡:热磨,冷捣以获得更好的咖啡

断续浓缩咖啡:提升浓缩咖啡

用纸质过滤器改进浓缩咖啡

浓缩咖啡中咖啡溶解度的初步研究

断奏捣固:不用筛子改进浓缩咖啡

浓缩咖啡模拟:计算机模型的第一步

更好的浓缩咖啡压力脉动

咖啡数据表

工匠咖啡价格过高

被盗浓缩咖啡机的故事

浓缩咖啡过滤器分析

便携式浓缩咖啡:指南

克鲁夫筛:一项分析

美国总统选举的格局

原文:https://towardsdatascience.com/the-shape-of-the-united-states-presidential-elections-c336d80e4ddf?source=collection_archive---------20-----------------------

绘制选举结果的方法有很多——你可能没有尝试过这种方法(而且你还来得及赶上今年的选举)。

作者 菲利普【魏勒】刘易斯弗朗切斯科【帕尔马】 托马斯**

很少有人知道每个人在特定时间点对特定事情的看法。大选真实地反映了一个国家的居民如何看待他们国家的需求和优先事项。虽然我们必须谨慎下结论,但选民投票的方式反映了(在一定程度上!)他们的处境和他们的价值观。

选举之后,分析家们用一系列的例证来支持他们的结论,从而赋予这些原始材料以意义。一个反复出现的例子是选举地图。这张地图显示了实际的物理边界是如何与政治边界相一致的。具体来说,在美国,它传达了一个普遍的信息,即农村地区的选民是保守的,而人口稠密地区的选民是自由的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选举地图用投票边缘着色

选举地图证实了我们的先验,并作为一个健全的检查。然而,它所代表的有限信息限制了我们能够提出的假设的多样性。

找出因果关系并不总是容易的,因为它们不受地理位置的限制;有时我们只是不知道要寻找什么。

尽管你投票的方式完全是主观的,但研究表明,像你的社会经济背景,甚至你的邮政编码等因素都会影响你的投票偏好。制定适当的假设仍然是主观的,特别是在考虑高维数据集时,在变量之间建立正确的联系是一个真正的挑战。

为了揭示新的见解,使用一种系统的方法来直观地汇总数据符合我们的利益。这就是映射器算法可以帮助我们的地方。这是一种无监督的方法,它将数据分成不同的区域,并在适当的时候将它们连接起来。这些区域是产生新假说的关键。

美国县域经济景观

县是美国一个州的行政分区。通常,县级分析提供了最详细的见解,因为关于它们的统计数据通常是可用的最小尺度。

通过使用 Mapper 算法,我们希望了解是否有一种自然的方式将各个县划分为社会经济类别,并将它们与投票行为联系起来。我们对 2016 年县级数据的研究使用了来自美国经济分析局的 21 个社会经济特征,例如,包括个人收入数据和人均退休。因为缺乏一些县(如阿拉斯加和夏威夷县)的数据,他们被排除在我们的研究之外。结果,我们统计了 3043 个县。

我们的结果简而言之

我们的研究表明,我们可以根据经济指标将这些县分为五个主要区域:

1.高净值

2.高人均净资产

3.高人均退休率

4.高净值和平均净值

5.低净值

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Giotto-learn Mapper 描绘的 2016 年美国社会经济景观

高人均退休人数本身就是一个集群,这并不是唯一令人惊讶的结果。结合低净值县,两者都占了绝大多数的县和表面积。同样值得一提的是,一个县的高净值并不能转化为高净值的个人,因此,在我们的研究中创造了两个独立的类别。

当结合选举结果时,我们发现在 2016 年,高人均退休和低净值地区是共和党的据点。除了一些高净值和中等净值的县以外,其余三个地区主要投票给民主党。

我们的结果是通过 Giotto-learn 实现的映射器获得的。你可以在这篇博文中找到关于其内部运作的更详细的解释。如果你想复制我们的结果或者自己尝试,我们使用开源库 Giotto-learn 提供了代码来实现。Mapper 在美国投票中的另一个应用可以在这里找到。

方法论

成功应用 Mapper 需要选择:

  • 过滤函数,即从数据集到低维空间的映射,
  • 图像空间的盖子,
  • 一种聚类方法

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Giotto-learn 中运行映射器算法的工作流程

只需几行代码,Giotto-learn 的 Mapper 就会为你提供一个彩色的图表。这些节点表示分类,默认情况下,这些分类由分类内点的平均过滤器值来着色。当两个群集共享至少一个点时,将绘制一条边。在我们的例子中,一个点代表一个县。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按过滤器值着色的映射图

图表结构中的含义可以通过用感兴趣的变量给节点着色来揭示。例如,通过用每个节点成员的平均净值来给每个节点着色,我们可以看到哪些节点集是相似的。默认的“平均着色”过滤器值将连接的组件分为两个区域:高过滤器值和低过滤器值。单线态在过滤值上是多样的,因为它们覆盖了整个光谱。然而,这并不能提供太多的洞察力,因为过滤函数太抽象,难以解释。幸运的是,在 Giotto-learn 的 Mapper 实现中,很容易改变节点的颜色来从结构中提取洞察力。

给映射图着色以寻找含义

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按个人收入着色的映射图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按人均收入着色的映射器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按人均退休人数着色的映射图

用个人收入、人均个人收入或人均退休来给图表着色,揭示了上面提到的五个相关区域。这五个区域之所以可见,是因为我们同时分析了 21 个特征。如果我们单独研究这些特征,获得这样的分类会困难得多,甚至是不可能的。

为了查看这在地图上是如何展开的,我们相应地给县地图着色。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

地图绘制者图表和美国地图上用颜色标出的五个主要地区

虽然这些县在制图图中分离得很好,但当它们按位置绘制时,情况就不一样了。这些区域的拓扑结构非常重要,可能连专家都不会选择这样的分组。

为了显示映射器输出的重要性,我们可以用任何感兴趣的变量给图形着色。

美国的投票行为

Mapper 图表通过分别用共和党和民主党赢得的县的百分比来给节点着色,帮助我们理解投票行为。我们的颜色范围从深蓝色(所有县都是民主党赢得的)、白色(两党赢得的县数量相等)到深红色(所有县都是共和党赢得的)。这些数据已经由麻省理工学院选举数据和科学实验室提供。

我们不限于社会经济框架,也可以引入时间维度。保持映射图不变,并用不同年份的选举结果来着色,有助于我们理解投票行为是如何随着时间的推移而演变的。在这里,我们用新千年总统选举的结果来给节点着色。

为了反映一个集群的相对权重,我们可以通过改变节点的大小来增加另一个层次的信息。我们根据节点所负责的选举人的百分比来调整节点的大小。我们用下面的方式定义这个数字(每个县):给定一个州每个县的选举人数量,我们用这个县的人口百分比来加权。

结果

在主连通分量中有两个极性相反的分量,它们与高/低滤波器值分离几乎完美地对齐。一般来说,共和党往往在选举人数量少的县表现强劲。我们注意到,2004 年以后,高净值、高人均净值、高人均退休的票数保持稳定。粗略来看,“摇摆”县包含在高净值、中等净值和低净值县中。关于单身一族的一个小事实是:他们几乎总是完全被其中一个政党赢得。

投票的演变:2004 年至 2008 年

奥巴马总统赢得选举的那一年,我们注意到两件事:高人均退休和低净值地区不那么受共和党人支配。2004 年,高人均收入地区主要投票给共和党,而在 2008 年,它变成了民主党。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按选举结果着色的映射图

投票的演变:2012 年至 2016 年

2016 年,我们看到共和党在上述地区的投票净进展。在传统的共和党地区,我们注意到与前几年相比,平均增长了 10-20%。然而,也有一个共和党人的据点被民主党人设法接管。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

按选举结果着色的映射图

各郡对选举团的贡献

民主党倾向于赢得大县(如洛杉矶,相当于 2.7%的选举人),共和党赢得小但很多的县,这反映在 Mapper 图的节点中。我们可以根据每个县的平均选举人数量来划分两个新区域中的节点。第一个区域包含有少量选举人的县。对于第二个区域,情况正好相反。

例如,2016 年,一个大型深蓝色节点代表 4.5%的选举人,只包含 9 个县,其中 8 个县由民主党人赢得。与此同时,在共和党集群中,惊人的 700 个县总计占 10%的选举人,这意味着每个县只负责区区 0.015%的选举人。共和党赢得的每个县的选举人百分比总是小于民主党赢得的选举人百分比。

从经济指标到投票行为

至于任何政治分析,我们需要小心我们的结论。由于我们无法获得投票后的民意调查数据,因此无法得出明确的结论。然而,这一分析表明,社会经济因素与投票行为之间存在持续的相关性:

1.在高净值县和大多数高净值县,民主党获得了更多的选票。

2.另一方面,共和党在高人均退休和低净资产地区得分。

3.摇摆票包含在两党各自的优势选区的边界区域。

结论

Mapper 算法降低了数据的维度,并在保留拓扑属性的同时聚合数据。通过映射图,我们发现了不同的社会经济类别,这些类别似乎有投票趋势。

了解这些趋势以及它们如何随着时间的推移而变化,可能有助于为竞选活动制定策略。

有用的链接:

人工智能辩论失败的原因

原文:https://towardsdatascience.com/the-shifting-sands-of-a-i-f8535891ccb1?source=collection_archive---------82-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于人工智能的公共话语的恰当总结——作者塔博尔 ( 许可)。

围绕人工智能的公开辩论对资金、研究、监管以及其恶意滥用的程度产生了重大影响。我们的论述失败了,因为我们共同标榜这个术语的几个定义。

闪亮的炒作列车

自从数据科学是*21 世纪最性感的工作 的过度劳累和令人生厌的评论,以及随之而来的摧毁现代机器学习概念的炒作列车布莱曼的概念——从学术边缘到主流劳动力市场令人眼花缭乱的灯光,疯狂的流浪汉们急于将逻辑回归重新包装为前沿人工智能始于我在看你, IBM Watson 。*

大多数在野外发现的外行人对人工智能的看法在乌托邦和反乌托邦的极端之间摇摆不定。乌托邦式的愿景以对短期潜力的不切实际的期望为标志(想想自动驾驶汽车)。这种情绪是危险的,因为过度承诺有助于刺激炒作周期,这是人工智能历史上的一种常见趋势,当这些泡沫不可避免地破裂时,公众信心就会减弱,随之而来的还有声誉、生计和投资者。

另一方面,反乌托邦的观点是从科幻小说中汲取的。《刀锋战士》、《〈T2〉太空漫游》和《〈T4〉西部世界》等故事中的人工智能之所以引人注目,是因为它跨越了令人费解的哲学和可塑的情节设计之间的界限,但你是否遵循菲利普·迪克(Philip K Dick)、阿西莫夫(Asimov)等人的作品并不是真正的重点,重点是这些作者使用的语言和思想已经嵌入了许多在人工智能辩论中拥有平台利益的人的作品中。它被用来帮助设计关于劳动力市场、人工智能的短期潜力以及基本机器学习应用程序的营销活动的媒体出版物。

就像穿着连帽衫,弓着背看着一个矩阵状的屏幕上如雨点般的代码的技术型穴居黑客已经成为媒体对程序员的喜爱漫画一样,拥有霓虹蓝色网络大脑的机器人也成为了 ML 从业者的宠儿。但是这幅画暗示了一个与曼梯·里目前的能力相差几光年的世界。推动这种情绪的群体,实际上是受这一群体影响最大的人,经常想象人形表征,社会的诡异洗牌,以及一个孤独的天才创造者,类似于黑客。对反乌托邦极端的过度关注将掩盖我们因滥用当代机器学习而面临的更紧迫的危险。

人工智能在庸医广告人的选择夸张中的角色在某种程度上削弱了它的本意,并把有用的术语变成了陈词滥调,有时甚至是骗人的模因。但是比语义变化问题更紧迫的是(词语的含义总是在足够长的时间范围内变化),交战派别之间的定义差异降低了公共话语的价值,经常使其堕落为令人沮丧的顽固集会之间的错误信息的喊叫比赛。美国政治,有人知道吗?

最见多识广的公开辩论是那些竞争双方之间术语差异很小的辩论,这样当我阐述我的论点时,术语的编码就不会在你试图解码时被误解。强大的公理基础允许出现更深思熟虑的论点,这在趋势技术讨论中尤其重要,在这种讨论中,理解应用潜在干预的含义通常是至关重要且微妙的。

牵制住人工智能

到目前为止,我们只讨论了领域外的人通常如何解读人工智能,但从业者是怎么想的呢?那些至少在坊间如此狂热地嘲笑目光暗淡的公众不理解人工智能的知情人,认为人工智能实际上是什么?我敢打赌,他们自己不会达成任何一致的裁决。此外,我敢打赌,他们会根据受众改变自己的定义,对于那些寻求研究资金的人来说尤其如此;由于人工智能目前的炒作指数很高,你当然会想把它也算进去。顺便说一句,在第二届“ AI 冬季”期间,当一个充满膨胀预期的炒作泡沫破裂后,这个术语被拖进了泥沼,那些留在这个领域的人发现,他们可以通过完全避免这个失去光泽的术语来赚更多的钱。

当该领域的一些人谈论人工智能时,他们实际上指的是机器学习。对于大多数应用程序来说,机器学习是建模中很小的一部分,它位于数据摄取、转换、管理和服务的漫长管道中,涉及许多基础设施和数据仓库、胶合代码、中间件和 REST APIs 等之间的复杂相互作用。机器学习是对欺诈交易进行评分的轻型 GBM,是用于检测乳腺癌的 CNN,是 Word2Vec 注入的推荐引擎

当这个领域的其他人谈论人工智能时,他们指的是人工智能。,也就是 2018 年让埃隆·马斯克(Elon Musk)夜不能寐的那个东西。对于其他人来说,人工智能只是下一个最大的突破,并且总是感觉触手可及——如果我们能实现<空白>就好了!-但永远达不到目标,因为每一个新完成的里程碑都拉开帷幕,只露出和以前一样的情绪……那个门槛不是这个里程碑,而是下一个,一遍又一遍。道格拉斯·霍夫斯塔德的一句妙语(或者是拉里·特斯勒?)指出“人工智能就是那些还没有被完成的东西”。人工智能中转移目标的想法并不新鲜,但当人们讨论这个话题时,它往往会被忽略。顺便说一下,这种效应被恰当地称为人工智能效应

现在怎么办?

不管你如何定义这个词,人工智能自 1955 年作为一门学术学科成立以来已经走过了漫长的道路。但它显然离其最神圣的目标还很远:人工智能。今天最先进的模型往往擅长解决非常具体的领域问题,但通常无法一般化,对于更复杂的问题,如图像识别,需要大量的计算能力和训练数据。

我的抱怨并不是说我们过早地给美国大兵下了错误的定义,事实远非如此。而是我们的讨论因不一致而变得模糊不清,我们中的许多人都在用关于人工智能的争论堵塞我们的集体大脑空间,这些争论要么无关紧要,要么被广告商和营销商最近炒作的古怪承诺所操纵。比人工智能的长期威胁或对创新步伐的误导性期望更紧迫的是已经存在的机器学习技术的邪恶应用所带来的短期危险。虽然它不会拼写出 iRobot 意义上的反乌托邦,但肯定会被恶意和不道德地使用,并带来潜在的灾难性影响。现代恶名的一个例子是 Clearview AI

说到底,试图为“”达成一个全球共享的叙事是不可行的,也是不可取的。然而,如果参与者理解并承认,没有一个单一的定义,特别是他们的定义,应该成为我们如何构建一场有许多定义的辩论的基础,那么这场辩论的各个分支就不会如此明显。**

感谢阅读。

混淆 P 值与临床影响:显著性谬误

原文:https://towardsdatascience.com/the-significance-fallacy-confusion-about-p-values-d7b5e530d0c?source=collection_archive---------39-----------------------

重要性并不意味着重要性——但是你需要它来判断质量

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

参见附录中的rpubs.com/ericjdaza/607888的重要性并不意味着重要性的证明示意图。

***免责声明:*本文不支持或反对最近的 remdesivir 发现。相反,它是为了帮助你更好地区分临床发现的重要性和支持或反对这些发现的证据的质量。这两者在新闻中经常被混为一谈——甚至被医生和健康专家混为一谈!

***技术免责声明:**为了简单起见,我们将把恢复时间作为连续变量来分析,尽管事件发生时间/存活分析更合适。

**2021 年 7 月 26 日更新:*见我的更新帖子放弃“统计学意义”了解相关想法和建议在你的论文中使用的语言——以及回复评论者的批评。

主要教训

  1. 问问你自己,不管样本大小如何,随机对照试验报告的效应大小估计值是否有意义。
  2. 训练你自己内在化那种重要性并不意味着重要性。(但是你需要统计学上的显著性,以便判断你的证据的质量。)
  3. 记住样本大小与效果大小无关。
  4. 当你真正的意思是“统计显著”时,千万不要只说“显著”。你会被误解为说“重要”。相反,总是说或写出整个短语“统计显著”。

介绍

emdesivir 最近再次成为头条新闻,这要归功于一些新的发现,即它可能有助于缩短住院新冠肺炎患者的康复时间。请记住,这只是一个随机对照试验(RCT),所以我们不会真的知道很多,直到更多的 remdesivir 随机对照试验完成。但是我们甚至可以从这个试验以及它是如何被报道的中学到很多。

在阅读或观看关于 RCT 的新闻时,请注意以下两点:

  1. 明显的混乱。**当你在新闻中听到有人写或谈论来自 RCT 的“重大”发现时,假设他们想要告诉你它在临床或科学上是否有意义或有用。但是相反,当他们真正想报告其科学或临床重要性时,他们会报告其统计显著性*。他们会告诉你证据有多好,当他们真的想告诉你治疗有多有用的时候。这是因为他们把他们想要告诉你的科学或临床的事情(即重要性)与证据的质量(即统计学意义)相混淆,而没有真正意识到他们正在做的事情。这被称为“显著性谬误”( Kühberger et al,2015Silva-aya guer 等人,2010 年;巴尼特和马西森,1997 年。*
  2. ***(效果)大小很重要。*此外,听听他们报告的效果的估计大小(例如,恢复时间从安慰剂组的 15 天减少到 remdesivir 组的 11 天)。这一发现具有“统计显著性”,仅意味着在这一特定研究中有足够的统计证据表明观察到的差异可能是真实的(即,有足够多的患者被招募来检测平均差异)。问问你自己,效应大小在实际的医疗、临床和医院护理中有意义或有用吗?减 4 天够吗?可能会,也可能不会,这取决于具体情况以及特定社区或医院的需求。(例如,参见沙利文和费恩,2012 年。)

*不幸的是,对于我们的记者或卫生官员来说,我们将在下面看到统计学意义并不意味着科学或临床重要性。在阅读或聆听这样的报道时,千万不要、*千万不要、千万不要、千万不要、千万不要仅仅抓住“重大”这个词不放。它通常意味着“有统计学意义”,如果没有效应大小的背景和它的临床有用性,它是没有用的。

但是,在你将此斥之为“迂腐的统计政策”之前,请继续阅读…

两种假设情景

从数学上讲,仅仅知道一项发现是否具有“统计显著性”是不可能判断它在临床上或科学上是否重要的。

在 RCT 中,“统计显著”效应是指有足够的统计证据支持假设的效应,而不是无效应或其他基线效应(例如,来自护理标准)。这是否意味着该发现在临床或科学上有实际意义?也许是,也许不是。从数学上讲,仅仅知道一项发现是否“具有统计学意义”是不可能判断它在临床上还是科学上是重要的。(参见图 1 和图 2 以及位于 rpubs.com/ericjdaza/607888附录中的示例和验证草图。)

即使对于给定的效应大小,统计显著性也只能告诉你样本有多大——而不是效应大小有多重要。一般来说,样本大小与效果大小并不相关:招募更多的患者可以增加统计学意义,但不会改善或减少你的药物的临床效果。(本来就是这样。)

也就是说,“统计学意义”与证据的质量息息相关。但是它与“临床重要性”(即,证据显示的东西是否有意义或有用)没有任何关系。出现这种混乱是因为在 RCT 中,“统计学显著性”要么是由一个非常大的治疗效果产生的,要么是由一个效果的大量证据产生的。大多数人——包括我自己——很自然地认为“重大”一词指的是前者。然而,当这些事情中只有一件是真的时,一个发现仍然是“统计显著的”,如下面的两个假设场景。**

首先,让我们假设对所有患者的影响是相同的,但是恢复时间平均变化 2 天(即,标准偏差是 2 天)。我们还假设 15 天是恢复的真实基线时间(即对照结果),因此我们将设计单组试验,其中所有患者都接受雷地昔韦治疗。

在图 1 中,我们看到,在 0.05 的统计显著性水平上,从一项招募 3 名患者的假设性研究中估计的 12 天的大恢复时间减少与从一项招募 16 名患者的研究中估计的 2 天的小恢复时间(p = 0.0012)在定性上是“显著的”(p = 0.0091)。但这作为临床重要性的声明毫无意义!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

参见附录中的rpubs.com/ericjdaza/607888中重要性不意味着重要性的证明示意图。

这在图 2 中可能更清楚,坐标轴翻转了:估计平均减少 12 天(y 轴)不太“显著”(x 轴;p = 0.0091)而不是 2 天中的一天(p = 0.0012)。(图 1 和图 2 是使用双面 t 检验创建的,标准偏差设置为 2 天。代码和细节见附录**。)**

样本大小与效果大小无关。

为了详细说明这两种情况:

  1. ****确实有很大的影响,但证据很少。假设 remdesivir 实际上大大缩短了平均 12 天的恢复时间。我们在随访的单臂 RCT 中招募了 3 名患者,并将这种未知的真实效果估计为平均减少 10.6 天——在 0.05 的水平上完成“显著 p 值”为 0.0157。效果如此之大,以至于我们只需要 3 个病人就能看到。(记住,一个 RCT 只能提供一个真实效果的估计。我们几乎肯定会估计真实的影响,每次都有一些变化;这里,10.6 天是对 12 天真实平均效应的估计。p 值也会因样本而异,除非另有说明,否则实际上只是真实 p 值的近似值。)
  2. ****有一个小的真实影响,但是有很多证据。现在假设 remdesivir 仅平均减少 2 天的恢复时间。我们招募了 16 名患者,估计这种未知的真实效果减少了 2.2 天,其“非常显著的 p 值”为 0.0002。(我们这里大得多的样本量让我们对真实效果有了更精确的估计。)这种影响非常小,我们需要 16 个病人才能看到。

大多数人会同意,第一个发现在直觉上更“重要”:越大越好。然而,这两个发现都是“统计显著的”,10.6 天的估计比 2.2 天的估计“不太显著”(即,更大的 p 值),这与直觉相反。这两个简单的场景说明了为什么“显著性”——作为整个短语“统计显著性”的常见、被误导的简写——并不意味着科学或临床的“重要性”。

简单的解决办法:当你真正的意思是“统计上的显著”时,千万不要只说“显著”。你会被误解为说“重要”。相反,总是说或写出整个短语“统计显著”。

(要更深入地了解这个例子,请参见附录中的 R 代码和完整的模拟结果。)

不仅仅是学术

** [## 国家卫生研究院:新冠肺炎药物的关键研究显示患者对治疗有反应

政府对 Gilead 的 remdesivir 的研究,也许是最密切关注的治疗小说的实验药物…

www.statnews.com](https://www.statnews.com/2020/04/29/gilead-says-critical-study-of-covid-19-drug-shows-patients-are-responding-to-treatment/)

当然,像新闻中这样具有统计学意义的发现仍然传达了好消息:在这个 RCT 中,似乎有足够的统计证据表明,当服用 remdesivir 时,恢复时间从 15 天减少到 11 天,具有临床意义(前提是 RCT 的功率适当;参见 Brownlee,2018Python 统计幂教程)。也就是说,可能有足够的统计支持(即,来自 1,063 名患者的样本)来声称这种影响大小可能接近真实情况。

但是如果上面的场景 2 是真的呢?媒体或健康专家会报道“remdesivir 显著缩短了恢复时间,从 15 天缩短至 13 天”(四舍五入)。你说什么

千万不要 当你真正的意思是“统计上显著”时,就说“显著”。你会被误解为说“重要”。相反,总是说或写出整个短语“统计显著”。

想想这在临床上意味着什么。2.2 天的减量可能没有 10.6 天的减量重要。但是媒体和健康专家会称这两个减少的估计是“显著的”,错误地认为他们报告了临床重要性。也就是说,他们会将统计发现与科学或临床发现混淆。

重要的是,注意甚至医生和健康专家也会犯这个错误全部。的。时间。

这意味着“统计学意义”和“临床重要性”之间的区别不仅仅是学术上的。它在塑造领导人如何决定治疗新冠肺炎患者的建议方面具有现实世界的公共卫生和政策影响。

统计学有助于科学——但它本身并不是科学。

但是为什么连专家都会犯这个错误呢?我认为原因与“相关性并不意味着因果关系”这句话的流行有关:我们都可以这么说——但我们都仍然不断地努力遵循它。我的理解和观点是,进化让我们将相关性误认为因果关系:看到因果关系——即使根本没有——比偶尔犯下这种认知错误更重要。我的猜测是,我们倾向于结果导向而不是证据导向,原因类似于为什么我们倾向于因果导向而不是关联导向。(进化心理学家和认知科学家,你们的想法?)

但在当今世界,犯下重要性谬误会产生全社会的后果——不仅仅是个人或部落的。有影响力的领导人制定了影响成百上千人的政策,他们不能犯这样的错误。不屈服于自然直觉需要一致的精神警惕。即使是我们这些受过如何不犯这种错误的专门训练的统计学家,仍然会犯错误:毕竟,我们是人。(我保证!)

摘要

统计学有助于科学——但它本身并不是科学。每当你把一个“统计上显著”的发现简单地称为“显著”,你就错误地把统计学和科学混为一谈(瓦瑟斯坦和耶戈,2016 )。据我所知,这很正常。

显著性谬误远非迂腐和学术,而是具有严重的健康含义:无意中将统计数据与科学混淆(特别是对于小效应规模而言)影响了影响数百万人的政策和医疗实践。这每天都影响着你的健康,以及你的朋友和家人的健康。

但正如我们所见,还是有希望的。我们都可以学会做以下事情:

  1. 问问你自己,不管样本大小如何,RCT 报告的效应大小估计值是否有意义。
  2. 训练自己内化重要性并不意味着重要性。(但是你需要统计学上的显著性,以便判断你的证据的质量。)
  3. 记住样本大小与效果大小无关。
  4. 当你真正的意思是“统计显著”时,千万不要只说“显著”。你会被误解为说“重要”。相反,总是说或写出整个短语“统计显著”。

如果我们中有足够多的人能做到这四件事,我们就能帮助我们的领导者做同样的事情——或者成为重要的领导者。

参考

附录

例子:重要性并不意味着重要性

参见附录rpubs.com/ericjdaza/607888处的示例和验证草图。

RCT 模拟

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在图 A1 ( ggp_pvalues1)中,我们看到所有 10,000 个模拟随机对照试验中的 93%给出了具有统计显著性的真实差异估计值 12(总体统计显著性水平为 0.025)。在图 A2 ( ggp_pvalues2)中,我们看到 92%的 RCT 同样给出了具有统计显著性的真实差异估计值 2。

r 代码**

关于作者

Daza 博士是一名生物统计学家和健康数据科学家,而不是流行病学家,他为个性化(n-of-1)数字健康开发因果推断方法。| ericjdaza.com🇵🇭🇺🇸t16】@埃里克森 t18】linkedin.com/in/ericjdaza|statsof1.org@ stats of@ fsbiostats

版权 2020 埃里克·j·达扎和 Stats-1。保留所有权利。

岗位也可在【rpubs.com/ericjdaza/607888】任职。

编者按: 走向数据科学 是一份以数据科学和机器学习研究为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

p 值的重要问题

原文:https://towardsdatascience.com/the-significant-problems-of-p-values-c31b2b6ed275?source=collection_archive---------14-----------------------

对 p 值的误解在研究中很常见。

p 值通常用于科学研究,并在教育实践中教授。本文将讨论零假设显著性检验。我将详细阐述 p 值的含义和误解。

零假设显著性检验

1925 年,罗纳德·费雪写了关于“显著性检验”的文章。费希尔试图检验一个假设,推断是否拒绝零假设。

1933 年,杰吉·内曼和埃贡·皮尔森发表了关于假设检验的文章。他们的方法是比较两个简单的假设,推断采取什么行动。

费希尔和尼曼-皮尔逊之间存在严重分歧。用于零假设显著性检验的现代程序是一个混乱的混合体。混合框架是:

  1. 陈述无效假设和替代假设。无效假设通常意味着没有影响或没有差异。
  2. 陈述错误率。第一类错误是当零假设为真时拒绝零假设的长期概率。(这就是通常所说的显著性水平。)
  3. 收集完数据后,计算测试统计量。
  4. 对于检验统计,计算相关的 p 值。
  5. 如果 p 值小于规定的显著性水平(步骤 2),则拒绝零假设。如果 p 值更大,不要拒绝这个假设。

美国统计协会非正式地将 p 值定义为:

在特定的统计模型下,数据的统计汇总等于或大于其观察值的概率。

零假设显著性检验的主要目的是通过矛盾来证明。如果零假设是真的,那么观察到的数据可能是不寻常的。如果观察到的数据不寻常,拒绝那个假设。

p 值不是什么

关于 p 值是什么,研究人员有很多困惑。美国统计协会在 2016 年发表了他们的声明。该声明希望纠正对 p 值的误解。

p 值是给定模型和观测数据之间兼容性的度量。“统计显著性”是 p 值的二元分配。

p 值不是零假设为真的概率。

p 值假设零假设为真。这不是假设的概率。

p 值不是结果偶然发生的概率。

p 值计算假设 chance 单独运行。同样,它不可能是那个假设的概率。

0.05 的阈值是约定俗成的。

这个惯例来自于研究人员统计方法中的一句话:

P = .05 或 1/20 的值是 1.96 或接近 2;在判断一个偏差是否被认为是重大的时候,以这一点为界限是很方便的。

p 值不显示效果的大小或重要性。

当一项研究规模很大时,小的影响会产生“重大”的结果。

框架问题

零假设显著性检验框架有几个问题。

Fisher 的 p 值与 Neyman-Pearson 假设检验不相容。结合两种方法会导致内部不一致。Fisher 的 p 值是一个间接的证据衡量标准,使用的数据来自一个单一的研究。尼曼-皮尔森框架是关于在许多研究中设定错误的长期频率。p 值在他们的决策过程中不起作用。

经典统计学不为假设分配概率。研究人员经常问:给定我的数据,假设的概率是多少?p 值提供:给定假设,我的数据的概率是多少,或者更极端的情况?概率的经典定义是事件的长期频率。这个定义意味着我们不能给假说一个概率。这个假设成立与否。

分配假设很重要。我们赋予数据的基本分布很重要。这是进行 p 值计算的假设的一部分。使用不同模型下的相同数据,p 值可能会有很大差异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

相同的数据,不同的假设。(图片: ggplot2 )

你如何收集数据很重要。关于 p 值计算的另一个经常被提及的假设是数据收集。如果我们打破这个假设,p 值只在我们不关心的另一个宇宙中有意义。

零假设被拒绝。完全没有影响或差异通常是一个虚假的假设。

***“重大”和“非重大”结果并不冲突。*两项研究可以估计完全相同的效应大小。一个是‘重大’。另一个不是。区别在于中央估计的精度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里,同样的效果既有“显著的”也有“不显著的”。(图片:自然)

二元区分鼓励过度自信。有人认为如果 p = 0.051,他们不能拒绝零假设,但是如果 p = 0.051,他们会拒绝吗?“重要”和“不重要”之间可以是不重要的。

***多重比较会给出误导性的结果。*对同时进行的多项测试的处理可能会令人困惑。存在多种方法来“校正”显著性水平,但并不总是适用。

***小影响不一定为零。*例如,我们可以跟踪一段时间内的估计失业率。每个变化都在抽样误差范围内。然而,大的变化可以从累积的小变化中发生。一点一点,一点变成很多。

在统计实践中,研究设计、数据收集和分析以及令人信服的表述至关重要。研究估计影响,我们应该用不确定性来描述。正如美国统计协会所说:

没有一个单一的指数可以替代科学推理。

用 Python 实现自然语言处理中单词嵌入的简单方法

原文:https://towardsdatascience.com/the-simple-approach-to-word-embedding-for-natural-language-processing-using-python-ae028c8dbfd2?source=collection_archive---------30-----------------------

使用 Gensim 和 Plotly 探索单词嵌入

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

画面一画面二

学习 NLP 的下一步?

当头脑风暴研究新的数据科学主题时,我总是倾向于自然语言处理(NLP)。这是一个快速发展的数据科学领域,不断有创新需要探索,我喜欢分析写作和修辞。NLP 自然符合我的兴趣!之前,我写了一篇关于使用“单词袋”模型开始 NLP 的简单项目的文章。本文旨在通过探索使用 Word2Vec 通过 Python Gensim 库生成单词嵌入的快捷方式,从而超越简单的“单词包”方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

https://radimrehurek.com/gensim/

传统单词包 vs Word2Vec

当我开始探索自然语言处理(NLP)时,我了解的第一个模型是简单的单词袋模型。尽管它们非常有效,但也有局限性。

传统的词汇袋方法

单词包(BoW) 是描述文本语料库中单词出现的文本表示,但不解释单词的顺序。这意味着它对待所有的单词都是相互独立的,因此得名单词包。

BoW 由一组单词(词汇)和一个类似于频率TF-IDF 的指标组成,用来描述每个单词在语料库*中的值。*这意味着如果词汇表非常大,BoW 会导致稀疏矩阵和高维向量,这会消耗大量计算机资源。

为了简化弓向量化的概念,假设您有两个句子:

狗是白色的
猫是黑色的

将句子转换为向量空间模型会以这样的方式转换它们,即查看所有句子中的单词,然后用数字表示句子中的单词。如果句子是一次性编码的:

狗是白色的猫是黑色的
狗是白色的= [1,1,0,1,1,0]
猫是黑色的= [1,0,1,1,0,1]

BoW 方法有效地将文本转换成用于机器学习的固定长度向量。

Word2Vec 方法

由谷歌的一组研究人员开发的 Word2Vec 试图解决 BoW 方法的几个问题:

  • 高维向量
  • 假设彼此完全独立的词

使用只有几层的神经网络,Word2Vec 试图学习单词之间的关系,并将它们嵌入到低维向量空间中。为此,Word2vec 根据输入语料库中与其相邻的其他单词来训练单词,从而捕获单词序列中的一些含义。研究人员设计了两种新方法:

  • 连续的单词袋
  • 跳跃图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CBOW 架构基于上下文预测当前单词,而 Skip-gram 根据当前单词预测周围的单词。

这两种方法都会产生一个向量空间,该向量空间基于上下文含义将单词向量紧密地映射在一起。这意味着,如果两个单词向量很接近,那么基于它们在语料库中的上下文,这些单词应该具有相似的含义。例如,使用余弦相似性来分析他们的数据产生的向量,研究人员能够构建类似于国王减去男人加上女人 =?

最匹配皇后的输出向量。

king - man + woman = queen

如果这看起来令人困惑,不要担心。应用和探索 Word2Vec 很简单,随着我对示例的深入,它会变得更有意义!

依赖性和数据

Python 库 Gensim 使得应用 Word2Vec 以及其他几种算法来进行主题建模变得很容易。Gensim 是免费的,可以使用 Pip 或 Conda 安装:

pip install --upgrade gensimORconda install -c conda-forge gensim

数据和所有代码可以在我的 GitHub 中找到,并且是与前一篇文章中使用的垃圾邮件数据集相同的 repo。

[## bendgame/nlpBeginnerProjects

NLP 中级入门项目。通过创建帐户,为 bendgame/nlpBeginnerProjects 的开发做出贡献…

github.com](https://github.com/bendgame/nlpBeginnerProjects)

导入依赖项

from gensim.models import Word2Vec, FastText
import pandas as pd
import refrom sklearn.decomposition import PCAfrom matplotlib import pyplot as plt
import plotly.graph_objects as goimport numpy as npimport warnings
warnings.filterwarnings('ignore')df = pd.read_csv('emails.csv')

我首先使用 Pandas 加载库并读取 csv 文件。

探索 Word2Vec

在处理电子邮件数据之前,我想用一个简单的例子来探索 Word2Vec,这个例子使用了几个句子的小词汇表:

sentences = [['i', 'like', 'apple', 'pie', 'for', 'dessert'],
            ['i', 'dont', 'drive', 'fast', 'cars'],
            ['data', 'science', 'is', 'fun'],
            ['chocolate', 'is', 'my', 'favorite'],
            ['my', 'favorite', 'movie', 'is', 'predator']]

生成嵌入

注意,句子已经被标记化了,因为我想在单词级而不是句子级生成嵌入。通过 Word2Vec 模型运行句子。

# train word2vec model
w2v = Word2Vec(sentences, min_count=1, size = 5)print(w2v)
#Word2Vec(vocab=19, size=5, alpha=0.025)

注意,在构建模型时,我传入了 min_count =1size = 5 。也就是说,它将包含出现≥ 1 次的所有单词,并生成一个固定长度为 5 的向量。
请注意,打印时,模型会显示唯一 vocab 单词的计数、数组大小和学习率(默认为. 025)

# access vector for one word
print(w2v['chocolate'])#[-0.04609262 -0.04943436 -0.08968851 -0.08428907  0.01970964]#list the vocabulary words
words = list(w2v.wv.vocab)print(words)#or show the dictionary of vocab words
w2v.wv.vocab

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

考察词汇的两种不同方法

注意,一次可以访问一个单词的嵌入。
注意,可以使用***w2v . wv . vocab .***以几种不同的方式复习词汇中的单词

可视化嵌入

既然已经使用 Word2Vec 创建了单词嵌入,那么可以使用一种方法来可视化它们,以在展平的空间中表示矢量。我使用 Sci-Kit Learn 的主成分分析 (PCA)功能将单词向量展平到 2D 空间,然后使用 matplitlib 将结果可视化。

X = w2v[w2v.wv.vocab]
pca = PCA(n_components=2)result = pca.fit_transform(X)# create a scatter plot of the projection
plt.scatter(result[:, 0], result[:, 1])
words = list(w2v.wv.vocab)for i, word in enumerate(words):
    plt.annotate(word, xy=(result[i, 0], result[i, 1]))plt.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

单词嵌入图

幸运的是,语料库很小,所以很容易可视化;然而,很难从标绘的点中解读出任何意义,因为该模型可以学习的信息如此之少。

可视化电子邮件单词嵌入

现在我已经完成了一个简单的例子,是时候将这些技巧应用到更大的数据中了。通过调用 dataframe head()检查邮件数据。

df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df.head()

清理数据

请注意,文本根本没有经过预处理!使用一个简单的函数和一些正则表达式,清除文本中的标点符号和特殊字符,并将其全部设置为小写很简单。

clean_txt = []
for w in range(len(df.text)):
    desc = df['text'][w].lower()

    #remove punctuation
    desc = re.sub('[^a-zA-Z]', ' ', desc)

    #remove tags
    desc=re.sub("&lt;/?.*?&gt;"," &lt;&gt; ",desc)

    #remove digits and special chars
    desc=re.sub("(\\d|\\W)+"," ",desc)
    clean_txt.append(desc)df['clean'] = clean_txt
df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

df.head()显示干净的文本

请注意,数据帧中添加了 clean 列,文本中的标点符号和大写字母已被清除。

创建语料库和向量

因为我想要单词嵌入,所以文本需要标记化。使用循环的*,我遍历标记每个干净行的数据帧。创建语料库后,我通过将语料库传递给 Word2vec 来生成单词向量。*

corpus = []
for col in df.clean:
    word_list = col.split(" ")
    corpus.append(word_list)#show first value
corpus[0:1]#generate vectors from corpus
model = Word2Vec(corpus, min_count=1, size = 56)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文集

请注意,数据已经进行了标记化,可以进行矢量化了!

可视化电子邮件单词向量

电子邮件数据的语料库比简单示例大得多。由于包含了很多单词,我不能像使用 matplotlib 那样绘制它们。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用 matplotlib 可视化电子邮件单词

祝你理解这一点!是时候使用不同的工具了。代替 matplotlib ,我将使用 plotly 生成一个可以缩放的交互式可视化。这将使探索数据点变得更加容易。

我再次使用主成分分析技术。然后我把结果和单词放入一个数据框中。这将使 plotly 中的图形和注释更容易。

#pass the embeddings to PCA
X = model[model.wv.vocab]
pca = PCA(n_components=2)
result = pca.fit_transform(X)#create df from the pca results
pca_df = pd.DataFrame(result, columns = ['x','y'])#add the words for the hover effect
pca_df['word'] = words
pca_df.head()

请注意,我将单词 column 添加到了 dataframe 中,因此当鼠标悬停在图表上的点上时,就会显示该单词。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PCA_df.head()

接下来,使用 ploty Scattergl 构建散点图,以在大型数据集上获得最佳性能。有关不同散点图选项的更多信息,请参考文档。

N = 1000000
words = list(model.wv.vocab)
fig = go.Figure(data=go.Scattergl(
    x = pca_df['x'],
    y = pca_df['y'],
    mode='markers',
    marker=dict(
        color=np.random.randn(N),
        colorscale='Viridis',
        line_width=1
    ),
    text=pca_df['word'],
    textposition="bottom center"
))fig.show()

注意,我使用 Numpy 为图形颜色生成随机数。这使它在视觉上更有吸引力!
注意,我将文本设置到 dataframe 的单词列。当鼠标悬停在数据点上时,会出现该单词。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Plotly 很棒,因为它可以生成交互式图形,并且允许我放大图形,更近距离地检查点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

放大

使用单词嵌入进行分析和预测

除了可视化嵌入之外,还可以用一些代码来探索它们。此外,模型可以保存为文本文件,以便在将来的建模中使用。查看 Gensim 文档,了解完整的功能列表。

#explore embeddings using cosine similarity
model.wv.most_similar('eric')model.wv.most_similar_cosmul(positive = ['phone', 'number'], negative = ['call'])model.wv.doesnt_match("phone number prison cell".split())#save embeddings
file = 'email_embd.txt'
model.wv.save_word2vec_format(filename, binary = False)

Gensim 使用余弦相似度来查找最相似的单词。
请注意,评估类比并找出与其他单词最不相似或不匹配的单词也是可能的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查找相似单词的输出

使用嵌入

我不会在本文中涵盖完整的示例,但是在预测建模中使用这些向量是可能的。为了使用嵌入,需要映射单词向量。为了使用训练好的模型将多个单词的文档转换成单个向量,通常取文档中所有单词的 word2vec,然后取其平均值。

mean_embedding_vectorizer = MeanEmbeddingVectorizer(model)
mean_embedded = mean_embedding_vectorizer.fit_transform(df['clean'])

要了解更多关于在预测建模中使用 word2vec 嵌入的信息,请查看 kaggle.com 的笔记本。

[## 基本自然语言处理:单词包,TF-IDF,Word2Vec,LSTM

使用 Kaggle 笔记本探索和运行机器学习代码|使用来自个性化医疗的数据:重新定义癌症…

www.kaggle.com](https://www.kaggle.com/reiinakano/basic-nlp-bag-of-words-tf-idf-word2vec-lstm) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

添加了数组列的数据帧

最后的想法

使用 Word2Vec 模型可用的新方法,很容易训练非常大的词汇表,同时在机器学习任务上获得准确的结果。自然语言处理是一个复杂的领域,但是有许多 Python 的库和工具可以使入门变得简单。如果您有兴趣了解更多关于 NLP 或数据科学的知识,请查看我的其他文章:

[## 用 Python 收集自然语言处理(NLP)文本的入门指南

通过 API 和 Web 抓取收集文本

towardsdatascience.com](/ultimate-beginners-guide-to-collecting-text-for-natural-language-processing-nlp-with-python-256d113e6184)

谢谢大家!

—埃里克·克莱本

对期望简单而深刻的介绍

原文:https://towardsdatascience.com/the-simple-but-profound-introduction-to-expectation-3dc6ac47d9c5?source=collection_archive---------40-----------------------

“期待意想不到的事情显示了完全现代的智慧.”——奥斯卡·王尔德

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sebastian Unrau 在 Unsplash 上拍摄的照片

在这篇文章/故事中,我们将通过美丽的图表及其背后的概念来理解期望的概念。这个故事是这篇文章的延伸。

什么是期望?

期望值是当我们进行某个实验时,出现的几率随机变量值**。**

实验或随机过程

任何事情都可以是实验或随机过程:从阅读一本书到写博客,从吃早餐到健身,从云的移动到树叶的脱落,任何事情都可以被视为我们的主题,并仔细监控每个行动的结果。

为了简单起见,让我们继续把掷硬币或掷骰子作为统计实验的主题。如果我们掷硬币和掷骰子,可能会有什么结果?硬币的结果是HeadTail,骰子的结果是123456

随机变量

简单来说,量化一个随机过程定义为随机变量。一个随机变量可以是统计(量化)整个月我们一天走了多少个脚步(随机过程),也可以是整个月我们每天在镜子上看到自己美丽瑰丽的脸多少次等等。

通常随机变量被表示为X。为了简单起见,让我们把掷硬币和掷骰子(随机过程)的结果(量化值)作为我们的随机变量。

出现的机会

这被简单地称为概率。一些现实生活中的例子可以是,蜜蜂访问百合花或茉莉花或两者的机会,切叶蚁群赢得对黄色疯狂蚁群的战争的机会,或反之亦然。

解释概率的观察

让我们想象我们家有麻雀。麻雀夫妇快乐地筑巢并下一个蛋。现在,那个蛋变成小麻雀的概率是多少?嗯,这个问题有两种可能性或结果,要么鸡蛋可能孵化并成为小麻雀(快乐的结果),要么鸡蛋会掉下来,打破并失去生命的本质(这真的在我家发生过几次,是悲惨的结果)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Belinda FewingsUnsplash 上拍摄

我们都需要一个快乐的结局。在这里,在这种情况下,麻雀需要它们的蛋进化成小麻雀,但不要在上面的悲惨结局中崩溃并神秘地失去生命。

但是我们如何精确地量化它呢?我们的大脑理解数字。为了填补这个空白,数学家们提出了一个叫做概率的概念。

概率是指事件发生或不发生的机会。在这里,机会代表了可观测宇宙中任何事件的不确定性(意味着它可能发生或不发生)。因此,概率给出了不确定性元素的数值度量。

概率值的范围在01之间。如果我们知道某个特定事件是确定的,那么这个事件的概率是 1,例如,太阳每天都会升起,不管是什么季节。类似地,如果我们不确定某个事件是确定的,那么该事件的概率就不是 1。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

拉普拉斯的定义和作者的形象

在上面的观察中,一个蛋成为小麻雀的概率是1/2,一个蛋面临悲惨结局的概率也是1/2。而确定和不确定结果的概率之和是P + Q = 1

让我们把这些点联系起来,这次用流程图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

因此,我们有一个随机过程,从中提取一个随机变量X,用它来构造一个概率分布表,我们取XP(X)的总和,最后,我们计算期望值,即E(X)

是时候写点真正的代码了

按作者编码—导入所有必需的 API

按作者编码—计算期望值并返回概率分布表

我们将为硬币实例化,

作者代码—硬币的实例化

输出:

No. of Coins in the Experiment: 8

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

E(X) = 4.0

8 枚硬币的概率分布表

该图清楚地显示了期望值E(X)4。4 发生的概率很大。我们在代码中做了什么?我们随机得到 8 枚硬币,如果我们同时扔这 8 枚硬币,结果会是,

['HHHHHHHH', 'HHHHHHHT', 'HHHHHHTT', 'HHHHHTTT', ..., 'TTTTTTTT']

这就是我们的样本空间。一旦我们有了样本空间,我们现在对每个HT进行计数,这个选择将是随机的(在代码的第 34 行中定义)。这里的计数基本上就是我们的随机变量。最后,我们计算计数的概率。根据我们的结果,我们有 4 个,因为最有可能发生和平均概率条形图清楚地描述了 4,它具有更高的高度。

我们将为骰子实例化,

作者代码—骰子的实例化

输出:

No. of Dice in the Experiment: 6

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

E(X) = 21.0

6 个骰子的概率分布表

这个情节清楚地表明了期望E(X)21。21 发生的概率很大。让我们来理解代码,我们随机得到 6 个骰子,它们一次全部掷出。所以我们有这样的总结果,

[1 1 1 1 1 1] = 6
[1 1 1 1 1 2] = 7
[1 1 1 1 1 3] = 8
...
[6 6 6 6 6 4] = 34
[6 6 6 6 6 5] = 35
[6 6 6 6 6 6] = 36

上述结果的 L.H.S 是我们的随机变量,也就是说,我们用 sum 来量化骰子的结果(在代码的第 40 行中定义)。最后,我们计算的概率。根据我们的结果,我们有 21 个,因为最有可能发生,甚至概率条形图清楚地描述了 21 个具有更高的高度。

我们都需要注意的一件事是,从上面的图表(硬币和骰子)中我们观察到,4 和 21 有更大的高度。这也意味着 4 和 21 是我们进行的实验中最预期的结果。令人兴奋的是 4 和 21 位于图表的中心。这意味着什么?这意味着任何随机变量的期望都是该分布的一个中心度量由此可见,期望是中心倾向的量度之一。

让我们先来关注一下硬币。以下是同时投掷 8 枚硬币的结果。

['HHHHHHHH' 'HHHHHHHT' 'HHHHHHTH', ..., 'TTTTTTTT']

现在,让我们假设我们对H感兴趣。所以,这就给了我们一个简单的理解,Count(H)是一个投掷 8 个硬币(随机过程)的量化标准。因此,我们现在可以说,Count(H) = X。下表中的X用四个不同的列表示(这样做是为了表格的可读性)。

量化随机过程 X

我们得到了随机变量X,现在我们可以单独计算概率。根据上面的定义,我们得到下面的概率。

P ( X)表

奇怪为什么用256做分母?256 是同时投掷 8 枚硬币产生的结果总数。

神奇的事情发生在我们计算X P(X)的时候。让我们快速计算一下。

X P ( X)表

X = 0 => 0 * P(0) => **0 * (1/256)**
X = 1 => 1 * P(1) => **1 * (8/256)**
X = 2 => 2 * P(2) => **2 * (28/256)**
X = 3 => 3 * P(3) => **3 * (56/256)**
X = 4 => 4 * P(4) => **4 * (70/256)**
X = 5 => 5 * P(5) => **5 * (56/256)**
X = 6 => 6 * P(6) => **6 * (28/256)**
X = 7 => 7 * P(7) => **7 * (8/256)**
X = 8 => 8 * P(8) => **8 * (1/256)****E(X) = Sum(XP(X)) 
     = [(0*1) + (1*8) + (2*28) + (3*56) +(4*70) + 
        (5*56) + (6*28) + (7*8) + (8*1)] / 256****E(X) = 4.0**

我们现在粗略地看一下没有概率的总结果。

[8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 4,
 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3,
 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
 6, 5, 5, 4, 5, 4, 4, 3, 5, 4, 4, 3, 4, 3, 3, 2,
 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
 5, 4, 4, 3, 4, 3, 3, 2, 4, 3, 3, 2, 3, 2, 2, 1,
 4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0]

我们现在将对上述数字进行频率分析。

Count(0) is **1**
Count(1) is **8**
Count(2) is **28**
Count(3) is **56**
Count(4) is **70**
Count(5) is **56**
Count(6) is **28**
Count(7) is **8**
Count(8) is **1**

如果我们观察,上面的频率与 P(X)列的 P(X)表的分子相匹配。如果我们计算结果的平均值,它将是 4,这是一个高频率。

现在很清楚了,期望值只是总结果的平均值。因此,通过查看概率分布图,可以找出该分布的期望值。

结论

无论我们何时进行实验,从长远来看,大多数结果都是集中的,因此它们是高度期望的。

新冠肺炎数据如此令人困惑的原因很简单

原文:https://towardsdatascience.com/the-simple-reason-why-covid-19-data-is-so-confusing-48a2f614391a?source=collection_archive---------42-----------------------

为什么准确的报告不够好

考虑报道新冠肺炎数据的两个说明性标题:

1 |年轻人在新冠肺炎住院人数中占很大比例

在美国首次报告的病例中,超过 40%需要住院治疗的患者年龄在 65 岁以下

2 |年轻人的新冠肺炎不太严重

约 10%的 65 岁以下确诊新冠肺炎病例的成年人最终会住进医院,比更大年龄组的人住院的可能性低 70%。

这两个说明性的标题都是准确的[1],然而却存在清晰性的危机:它们向更年轻、更健康的人传递了关于新冠肺炎风险的相互矛盾的信息。

40%的年轻人面临的潜在风险和 10%的更相关风险之间存在巨大差异。由信息冲突引起的认知失调会产生不良影响,包括人们不予理睬,或者更糟——得出错误的结论,或者最糟糕的——以错误的行为回应。

穿越混乱

读者必须调和两个标题,才能使其中任何一个成为有意义的新闻。[2]不幸的是,在没有更多信息的情况下,不可能调和这两个标题,所以我们用与这两个标题一致的(假设的)数据建立了一个表格:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

两种视图:政治家和专业人士跨行查看数据,但媒体和普通大众希望查看列下的数据。

像这样的二维表格可以有两种解读方式:水平方向(各行的百分比总和为 100%);和垂直方向(其中百分比加起来为 100%)。

水平视图对应第一个标题。这是政治家和专业人士的观点,他们放眼整个社会。重要的是,在这个视图中收集数据要容易得多——只需计算医院中的人数。以这种方式组织的数据对于资源和容量规划非常有用。

垂直视图对应第二个标题。这是普通大众的观点,包括大多数媒体。它回答了“这对我意味着什么?”不幸的是,垂直视图的数据更难收集,而且很少以这种方式呈现。

这就是了——同样的信息,两种准确但不同的观点和解释。原因很简单,年轻的成年人可以在住院率低的情况下占住院率的很大比例?年轻人比老年人多得多。

我们需要总体人口的这一关键“先验信息”来调和这两种观点,但它经常被忽略——这是丹尼尔·卡内曼(和其他人)所谓的“基础率忽视”的一种形式[3]

混乱的观点,混乱的人

现在我们明白了两种观点都是正确的,并且各自回答了不同但重要的问题,这意味着没有问题吗?

不,有一个很大的问题:大多数时候数据是以水平视图呈现给我们的,而我们大多数人感兴趣的是垂直视图问题:“它对我来说意味着什么?”[4]

混乱的观点导致混乱的人。许多人只是不予理会。其他人得出了错误的结论——在这种情况下,令人震惊但错误的结论是,超过 40%的年轻新冠肺炎患者正在住院治疗。“混杂的信息让人们追随他们的偏见,相信他们想要的一切.”[5]

更糟糕的是:当“专家”(横向)观点和“大众”(纵向)观点不一致时,就会滋生对专家及其动机的不信任。不清晰的准确性可能会导致“回旋镖效应”,即试图说服而导致采取相反立场的意外后果。[6].

在新冠肺炎疫情的早期阶段,美国医务总监杰罗姆·亚当斯博士要求美国人停止购买口罩,因为“它们不能有效防止公众感染#冠状病毒,但如果医疗保健提供商不能让他们照顾病人,就会使他们和我们的社区处于危险之中。”他有理由担心医疗保健系统(横向视角),但模糊了公众面临的风险(纵向视角)。[7]

然而,许多人都知道亚洲国家是如何将口罩视为人身安全的必需品的,这引起了人们的困惑,并让人对美国专家及其动机产生了怀疑。可悲的是,一些人的反应与专家的意图相反——起初是囤积口罩,后来(在专家改变方针后)拒绝佩戴口罩。

数据科学家的准确性和清晰性

认识到有两种观点,为数据科学家提供了一个领导追求准确性和清晰性的机会。我们之前提到过,通常很难为垂直视图编译人口数据。当我们把人口分成小群体时,尤其如此。

假设新冠肺炎住院数据缺少垂直视图的大部分数据:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

假设您正在修补来自三个来源的信息:

  1. 一项研究告诉我们,在新冠肺炎病例中,年轻人和老年人各占 70%—30%;
  2. 一项医院调查显示,超过 40%的住院患者是年轻人;和
  3. 测试数据显示,17%的新冠肺炎确诊病例正在住院治疗。

注意,1。第二。是水平视图数据,以及 3。是垂直视图数据。你想回答垂直视角的问题:“这对我意味着什么?”

贝叶斯法则提供了一种结合水平和垂直视图来推断缺失信息的优雅方式。即使大部分垂直视图不可用(通常是这样),您也可能有足够的信息来创建它:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

贝氏救援队。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

求解“我们想知道的”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**水平和垂直视图的贝叶斯可视化:**小方框中表示的住院是准确的,但不清楚。大框中关于人口的上下文信息提供了急需的清晰度。

为了清楚起见,我们能做什么?

任何展示表格数据的人都可以通过阐明水平或垂直视图(只要有可能,两者都要)为公共话语提供很好的服务。*明确哪个方向加 100%!*清晰是一种天赋……你建议、教导和说服他人的能力——以及最终被理解的能力——取决于此。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在庆祝吧!

参考

[1]这些标题是根据 2020 年 5 月中旬至下旬的报告和调查合成的。

[2]赫伯勒,雷。(2020 年 4 月 29 日)。如何利用贝叶斯定理更智能地消费新闻。 走向数据科学

【3】基础利率谬误。(2020).维基百科。(检索于 2020 年 6 月 7 日。)

[4]举一个最近来自瑞士的例子:Schild,Darcy。(2020 年 5 月 31 日)。根据一份新的报告,大约 40%的新冠肺炎重症监护病人不到 60 岁。内幕。

[5]约翰逊。如何组织公共卫生信息,让人们听到? 学人 。(2020 年 4 月 4 日。)

【6】回旋镖效应(心理学)。(2020).百科。(2020 年 6 月 7 日检索。)

[7]阿斯梅拉什,利亚。(2020 年 3 月 2 日)。卫生局局长希望美国人停止购买口罩【视频文件】。 CNN。

关于认知偏差和新冠肺炎的进一步阅读,如指数增长谬误和习得无助:

为什么我们低估了新冠肺炎

为什么有些人仍然不呆在家里

关于作者

马修·拉斐尔森马修是一名管理顾问,他通过数据科学帮助公司增加收入。此前,他是一名高级财务主管,拥有 25 年应用定量建模和数据科学来启动和管理数十亿美元业务的经验。他是 ProbabilityManagement.org 大学金融应用系主任,拥有斯坦福大学商学院的 MBA 学位。

Raj DevRaj 是一位利用数据科学和分析技术做出人才和人员决策的倡导者。Raj 是 EleveneX 的管理合伙人。此前,Raj 是不可能食品公司的人力运营副总裁。在此之前,他曾在 Credit Sesame 和特斯拉担任高级管理职务。Raj 拥有耶鲁管理学院的工商管理硕士学位。

监督学习和非监督学习的简单术语

原文:https://towardsdatascience.com/the-simple-terms-of-supervised-and-unsupervised-learning-9a10b9f6c822?source=collection_archive---------52-----------------------

数据科学和机器学习

用机器学习解决任务的算法可以分为两种主要类型,有监督的和无监督的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自 PexelsArtem Podrez 摄影

在这篇文章中,我想谈一谈用机器学习解决问题的方法。

一般来说,我发现在一个特定的例子(图像分类)的上下文中考虑监督和非监督学习是有帮助的。在这种情况下,您已经得到了一组车辆类型的图像。

监督

监督学习意味着我们的训练数据是由图像和它们对应的类别标签组成的。假设你有汽车、自行车、公共汽车和其他东西的图片,它们都有自己的名字或者被称为真相。接下来,您可以训练一个接受图像作为输入的图像分类器。目标是生成一个尽可能接近实际类标签的标签。当您训练分类器时,它会尝试提高其准确性。

监督学习意味着我们有一个特定的目标;在这种情况下,已知的标签,在训练过程中瞄准。当模型在学习上高度准确时,我们就成功地训练了如何预测实际标签,给定它以前没有见过的新数据。换句话说,不属于训练集的数据。

无人监督的

让我们思考一下,如果我们没有被贴上任何标签,你会如何完成这项任务。所以我们的训练集是由未标记的图像组成的。我们必须采取无人监管的方法。这意味着,我们不能依赖于给出如何对所有带标签的数据进行分组的信息,而必须在数据中找到自然的分组。

您可以训练一种算法,根据颜色或几何特征的相似性将图像分成不同的组。但是您没有办法检查这些分组是正确的还是不正确的。所以没有衡量准确性的标准。

您必须开发一种新的度量标准来将数据分组。类似于相似和不同数据组之间的距离,在训练结束时,将以图像聚类算法结束。图像聚集在一起的方式是为了让我们对给定数据集中自然出现的模式有所了解。

现在,我们来讨论一下模型设计和算法选择。选择无监督或有监督的方法与你的最终目标有很大关系。

当你的最终目标相对简单时,无监督学习通常是最有用的。

例如,当您只想对相似的观察结果进行分组时,您不需要关于每个视图的大量细节。要将车辆分为汽车、自行车和公共汽车,您可能不需要特定的汽车型号。或者,假设你被要求区分不同型号的汽车,比如特斯拉和丰田普锐斯的图像。

您可能需要对车辆图像数据进行额外的标记,以训练特定的分类模型(Jing 等人,2012)。如果您有许多未标记的数据,您可能想知道如何有效地标记这些数据。不幸的是,数据标记是一项密集的人工任务。理想情况下,您会希望将原始图像发送给能够手动绘制不同汽车模型的边框的人,因为识别汽车模型是您正在解决的问题。

Lorbach,Poppe 和 Veltkamp (2019)还想到了在主动学习模型的帮助下自动化数据标注任务的方法,这种机器学习模型可以从初始的人类注释中学习。像亚马逊 SageMaker 这样的服务将这两种能力和方法结合起来,将数据发送给真实的人,并为未来的任务创建一个主动学习模型,成为一个名为地面真相的功能。

Ground truth 试图解决从原始数据到标签训练数据的问题。它允许你首先发送你的一些数据来被人类标记,而不是得到这些初始的标签。它训练了一个机器学习模型,该模型学习在未来自动执行这一标记任务。总体而言,这些技术将未来标注相似数据集的时间和成本减少了约 70%。

k 均值聚类

一种常用的图像分割技术是 K 均值聚类。这是一种机器学习技术,通过对具有相似特征的数据点进行聚类或分组,将图像分成片段。

K-means 被称为无监督学习方法,这意味着你不需要标记数据。相反,无监督学习旨在对未标记的数据集进行分组和表征。在这样做的时候,它经常识别数据组中的模式和相似性。你可以给 K-means 一组任何未标记的数据。

因此,您可以给 K-means 一组任何未标记的数据,如图像中的像素值,并告诉它将其分成 K 个簇,其中 K 是一个变量,其值由您选择。

结论

监督学习让你从以前的经验中收集数据或生成输出。你用标有的数据训练机器。然而,无监督学习是一种机器学习技术,其中你不需要监督模型,它可以帮助你发现数据中的各种未知模式。

关于作者

Wie Kiang 是一名研究员,负责收集、组织和分析意见和数据,以解决问题、探索问题和预测趋势。

他几乎在机器学习和深度学习的每个领域工作。他正在一系列领域进行实验和研究,包括卷积神经网络、自然语言处理和递归神经网络。

**References**#1 Jing, X.-Y., Li, S., Zhang, D., Yang, J., Yang, J.-Y., 2012\. Supervised and Unsupervised Parallel Subspace Learning for Large-Scale Image Recognition. IEEE Transactions on Circuits and Systems for Video Technology. doi:10.1109/tcsvt.2012.2202079#2 Lorbach, M., Poppe, R., Veltkamp, R.C., 2019\. Interactive rodent behavior annotation in video using active learning. Multimedia Tools and Applications. doi:10.1007/s11042-019-7169-4#3 [Amazon Sagemaker](https://aws.amazon.com/sagemaker/)

用 Python 制作 gif 和数学视频最简单快捷的方法

原文:https://towardsdatascience.com/the-simplest-way-of-making-gifs-and-math-videos-with-python-aec41da74c6e?source=collection_archive---------23-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图像由作者提供——SVM 分类器的判定边界演变(用赛璐珞制成)

如何使用赛璐珞在几秒钟内制作出令人惊叹的动画

赛璐珞,简单的 Matplotlib 动画

我真的很喜欢使用数据可视化,当我必须解释一些结果或复杂模型时,我总是想知道提供更直接和直观的可视化交互的最佳方式是什么。

最近,我开始使用 gif 和快速视频。即使这使得编码部分更加困难和复杂,结果通常在交流我的发现和过程时更加有效。

但是在 Python 中,总有更容易、更简单的方式,为了简化动画制作过程, 赛璐珞 就这样诞生了。

仅使用 50 行代码来处理 Matplotlib Artists 和 ArtistAnimations 赛璐珞从您想要绘制到相机抽象中的一系列图像创建一个动画。

让我们从用

$ pip install celluloid

现在让我们开始吧!

四个使用示例

  1. 最简单的一个
  2. 进化图
  3. 使用图像
  4. 使用动态标签和标题

最简单的一个

让我们创建一个简单的绘图来演示如何在 Jupyter 笔记本中运行代码的基本用法,但是我们也可以使用方法****save(’ filename . gif _ or _ MP4 ')

from celluloid import Camera # getting the camera
import matplotlib.pyplot as plt
import numpy as np
from IPython.display import HTML # to show the animation in Jupyter
fig, ax = plt.subplots() # creating my fig
camera = Camera(fig)# the camera gets the fig we'll plot
for i in range(10):
    ax.plot([i] * 5, c='black') # 5 element array from 0 to 9
    camera.snap() # the camera takes a snapshot of the plot
animation = camera.animate() # animation ready
HTML(animation.to_html5_video()) # displaying the animation

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

进化图

这是一个有趣的情节,但不是很有用。这个想法是绘制一点一点进化的数据集。

from celluloid import Camera # getting the camera
import matplotlib.pyplot as plt
import numpy as np
from IPython.display import HTML
fig, ax = plt.subplots(figsize=(10, 6)) # let's make it bigger
camera = Camera(fig)# the camera gets our figure
x = np.linspace(0, np.pi*2, 60) # a sine circle
y = np.sin(x) # sine
for i in range(len(x)):
    x_t = x[:i] # current dataset
    y_t = y[:i] # current sine
    ax.plot(x_t, y_t, c='blue')
    camera.snap()
animation = camera.animate()
HTML(animation.to_html5_video())

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

一个有趣的小技巧,使情节看起来像手绘

x_t = x[:i] + 1.3*np.random.random(size=i)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

使用图像

图像可能对表达想法有很大帮助,使用图像的算法主要通过视频进行很好的解释

在这个例子中,我制作了我的猫和蒙克的尖叫之间的神经风格转换的动画。我对模型进行了 200 个时期的训练,并且每 10 个时期保存一次结果(我将在另一篇文章中详细解释这个算法)

在我的例子中,我保存了培训期间的 20 张照片,以使用该模式制作 GIF”。/NST/epochs/epoch_k.jpg "

from celluloid import Camera # getting the camera
import matplotlib.pyplot as plt
import numpy as np
from IPython.display import HTML
import os
fig, ax = plt.subplots() # make it bigger
camera = Camera(fig)# the camera gets our figure
for img in os.listdir("NST/epochs"):
    img_obj = plt.imread(os.path.join("NST/epochs"), img) # reading
    ax.imshow(img_obj) # plotting
    camera.snap()
animation = camera.animate()
HTML(animation.to_html5_video())

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

使用动态标签和标题

这是赛璐珞最有趣的方面之一,在这里我们有能力让情节变得非常动态。

在这个例子中,我绘制了两个均值不同但标准差相同的正态分布,然后我改变了这个标准差,以评估它对每条曲线的影响。

我把标题上的当前标准差和真实均值作为每条曲线的标签。我必须将计算的标签作为元组传递,因为我使用了两条曲线,如果只有一条曲线,我可以使用 like PLT . legend([calculated _ label]),这很简单

from celluloid import Camera # getting the camera
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from IPython.display import HTML
std = 3 # start std 
Am = 15\. # mean of first normal
Bm = 12.5 # mean of second normal
fig, ax = plt.subplots(figsize=(9,6)) # empty fig
camera = Camera(fig)
for j in range(10):
    plt.ylim((0, 0.2)) # setting up the limits (or else it will auto ajust
    plt.xlim((-50, 50))

    A = np.random.normal(Am, std, size=(1000)) # creating the 1000-sized normals
    B = np.random.normal(Bm, std, size=(1000))    
    A_plot = sns.distplot(A, color='red') 
    B_plot = sns.distplot(B, color='blue')
    plt.legend(( 
        'Real Mean A: {:.2f}'.format(np.mean(A)),
        'Real Mean B: {:.2f}'.format(np.mean(B))
    ))

    ax.text(0.5, 1.01, "Standard Deviation = "+str(std), transform=ax.transAxes) # making the dynamic title
    camera.snap() # camera snapshot

    std += 1 # incrementing the std
anim = camera.animate() # animating the plots
HTML(anim.to_html5_video())

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

完成了吗?

这只是我关于如何使用赛璐珞的基本想法,但说实话,可能性是无限的,我已经在几个应用程序中使用过,甚至是为了演示一些机器学习算法如何学习检查一下

决策图表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片—决策树分类器边界图(此处可用

支持向量机分类器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片— SVM 分类器边界图(此处可用)

如果你喜欢这个教程,用过并且有效(或者无效)请使用我个人资料中的链接联系我

用 Python 抓取表格数据的最简单方法

原文:https://towardsdatascience.com/the-simplest-way-to-scrape-tabular-data-with-python-d17abda3096d?source=collection_archive---------31-----------------------

数据科学基本指南

用 Python 脚本的 3 行代码抓取新冠肺炎统计数据的例子

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

插图作者金彩云

你们中的任何人可能已经从网站上读过几篇关于数据搜集的文章。他们大多建议用 Node.js 搭配 Cheerio 库或者 Python 搭配美汤。虽然当你掌握了这些技术后,这是非常有效的,但它需要你花费时间和精力,直到你完成所有的编码,找到你需要的元素,请求数据,清理数据以创建一个数据帧,然后才能进行实际的数据分析。(当然,还有一些额外的时间来修复所有的 bug 和错误🐛)

这篇短文将向您展示如何用三行 Python 脚本以最简单的方式从任何网站获取表格数据的教程!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(红色)熊猫——照片由参宿七Unsplash 上拍摄

我们的英雄是(红色)熊猫!是的,你们所知道的受欢迎的熊猫很可爱,并且能够自动从 HTML 文件中提取表格数据。

从 Worldometer 收集实时新冠肺炎数据的示例:

例如,您想从 Worldometer 网站获取表格数据。由于这个数据集是动态的,会随着时间的推移而变化,所以数据抓取是有意义的,每次运行脚本时我们都会得到最新的结果!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自 Worldometer 的新冠肺炎表格数据示例。(作者截图—2020 年 5 月 19 日)

要抓取这个数据集,请在您的机器上准备好 Python 和 Pandas。我们将使用熊猫read_html()提取任何网页的所有表格。然而,我们不能仅仅用它来直接读取 URL,因为你可能会面对一个error 403: Forbidden。为了避免这个错误,我们将在使用 Pandas 读取 HTML 之前,先用request模块请求它来获取 HTML 正文。总的来说,该脚本如下所示:

从 Worldometer 获取新冠肺炎数据的示例 Python 脚本。(作者提供的示例脚本)

dfs是一个列表结果,包含来自所请求的 HTML 主体的表类的多个数据帧。让我们通过打印出第一个dfs来研究从上面的脚本中得到的数据帧。

print(dfs[0])

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例输出新冠肺炎案例数据帧(用 Spyder 探索)

是的,大概就是这样。

有了三行 Python 代码,你就可以得到新冠肺炎数据的更新数据框架来玩,简单容易

享受数据分析/可视化的乐趣!!我希望你喜欢这篇短文。如果您有任何问题、意见或建议,请随时给我留言。

关于我&查看我所有的博客内容:链接

安全健康健康!💪

感谢您的阅读。📚

《辛普森一家》是学习英语单词的最佳电视节目

原文:https://towardsdatascience.com/the-simpsons-is-the-best-tv-show-to-increase-your-english-vocabulary-f433fe060a74?source=collection_archive---------20-----------------------

《辛普森一家》和 83 部电视剧中所有剧集所用词汇的数据分析。跟着辛普森一家学英语,增加你的词汇量

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

斯蒂芬·格雷奇在 Unsplash 上拍摄的照片

《辛普森一家》(T4)播出了 32 季,娱乐了数百万人,被认为是有史以来最伟大的电视节目之一。但是你有没有想过这个电视节目可以让你的英语词汇更上一层楼?这是真的,尤其是当你把英语作为第二语言学习的时候。在本文中,我将通过比较 83 部热门电视节目中对话的词汇来证明这一点,包括老友记权力的游戏生活大爆炸实习医生格蕾等等。你也会知道哪些《辛普森一家》679 集最适合你学英语。

《辛普森一家》有什么不同?

你有没有想过你是如何通过看电视节目来学习新单词的?这是通过重复。你在一集中听到一个词,然后在一周的电视节目中听到更多次。然后瞧!你刚刚学了一个新单词!这就是辛普森一家的独特之处。它在高级英语词汇中重复次数最多。有研究说至少 6 次是你学会一个单词之前重复或接触的次数,也有人说是 17 次。根据 83 部电视节目几乎所有剧集的文字记录,我计算了对话中至少重复 10 次(两次研究的平均值)的单词数。

《辛普森一家》是迄今为止用更高级的单词重复十次或更多次的电视节目(1929 个单词来自四级及以上)。《辛普森一家》在《老友记》、《权力的游戏》《生活大爆炸》系列中,高级词汇重复了 10 次或更多次。在下面的情节中找到你最喜欢的电视节目。**

作者图片

现在你可能会想,“如果《辛普森一家》的总播放时间比大多数电视节目都长,那么它有更多的单词重复是有道理的,”这是真的,但这不是发生这种情况的唯一原因。如果你仔细检查,你会发现两部电视剧比《T2》和《辛普森一家》播放时间更长,但重复次数更少。此外,《辛普森一家》的前 16 季比运行时间更少或更多的电视节目有更多的词汇重复。

那些‘高级词汇’是什么?

研究表明,英语中 1000 个最常见的词族(1 级)涵盖了电影中 81.54%的词汇和电视节目中 85.11%的词汇。稍后,我将向您展示最常见的 3000 词家族(第 3 级)涵盖了一集《辛普森一家》中 94%的对话,但首先,我们来看看《辛普森一家》对话中那些来自第 4 级及以上的难词。剧透一下,你可能会发现很多俚语!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

左边的词是辛普森对话中重复次数最多的高级词,右边的是重复次数最少的高级词。

在你开始奇怪为什么左边的单词看起来不那么难之前,你必须知道它们实际上是所有辛普森一家剧集中第 4 级及以上最常见的单词。也就是第一个词云里面的词是四级及以上里面最容易的。相比之下,右边的是重复至少 10 次的最不常见的高级单词。

《辛普森一家》679 集中有哪些集涵盖了最基础和最高级的词汇?

无论你是英语初学者、中级还是高级学习者,你一生中可能至少有一次因为听不懂你最喜欢的角色讲的笑话而感到沮丧。我有好消息告诉你;我按照难度排列了所有辛普森一家剧集,就像我在学习英语的 100 部最佳电影中所做的那样。最右边的剧集涵盖了更多基础(1 级)或中级(1+2+3 级)词汇。覆盖率越高,就越容易理解一集《辛普森一家》。

将鼠标悬停在情节中的点上,查找您将要观看的下一集《辛普森一家》是什么!

作者图片

我发现第五季第 22 集《成功婚姻的秘密》覆盖了最高比例的一级词汇,这意味着这一集可能是你能轻松理解对话的一集。然而,你可能很难理解最左边几集的笑话,比如《老粗和扫帚柄》(第 21 季-第 7 集)和杂耍鲍勃最后的闪光*(第 7 季-第 9 集)。*

这是我在 YouTube 频道上看到的一集成功婚姻的秘密中的一个片段。如果你说或学英语,你会注意到对话非常简单。**

以下是《辛普森一家》中英语词汇最简单的 10 集:

  • S5E22:成功婚姻的秘密
  • S9E7:两位 Nahasapeemapetilons 夫人
  • 第一季第六集:呻吟的丽莎
  • 我们不一样的方式
  • 丽莎·辛普森,这不是你的生活
  • S8E19:小学机密
  • 第五季第十二集:巴特出名了
  • S9E16:哑铃赔偿
  • 第一季第九集:快车道上的生活
  • S4E14:来自同一个星球的兄弟

679 集里他们在说什么难懂的词?

如果我让你相信《辛普森一家》有增加英语词汇量的潜力,那么你应该考虑在每次看新一集的时候查看下表。在观看《辛普森一家》一集之前,你可以通过在下面的方框中搜索来找出你将会听到哪些难词。可以按词、集、季过滤。

在你看新一集之前,查找任何你觉得困难的单词的定义,你会增加下次看《辛普森一家》时理解笑话的机会!

哪些角色说的话最难?

自然,荷马、玛吉、巴特和丽莎·辛普森的台词比其他角色多——这就是这部剧被称为《辛普森一家》的原因,对吗?然而,四个主要角色都没有在台词中使用复合句。实际上,像伯恩斯、斯金纳、克鲁斯蒂和弗兰德斯这些银幕时间较少的角色倾向于使用更高级的词汇。对你来说他们是最聪明的角色吗?

作者图片

《辛普森一家》随机剧集中的词汇覆盖

《辛普森一家》一集的平均字数是 2472 个单词。《辛普森一家》对话中使用的大部分词汇属于最常见的 1000 个英语单词。大多数电视节目都会出现这种情况;那么对于非英语母语的人来说,通过看电视节目很容易习得一级和二级词汇。不过大部分电视剧单集都有一点高级词汇。幸运的是,像《辛普森一家》这样的电视节目有很多单词在每集中至少重复 10 次,这有助于建立高级词汇。

作者图片

关于成绩单和词汇水平

最后,关于抄本和词汇水平的一些观察:

  • 这 83 个电视节目的脚本是从不同的网站上获得的,粉丝们在这些网站上转录对话。为了找到《辛普森一家》中的角色台词,我使用了《T2》Kaggle 上的一个数据集。
  • 这个分析背后的所有代码都可以在我的 Github 上找到。
  • 《辛普森一家》剧集中听不到的词,比如场景描述和说话人的名字,都从文字记录中删除了。
  • 我用来对电视节目中的词汇进行分类的大部分词汇表都是由 Paul Nation 的语料库制成的。你可以在这里下载一些列表
  • 先前使用这些单词表的研究表明,这些单词表是可靠的;然而,通过分析《辛普森一家》几集,我发现了几个弱点。例如,一些动词如“to hoover”在四级及以上的列表中被考虑;结果,像胡佛小姐这样的角色名字被认为是高级词汇。然而,这种情况并不经常发生,因为还有一个专有名词列表帮助我过滤掉大多数角色的名字。
  • 大多数感叹词被排除在“边缘词”列表之外。然而,其中一些像“哇”和“呀”被认为是 4 级或以上。对大多数人来说可能很常见的词,如“真棒”也包括在内。这与语料库中的文本有关。

如果你想看这个分析背后的代码,你可以在这里找到它。记住,词汇不是很好理解电视节目的唯一因素。发音、口音和语速也可能会提高或降低你的理解水平。

最后的想法

我不得不承认我不是《辛普森一家》的忠实粉丝,但是在发现这个电视剧提供的好处后,我会考虑在我有空的时候看它!应该从哪一集开始看?

数据科学的最佳入门统计学书籍

原文:https://towardsdatascience.com/the-single-best-introductory-statistics-book-for-data-science-a2601ea7c0be?source=collection_archive---------5-----------------------

了解数据科学最重要的支柱

每个人和他们的母亲都想学习数据科学。我不得不承认,这个领域非常有趣,但是有很多先决条件。最重要的一门是统计学——既有描述性的,也有推理性的,还有概率论。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

尤里·埃夫列莫夫在 Unsplash 上的照片

科技大学很好地涵盖了统计学,那么这篇文章的重点是什么?朋友,有三个要点。阅读这篇文章,如果:

  1. 距离你上次接触统计数据已经有一段时间了
  2. 在你的研究中,你没有发现它的直观性和很好的解释
  3. 你被田野陶醉了

如果你属于这三类中的任何一类,男孩,我有一些有价值的资源给你。在我获得学士学位后,我已经阅读了这本书的很大一部分,其余部分是在我获得数据科学硕士学位后阅读的。

我很高兴我那样做了,否则这条路会更颠簸。

好的,让我们看看我在下一部分谈论的是什么书。请记住——在下面你会找到这本书的附属链接。这对你来说没什么,因为价格是一样的,但是如果你决定购买,我会得到一点佣金。

人头优先统计

这可能会让你大吃一惊。这不是你通常能在大学课程中看到的书——主要是因为它充满了可视化和简单明了的解释。另一方面,大学的书充满了公式、证明和枯燥乏味的文字。

[## 头部优先统计学:对大脑友好的指南

亚马逊网站:头优先统计:一个大脑友好的指南:9780596527587:格里菲斯,黎明:书籍

amzn.to](https://amzn.to/31YkF1B)

当你第一次看到这本书的纸质版本时,你可能会有点焦虑——因为它有 700 多页。以任何标准来看,这本书都不算短,但它肯定不像一本 700 页的书。我来详细说明一下。

从大学里拿起任何一本统计和概率的书——很有可能有 500 页左右,如果不是更多的话。虽然这明显少于 Head First Statistics ,但一般来说,大学的书很可能没有充满可视化的例子和可视化。

如果有人从这个 Head First Statistics 中取出所有的可视化,总页数将减少一半,如果不是更多的话。

为什么这很重要?

好问题。对我们大多数人来说,阅读一页又一页枯燥乏味的文本并不是世界上最有趣的事情。如果你全职工作,并且想在工作之余学习统计学,那就更是如此了。这是不可能的——你读到第三段就会睡着。

你需要适量的文字,接着是一些漂亮的视觉效果,接着是实际的例子。

诚实地回答我这个问题:**如果我把这篇文章写成一个段落,你会读吗?**不,因为那会看起来很烦人——不必要的烦人。此外,我们的注意力持续时间很短。如果你不能在 30 秒内读完一段,很可能你就不会继续读下去了。用更简单的话来说——如果文章没有以视觉上令人愉悦的方式格式化,你会找到一个是这样的。

书籍也是如此。每次我看到 30 行的段落,我就有立刻放下这本书的欲望——不管它有多好。你看,同一主题的 10 本不同的书通常涵盖相同的主题,但使这本书成为畅销书的是它对读者的亲和力(当然还有营销)。

好了,我们现在知道了在一本书里要寻找什么,以及为什么我们从来没有读完一些书——不管这些信息有多有价值。现在让我们探索一下头部第一统计提供了什么。

我的简短回顾

正如我所说的,我大约在一年半前完成了这本书,它是更高级主题的很好的入门书。如果我现在阅读一本关于 Python 的统计学的书,它并没有深入地涵盖理论,由于扎实的背景知识,我不会感到困惑。

这就是这本书的真正读者——无论是完全的初学者,还是以前上过统计学课程的人,但教学风格很糟糕。如果你已经完成了几门大学水平的统计和概率课程,你可能会想跳过这一门。

该书涵盖以下主题:

  • 基础数据可视化
  • 集中趋势和扩散的度量
  • 概率、排列、组合和分布
  • 统计抽样
  • 置信区间
  • 假设检验
  • 回归分析

并且覆盖得非常非常好。这本书没有涵盖大学课程以外的任何内容——但如果你没有上过世界上最好的大学,我真的认为这本书对你更有帮助。

在你走之前

统计学是每个数据科学家的必备工具,这一点毋庸置疑。同时,你在统计学上的正规教育可能很糟糕,或者根本不存在。这并不意味着你不能学习这个话题,只是需要更多的手工操作。

这就是像 Head First Statistics 这样的书派上用场的地方。根据你以前的知识和你能抽出的时间,完成它不会花你太长时间——大约 1 到 2 个月。一旦你完成它,你将能够很容易地理解数据科学和机器学习中更高级的主题。

感谢阅读。

喜欢这篇文章吗?成为 中等会员 继续无限制学习。如果你使用下面的链接,我会收到你的一部分会员费,不需要你额外付费。

[## 通过我的推荐链接加入 Medium-Dario rade ci

作为一个媒体会员,你的会员费的一部分会给你阅读的作家,你可以完全接触到每一个故事…

medium.com](https://medium.com/@radecicdario/membership)

加入我的私人邮件列表,获取更多有用的见解。

人工智能/人工智能公司无法规模化的最大原因是什么?

原文:https://towardsdatascience.com/the-single-biggest-reason-why-ai-ml-companies-fail-to-scale-d22aa77c5452?source=collection_archive---------31-----------------------

你可以做三件事来避免它发生在你身上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资料来源:Unsplash 上的马龙

“这个机器学习(ML)模型的准确性如何?”

“培训时间多长?”

“需要多少训练数据?”

在一家为机器人技术开发机器学习软件的公司工作,我每天都会听到这些问题。机器学习成了大家都想追求的闪亮对象。超过 80%的公司正在研究至少一个人工智能项目。

用户通常想知道装载一个新物品需要多长时间,以及模型的表现或概括程度如何。他们需要一种方法来衡量总体成本与性能。然而,以上问题的答案并不能给你一个完整的描述。更糟糕的是,它们具有误导性。

M 模特培训只是冰山一角。大多数用户和 AI/ML 公司忽略的是获取适当数据集、清洗、存储、聚合、标记和建立可靠数据流以及基础设施管道的巨大隐性成本。

根据最近的研究,公司在 AI/ML 项目中花费 超过 80%的时间在数据准备和工程任务上。 换句话说,如果你把大部分注意力放在构建和训练模型上,你的总工程努力和成本可能会比你最初的估计多五倍。

此外,机器学习模糊了用户和软件提供商之间的界限。

我们已经开始看到 AIaaS 或 MLaaS 的出现。云中的模型随着数据的增加而不断改进。这是机器学习的最大好处,也是为什么 MLaaS 比 SaaS 更具挑战性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:巴斯蒂安·黄(medium.com/@Bastiane)

模型从训练数据中学习。没有高质量的数据,模型就不会有好的表现。用户并不总是知道生成或注释适当数据集的最佳实践。事实上,大多数时候,他们不会。

当系统表现不佳时,用户倾向于责怪模型。因此,AI/ML 公司通常会花费大量的时间和资源来培训用户并与用户合作以确保数据质量,这成为了 AI 公司和客户之间的共同责任。

例如,为了在生产线上训练用于缺陷检测的模型,计算机视觉公司需要与其客户合作,以正确的角度和位置安装摄像机,检查分辨率和帧速率,确保每个场景都有足够的正面和负面训练样本。

对于机器人或自动驾驶汽车应用程序,数据收集甚至更加耗时和昂贵,因为有人需要控制机器人或车辆来执行某些操作。

即使有了所有的培训课程、用户手册和指南,您仍然不能完全控制用户生成的数据。一家机器视觉相机公司告诉我,他们有工程师手动验证 100%的传入数据,以确保数据完整性。

所有这些额外且经常被忽视的培训、手动检查、数据清理和标签任务都给人工智能公司带来了巨大的开销,使 MLaaS 成为一项更具挑战性、毛利率更低的业务。

为了建立一个更具可扩展性的人工智能/人工智能业务,我们可以做三件事:

扩展性才是王道。确定大量客户愿意为之付费的正确用例,并且您可以使用相同的模型架构解决这些用例。你最不想做的事情就是在没有标准产品供应的情况下为不同的公司构建和培训不同的模型。

让尽可能多的东西自助。尽可能自动化您的培训和数据管道,以提高运营效率并减少对人工的依赖。公司倾向于优先考虑客户可见的特性,而不是内部工具或自动化。但后者回报很快。确保为内部流程自动化分配足够的资源。

最后,确定并跟踪你的成本,尤其是隐性成本。您的工程师在清理、过滤或聚合数据上花费了多少时间?他们花了多少时间来确保第三方正确完成注释?他们多久需要帮助客户设置环境并正确收集数据一次?其中有多少可以自动化或外包?

我们连线吧!如果你喜欢读这篇文章,请在这里订阅我的个人博客!

Bastiane Huang 是 OSARO 的产品经理,OSARO 是一家总部位于旧金山的初创公司,致力于开发软件定义的机器人。她曾在亚马逊的 Alexa 小组和哈佛商业评论以及该大学的未来工作倡议中工作。她写关于 ML、机器人和产品管理的文章。跟着她到这里

无代数的奇异值分解

原文:https://towardsdatascience.com/the-singular-value-decomposition-without-algebra-ae10147aab4c?source=collection_archive---------35-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

阿什·埃德蒙兹在 Unsplash 上拍摄的照片

用几何理解终极线性代数概念

这是一个不幸的现实,许多人试图用代数来学习线性代数,而实际上发生的事情本质上是一个几何问题(这意味着你可以用图片来理解)。我之前在用几何学理解回归中描述过这个观点,这里我将尝试用奇异值分解做一些类似的事情。

奇异值分解是线性代数的基本概念。有了它,你可以理解,除了许多事情之外,矩阵到底是什么,各种其他相关的分解,特征值和特征向量,以及伪逆。在计算机科学/数据科学方面,奇异值分解是 NLP 中的潜在语义分析等技术的基础,并且与在推荐系统中使用的各种协同过滤 / 矩阵分解算法相关。

为了得到奇异值分解,我们首先要消除向量是一列数字,矩阵是一组数字的神话。然后我们将介绍和描述分解。

这里假设的背景是你知道什么是向量(如果你认为它是一列数字的话,那就更好了),同样也知道什么是矩阵。您应该熟悉:

  1. 可以添加向量:[1,2] + [3,4] = [4,6]
  2. 一个向量可以乘以一个常数:3[1,2] = [3,6]
  3. 可以通过画一个从原点指向指定点的箭头来绘制矢量。
  4. 矩阵可以相乘(稍微复杂一点,但是我们实际上不需要做任何实际的矩阵乘法,不用担心)。

技术说明:本文仅限于考虑实数和有限维(我们的向量由有限的数字列表组成,而不是无限的列表)。此外,我们添加了一个技术假设,即我们有一个内积结构,你可以认为这意味着勾股定理是有效的。我们所做的一切都将适用于复数或无限维:前者需要调整几个词;后者让事情变得极其复杂。

向量不是一系列数字

首先,让我们建立我们的几何背景:传统的欧几里得空间。你应该描绘一个完全平坦的无限平面(二维空间)或者我个人最喜欢的三维空间,就像我们生活的这个空间。

这就是问题所在。你可能习惯于在二维空间画 x 轴和 y 轴,或者在三维空间画 x 轴、y 轴和 z 轴。这是非常误导人的,所以请把它们从你的照片上抹去。取而代之的是,在空间的某个地方(通常是“中间”)放一个点,称它为原点。

请注意,我们将要做的一切都在 n 维中工作,其中 n 可以是一个大整数。我只是一个凡人,我只能在三维空间想象,我在二维空间画得最好。如果你能想到更多,你就有更多的力量。

向量是向量是向量

下图在左边显示了两个向量 A 和 B,以及它们的和。右边是向二维空间添加轴的两种不同方式。根据我们如何选择轴,我们得到不同的数字!我们不会担心这些数字之间的关系(当然,这是代数出现的地方,我保证我们不会这样做)。

要点是矢量是矢量是矢量:它的存在独立于用来描述它的数字,如果有的话。这是爱因斯坦相对论的一个重要观点:根据你的观点,你可能会描述不同的东西;但这并不能改变它是什么

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里有几个要点。首先,向量是什么包括它的长度(离原点的距离)和它相对于其他向量的角度。这是几何学的精髓。第二,我们选择我们的轴是正交的(垂直的),这不是我们必须做的。但是如果你不选择它们,事情会变得非常复杂,所以在整篇文章中,我们总是假设我们有正交轴。第三,我们应该在技术上选择一个 基准 而不是*轴。*然而,这只是增加了代数,减去了直觉,让事情变得更加复杂。如果你关心的话,基只是通过选择长度为 1 的向量指向每个轴的正方向。

向量存在于向量空间中

这里不多说了。向量空间是一个有趣的词,指向量所在的空间。在某种意义上,它只是所有相关向量的集合。并且有一个特殊的向量 0(原点)。在上图中,向量生活在二维向量空间中。

我提出这个的唯一原因是因为我们需要一次处理不止一个向量空间。例如,我们可能有一个 2 维向量空间 V 和一个 4 维向量空间 W。V 中的向量与 W 中的向量无关(目前)。你不能把 V 中的向量和 W 中的向量相加。

矩阵不是一组数字

“根据我的经验,如果抛开矩阵,涉及矩阵的证明可以缩短 50%。” —埃米尔·阿廷

这里的许多混乱源于这样一个事实,即在大量的计算环境中,矩阵仅仅是一个数字阵列,并不参与所涉及的完整的数学结构。但是,如果你正在读这篇文章,你可能会对完整的数学结构感兴趣。

矩阵是向量空间之间的(线性)映射

“地图”只是一种功能,但其内涵是“保留结构”函数(在数学中)是接受输入并给出输出的东西。在向量空间的上下文中,结构是“有一个原点”,“你可以添加向量”以及“将它们乘以一个常数”。这种结构被称为线性,因此在这个上下文中,我们总是含蓄地表示“线性映射”(因此得名:线性代数)。

因此,矩阵是一个函数 f ,它从一个向量空间(“源”)获取向量,并返回另一个向量空间(“目标”)中的向量。此外,它必须满足三个属性才能成为线性:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线性地图满足三个特性

在英语中:

在二维向量空间中,我们可以选择如图所示的两个一般向量 A 和 B,并且该函数可以为这两个输入返回任何输出。在一个 n- 维的源中,我们需要挑选 n 个通用向量。目标可以是从 0 到 1 万亿或更高的任何维数。注意“一般”我排除了一些退化的情况,比如(说)如果 a 和 b 是同一个向量,或者 b 是这个设置的两倍 A.⁴,我们需要:

  1. 该函数从原点到原点
  2. 应用于和 f(A + B)的函数与我们先应用函数的和是一样的:f(A) + f(B)。
  3. 对于标量倍数也是如此:f(cA) = c * f(A)。

请注意,有时,源和目标可能是相同的,但这在概念上不会改变任何事情。

关于矩阵的最后一点。就像当我们重新分配轴时,向量中的数字会改变一样,矩阵中的数字也会改变。它们取决于源和目标中使用的轴。所以实际上,矩阵是线性映射的一种表示,在源空间和目标空间中隐含或明确地选择轴。

在下文中,我们将假设每个矩阵都有一个隐含的轴选择;如果我们改变坐标轴,矩阵中的数字会改变,但线性地图本身不会改变。出于这个原因,我们会稍微滥用这个术语,用“矩阵”来表示“线性地图”这里的基本观点是,你根本不应该考虑数字数组:你应该考虑线性映射。

线性地图做什么

好了,现在让我们建立一个稳定的例子。下图显示了两个二维向量空间之间的线性映射可以做的一些事情。为简单起见,目标中的图像 f(A)和 f(B)仅标记为 A 和 B。

第 1-4 项显示了线性地图可以做的一些事情。此外,它可以做这些事情的任何组合,右下角显示了一个示例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

线性地图能做的事情。

要记住的重要一点是,在一个 n- 维空间中,更多的组合是有意义的。例如,对于 5 个维度和垂直向量 A、B、C、D 和 E,我们可能让 A、B 和 C 进行三维旋转,同时 C、D 的反射折叠到 C 上,而 E 消失。(是的,真的,这叫“杀死”病媒;一个暴力的比喻但那是数学家说的)。在某些情况下,在高于 2 或 3 的维度中会发生更多,但这不是那些情况之一。

奇异值分解

我们现在能够给出奇异值分解的非正式陈述。

定理(奇异值分解,非正式说法)。每个线性地图都是旋转、反射、缩放和矢量删除的组合,前提是轴选择正确。

几个要点。“杀死”一个矢量实际上只是把它缩小到零。也请注意,我忽略了折叠:正如我们将看到的,折叠实际上是由其他部分组成的。

因此,如果你理解了上面的图表(以及它在比如说 4 维空间中是如何工作的),那么你就理解了在这个上下文中关于线性地图的所有知识的本质(官方说法是:具有内积结构的真实的有限维向量空间)。

这里有一个例子。如果你看上面的图表,你不会看到任何类似“smush”的东西事实上,所示的“smush”实际上是单个向量的缩放;但是我们需要考虑所示的向量 xy ,而不是考虑 A 和 B。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

正确地看,“Smushing”是单个向量的缩放

记住,我们说过要从二维源向量空间描述一个线性地图,我们只需要选择两个一般向量,然后看看它们去哪里。但关键是,如果仔细选择这两个向量,地图将允许一个简单的描述。

现在,我说我们应该仔细选择,而不是这两个向量。但是真正做一个就是做另一个。我建议将这两个向量命名为 xy ,因为实际上,我们选择了 x-y - ,然后使 xy 只是指向这些轴的向量。之前我们已经选择了 AB 来为我们指出我们的轴(其中 A 轴沿着 A ,而 B 轴沿着B——我们可以随意命名这些轴)。所以考虑两个向量和考虑两个轴是一样的。做任何对你来说自然而然的事。

正式声明

奇异值分解的官方陈述必然只涉及最少量的代数,但我将努力用英语从几何角度解释它。

定理(奇异值分解)。

设 a 是一个有 m 行和 n 列的矩阵(m⨉n),视为从一个 n- 维向量空间 V 到一个 m 维向量空间 W 的线性映射。

那么 A 可以被分解为三个矩阵 A = RDS 的乘积,其中:

  • s 是源和目标都为 v 的 n⨉n 旋转矩阵
  • d 是具有源 v 和目标 w 的 m⨉n 对角矩阵:它唯一的非零元素在对角线上。例如:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对角线上有 1,2.3,-7 和 0 的非正方形对角矩阵

  • r 是具有源 w 和目标 w 的 m⨉m 旋转矩阵

回想一下,线性映射 A 隐含地带有轴的选择,特别是通常的 x-、y-、z-等。-V 轴和 w 轴。

这意味着从 V 到 W 的线性映射 A 可以认为分三步发生。首先,使用 s 旋转 V 中的向量,其次,用一个常数(可能是 0,它会杀死向量,也可能是负的)沿每个轴缩放向量,然后通过使用隐式带有 A 的轴(使用 D)将它们放入 W 中。最后,对 W 中的向量进行旋转(使用 R)。

请注意矩阵乘法的工作方式,S 先作用,然后 D,然后 R(因为向量在右边)。

请注意,如果你在维基百科上查找奇异值分解,你会看到一个稍微不同的陈述。我向你保证,我的版本也是真实的,而且简单得多。

维基百科上的陈述使用了 S 的“转置”,而不是 S 本身。这是为了明确旋转矩阵有效地重新调整我们选择的轴。Wikipedia 语句也允许 S 和 R 包含额外的反射,但是我们可以用 D 中的负比例来代替。

但是,一旦我们认识到一个旋转矩阵等价于改变轴(是的,我保证),那么希望你会明白为什么上述定理的非正式陈述是正确的。如果允许我们首先选择合适的轴,我们可以把 A 写成一个对角矩阵,它缩放轴,并把它们从源 V 移动到目标 w。

一些术语:在源和目标中形成对角线的特殊轴称为左奇异向量(在目标中)和右奇异向量(在源中)。它们是 R 的列和 S 的行是左右奇异向量。D 对角线上的值称为奇异值。

部分校样草图

我将只提供矩阵 S、R 和 D 的构造,以给奇异值分解增加一点几何直觉。这还不足以成为充分的证据。

光谱定理

奇异值分解推广了谱定理。谱定理之所以这么说,是因为其思想是,存在一个可以提取的矩阵“真实性质”的幽灵(“幽灵”)。在谱定理的上下文中,“真正的本质”是我们可以选择轴(使用奇异向量),这样矩阵只是一个缩放矩阵。“特征”是德语中“真实”的意思,因此在谱定理的上下文中,奇异向量被称为“特征向量”,奇异值被称为“特征值”。

谱定理只适用于具有相同源和目标的方阵。它也只对一些方阵(正常的)有效,不是所有的。相比之下,奇异值分解适用于非方阵,适用于每个矩阵的*。*

矩阵转置

你可能听说过矩阵转置。假设我们在选择轴的时候很友好,不淘气(它们需要垂直),矩阵转置就是把矩阵翻转到对角线的另一边。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

转置翻转一个矩阵,并把它放在一边

转置是一个反向映射。如果 A 把源 V 映射到目标 W,那么它的转置是向后的:转置是有源 W 和目标 V。

获取奇异值

设 A 是一个有源 V 和目标 w 的矩阵,跟随它的转置产生一个从源到自身的映射。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过转置跟随映射导致从源到自身的映射

原来谱定理适用于这张图。特征向量提供了右奇异向量。同样,如果你先做 A 转置,然后做 A,你会得到左奇异向量。一旦有了这些,你要做的就是提取奇异值作为特征值的平方根。证明这是可行的有点复杂,但并不疯狂。

结论

我希望您已经看到,将矩阵视为线性映射而不是数字数组是理解它们的一种非常强大的方法。如果为源空间和目标空间选择了正确的轴组,每个线性图可以非常简单地描述为对角缩放矩阵。在应用中,人们感兴趣的往往是那些轴,因为它们在某种意义上提供了观察矩阵的“真实”或“潜在”方式。

作为练习,如果你已经理解了这一点,你应该能够理解 Moore-Penrose 伪逆,它将逆矩阵推广到非方阵和不可逆矩阵。

参考资料/进一步阅读

如果你遵循这一点,你应该能够把这种理解带到任何好的线性代数教科书。我们称之为“轴”的东西变成了“基”,线性代数的大部分工作来自于对基的计算,以及用更多的术语更详细地考察矩阵能做什么。但是绝大多数可以通过奇异值分解的镜头来理解。

[1]正式地说,我们正在处理真实的有限维希尔伯特空间,并且该定理对任何希尔伯特空间都有适当的推广。如上所述,为了简单起见,本文将始终假设我们在一个具有内积结构的有限维实向量空间中工作(由于我们具有有限维,所以它自动成为希尔伯特空间)。

[2]特别是,如果轴不正交,矩阵的转置将不再包括在对角线上翻转数字。

[3]对于那些了解内情的人来说,我们假设我们有一个标准正交基,但是我们将尽可能避免谈论基。

[4]正式地,我们要求选择的源向量是线性独立的并且跨越空间,这使得它们成为。“一般”的官方定义是从代数几何中的类属的概念宽松地借用来的,并且粗略地意味着,在我们用来定义线性地图的基向量的选择空间中,不可接受的选择形成了至少为 1 的余维的子种类。

数据质量的六个方面——以及如何处理它们

原文:https://towardsdatascience.com/the-six-dimensions-of-data-quality-and-how-to-deal-with-them-bdcf9a3dba71?source=collection_archive---------9-----------------------

在坚实的基础上构建您的模型和分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 XKCD

垃圾进,垃圾出。这是一句耳熟能详的话,诞生于计算机科学的早期,强调验证你的输入的重要性。

你可以拥有最巧妙、最优雅、经过充分测试的功能、模型或应用——但出来的东西和进去的东西一样好。

每当我们开发代码时,我们都提前对它将处理的数据的性质做出假设;一个简单的算术函数可能需要一个浮点数。点心亭的需求预测模型可以以特定的表格形式预测最近五年的销售数字。自动驾驶汽车控制器将从车辆周围的许多传感器接收不同的数据流。

如果这些假设被违反,那么会发生三种情况之一。

  • 代码根据预期检查输入,并启动计划 b。这可能是为了警告用户数据有问题,然后优雅地停止。
  • 代码遇到运行时错误,导致程序崩溃。
  • 代码继续运行,忽略了错误的输入,并产生一个看似合理但不正确的输出。

第一个场景给你一个降落伞,第二个场景给你一个头痛,第三个场景给你一个多车连环相撞在一滩融化的 Cornetto 中。

错误的数据= >错误的决策

随着组织变得越来越数据成熟,重要的业务决策越来越依赖于数据分析和建模。如果做出这些决定的数据不符合标准,那么你基于这些数据的推理将是有缺陷的,可能会产生非常昂贵的后果。

这就是为什么理解数据质量并意识到您正在使用的数据可能在许多方面达不到您的要求如此重要。

准确(性)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由威廉·沃比Unsplash 拍摄

曾经创建的每一条数据都源于现实世界中的一个事件或测量。这可能是温度传感器的输出、金融交易的记录或某人在 web 表单中键入他们的名字。准确性描述了"数据正确描述被描述的“真实世界”对象的程度。

为了实现这一点,从现实世界到数据集的旅程中的每一步都必须正确地保留原始数据的本质。

在测量或记录事件/对象的过程中,一开始就有可能出现错误。2020 年 5 月,由于填写令人困惑的申请表时出现错误,澳大利亚政府将 COVID 19 工资补贴计划的支出承诺高估了 600 亿澳元(390 亿美元)。雇主们被要求说明他们参加该计划的雇员人数。然而,在 0.1%的情况下,他们反而提交了他们所要求的补贴的美元价值——正确金额的 1500 倍*。这些错误被忽略了,它们的总价值流入了议会通过的一项法案。几周后,政府红着脸宣布了自己的错误,但可能不会因为在沙发背上发现 600 亿美元而太不高兴。*

在上面的例子中,简单地列出前 100 名左右的索赔人可能会对这个问题有所帮助。你会发现大型快餐和零售品牌,连锁酒店等。但是当你碰到一家当地的餐馆或小型旅游公司声称有几千名员工时,你就知道有问题了。

这突出了基本分析和概要分析对于理解数据集的重要性。在您做任何报告或建模之前,您需要仔细查看每个字段,看看它的值是否有意义,没有奇怪的惊喜。

准确性有一个密切相关的表亲:精度。环法自行车赛的赛段时间是以小时和秒来记录的,但这在奥运会的 100 米决赛中是行不通的。在数据类型转换过程中,或者由于用于进行初始测量的仪器的灵敏度,精度可能会降低,从而导致模型的方差降低。

完全

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Gabriel CrismariuUnsplash 拍摄

数据完整性表示“所需数据在数据集中的程度。”任何数据集都可能有缺口和缺失数据,但这些缺失数据会影响您回答问题的能力吗?要理解的关键是是否引入了会影响结果的偏见。

1936 年,《文学文摘》 进行了一项民意调查,询问受访者是会投票给共和党人艾尔弗·兰登,还是现任民主党人富兰克林·罗斯福。然而,邮件列表主要是从电话簿中选择的。现在,在 1936 年,电话远未普及,被认为是奢侈品。因此,邮寄名单最终偏向上层和中产阶级选民,遗漏了那些买不起电话的人。一旦收到回复,文学文摘正确预测了压倒性胜利。然而不幸的是,在美国历史上最一边倒的选举中,兰登获得了压倒性胜利,而不是罗斯福,他最终赢得了 48 个州中的 46 个。通过使用更完整的数据集,如选民名册,或至少通过了解和调整因缺失数据而产生的偏差,投票数字可能会更接近目标。

完整性问题可能发生在记录级别,就像上面丢失整行的情况,但也可能发生在列级别,即一个字段 80%的时间都是空白的。这可能会使许多机器学习方法出错,并且如果缺失值不是均匀分布的,可能会再次引入偏差。为了缓解这个问题,有两种方法:

  • 扔掉不完整的列
  • 丢弃包含缺失数据的行
  • 输入缺失的数据(即填空)

Yoghita Kinha 的优秀文章如何处理数据集中的缺失值对上述方法进行了全面介绍。

一个更隐蔽、更隐蔽的完整性问题是,默认值给人一种完整字段的错觉,尽管实际的响应率要低得多。当我为一个零售时尚品牌建立客户终身价值模型时,这种情况曾经发生在我身上。在每个顾客档案上都有一个“性别”标志——M 代表男性,F 代表女性。该领域在数据集中具有很高的完整性,但是当一些基本分析显示大约 6 个月前女性客户的急剧变化时,就产生了怀疑。原来,在最近对注册表单的重新设计中,性别字段已经从没有默认值的必需下拉框变成了 default =“女性”的下拉框。这一小小的变化意味着,忽略该字段的客户现在被记录为女性,而不是被送回表单进行填写。

一致性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本·科尔曼Unsplash 上拍照

如果数据在多个位置复制,它需要在所有实例中保持一致。对于一家百货商店,您可能通过忠诚度计划、邮件列表、在线账户支付系统和订单履行系统来保存特定客户的数据。在这个混乱的系统中,可能会有拼错的名字、旧地址和冲突的状态标志。这可能会在仅从数据点的一个实例读取数据的流程中导致问题,例如,如果客户取消订阅营销电子邮件,但这并没有反映在该客户的所有表现中,他们可能会继续收到通信,这让他们非常沮丧。不一致的联系方式也可能导致金钱浪费在打电话或寄信上。

在上面的例子中,拥有一个集成良好的客户数据平台,如细分市场Omneo 可以帮助整合客户的单一视图,并确保一致性问题得到解决。

及时

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 insung yoonUnsplash 上拍摄

您的数据集是否足够新?在一个事件发生和它出现在你的数据中之间有多长时间的延迟。许多数据分析和建模将建立在历史快照的基础上,因此将它们运行到今天可能没有必要。然而,实时决策需要实时数据。如果雷达系统的数据只能一天一次批量下载,对空中交通管制员来说就没什么帮助了。如果由于连接问题,某些商店周日的销售数据被推迟,你周一管理层会议的数据就会被取消。

数据集的及时性可能依赖于导致其创建的数据集成管道。这可以是实时的,使数据在它描述的事件后很快可用,或者批量处理,这意味着数据被“冻结”直到下一次刷新。对这一渠道的改变可能会使你获得更多最新的数据,并对最近的事件作出更迅速的反应。

独特性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

里卡多·戈麦斯·安吉尔在 Unsplash 上的照片

每个真实世界的对象或事件在一个特定的数据集中应该只表示一次。即,如果有 John Doe 的客户记录和 Johnny Doe 的客户记录,尽管他们实际上是同一个人。

因此,任何涉及客户的指标(客户数量、每个客户的花费、购买频率)都将因为包含一个人的重复表示而被丢弃。

发现这个问题意味着识别一个合适的主键。在 John Doe、Johnny Doe 示例中,他们可能有不同的姓名和客户 id,但电子邮件地址匹配,这是他们是同一个人的有力线索。这意味着在进行任何分析或建模之前,需要额外的数据整理步骤来整合这些客户记录。

有效期

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Max 陈Unsplash 上拍照

数据集中的字段可能需要满足某些条件才能被视为有效。电子邮件地址必须有一个“@”符号,电话号码必须是一系列数字,会员等级字段可能需要是“金”、“银”或“铜”。

在许多情况下,使用正则表达式可以很容易地检查有效性。网上有一些数据库,比如 regexlib.com,其中包含了数千种常见数据类型的正则表达式。对于离散数据类型,比如上面的成员层示例,简单的频率统计可以告诉您是否存在有效性问题。如果你有除了“金”、“银”或“铜”之外的大量值,那么一定有问题。

一旦识别出无效数据,它实际上就变成了一个完整性问题,可以使用前面描述的方法来处理这个问题。

概括起来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

约翰·巴克利普在 Unsplash 上拍摄的照片

在任何数据科学项目的开始,清楚地了解您的数据以及它从源到数据集的路径是非常重要的。虽然匆忙实现项目中更性感和更复杂的部分很有诱惑力,但是如果它建立在不稳定的基础上,那么这种努力就白费了。只有通过问问题、测试假设、分析和理解你的数据,你才会对你的分析质量真正有信心。

关于 Scikit-plot 你需要知道的六件关键事情

原文:https://towardsdatascience.com/the-six-key-things-you-need-to-know-about-scikit-plot-119cbd869adb?source=collection_archive---------42-----------------------

向 scikit-learn 对象添加绘图功能的直观库。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自佩克斯马尔科·布拉泽维奇的照片

“想象给了你一些你不知道的问题的答案.”— 本·施奈德曼

可视化是数据科学和机器学习中最重要的组成部分之一。如果你需要向某人展示你的结果,你可以向他们展示可视化的结果,而不是 Excel 中的一堆数字。当谈到机器学习实验时,在训练阶段可视化模型,结果非常重要,可以帮助你对下一步做什么做出好的决定。通过可视化你的结果,你可以注意到你从来没有期望看到的东西。Scikit-plot 可以帮助您执行机器学习项目中的任务。

什么是 Scikit-plot?

Scikit-plot 是一个 python 包,可以帮助您在机器学习项目的不同阶段可视化您的数据、模型(在训练期间)和实验结果。Scikit-plot 是一个谦逊的尝试,它提供了一个用尽可能少的样板文件生成快速、漂亮的图表和绘图的机会。

在本文中,您将学习 Scikit-plot 库中提供的以下模块:-

“一张照片最大的价值是当它迫使我们注意到我们从未期望看到的东西”——约翰·图基

装置

安装简单!首先,确保您已经安装了依赖项 Scikit-learnMatplotlib

然后运行:

pip install scikit-plot

如果使用 conda,您可以通过运行以下命令来安装 Scikit-plot:

conda install -c conda-forge scikit-plot

以下简单的机器学习项目将向您展示如何在您的下一个机器学习项目中实现这些 scikit-plot 模块。

我们将使用来自拉各斯和尼日利亚主要城市的保险数据集。我们将建立一个预测模型来确定一栋建筑在一定时期内是否会有保险索赔。我们将不得不预测在建筑物的保险期内至少有一次索赔的概率。你可以在这里下载数据集。

我们将从导入这个 ML 项目的重要包开始。

加载保险数据集。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前五行

在这个数据集中,我们有分类值和数值。

让我们看看数据集的形状

 data.shape(7160, 14)

我们有 14 个变量和 7160 行。

数据集中的列列表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

列列表

你可以在这里阅读这个数据集中每个变量名的含义。我们的目标变量是一个索赔,它有两个唯一的值。

  • 1 如果建筑物在保险期内至少有一项索赔。
  • 如果建筑物在保险期内没有索赔,则为 0。

我们将删除两列客户 Id 和地理代码。

检查数据集中缺失的值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

每个变量中缺少值

我们有 3 列缺少值,它们是花园、建筑尺寸和入住日期

以下代码将使用最频繁和平均策略处理所有缺失值。

在数据集中,我们有一些分类变量将通过使用 scikit-learn 的 LabelEncoder 方法 进行数字转换。

Residential、Builiding _ Painted、Building_Fenced、Garden 和 NumberOfWindows 变量已被转换成数值。

让我们把目标变量和自变量分开。

我们将使用 scikit-learn 中的 MinMaxScaler 对自变量进行缩放。

将数据集拆分为训练集和测试集。

我们将使用数据集的 10% 作为测试集。在我们进一步训练模型之前,一个独立变量列表将保存在 feature_columns 中。

现在让我们了解 scikit-plot 可以提供什么。

评估模块

scikit-plot 中的估计器模块包括专门为 scikit-learn 估计器(分类器/回归器)实例(如随机森林)构建的图。您可以使用自己的估计器,但是这些图假定 scikit-learn 估计器具有共同的特定属性。

现在让我们从 scikit-learn 创建我们的分类器。我们将使用 GradientBoosting 算法作为我们的分类器。

1.学习曲线图。

Scikit-plot 提供了一个 plot_learning_curve 方法,它可以为分类器生成一个训练和测试学习曲线图。该曲线可以帮助您更好地了解训练期间的模型行为。

我们将在 plot_learning_curve 方法中传递分类器、自变量、目标变量等重要参数,这意味着分类器将被训练,同时生成一条学习曲线。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

学习曲线

正如你所看到的,学习曲线可以帮助你更多地了解你的模型行为。从图中可以看出,的训练分数随着训练样本数量的增加而减速,而的交叉验证分数试图在训练样本数量增加时保持其性能。

2.特征重要性图

数据集中包含大量要素并不意味着您可以创建性能良好的模型。有时候,一些重要的特性是您创建一个具有良好性能的模型所需要的。

Scikit-plot 可以通过使用 plot_feature_importances 方法生成分类器特征重要性的图。

我们将在 plot_feature_importances 方法中传递重要参数,这些参数是经过训练的模型分类器并列出特征名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重要性特征

上面的图显示了一个重要特性的列表,从最重要的特性到最不重要的特性。我们数据集中最重要的特征是建筑尺寸,最不重要的特征是花园

这意味着我们可以移除数据集中的花园要素,因为它对模型预测没有太大贡献。

度量模块

度量模块包括机器学习评估度量的图,例如混淆矩阵、轮廓分数、ROC 等。

4.混淆矩阵图

混淆矩阵是大多数数据科学家和机器学习工程师都非常了解的。混淆矩阵是一种总结分类算法性能的技术。
您可以使用 plot_confusion_matrix 方法从预测和真实标签生成混淆矩阵图。

我们将传递 plot_confusion_matrix 方法中的重要参数,它们是真实标签和预测标签。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

混淆矩阵

从上图可以看出,0 类的 96% 预测正确,1 类只有 21% 预测正确。

4.受试者工作特征曲线

Roc 曲线是预测二元结局概率的有用工具。这是对于 0.0 和 1.0 之间的多个不同候选阈值的假阳性率 (x 轴)相对于真阳性率 (y 轴)的曲线图。

Scikit-plot 可以通过使用 plot_roc 方法从标签和预测得分/概率生成 ROC 曲线。

我们将在 plot_confusion_matrix 方法中传递真实标签和预测概率来生成图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

受试者工作特征曲线

该图显示了 4 条不同的曲线及其面积值,分别为

  • 0 类 Roc 曲线。
  • 第一类 Roc 曲线。
  • 微观平均 Roc 曲线。
  • 宏观平均 Roc 曲线。

5.精确回忆曲线

精度-召回曲线是不同阈值的精度 (y 轴)和召回 (x 轴)的曲线图,用于评估分类器输出质量。当类别非常不平衡时,精确召回是预测成功的有用度量。

精度-召回曲线显示了不同阈值的精度和召回之间的折衷。曲线下的高区域表示高召回率和高精度,其中高精度与低假阳性率相关,高召回率与低假阴性率相关。两者的高分表明分类器正在返回准确的结果(高精度),以及返回所有肯定结果的大部分(高召回率)。

Scikit-plot 可以通过使用 plot_precision_recall 方法从标签和概率中生成精度-召回曲线。

我们将在 plot_precision_recall 方法中传递真实标签和预测概率来生成绘图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

精确召回

该图显示了 3 条不同的曲线及其面积值,分别为

  • 0 级精度-召回曲线
  • 第一类精确召回曲线
  • 微观平均精确召回曲线

分解模块

分解模块包括专门为 scikit-learn 估计器构建的图,这些估计器用于降维,例如 PCA。您可以使用自己的估计器,但是这些图假定 scikit-learn 估计器具有共同的特定属性。

6.PCA 成分方差

主成分分析(PCA)是最早的多元分析技术之一。然而,它不仅幸存了下来,而且可以说是减少多元数据维度的最常见方法,以揭示有时隐藏的、通常隐藏在它下面的简化结构。其他人将它定义为一种数学算法,它减少了数据的维度,同时保留了数据集中的大部分变化。

在实践中使用主成分分析的一个重要部分是估计需要多少成分来描述数据的能力。这可以通过查看作为组件数量的函数的累积解释方差比来确定。PCA 中的解释方差比率计算由每个选定组件解释的方差百分比。

Scikit-plot 可以使用plot _ PCA _ component _ variance方法生成 PCA 成分的解释方差比率。

我们将在 plot_precision_recall 方法中传递具有**explained_variance_ratio_**属性的 PCA 实例来生成曲线。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方差比

上面的曲线量化了前 N 个分量中包含了多少总的 14 维方差。例如,我们看到数字的前 3 个分量包含大约 81.4% 的方差,而您需要大约 8 个分量来描述接近 100% 的方差。

可以阅读 Matt Brems 写的文章,了解更多关于 PCA 的知识。

[## 主成分分析的一站式商店

在教科书的开始,我用我的研究生统计理论课,作者(乔治卡塞拉和罗杰…

towardsdatascience.com](/a-one-stop-shop-for-principal-component-analysis-5582fb7e0a9c)

包裹

在本文中,您了解了如何向 scikit 添加绘图功能——学习对象并通过查看彩色绘图获得洞察力。你可以开始在你的下一个机器学习项目中实现 scikit-plots。

如果您对绘制集群感兴趣,scikit-plot 具有 Clusterer 模块,包括专门为 scikit-learn Clusterer 实例构建的图,您可以查看文档以了解关于 Clusterer 模块的更多信息。

本文的数据集和源代码可以在 Github 上找到。

[## davisy/带有 Scikit-Plot 的机器学习项目

Scikit-plot 是一个谦逊的尝试,为缺乏审美的程序员(比如我自己)提供机会…

github.com](https://github.com/Davisy/Machine-Learning-Project-with-Scikit-Plot)

如果你学到了新的东西或者喜欢阅读这篇文章,请分享给其他人看。也可以随意发表评论。在那之前,下一篇文章再见!也可以通过推特 @Davis_McDavid 联系到我。

最后一件事: 在下面的链接里多看看类似这样的文章。

[## 为什么您需要探索您的数据以及如何开始

探索性数据分析逐步指南。

medium.com](https://medium.com/analytics-vidhya/why-you-need-to-explore-your-data-how-you-can-start-13de6f29c8c1) [## 使用投票方法的特征选择

特征选择是自动或手动选择那些对…贡献最大的特征的过程

medium.com](https://medium.com/analytics-vidhya/feature-selection-by-using-voting-approach-e0d1c7182a21) [## 如何用 Python 日志模块运行机器学习实验

有时候“打印”并不是一个好主意

medium.com](https://medium.com/analytics-vidhya/how-to-run-machine-learning-experiments-with-python-logging-module-9030fbee120e)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值