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

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

数据科学家能从点击流和尾气数据中学到什么?

原文:https://towardsdatascience.com/what-can-data-scientists-learn-from-exhaust-data-some-lessons-and-tips-from-industry-e212cac8795?source=collection_archive---------65-----------------------

不是你做什么,而是你做的方式

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

排气数据从来没有这么干净

最近一直在想尾气数据到底有多有用,想分享一些想法。下面,我列出了什么是尾气数据,一些例子,它如何可以增加大量的价值,以及一些实用的建议,数据科学家如何使用它。

排气数据

什么是尾气数据,我为什么要关心?

任何一家有网络足迹的公司都会有大量的数据堆积在某个地方的数据存储中。尾气数据是用户活动的副产品。它不包括“主要”或“核心”数据,如用户保存的登录详细信息或交易历史,但包括用户与您的数字产品互动时产生的所有数据。

例如,我曾经在交通应用程序 Citymapper 担任数据科学家。你可以使用该应用程序获取公交路线,还可以使用名为 Pass 的订阅票务产品来支付旅程费用。比方说,你想从家里旅行到你最喜欢的共产主义独裁者主题披萨和鸡尾酒吧(当然是在 Covid 之前)。你可以打开应用程序,输入地址,浏览一些交通选项,选择一个,按照指示,用你的通行证支付旅程费用。关于交易的数据将被记录,并被算作核心数据,因为付费交易是业务功能的核心。

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

一个获取 Citymapper 公交路线的例子,它产生尾气数据。来源: The Verge

你在应用程序中所做的所有其他事情的事件日志也会被记录下来——包括你输入的起始和结束地址,你显示的选项,你点击的选项,你最后选择的选项是什么;如果你使用逐步路线指南(“Go 模式”),你的 GPS 位置也会每 10 秒钟被记录一次。所有这些都是无用的数据。类似地,电子商务网站的穷尽数据将包括点击流数据——包括你点击的每个产品、你在每个页面停留的时间、你查看了每个页面的哪些部分以及你采取了什么行动。

尾气数据大。非常大。它经常需要应用规则来阻止它变得更大。在 Citymapper 示例中,我们可以在 Go 模式下每秒记录一次用户位置,而不是每 10 秒记录一次,但这样我们将拥有 10 倍的数据,而不一定会获得 10 倍的价值。它也可能很乱,很难处理;尤其是在将其提炼为更容易理解的内容方面,以及在能够及时访问您需要的数据而不会挂在笔记本上或爆炸的方面。

给垃圾数据的情书

Exhaust 数据通常是一大堆庞大、复杂、微妙且极不性感的数据,这在试图从中获得任何洞察力时都会带来重大挑战。这也是关于用户行为的奇妙的、迷人的、最惊人的信息来源。由于使用它的内在困难,它经常得不到充分利用,因此它可能是一个组织尚未开发的巨大价值来源。

排气数据非常有用,因为它不仅告诉我们一个人做了什么,还告诉我们如何做的(甚至可能告诉我们为什么做)。

在我攻读博士学位期间,在统计学和数据科学应用于人类进化考古学这一非常模糊的领域,我第一次意识到作为核心活动副产品产生的大量杂乱数据有多么重要。直到现在回顾我的博士论文,受益于在现实世界中使用数据科学的几年,我才意识到我的整个博士论文都是关于尾气数据的重要性。

在我的领域中,以前的工作往往侧重于最终产品的数据,在我的例子中是石器,但在我上面的例子中,这可能是交通预订卡或电子商务网站上的最终交易。但是通过观察尾气数据,我能够了解到更多关于人类行为的信息。在我的博士学位中,废气数据实际上是垃圾数据,因为它来自于对石头碎片的测量,这些石头碎片是制造箭头的副产品。但在商业环境中,这可能是记录用户在选择旅程路线之前在应用程序上的每次点击的事件日志,或者是用户在最终购买之前在电子商务网站上查看的一系列产品。

排气数据非常有用,因为它不仅能告诉我们一个人做了什么,还能告诉我们他们是如何做的。因此,我写这篇博客是为了向 exhaust data 致敬。

石器和统计学

关于人类行为,石器能告诉我们什么?

我在 2015 年完成了牛津大学考古系的博士学位。我对人类行为的进化很感兴趣,特别是当我们开始以可识别的“人类”方式行事时,以及我们的物种是如何在世界各地传播的。骨头和石头通常是我感兴趣的那个时代仅存的东西,所以我试图通过观察石器技术来回答这些问题。

传统上,旧石器时代或石器时代的考古学家会看一些来自两个不同地区的箭头,决定它们看起来有点相似,然后去写一篇关于同一群人如何生活在这两个地区的论文。事实上,这正是以前占主导地位的关于我们物种在世界各地扩散的理论是如何诞生的。这个理论是基于一种叫做细石器的石器技术的出现。顾名思义,细石器是非常小的石头工具——像箭头、矛边的石倒钩、鱼钩和非常小的刀片。

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

大约 9000 年前重建的瑞典细石器。资料来源:Larsson 等人 (2017 年),载于《隆德考古评论》第 22 期。

我们在大约 7 万年前的南部非洲、大约 5 万年前的东非和大约 4 万年前的南亚发现了类似的石器。因此,该理论认为,早期现代人类一定是在大约 50,000 年前离开非洲,带着他们的箭头传播到世界各地。早期现代人类发展的故事被简化成一张地图,上面画着一个大箭头,上面写着“人类往这边走”;这是一个人类跟随这支大箭从非洲到亚洲甚至更远的地方的故事,沿途丢下像面包屑一样的箭头。

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

我在南非(A 和 B)和斯里兰卡©拍摄的细石器。资料来源: Lewis 等人(2014)在《第四纪国际》第 350 期

输入考古排气数据

我有一个不同的想法——当时是异端,现在被广泛接受,是许多论文和会议的主题。我的想法是,与其看着一些箭头,决定它们看起来相似然后就此结束,我们应该超越完成的工具本身。石器是一个漫长的过程的最终结果,用正确的方式,正确的角度和正确的力量将石头敲打在一起,创造出你想要的工具。在制作你可爱的小箭头的过程中,你最终会得到一大堆你不在乎的粉碎的石头——或者借用一个花哨的考古学术语(所有最好的考古学术语都是法语)。

然后,几千年后,一个穿着难看的米色裤子戴着傻帽的考古学家出现了,发现了你的借条。她很高兴找到你的岩石碎片,因为现在她不仅能知道你做了什么,还能知道 T2 是怎么做的。如果最终的石器是你的核心数据,这些剩余的岩石就是你的耗尽数据。

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

我上辈子是一名考古学家,戴着一顶傻帽,非常高兴在西班牙阿塔普尔卡发现岩石碎片。

借记可以告诉你一大堆关于一个工具是如何制造的。你可以了解一个人选择了什么样的石头,他们如何拿着它,他们如何击打它,他们用什么击打它,他们的技术是什么,他们是否换了锤子,他们是否放下它然后再回来,他们是否用同一块石头制作了其他工具,他们在制作这个工具时最关心什么,以及他们行为的许多其他方面。有时你甚至可以像拼图游戏一样把整个核心重新拼在一起,重建整个过程(有时是真的——我的一个朋友过去常常在他所在系的桌子上留下一堆借条,以便无聊的本科生偶尔会停下来把碎片拼在一起),有时会有缺口,但总会有有用的行为见解闪现出来。

当然,找到一个箭头可能会告诉你人们在制造箭头。但是确切地知道它是如何制作的可以告诉你更多关于制作它的人的行为,以及他们的文化和传统。重要的是,在我的研究背景下,它可以告诉我是相同的人以相同的方式制造相同的工具,还是不同的人以不同的方式制造相同的工具。在生物学中,这被称为趋同进化,即两个物种分别进化出相同的特征,因为它们正在应对相同的环境挑战,即使它们从未见过面交换过信息。例如,鲨鱼和海豚都是聪明的海洋生物,它们捕食鱼类,有着相似的鳍——但一个是鱼,一个是哺乳动物,它们已经分别进化了大约 3 亿年。

对于数据科学来说,重要的一点是,尽管结果是相同的,但只有通过查看与他们实现目标的过程相关的数据,而不仅仅是最终结果,才能发现不同的人在做不同的事情。

输入统计数据

跳到最后,在花了几个月时间在世界各地测量石器及其相关的石器,并应用各种统计技术和模型来寻找数据中的模式后,趋同进化正是我所发现的。南非和莱索托的人们制造的工具与印度和斯里兰卡的非常相似。但是他们这样做的方式非常不同,可能是出于不同的原因——例如,在斯里兰卡的雨林中猎杀猴子,在南非大草原上猎杀羚羊。

对于数据科学来说,重要的一点是,尽管结果是相同的,但只有通过查看与他们实现目标的过程相关的数据,而不仅仅是最终结果,才能发现不同的人在做不同的事情。现在,我是一名在工业界工作的数据科学家,而不是学术界的一个模糊角落,我意识到这是一个非常重要的教训,有助于更普遍地思考一个组织的数据。

这一切和现实世界中的尾气数据有什么关系?

将同样的方法应用于商业数据

公司和其他组织可以使用完全相同的方法从他们存储的关于客户的尾气数据中提取价值和确定洞察力。也许你和我都去了同一个电子商务网站,买了一本关于我博士研究的书(尽管我非常怀疑——它非常小众)。单看核心数据,我们会显示相同的内容,因为我们在网站上的最终交易是购买同一本书。

但也许你直接去了网站,输入了书名,去了产品页面,买了就离开了网站。与此同时,也许我去了网站的图书区,看了很多不同的产品页面,在每个页面上花了更长的时间,读了所有的评论,被一个夜光弹珠跑吸引了一下,然后回来看这本书,最后买了下来。也许这两个过程都很能代表我们的购物和浏览习惯。我们是不同类型的顾客,有着不同的购物习惯,尽管最终购买的是同一件商品。正如上面我谈到的不同的人以不同的方式制造相同的工具,我们是不同的人以不同的方式购买相同的产品。

从排气数据中获取价值的实用建议

通过查看这样的尾气数据,你可能会获得各种有用的见解。例如:

  • 这些习惯可能代表了更广泛的购物者类别,因此某种针对客户细分的(一种无监督的机器学习)可能会帮助你更好地了解你的客户——也许是通过一些有效的 数据,即 。它还可以帮助你的营销部门创建用户角色。
  • 或者,他们可以让你帮助产品管理人员弄清楚不同的用户群需要什么,以及哪些功能应该优先考虑。例如,在我上面的例子中,我可能会花很多时间在不同的产品页面上,因为我很难发现我到底对哪些产品感兴趣——所以某种形式的产品 推荐系统 可能是合适的,或者是对现有系统的改进。
  • 相反,在上面的例子中,你可能只使用该网站购买其他人已经推荐给你的特定东西(也许我在酒吧告诉你我的书,你答应买它以阻止我谈论考古学)。这很好,但也许网站上还有其他你可能喜欢但你还不知道的项目。数据科学家可能想尝试一些 AB 测试 来试验网站上的不同页面,看看对布局或内容进行一些改变是否能鼓励客户在网站上花更长时间,并查看他们可能喜欢的其他产品。

摘要

花时间清理、理解、提取和分析尾气数据对一家公司来说非常有价值。它可以帮助你在更精细的层次上理解你的客户——不仅仅是他们用你的产品做什么,而是他们到底是怎么做的。当数据科学直接帮助客户时,它处于最佳状态。即使处理大量数据可能会有点累(抱歉),但考虑客户的所有数据是真正了解他们行为的好方法,可以为他们提供最好的产品。

数据可视化在对抗新型冠状病毒的战斗中有什么帮助?

原文:https://towardsdatascience.com/what-can-data-visualization-help-in-the-battle-against-the-novel-coronavirus-bad9b2c7fb2b?source=collection_archive---------32-----------------------

我设计了五个场景的仪表盘,帮助监控冠状病毒爆发的情况,开展防控工作。

这种新型冠状病毒(现在正式命名为新冠肺炎)首次在中国武汉市发现,在过去的六周内,已经感染了 59,000 多名中国公民,并导致 1,000 多人死亡。

除了加快病毒疫苗研究和加强人员流动管理外,人员信息的及时收集、传递和管理也成为这场对抗病毒战役中至关重要的一环。在社会的各个方面都有巨大的挑战:商业和学校的恢复,医院治疗,社区管理…

为此,我已经利用数据可视化的知识,设计了五种场景的仪表盘模板,希望能够帮助相关机构或企业有效监测疫情,开展防控工作。

现在,让我向您展示这些不同类型的仪表板,并解释数据可视化可以在对抗冠状病毒的战斗中提供什么帮助。

1.冠状病毒爆发的实时监控

疫情数据不断更新。我们可能需要寻找各种新闻或信息渠道来获取最新数据。这时候一个实时监控仪表盘就可以整合最全面的疫情分析,实时更新数据,供大家查阅。

1.1 冠状病毒爆发分析仪表板

这个仪表板整合了核心数据,直观地显示了新型冠状病毒的确诊、疑似、死亡和治愈病例。从地域维度分析感染分布,从时间维度分析感染趋势。此外,仪表板上的地图可以从一个省到另一个城市进行深入查看。还有一部分展示了关于病毒的谣言和真相。

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

我用来制作所有这些仪表板的工具是 BI 报告和仪表板软件 FineReport 。这个工具是由我工作的数据研究所开发的。个人使用完全免费。可以 下载 练习制作报表和仪表盘。

这些仪表板主要用于分析中国冠状病毒爆发的情况,并为防控工作做出贡献。所以最初仪表板上的所有文字都是中文的。为了让大家更容易理解,我用了网页上的谷歌翻译功能把中文翻译成英文,但可能会有一些错误。

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

1.2 人口迁移分析仪表板

此次疫情爆发恰逢中国最重要的节日春节。政府延长了假期,但全社会仍需投入生产。中国预计下周将有大约 1.6 亿员工重返工作岗位。必须采取行动,在大规模人员流动中降低传播风险。所以我们需要一个仪表板来分析全国的人口迁移。下面的仪表板提供了全国范围内进出移民的每日数据分析以及每个地区进出移民的趋势,以帮助每个人了解其当前位置或目标区域的风险情况。

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

2.企业恢复管理

2.1 远程办公分析仪表板

在各地延期返工的情况下,很多中国企业选择了让员工在家远程办公。此时,他们可能需要一个远程办公分析仪表板,以提高冠状病毒爆发期间的工作效率,并了解员工的出勤情况。

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

2.2 员工差旅统计仪表板

员工从家乡回到工作场所,都避免不了接触更多的人。为了对自己和同事负责,春节期间员工的出行情况需要公开透明,以便及时发现潜在的隐患,保证公司工作环境的绝对安全。

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

2.3 移动数据输入模板—员工信息

为了更好的收集信息,我还做了一些手机数据录入模板。员工可在手机(或 PC)上随时点击链接填报。这些信息将立即输入数据库,并连接到上述仪表板。因此数据是实时显示的。

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

本文中所有的移动数据录入模板也是用数据可视化工具【FineReport】制作的。

3.医院管理

3.1 医疗用品监控仪表板

由于病毒,口罩和酒精等医疗用品一度成为硬通货。对于医院等一些企业来说,材料来源和收据信息的不透明也会造成不必要的误解。因此,医疗用品监控仪表板将非常有助于实时监控当前的材料库存和接收详情。

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

3.2 医院疫情监控仪表板

医院需要比国家或城市更细致的疫情监测。于是我设计了医院疫情监控仪表盘,根据医院上报的实时数据来显示医院的情况。它综合分析了各个科室的分布情况,每个症状,以及不同层次的患者人数趋势。

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

3.3 防控形势分析仪表板

从确诊病例分布、流行趋势、风险监测等维度,全面分析医院对冠状病毒疫情的防控工作。

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

3.4 移动数据输入模板—医院信息

移动数据输入为上述仪表板提供了数据基础。另外,每个人都可以在手机上随时填写报告。这种非面对面的信息采集形式,大大提高了环境危险的医院的安全性。

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

4.学校管理

4.1 返校学生分析仪表板

虽然很多学校都推迟了开学时间,但仍有部分学生提前返校,而且这个数字还会随着时间的推移而增加。迫切需要对归国留学生的信息进行分析。

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

4.2 学生健康监测仪表板

随着教育资源的日益共享,学校学生来自不同地区的情况不仅限于大学,因此在校学生更容易接触不同地区的人。学生健康的日常监测不容忽视。

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

5.社区管理

5.1 社区访问分析仪表板

社区作为生活场景中联系最紧密的群体,人们进出社区的潜在风险也影响着生活在社区中的人们。尤其是对易受新型冠状病毒侵害的老年人群,在企业、学校接触不会太多,但对社区疫情防控情况有直接影响。

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

5.2 移动数据输入模板—社区信息

以下是出入境登记表。移动数据录入可以最大限度减少与陌生人接触的机会,减少感染,在保证安全的情况下有效收集信息。

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

最后

冠状病毒疫情信息的收集、处理和实时显示是社会防控工作的重要组成部分。数据可视化有助于我们根据实时情况快速做出决策,避免滞后信息带来的损失风险。

如果你有这方面的需求,可以在 LinkedIn 上联系我,我很乐意免费分享这些仪表盘模板。相信有了科学的防控措施,一定能早日战胜冠状病毒!

[## Lewis Chou -区域经理- FineReport 报告软件| LinkedIn

查看世界上最大的职业社区 LinkedIn 上的 Lewis Chou 的个人资料。刘易斯有 3 份工作列在他们的…

www.linkedin.com](https://www.linkedin.com/in/lewis-chou-a54585181/)

您可能也会对…感兴趣

[## 2019 年你不能错过的 9 个数据可视化工具

在数据科学领域,数据可视化无疑是当今的热门词汇。

towardsdatascience.com](/9-data-visualization-tools-that-you-cannot-miss-in-2019-3ff23222a927) [## 制作销售仪表板的分步指南

我已经写了一些关于业务仪表板数据可视化的入门指南,但是那些文章仍然是一个…

towardsdatascience.com](/a-step-by-step-guide-to-making-sales-dashboards-34c999cfc28b) [## 让您的数据报告脱颖而出的指南

当数据报告由杂乱无章的数字组成时,我们无法想象技术已经发生了革命性的变化…

towardsdatascience.com](/a-guide-to-making-your-data-reporting-stand-out-cccd3b99e293)

我可以用 WhatsApp 做什么?

原文:https://towardsdatascience.com/what-can-i-do-with-whatsapp-661fc3cdd5c5?source=collection_archive---------34-----------------------

分析你的朋友。

构建一个词云,用 Python 运行情感分析。

WhatsApp 有“导出聊天”功能。你可以用这些数据做一些有趣的事情。这篇文章将带你构建一个单词云,以及一些情感分析。

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

来自 WhatsApp 聊天的单词云,按频率显示单词大小。

不久前,我试图消除生活中的消极因素。一方面是我的消极朋友。这可不行。我需要一种科学的方法来一劳永逸地证明我的朋友比我更消极。使用 Whatsapp、Python 和 NTLK 情感库,我创建了以下图表:

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

最后,我证明了我是同龄人中最优秀的。在本教程结束时,您将能够:

  • 导出 Whatsapp 数据
  • 将其转换成语言可读的格式
  • 分析数据
  • 统计单词的频率
  • 构建单词云
  • 执行情感分析

可访问性和隐私

我将尽可能使用非技术工具,努力让这一点变得容易理解。您将需要 Python 和 Pip 的知识,尽管我将深入研究一些基于 Excel 的解决方案。

WhatsApp 聊天中发送的每条消息和文件都可以被该聊天的成员访问并导出。这些加密的数据仍然对聊天中的人有意义。在你这样做之前,联系你聊天的其他成员,看看他们对你的分析是否满意。

导出 WhatsApp 聊天

  1. 导航到 WhatsApp 聊天。
  2. 单击“更多按钮”。
  3. 点击“导出聊天”。
  4. 选择“无媒体”
  5. 选择你想分享的地方,我推荐 Google Drive。

数据格式

此导出是一个. txt 文件。该文件有几种不同的格式:

  • 用户消息:“2019 年 2 月 21 日,上午 9 点 09 分——乔:嘿,伙计们,就是这里了”
  • 媒体遗漏:“19 年 6 月 1 日,下午 2 点 59 分——乔:<媒体遗漏>
  • WhatsApp 消息:“此消息已删除”

在这个阶段,我们不能处理这些数据,多种格式是没有用的。我们希望保留日期、时间、用户和消息内容。

工作表中的数据清理

  • 将整个文本文件内容粘贴到一个空的 Google 表单中。
  • 选择整个列“A”。
  • 在菜单中选择数据>分栏文本。
  • 将分隔符更改为每个名称后面的任何字符,在本例中为“:”。
  • 现在这两列是分开的,您可以删除 A 列和 B 列,只留下消息。
  • 复制这一整列。

建立一个单词云

此时,您已经有了原始的消息数据,并准备好粘贴到一个在线单词云构建器中。

  • 在菜单中单击文件>粘贴/键入文本
  • 随心所欲地改变颜色和形状选项

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

现在这里有几个问题:

  • 审查——有名字在里面,这带来了我们以前的隐私问题。您聊天中的一些单词脱离上下文可能看起来不太好。我们需要一个审查系统。
  • 媒体—“媒体省略”是我们最常用的短语,因为此文本替换了所有图像。这个需要去掉。
  • 重复单词——每个单词都可以是大写和小写。例如,“乔”和“乔”都出现了。

为了解决这些问题,我转向了 Python。

Python 中的数据清理

我已经修改了一个工具。txt 文件转换成格式化的. csv 文件。它需要 pip3 和 python3。这将转换此表单中的数据:

2/20/19, 10:14 PM - Messages to this group are now secured with end-to-end encryption. Tap for more info.
2/20/19, 10:14 PM - You created group "Example chat"
2/21/19, 9:09 AM - Joe: Wow what an amazing chat!
2/21/19, 9:10 AM - Dom: I agree, it is amazing!
2/21/19, 9:12 AM - Joe: You're the best!
2/21/19, 9:12 AM - Dom: No, you are the best!

收件人:

datetime|name|message|
2019-02-21 09:09| Joe|Wow what an amazing chat!
2019-02-21 09:10| Dom|I agree, it is amazing!
2019-02-21 09:12| Joe|You're the best!
2019-02-21 09:12| Dom|No, you are the best!

最后,我们还有停用词的问题。这些是被认为对信息内容不重要的常用词。想想像“和”、“要”、“我”这样的词。现在,这些在许多自然语言处理中被认为是重要的,但是它们导致了垃圾单词云。NLTK 可以帮助我们。

为了处理停用词和上面的进一步问题,我写了一个笔记本

现在我们有了以下内容:

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

情感分析

情感分析是自然语言处理的一个领域,专注于识别一段文本中的观点。使用 NLTK 库我们可以得到文本的阳性、阴性和中性。

积极的 1 分意味着它是完全积极的。0 分意味着它没有积极性。例如:

我喜欢乔,他超级酷

多好的一句话!这让我很开心,但这在数学上是正的吗?穿越 VADER,我们得到:

compound: 0.886, neg: 0.0, neu: 0.224, pos: 0.776

化合物是从 1 到-1 的分数,其中:

  • 1 是正数,
  • 0 是中性的,
  • -1 是负数。

想象一下,如果有人说:

哦,傻瓜,乔太逊了。真是个失败者!

多么刻薄的一句话,但是单词并不影响我,只有它们潜在的数学否定影响我!

compound: -0.8712, neg: 0.664, neu: 0.336, pos: 0.0

将情感分析应用于 WhatsApp

我写了一个笔记本概述了如何使用 Python 计算情绪。本笔记本概述了如何计算情绪,将其应用于我们的 CSV,并可视化每个人和一段时间内的情绪。

我们可以看看每个人的总情绪。

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

久而久之群体情绪。

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

和个人的情绪。

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

感谢阅读。如果您有任何进一步的问题,请随时在我的 GitHub 上打开问题。

我们能做些什么来帮助转化销售线索?

原文:https://towardsdatascience.com/what-can-we-do-to-help-convert-leads-8cbbcaee3e61?source=collection_archive---------40-----------------------

机器学习结果可视化简介

概述

这篇博客文章旨在展示对机器学习模型输出和各种输入变量之间关系的研究和解释,以此作为优化销售线索转化的起点。

商业背景方面,我们将了解一家名为 X 教育 的在线教育公司,该公司向行业专业人士出售在线课程。在资源有限的情况下,公司确定哪些用户更有可能转化为潜在客户非常重要。

我们将主要使用 R 来执行分析和可视化。

现场演示:https://jameschen4.shinyapps.io/leads/

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

作者图片:用 reactable 和 R shiny 构建的最终可视化截图

库(data.table)
库(caret)
库(xgboost)
库(pROC)
库(xgboostexplaner)
库(dplyr)
库(tidyr)
库(reactable)
库(htmltools)

数据

数据可在 Kaggle 上获得。这个数据集的一个好处是它附带了一个数据字典,解释了键列的含义。有 37 个变量和大约 10k 个记录。

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

作者图片:取自数据字典文件

预处理

已经有一个由 Ashish 用 Python 写的很好的 EDA 了。我们将直接从他那里获取干净的数据集,并专注于模拟和可视化部分。

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

作者图片:清理前的原始数据

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

作者图片:干净和预处理的数据

我们还将删除这些列,它们主要与销售线索相关:

  • 线索质量(相关性低,可能,不确定,最差)
  • 销售线索来源(登录页提交、销售线索添加表单、销售线索导入)
  • 线索来源(脸书,谷歌,Olark 聊天,有机搜索…等等)

培训

在这里,我们将使用 10 重交叉验证来训练 XGBoost 模型,其中目标变量是用户是否转化为潜在客户(0-否,1-是)。下面的代码直接取自大卫·福斯特

原来基线模型已经给出了很好的结果:AUC 0.9650633。

使用xgboosterplainer软件包,我们能够确定一些有助于销售线索转化的重要变量。

该软件包创建了一个瀑布图,可以帮助我们确定销售线索转化时最重要的促成因素。

对于下面的记录(取自测试集):

预测值:0.9630512

重量:3.260574

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

作者图片:单次预测的样本输出来自xgboostexplaner

在回顾了更多案例后,我们确定了可能有助于转化销售线索的 6 个变量:

  • 总计。花在网站上的时间
  • 最后。活动 _ 短信。发送/最后一次。值得注意的. Activity_SMS。送
  • tags _ will . revert . after . reading . the . email
  • 专业化 _ 其他 _ 专业化
  • Tags_Lost.to.EINS
  • 总访问量

模拟

这里的核心思想是,如果变量是独立的,我们可以玩不同的输入,看看预测将如何变化。

从 Ashish 的 EDA 中我们已经知道,不存在任何严重的共线性(通常当 VIF > 5 时):

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

来源:https://www . ka ggle . com/ashydv/lead-scoring-logistic-regression/notebook

数值变量

首先,我们将创建一个百分比列表和一个种子列表进行迭代。这里的百分比是指可能受到影响的用户群的百分比。例如,如果 perc = 0.2,这意味着我们将随机选择 20%的记录(同样,来自测试数据),并向总数添加 600 秒。time . spend . on . website 变量,而其他变量对于那 20%的记录保持不变。

这里的多样化播种只是为了确保模拟更加健壮。对于每次迭代,我们将取预测的中间值。请注意,在我们进行任何模拟之前,中值预测的基线约为 0.152。

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

按作者分类的图片:对每个变量的模拟,包括不同的用户群百分比和播种组合

一个附带说明是,尽管不存在严重的共线性,但当 TotalVisits = 0 时,Total。time . spend . on . website 也必须为 0。为了简单起见,我们暂时忽略这一点。

另一个注意事项是,这里我们只演示了连续变量的固定提升(例如,增加 600 秒),我们也可以尝试不同的组合。

单热变量

对于一次性变量,一种方法是首先将 0 和 1 分开,然后在 0(目标)上随机抽取一个百分比,并将其转换为 1,这意味着发送的短信成为这些选定记录的最后一项活动。

然后,我们对其余 4 个变量重复该过程,合计转换率如下:

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

作者图片:宽格式的汇总销售线索转化率模拟

可视化

在可视化之前,让我们也为最终数据添加更多细节:

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

作者图片:帮助可视化的附加信息

对于实际的可视化,我们将使用reactable包构建一个表格格式的热图——最佳部分?它与 R Shiny 兼容。

****现场演示:https://jameschen4.shinyapps.io/leads/

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

作者图片:用 reactable 和 R shiny 构建的最终可视化截图

这一可视化背后的一些想法:

  • 向上和向下箭头图标用于说明增加/减少目标,这样更引人注目
  • 基线分类和数字只是当前测试数据的参考点(在任何模拟之前),将用于评估设置所述目标的可行性。例如,从 EINS 教育(一家竞争对手公司)收集 50%以上的用户可能不现实,因为当前的基线仅为 2%
  • 数字通常靠右对齐,文本靠左对齐。然而,由于我们只有少数几个数字,用%和#居中对齐看起来更好
  • 在销售线索模拟的第一列以及间接费用描述中强调 X=10% 以及 X%的用户…

接下来要问的高优先级问题:

  • 我们能做些什么来吸引 EINS 教育的用户?
  • EINS 教育采用了什么策略?
  • 为什么用户同时从美国和 EINS 购买?
  • 我们的电子邮件和短信营销活动是否成功——我们从哪里可以获得更多相关数据?
  • 为什么没有专业化的用户更不容易转化?是因为他们实际上没有,还是他们不想告诉我们这些信息?

最终想法

我们在这里关注的是目标(我们想要达到的目标),而不是我们正在采取的实际方法,因为它可能需要更深入的分析和在线教育领域的知识,才能提出可靠的优化计划(例如,研究为什么某些用户在网站上花费 2000 多秒——是因为某些内容吗?).

还要注意,在适当的设置中,应该有 A/B 测试来验证 XGBoost 模型揭示的相关性。但同样,这篇博客中的分析只应作为线索转化优化的起点,它是一个与不同利益相关者一起细化分析的迭代过程。

机器学习模型通常被认为是一个黑盒,社区也很清楚这一点(因此我们看到了 xgboostexplainer 和 shap 这样的包)。有时,即使是最简单的线性回归对其他人来说也很难理解——这就是模拟或基于灵敏度的分析可以增加价值的地方。还有其他的方法来进行这样的分析:

从变量 *A* *B* *C* *D* *A* *B* *C* (不触及 *D* )的值组合将目标值 *y* 增加 10,使 *A* *B* *C* 之和最小化。**

问问题?

jchen6912@gmail.com

你能用新的“熊猫”做什么?

原文:https://towardsdatascience.com/what-can-you-do-with-the-new-pandas-2d24cf8d8b4b?source=collection_archive---------19-----------------------

熊猫 1.0.0 版本出来了。这些更新不仅是 Python 社区期待已久的,也是整个数据科学社区期待已久的。在这篇文章中,我谈论了我认为在这个版本中很重要的 5 个主要变化。

欢迎发表评论,让我知道您认为重要的其他变化以及数据科学社区如何利用它们。

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

新熊猫【来源】

但是,熊猫是什么?

Pandas 是 Python 中数据分析使用最多的库。它的框架结构和方法使得来自所有起步背景的数据分析师更容易入门数据科学。这是一个灵活、强大且易于使用的工具。

我们开始吧,好吗?👌

a)使用 Numba 让熊猫跑得更快

什么是 Numba?它是一个开源的实时(JIT)编译器,将 Python 和 Numpy 代码翻译成更快的机器翻译代码。换句话说,它可以帮助在多个 CPU 内核上执行 Numpy 表达式。

apply() 函数可以通过将引擎关键字指定为‘Numba’来利用 Numba。这使得对大型数据集(100 万行或更大)执行函数变得更加容易。

对于此功能,Numba 库应该有版本 0.46.0 或更高版本。

**In [1]: data = pd.Series(range(1000))****In [2]: roll = data.rolling(10)****In [3]: %timeit -r 1 -n 1 roll.apply(lambda x: np.sum(x), engine='numba',  raw=True)** 1.15 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)**## Function is cached when you run the second time - so faster
In [4]: %timeit roll.apply(lambda x: np.sum(x), engine='numba', raw=True)** 368 ms ± 3.65 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

b)一种“专用”管柱类型

在以前版本的 Pandas 中,字符串存储在 object numpy 数组中。在新版本中,增加了一个专用于字符串数据的类型— StringDType。这解决了许多问题,例如:

  1. 它消除了包含字符串和非字符串的混合型数组的混乱
  2. 它帮助我们执行只针对字符串的函数。

为了使用这个功能,我们可以显式地将类型设置为string

**# Can also string type using `pd.StringDType()` 
In [1]: x = pd.Series(['name', None, 'class'], dtype='string')****In [2]: x** 0     name
1    <NA>
2     class
dtype: string

c)一个‘专用’布尔类型

在以前版本的 Pandas 中,布尔数组只能保存TrueFalse值。丢失的数据无法合并到这些数组中。现在创建了一个专门用于布尔类型的新类型— BooleanDType,它可以保存缺失值。已经为缺少的值创建了一个新的掩码。

这对于数据分析师来说很重要,因为他们总是在处理缺失值,使用这种类型会使数据集更加明确。

**# Can also string type using `pd.BooleanDType()` 
In [1]: x = pd.Series([True, None, False], dtype='boolean')****In [2]: x** 0     True
1    <NA>
2     False
dtype: boolean

d)处理 **parquet** 文件变得更加容易

对于那些一直在使用 PySpark 的人来说,有时数据分析师会在 Spark 中处理数据,并将其保存为一个 Parquet 文件。然后,他们喜欢在拼花地板上用熊猫来做不那么“繁重”的工作。但是如果 parquet 文件有一个用户定义的模式,Pandas 中以前的版本会抛出一个错误,指出它不能集成 Pandas 中的模式。

在新版本中,Pandas 处理用户定义模式的模式参数。schema现在与 pyarrow 引擎一起处理模式参数。

**In [1]:** import pyarrow as pa ## pyspark engine import**In [2]: x = pd.DataFrame({'a': list('abc'), 'b': list(range(1, 4))})****In [3]:** **schema = pa.schema([('a', pa.string()), ('b', pa.int64())])****# Can also be used for `read_parquet` as well
In [4]: x.to_parquet('test.parquet', schema=schema)**

e)要降价的桌子!

当你训练了一个模型或者对数据做了一些分析之后,你就可以生成表格(用于结果)。这些表格需要以 markdown 或 latex 的形式填写——在工作过程中或工作后进行报告。

由于可以将 DataFrame 对象转换成 markdown 格式作为输出,因此用新的格式编写文档变得更加容易。这确实是一个很好的特性,因为现在表格的降价可以动态生成。

**In [1]:** x = pd.DataFrame({'A': [1,2], 'B': [3,4]})**In [2]: print(x.to_markdown())** |    |   A |   B |
|---:|----:|----:| 
|  0 |   1 |   3 |
|  1 |   2 |   4 |

此外,还修复了多个不同主题的错误,如绘图I/O日期时间等。关于这些的更多信息可以在 1.0.0 的 Pandas 文档中找到。

想安装/升级熊猫?

要使用 pip 安装 Pandas(针对首次用户):

pip install pandas

对于已经有旧版本 Pandas 但想升级的用户:

pip install --upgrade pandas

也感谢所有管理和开发熊猫的贡献者/开发者🎉。

我希望你觉得这篇文章有趣并且有用。如果你有,请分享。

此外,如果你觉得有更重要的变化,请随时写在评论中。

🐼🐼🐼🐼🐼🐼谢谢大家!

神经网络入门,第一部分——导论

原文:https://towardsdatascience.com/what-constitutes-a-neural-network-af6439f0cdd7?source=collection_archive---------20-----------------------

给出神经网络主要组件的简化理解。

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

扎卡里·克拉雷-斯科特在 Unsplash 上的照片

我一直在从事许多机器学习项目,涉及为各种背景下的不同任务建立的神经网络模型。但是我总是发现自己在使用高级框架和工具,它们大多隐藏了所使用模型的真实结构。主要是由于现有的各种库和框架帮助世界各地的开发人员快速开始使用机器学习代码,鼓励他们构建使用智能模型来完成无数任务的端点应用程序,而不一定帮助他们了解幕后真正发生的事情。

不幸的是,以这种方式行事,人们无法理解他们所使用的模型的内部运作,因此他们甚至不会考虑花时间去挖掘背后的科学。

但是你猜怎么着,理解神经网络内部发生的事情并不困难,本文的目标是以一种非常简单易懂的方式解释其背后的机制,分解主要组件,解释一般架构,并希望让你全面了解网络如何从输入数据到预期的最终结果。

我将把这个主题分成两篇文章,这样我就可以适当地关注每一部分,而不会用太多的信息淹没你。

概观

  1. 神经元的概念
  2. 网络层
  3. 不同的神经网络架构

神经元的概念

1.感知器:神经网络的基本构件

感知器可以被认为是一个基本上模仿生物神经元的二元模型。它于 1905 年首次推出,并于 1960 年由科学家弗兰克·罗森布拉特(Frank Rosenblatt)开发,灵感来自于早期的 T4 作品(T5)、沃伦·麦卡洛克(Warren Buffett)和沃尔特·皮茨(Walter Pitts)。感知器规划了一个决策模型,该模型可以基于一组给定的二进制输入输出不同的结果。这些输入可以具有不同的权重来说明它们的重要性水平,因此其思想是计算恰好大于或小于与实际感知器本身密切相关的特定阈值的二进制输入的加权和。

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

感知器图式

感知器也可以用一个简单的代数公式来表示:

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

定义感知器的代数表达式

2.乙状结肠神经元

乙状结肠神经元是比感知器稍微复杂一点的模型。与只能保存 0 或 1 值的感知不同,乙状结肠神经元可以在 0 和 1 之间的范围内变化,因此它可以保存无限个数字。它的优点是,我们极大地增加了输出规模,因此模型在数值上变得更加稳定,因为输入权重的微小变化会导致输出的微小变化。在之前的模型中,无论我们调整输入权重有多小,输出都会突然在 0 和 1 之间切换,而使用 sigmoid 神经元,我们可以在输出变化中达到一定程度的平滑度。

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

大脑神经元,数字图像。科技日报。

更清楚地说,这里的神经元扮演了一个 sigmoid 函数的角色,它接受所有输入的加权和,并输出一个介于 0 和 1 之间的数字。一旦加权和大于其阈值,神经元就被 激活 。内部阈值通常被称为 偏差 专门针对每个神经元进行缩放。

总而言之,sigmoid 神经元计算其输入的加权和,应用 sigmoid 函数将结果压缩在 0 到 1 之间的数字范围内,最后将获得的结果与其阈值进行比较,这样它就可以点亮或熄灭。

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

表示乙状结肠神经元行为的模式

网络层

1.什么是层

基本上,将多个神经元并联或串联堆叠在一起就构成了一个层。但是,正如你可能明显预期的那样,这不仅仅是简单地随意堆积神经元。每个网络都是为特定的任务而构建的,因此它具有以不同方式组合的不同类型的层。但一般来说,多种架构模式中常用的层有三种类型,输入层隐藏层、输出层

  • 输入层:输入层是第一层,直接与提供给网络的外部原始数据交互。这一层的主要目的是标准化外部数据格式,使其适合下一层和整个网络。无论给予网络的数据的性质如何,输入层对该数据应用变换以生成一组特定的数字, 张量 ,它们代表每个特定的输入。网络只和数字打交道。

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

输入层结构

  • 隐层:与 没有什么神秘的。 既不是输入层也不是输出层的层称为隐藏层。这些层在网络架构中非常重要。它们负责检测与数据相关的特定模式,这将帮助网络学习如何识别输入数据或将其分类到特定类别。

从更科学的角度来说,这些层参与了生成抽象层次的过程。这意味着,网络能够检测和学习的逻辑模式越多,它的“抽象能力”就越多,从而使系统从简单的原始数据归纳为高级概念。

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

JR Korpa 在 Unsplash 上拍摄的照片

同样的概括过程本能地发生在我们的大脑中,甚至没有注意到。从一张狗的图片中,我们会立即想到一种动物,因为对于一个狗的形象,我们已经了解了与帮助区分狗和猫的生理特征相关的特定模式。从某种意义上来说,从一只狗的形象到对它所代表的思想的高层次理解的整个过程是通过组装多个抽象层建立起来的。

每个网络根据网络要解决的问题的性质来定义其隐藏层,因此有多种设计可供使用。一种体系结构可以很好地解决某个问题,但在另一种体系结构上可能表现不佳。

这些层非常有趣的是,一层中的激活模式会导致下一层中非常特殊的模式,如此类推。这意味着每一层负责检测数据中的奇异模式。在将图像分类为目标标签的卷积神经网络的情况下,它们在其隐藏层中实现了一种机制,可以想象得到,这种机制可以将像素组合成边缘,将边缘组合成图案,最终将图案组合成数字。

你可以查看由 Omar M’Haimdat 写的一篇有趣的文章,从开发者的角度获得 CNN 的第一手资料。

[## 从 iOS 开发者的角度探索卷积神经网络(CNN)

计算机视觉领域中卷积神经网络概念的简要说明

heartbeat.fritz.ai](https://heartbeat.fritz.ai/exploring-convolutional-neural-networks-cnns-from-an-ios-developers-perspective-162664130d5b)

边注:在这个阶段,如果你正在寻找 CNN 的细节,我强烈推荐你阅读 Yann LeCun 的论文:基于梯度的学习应用于文档识别

  • 输出层:在处理复杂模式检测任务的前几层进行连接后,输出层上的激活意味着将输入数据标记为目标类别。因为在所有中间工作之后,神经网络的主要作用是正确地匹配给定的和期望的,因此就神经元而言,输出层的大小与数据中不同标签或类别的数量相同。例如,为对狗和猫进行分类而构建的网络在输出层必然有 2 个神经元,给出两种可能性中每一种的正确概率。

输出层中最常用的激活函数是 Softmax,它计算每个目标类在所有可能的目标类中的概率分布。

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

Softmax 数学定义

数学中,softmax 函数,也称为 softargmax 或归一化指数函数,是一个将 N 个实数的向量作为输入,并将其归一化为由与输入数的指数成比例的 N 个概率组成的概率分布的函数。

神经网络架构

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

神经网络动物园由阿济莫夫研究所

有大量不同的网络架构可供使用。但是请记住,架构取决于问题的类型和预期的目的。事实上,有许多设计模式或架构已经被证明更适合一组特定的问题。网络体系结构是一个活跃的研究领域,每年都有许多这方面的论文发表。

一般来说,有 5 大类神经网络:

  • **前馈神经网络:**这些神经网络是 ANN ( 人工神经网络)的最简单形式之一,其中数据被馈送到网络,并且仅在一个方向上传播。数据通过输入节点,在输出节点上输出。这种神经网络可以有也可以没有隐藏层,这就是为什么称为前馈网络。
  • **径向基函数神经网络:**径向基函数是一组用于距离计算的常用函数,它们考虑了一个点相对于中心的距离。RBF 神经网络使用径向基函数作为激活函数。网络的输出是输入和神经元参数的径向基函数的线性组合。
  • **递归神经网络:**递归神经网络(RNN)是一种常用于语音识别和自然语言处理(NLP)的人工神经网络。rnn 旨在识别数据的顺序特征,并使用模式来预测下一个可能的场景。

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

长短期记忆 RNN 的示意图,由 colah 的博客提供。

  • **卷积神经网络:**卷积神经网络类似于前馈神经网络,其中神经元具有可学习的权重和偏差。细胞神经网络在许多领域有许多应用,如图像识别、物体检测、人脸识别、图像分析等。

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

来源:神经网络仿真 GIF

  • **模块化神经网络:**模块化神经网络由不同的网络组成,这些网络独立工作并对输出做出贡献。与构建和执行子任务的其他网络相比,每个神经网络都有一组独特的输入。

结论

我希望这篇文章有助于揭开神经网络背后不难理解的数学概念的神秘面纱,并且我很肯定,经过一点实践,你可以很容易地熟悉这些概念😉。

我想提一下激发我写这篇文章的不同来源:

在第二部分,我将介绍神经网络的学习方式,我们将探索许多令人兴奋的概念,如反向传播、*梯度下降、*和等等。所以请继续关注下一部分😉😉。

人工智能增强的传染病监测的未来会是什么样子?

原文:https://towardsdatascience.com/what-could-a-future-of-ai-augmented-infectious-disease-surveillance-look-like-1950363ebb2c?source=collection_archive---------31-----------------------

今天我们离这有多远?

在新冠肺炎疫情之前,预计 2020 年全球将运营 4000 万次航班,运送近 50 亿名乘客。这一数字逐年增长,这意味着如果一种新的传染性疾病出现,它可以以前所未有的速度和规模在本地和国际上传播。

尽管过去几个世纪技术取得了巨大进步,传染病仍然威胁着全球健康。由于日益全球化,传染性病原体在世界范围内迅速、意外传播的可能性变得更高了。快速的城市化、国际旅行和贸易的增加以及农业和环境变化的改变增加了病媒人群的传播,使更多的人处于危险之中。

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

一次飞行中的飞机数量。来源:https://www.flightradar24.com/

当我们开始展望未来爆发预防的前景时,自动共享和汇集数据是更好地了解所关注事件的关键部分。拥有一个自动化的“事件通知器”,能够以人类无法达到的速度扫描大量数据,并标记相关模式,将使这一过程更加敏感和有效。

为了防止疫情的传播,我们需要知道哪些疾病在哪里,它们传播的速度是多少,以及它们是如何传播的。这包括汇集来自不同地点的医院、全科医生和社区卫生工作者的知识。拼凑一种疾病在一个地区的传播通常需要不同地点之间的沟通,这只有在人们特别关注的情况下才会发生。当电子笔记并不总是被记录并且通常不可互操作时,这可能是一项重要的任务。但是,由新冠肺炎引发的向数字医疗转移的紧迫性日益增加,这可能会使我们在未来更好地利用这些数据。

[## 冠状病毒危机如何影响英国的数字医疗?

拥抱新数字技术的风险/收益等式已经被颠覆了

medium.com](https://medium.com/@nwheeler443/how-has-the-coronavirus-crisis-impacted-digital-healthcare-in-the-uk-16d8182984e4)

大数据能告诉我们什么?

如果以正确的方式收集,关于患者、他们的活动、病原体的基因组序列、治疗耐药性和其他因素的大量数据可以回答一些重要的问题。下面的列表并不详尽,而是涵盖了我最近一直在思考的一些事情:

病原体可以感染哪些宿主?

大多数导致流行病或大流行的主要疾病都是病原体从另一种动物跳到我们身上的结果。感染人类的能力是一种编码在病原体 DNA 中的特性,所以如果我们有足够的信息,我们应该能够设计出根据病原体 DNA 预测其宿主范围的算法。

这一领域的一个例子是机器学习算法,它试图预测人类食物中毒可能来自哪种动物。通常情况下,如果很多人同时报告食物中毒,就怀疑爆发了。如果我们有 DNA 测序来确认感染每个人的细菌或病毒是相同的,并且所有的分离株都是密切相关的,这就更是如此。沙门氏菌是食物中毒的常见原因,它可以通过一系列动物来源进入食物链,也可以通过动物粪便污染其他食品(如沙拉蔬菜)进入食物链。几个小组正在建立机器学习模型,试图将沙门氏菌的 DNA 突变与特定的动物种群联系起来,这将使我们能够更有效地识别污染食品的来源。更多信息见下文:

[## 爆发追踪:机器人之战

两种用于食物中毒溯源的机器学习算法分析

medium.com](https://medium.com/@nwheeler443/outbreak-tracing-a-battle-of-the-bots-864daa7e0b15)

人们已经在做一些很酷的工作,研究冠状病毒,看看哪些其他病毒可以像 SARS、MERS 和 2019-nCoV 一样传染给人类。他们还在研究哪些动物可以作为新型冠状病毒的宿主或实验系统。这项工作最酷的部分是利用公民科学和我们对新型冠状病毒如何与我们的细胞相互作用的理解来设计新的病毒治疗方法。目前,这项工作涉及实验室工作和使用可视化和人类判断的计算工作的结合,但随着通过计算模拟蛋白质结构的能力的提高,这项工作在未来可能会实现数字化自动化。

[## 是什么让新型冠状病毒能够感染人类?

我们如何识别下一个疫情威胁?

medium.com](https://medium.com/@nwheeler443/what-makes-the-new-coronavirus-able-to-infect-humans-98e6a79c82b4)

给定的病原体有多危险?

在某些情况下,你可以观察一种病毒或细菌,看看它们是否比平常更具传染性或致命性。例如,我们可以寻找细菌携带的毒素,我们知道这些毒素会导致感染者出现严重症状,或者我们可以使用更复杂的机器学习方法根据我们过去看到的危险菌株的例子,寻找特定菌株更危险的迹象。

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

现代监测工具可以根据细菌的基因组序列评估世界各地细菌带来的风险:见本文

[## 在非洲引起血流感染的细菌几乎对所有药物都有耐药性

机器学习正在帮助我们更快地发现高危疾病

medium.com](https://medium.com/@nwheeler443/a-dangerous-new-salmonella-strain-is-emerging-in-sub-saharan-africa-eb393d932909)

哪种治疗方法能有效治愈感染?

抗生素耐药性对公共卫生的威胁越来越大。我们越来越多地看到适应医疗环境的疾病菌株,在医疗环境中抗生素无处不在,或者在社区环境中人们经常用抗生素自我治疗。开错抗生素会助长耐药性的传播,导致患者遭受不必要的痛苦,并有可能死于可治疗的感染。

像我一样的许多研究人员正在探索使用机器学习方法预测哪些抗生素对治疗特定感染有效,哪些无效的方法。但是,机器学习算法可能倾向于偏向或者在代表不足的群体中表现更差。要了解有关我们如何构建和测试这些算法的更多信息,请参见以下内容:

[## 机器学习算法应该指导抗生素处方吗?

机器学习可以解决抗生素耐药性危机。他们在现实世界中会表现良好吗?

towardsdatascience.com](/should-machine-learning-algorithms-guide-antibiotic-prescribing-f74753e28472) [## 构建预测抗生素耐药性的机器学习模型

我第一次向计算机科学学生介绍用 ML 预测抗生素耐药性的研讨会的回顾

towardsdatascience.com](/building-machine-learning-models-for-predicting-antibiotic-resistance-7640046a91b6)

一种新的疾病如何在 T2 传播?

飞行数据和手机数据的使用可以告诉我们人们是如何移动的,因此疾病可以以多快的速度传播到其他地区。作为英国广播公司资助的公民科学项目的一部分,一项研究使用一个应用程序收集人们在 24 小时内的运动和接触数据,以模拟疫情流感可能如何在英国蔓延。这些数据使研究人员能够对比控制疾病爆发的策略,看看什么是有效的。

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

图片来自这项研究

“在紧急情况下,拥有准确的信息非常重要,”Massaro 说。“这就是为什么手机定位数据比年度人口普查记录更好。问题是这些数据归私人公司所有。我们需要认真考虑改变获取这类信息的法律——不仅仅是为了科学研究,也是为了更广泛的预防和公共健康原因。”

脸书也参与了这项工作,利用卫星图像和人口普查数据制作高质量的人口密度地图,并与学术界分享汇总的用户数据,以帮助他们监测重大灾害和传染病的影响:

[## 灾难地图-脸书永久数据

灾难地图使用统计技术来维护个人隐私。例如,我们只共享去识别的…

dataforgood.fb.com](https://dataforgood.fb.com/tools/disaster-maps/)

一种已知的疾病是如何传播的?

通常,确定有感染该疾病风险的人需要接触追踪,即采访该疾病患者,并要求他们记住与他们接触过的每个人。据估计,46%的新冠肺炎病毒传播来自已经感染但尚未表现出任何症状的人。由于这一点,以及我们自身记忆的不可靠性,依靠患者回忆往往在正确追踪所有感染和防止进一步传播方面做得不好。在冠状病毒疫情期间,一些国家发布了手机应用程序,以更好地实时跟踪疾病的传播。这些应用的发布正在围绕数据的数量和质量、隐私、个人自主权和数据安全产生大量权衡,这些都是我们在疫情结束后可能要应对的问题。

中国发布了流行的微信应用程序的扩展,该应用程序收集用户移动和冠状病毒诊断数据。一种人工智能算法分析这些数据,并给每个人一个颜色编码的风险评估,红色表示两周的隔离,橙色表示可能要在家里呆 7 天,绿色表示允许个人自由活动。该应用程序使用手机之间的邻近感测、全球定位系统的协同定位以及手机无法进入的建筑物进出口的二维码扫描来评估人们对病毒的潜在暴露。分数的基础没有得到解释,这让那些被要求自我隔离却没有明确原因的人感到沮丧。

中国有利用重大事件的历史,如 2008 年北京奥运会和 2010 年上海世博会,引入新的监测工具,这些工具超出了其最初声明的目的。《纽约时报》对新冠肺炎软件代码的分析发现,该系统似乎与警方共享用户信息。当用户授权该应用程序访问他们的个人数据时,一段名为“reportInfoAndLocationToPolice”的代码将此人的位置、城市名称和识别码发送到服务器。这些隐私和社交控制方面的担忧可能会阻止人们使用这些应用,特别是在公民期望高度隐私的国家。

新加坡有另一种选择,它鼓励公民安装这款应用程序,志愿帮助追踪接触者。当局强调,使用该应用程序是自愿的,用户必须“明确同意”才能参与 TraceTogether。根据开发该应用程序的 GovTech 的说法,这种同意可以随时撤回。这款应用的工作原理是在手机之间交换短距离蓝牙信号,以检测附近的其他应用用户。该应用程序采取措施保护用户的隐私,定期生成新的匿名 id,在设备之间共享。这将防止恶意行为者窃听这些信息,并随着时间的推移跟踪某人的活动。该应用程序也不收集位置数据,只收集与其他应用程序用户的接近度。至关重要的是,这些接触者的记录存储在用户的本地手机中,不会发送给当局然而,如果卫生部在接触者追踪调查中要求用户分享他们的数据,而用户拒绝,他们可能会根据《传染病法》受到起诉。

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

英国研究人员正在开发的应用程序工作流程的一个例子。链接

其他国家正在开发自己的应用程序,对用户隐私和数据治理给予不同程度的关注。虽然这些应用程序在几个月前可能会有用得多,而且可能还需要一段时间才能公开发布和广泛采用,但它们可能会对未来的疾病爆发产生重大影响。美国和英国等国家的一个担忧是,许多群体正在同时开发应用程序,如果它们都被发布,每个应用程序可能只会抓住一部分人口。地方政府可能需要一些协调,以确保在同一个地方收集足够的数据。

由于存在传播感染的风险,世界各地的许多实验室目前都被关闭了,但计算实验可以自由进行。在“大数据”和“人工智能”成为世界各地研究项目越来越多的组成部分的时间点上,这个疫情的出现可能会成为一种催化剂,将所有人的注意力集中在这一领域,并加速采用将在未来限制传染病传播的技术。

模拟 2020 年 NCAA 男篮锦标赛

原文:https://towardsdatascience.com/what-could-have-been-the-2020-ncaa-mens-basketball-tournament-9dfecce66cd1?source=collection_archive---------24-----------------------

使用数据尽可能多次尝试模拟,以查看 2020 年疯狂三月的结果和故事情节

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

哪个队会有最后的投篮机会?模拟工具可以帮助我们窥视另一个现实。由马库斯·斯皮斯克通过 rawpixel (CC0 1.0)拍摄的照片。

作者注:锦标赛又回到了 2021 年!查看我的 2021 赛季 这里 关注我并订阅 让我的支架每年一次准备好就直接送到你的收件箱。

随着冠状病毒导致 2020 年 NCAA 男篮锦标赛史无前例的取消(更不用说 NCAA 的所有活动了),其球员和球迷都在想,如此受欢迎的年度仪式会发生什么。

周四的 CBS Sports ’ Eye on College Basketball 播客(从 1:06:30 开始)中,主持人马特·诺兰德加里·帕里什根据杰里·帕尔姆 3 月 12 日的预测数据对本赛季进行了一次假想的比赛。这让我想到:我真的可以模拟比赛,并确定 2020 年疯狂三月的另一个现实的故事线吗?

已经有一些人模拟了锦标赛(被亲切地称为“模拟周日”),但我想自己运行模拟(并能够运行多次),以了解主要的故事线可能是什么。作为三月疯狂的超级粉丝(我广泛记录了的模型,我用它来挑选过去两年的冠军),我发现自己手头有点时间,渴望在失去的一年中有所作为。

因此,我使用 CBS Sports 的 Jerry Palm 的 3 月 12 日预测括号,建立了一个电子表格,允许你模拟整个锦标赛,使用反映每个队的 KenPom 排名的真实概率:

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

模拟 2020 年男子大学生篮球赛。复制一份谷歌表单自己运行模拟。

要亲自尝试,复制一份 Google 表单(需要 Google 帐户),然后如上所示选中“Bracket”选项卡上的“Simulate Tournament”复选框。括号将被填满,一个冠军将被加冕。滚动整个括号,看看疯狂是如何进行的,或者只是阅读每个模拟动态生成的顶级故事线。取消选中并重新选中复选框以再次运行模拟。

注意:每个模拟都是使用一组唯一的随机数生成的,一旦删除就无法重新创建。似乎适合一个三月的疯狂,反正没有发生!如果您喜欢某个版本的历史,请务必制作一份副本,避免在原始副本中再次运行模拟。

它是如何工作的

为了模拟锦标赛,我首先从 CBS Sports 的 Jerry Palm 的 3 月 12 日投影括号开始,以确定 68 场比赛的定位,包括前四场比赛。

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

CBS Sports 的 Jerry Palm 的预测的 2020 年括号用于模拟。

然后我导入了每个团队的肯波排名。在这里,我使用这种方法计算了每场比赛的获胜概率,得出了预计的积分差距和平均比赛分数,并根据两支球队的节奏进行了调整。

注意:在看到从 KenPom 得出的概率相对于由 fivethirtyeeight**生成的 历史预期获胜概率普遍看好 16 号种子后,我对 1 号种子与 16 号种子游戏的概率进行了小幅调整。我把任何基于肯波姆的获胜概率为 90%的队伍平均还原为 100%,导致大多数一号种子队的获胜概率为 90%左右,而不是 90%以下。

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

肯彭排名

为了构建仿真电子表格,我使用了 RANDBETWEEN 函数来动态生成 1 到 9999 之间的随机数。这将决定谁赢得了即将到来的比赛。

例如,我的模型表明#1 贝勒大学将以 96.58%的隐含概率赢得与#16 波士顿大学的第一轮比赛。因此,如果 RANDBETWEEN 函数生成的 1 到 9999 之间的随机数是 9658 或更少(匹配 96.58%的隐含获胜概率),我将获胜的一方交给 Baylor。如果随机数高于这个数,我就把胜利给波士顿大学。这确保了在模拟中获胜的可能性与团队的 KenPom 排名所暗示的获胜概率相匹配。

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

如何利用随机数和隐含概率确定获胜者(来自数据表

从那里,我得到隐含的点差和总点数,并对其进行调整,以创造性地显示一个假设的游戏分数。使用上面的例子,贝勒大学将比波士顿大学多 16.4 个百分点。如果生成的随机数是 4,829(上面提到的贝勒 9,658 个获胜场景的一半),我计算出一个贝勒赢~16.4 分的游戏结果。然而,随机数越接近波士顿大学的中奖幻数 9659 或以上,贝勒的胜率就越低。同样,随机数越接近 1,贝勒的胜率就越高,最高可达价差的两倍。

然后,锦标赛的每场比赛都有一个随机数,由概率加权结果确定的每场比赛的获胜者进入下一轮,直到只剩下一个冠军。

注意:这种类型的模拟相当简单,不像您在其他地方可能发现的那样复杂,因为它不会在获胜后调整团队实力,也不会根据获胜相对于预期的积分差距的优势(或劣势)进行调整。该队的肯彭得分在整个锦标赛中保持不变。

括号表上,可以使用“模拟锦标赛”复选框打开和关闭模拟,然后以括号形式显示结果,基于种子的冷门以红色表示:

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

我还从模拟锦标赛中动态生成关键故事线:

  1. 加冕冠军
  2. 四强赛
  3. 灰姑娘的故事(定义为任何队伍#11 或更高达到甜蜜的 16)
  4. 锦标赛最大的冷门
  5. 头号种子队是如何一路败北的

观察

总的来说,我认为模拟在真实模拟比赛方面做得很好。大多数时候选出的冠军是可信的,有适当频率的惊喜获奖者把“疯狂”放在三月疯狂。

以下是在运行和记录 500 次模拟后,每个团队进入某一轮的可能性的完整分析:

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

注: 没有 100%机会进入第一轮的球队意味着他们必须在前四轮比赛中才能进入第一轮 64 强。

看到# 1-整体堪萨斯以 23%的夺冠概率这么强,我很惊讶;这证明了他们的实力,或许通往冠军的道路比预期的更容易。

也许是因为他们会遇到如此强大的堪萨斯队,排名第四的肯塔基队表现不佳,只有 38%的时间进入甜蜜的 16 强。

在任何给定的模拟中,通常似乎都有适当数量的扰乱,尽管做得足够多,您会看到 16 种子扰乱多于 1 种子,这表明这些扰乱应该比实际情况更加频繁。几年前,当 UMBC 击败弗吉尼亚成为第一支击败 1 号种子的 16 号种子队时,FiveThirtyEight 写道,16 号种子没有更早赢得比赛是不太可能的。

一个可能的改进是在每场胜利后,根据胜利相对于预期的差距来调整球队的实力。我想知道它是否会对事情有那么大的影响…我生成的模拟看起来都是合理校准的,尽管这只是我未经训练的眼睛。

就是这样!对于所有没有机会体验今年锦标赛的球员(尤其是老年人)和球迷,我希望这个工具能帮助你梦想本可以成为的锦标赛。

在你走之前…

如果你喜欢这篇帖子,你可能也会喜欢我的其他关于体育和数据的帖子——给我一个关注,当我发布更多帖子时会通知我:

关于数据科学,新冠肺炎能教给我们什么

原文:https://towardsdatascience.com/what-covid-19-can-teach-us-about-data-science-1e940f258f9e?source=collection_archive---------47-----------------------

疫情给所有工作数据科学家的 3 个教训

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

米卡·鲍梅斯特在 Unsplash 上的照片

新冠肺炎·疫情事件是一个悲剧,但也是一个启发性的案例,说明了数据(以及统计和预测模型)在危机中的价值。它也暴露了社会与数据关系中的许多缺陷。虽然作为一名数据科学家,看到“基于代理的模拟”和“指数增长率”等术语成为主流令人兴奋,但看到统计数据以如此不科学的方式应用也令人沮丧。在本文中,我将探讨我从疫情中学到的三个数据科学经验,以及我们如何更广泛地应用它们。

1.大多数人不理解概率

作为人类,我们识别模式的能力无疑对我们这个物种非常有用,但它也会把我们引入歧途。事实是,很多统计数据是不直观的,当谈到概率时,常识往往会误导人。为了说明这一点,让我们考虑洗牌的行为(大多数人已经做了很多次,并建立了一些直觉)。我最近让我的 10 个朋友估计一下将一副牌洗牌成一个全新的顺序(即人类历史上任何一副牌都从未出现过的顺序)的概率。大多数人猜测答案是 0,并推断现在肯定已经看到了所有可能的卡片组合。一些人怀疑这是一个骗局,估计概率可能更高,但没有人提出 0.2 以上的概率。正确的答案是,每次你洗一副牌(假设真的是随机洗的),你几乎可以保证这是第一次有任何一副牌按照这个顺序洗。一副 52 张牌可能的唯一排列总数是 52!≈ 8x10⁶⁷或

80000000000000000000000000000000000000000000000000000000000000000000.

从上下文来看,如果自宇宙诞生以来,今天活着的每个人每秒都洗一副牌,那将只相当于相对较小的 3x10 ⁷洗牌或

3000000000000000000000000000.

我们无法解释概率的另一个著名例子是 2016 年美国总统大选。在大选前,政治民调机构认为唐纳德·特朗普有大约 25%的机会击败希拉里·克林顿,但当然他最终获胜了。这导致公众谴责民调公司和专家“搞错了”。现在要明确的是,这次选举确实提出了一些关于如何进行民意调查的合理方法问题,但这并不能改变这样一个事实,即当发生概率为 0.25 的事情发生时,我们永远不应该感到惊讶。抛两次硬币,两次都正面朝上(几率相同的事件)会引发类似的愤怒吗?

我们概率盲点的结果是,我们擅长识别模式,但不擅长从这些模式中得出结论。就疫情而言,这使我们特别容易受到关于新型冠状病毒病毒传播的政治诡辩和错误信息的影响。在过去的 6 个月里,我看到了无数的“分析”,其中许多都发表在主要的新闻媒体上,打破了统计学的基本规则。

2.理论很重要

随着数据科学在过去几年中的普及,进入门槛已经大大降低。现在,任何具有基本编程背景的人都可以访问庞大的公共数据集,并摆弄深度学习模型。虽然总的来说,我认为这种民主化是一种积极的趋势,但我确实担心人们会忽略数据科学中严格的、可能不那么令人兴奋的方面,如统计学、概率论和数学。我想起了一句古老的谚语一知半解是一件危险的事情,因为如果没有对这些主题的良好理解,一个业余数据科学家只是有更多的工具来寻找虚假的相关性。新冠肺炎疫情已经表明,滥用统计数据不仅是不科学的,而且可能是危险的。这篇文章没有足够的篇幅来探讨我在这个疫情中看到的所有谬误的推理,但是下面的两个例子相当典型。

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

杰斯温·托马斯Unsplash 上拍摄的照片

例 1:菲尔博士

菲尔博士最近通过比较新冠肺炎的死亡人数和每年 360,000 的游泳池溺水死亡人数,质疑了封锁措施的必要性。首先,我不知道这个数字从何而来。来自疾病控制和预防中心的数据表明,美国每年意外溺水的真实人数更接近 3500 人。

菲尔博士的推理不合逻辑的第二个原因是,与新冠肺炎不同,意外溺水的风险不是倍增的(即,它不会像病毒一样传播)。如果我们在一周内观察到 100 例溺水死亡,我们没有理由期望这个数字在下一周翻一番,再下一周再翻一番。如果没有遏制疾病传播的政策,这就是你在新冠肺炎会看到的那种增长。

菲尔博士在这里犯的第三个错误是暗示溺水死亡和新冠肺炎死亡来自相似的概率分布。这显然是不真实的。正如 Taleb、Bar-Yam 和 Cirillo (2020)所显示的,流行病是厚尾的,而游泳池死亡不是[2]。考虑这个病态的假设:如果有人告诉你 10%的美国人口在一年内死亡,你会认为他们更有可能死于新冠肺炎或意外溺水吗?溺水死亡(尽管是悲剧)不会造成生存威胁,但流行病会。

示例 2:任意叠加曲线

我观察到的另一个现象是人们任意叠加趋势图,胡乱外推。

这条推文中的情节比较了澳大利亚新南威尔士州和维多利亚州社区传播的确诊病例数量,并广为流传。这里明显的暗示是新型冠状病毒在新南威尔士州的传播速度比一个月前在维克的传播速度要快。下面是我对这张图表的两个担忧:

  • 1 个月的滞后是任意的,看起来是被选择的,因为曲线在视觉上是一致的。我的第一直觉是使用一个滞后时间,它等于维克的第一例社区传播和新南威尔士州的第一例社区传播之间的天数。也许有比这更好的选择,但是你当然不应该操纵数据来适应你的假设,然后说“嘿,看数据多么支持我的假设!”。
  • 每天的计数太少,无法得出关于社区传播的有意义的结论。该图表的创建者认为,新南威尔士州社区的真实传播率高于一个月前的维克,但新南威尔士州 7 天平均计数的一半不到每天 1 例!即使没有完全理解病毒如何在社区中传播的机制,我们也观察到每天的计数非常嘈杂,尤其是当这些计数很低时。从噪音中推断是不好的做法。

下面我重新制作了同样的图表,但是加入了最新的数据,我们可以看到趋势完全不同。请注意,为了保持一致性,我在 y 轴上使用了对数标度,但这实际上掩盖了这些曲线的不同之处。

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

作者图片

3.数据科学不是魔法

即使我们避免所有这些统计上的谬误,我们也必须诚实地说出我们对这种病毒的实际了解程度;不是很喜欢。说到底,不管你的模型有多复杂,你的技术有多先进,如果你没有关于你正在建模的系统的良好数据,你的结果就会打折扣。

我观察到的大多数病例数和死亡数预测都使用了统计和/或流行病学模型,但成功率很低。5 月份对 IHME 模型的一项调查(该模型为美国的政策决策提供了信息)发现,“该模型隐含的不确定性水平令人怀疑其在推动健康、社会和经济政策发展方面的有效性”[3]。本文的重点不是建模的技术细节,但是无论选择哪种方法,预测者在设计他们的模型时都不可避免地需要做出许多假设。模型设计的不确定性部分是由于以下领域的知识空白。

病毒的机制

我们每天都在更多地了解这种病毒的本质,但仍有许多我们不了解的地方。在撰写本文时,关于超级传播者的作用、无症状传播、气候等问题仍然存在。在病毒的传播中。直到最近,大多数文献表明,病毒主要在表面传播,气溶胶传播不是太大的问题。在最新的研究中,这种情况发生了逆转。

人类行为

由于病毒是由人传播的,模拟人类行为将是许多预测模型的核心,但这是众所周知的困难,特别是在像疫情这样的新情况下。建模者不仅需要假设人们将如何应对不断增长的病例数和公共卫生政策,病毒的传播对异常值也非常敏感。以韩国为例,在“31 号病人”感染之前,该国的病毒得到了很好的控制。据估计,这个人对超过 5000 人的感染负有责任(这是任何模型都无法预测的结果)[4]。

政策

如果病毒存在于一个静态系统中,从历史数据中建立传播模型会相对简单。不幸的是,事实远非如此。政府政策是动态变化的,人们对这些政策的反应也是如此,这就产生了一个类似于向移动目标射击的建模任务。当试图预测政策 X 的影响时,一个简单的方法是观察政策 X 在其他国家实施时的影响。虽然从过去的结果中吸取经验教训非常重要,但我们也需要记住,各个地区在许多方面可能存在巨大差异,包括人口、地理、气候、测试率、文化、政策实施和政策合规性。例如,与日本等亚洲国家相比,美国人对口罩的态度截然不同。

明确地说,我一点也不批评这些预测者正在做的重要工作。我只想解释为什么建模任务如此困难,为什么立法者和公众不应该期待奇迹。好消息是,我们收集的研究和数据越多,这些模型就会变得越好。

结论

本文概述的经验教训不仅适用于新冠肺炎疫情。最后,我将简要解释我认为这些见解如何能够更普遍地应用于数据科学工作。

  1. 大多数人不理解概率:数据科学家经常与非技术利益相关者一起工作,并需要交流复杂的概念。这个疫情已经证明了数据是多么容易被误解,所以我们有责任在报告分析结果时保持清晰和诚实。
  2. 理论很重要:虽然统计和概率可能不是数据科学中最令人兴奋的方面,但所有从业者都需要理解这些主题。如今,在没有真正理解它们如何工作的情况下,训练非常复杂的模型是可能的,但这并不意味着你应该这样做!没有统计测试、置信区间、随机变量和大数定律等概念的知识,你真的是在盲目飞行。
  3. 数据科学并不神奇:在过去的十年里,媒体对计算机视觉、推荐引擎和语音识别等领域的进步进行了大量热情报道。不管是好是坏,这导致了一种看法,即数据科学家可以创造奇迹,但事实是,许多项目就像建模新冠肺炎疫情:复杂,缺乏数据,耗时。对利益相关者坦诚并设定现实的期望是很重要的。

参考

[1]美国疾病预防控制中心,意外溺水:获取事实 (2016),https://www . CDC . gov/homeandrecreationalsecurity/water-safety/water injuries-fact sheet . html

[2] N. Taleb,Y. Bar-Yam 和 P. Cirillo,关于厚尾变量的单点预测 (2020),国际预测杂志

[3] R. Marchant,N. Samia,O. Rosen,M. Tanner 和 S. Cripps,边走边学——检验新冠肺炎每日死亡人数预测的统计准确性 (2020),新冠肺炎电子版

[4] Y. Shin,B. Berkowitz 和 M. Kim,韩国教会如何助长冠状病毒的传播 (2020 年),《华盛顿邮报》

新冠肺炎教给我的分析方法

原文:https://towardsdatascience.com/what-covid-19-has-taught-me-about-analytics-980bc0751540?source=collection_archive---------47-----------------------

内部 AI

后 Covid 世界将需要一些关于分析的新思维

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

图片由:【Pexels.com】上的马库斯·斯皮斯克

关于政府对新冠肺炎危机的反应,已经有很多报道,大部分都带有批评。有几个国家似乎做对了,其中一个是南非,南非的反应受到了世卫组织的赞扬。经过一个多月的艰难封锁后,南非总统西里尔·拉马福萨先生宣布了一些开放南非经济的声明。政府决定采取一种基于风险的方法,据 Ramaphosa 称,这种方法将以科学和数据为指导。

这让我想到数据和分析是如何在最厌恶信息的家庭中变得根深蒂固的。人们在谈论感染率每百万人口的死亡率,甚至有人引用 Worldometer 等数据聚合网站的统计数据。虽然你不能否认数据和分析对抗击这种疾病所做的贡献,但我不禁反思了我们作为分析从业者仍然需要关注的一些领域,因为它与业务有关。

数据整合

很明显,整合了来自几个来源(医疗保健机构、医学实验室等)的数据。)是新冠肺炎决策者的绊脚石。政府和其他组织一直在争分夺秒地从这些来源获取足够的数据,而将这些数据集成到一个中央存储库中似乎是一个相当大的挑战。

与任何分析人员交谈,他们都会确认这是房间里的大象。我们还没有能力充分整理出跨系统的集成,因此获得一个大的图景仍然是一场斗争。尽管我们经常满足于现状,但需要定期信息流的情况会凸显我们在数据集成方面的不足。因此,从集成的角度来看,必须对业务关键型数据进行优先级排序。否则,关键时刻的快速决策将受到影响。

人工智能仍被数据独裁所扼杀

人工智能在金融和保险等特定行业已经相当成熟,然而,在其他行业的采用却非常缓慢。这个疫情突显了医疗行业人工智能的缺乏,这对我们其他人来说也应该是一个危险信号。

人工智能开发的核心原则之一是足够和相关的数据集,因此数据民主化至关重要。显然数据隐私在当前危机的数据民主化缺失中扮演了重要角色,然而,对于我们其余的人来说,仍然有一个筒仓式的数据处理方法的合理理由非常少。通过数据民主化可以释放的价值远远超过对职能部门内部的某些信息进行保密的需要。这从根本上改变了组织对数据及其用途的看法,并为数据成为所有人的共享资产奠定了基础。任何经理都不应该完全控制他们部门的数据,并阻止数据科学家探索和挖掘有价值的见解。

一旦清除了这个绊脚石,数据科学家和分析从业者就可以专注于使用数据来开发高级分析模型,从而为整个组织增加价值,从而消除局部优化。

云迁移需要快速跟踪

云给一些决策者带来了恐惧,主要是因为缺乏理解。这种担心的主要原因是数据隐私可能会受到损害,公平地说,这是正确的。也就是说,对身体活动的限制凸显了本地解决方案对现代劳动力的低效性。

过去几周,世界上很大一部分工作人口被迫进行远程工作,那些几乎没有基于云的基础设施的人感到难以置信的沮丧。随着远程工作的优势逐渐显现,决策者将不得不投资云迁移,以便从远程位置提供更加协作的工作环境。对于那些使用数据集将标准硬件推向极限的人来说尤其如此。

诺亚规则将是分析成功的关键

我的老板最近向我介绍了沃伦·巴菲特提出的诺亚规则。该规则规定:

“预测下雨不算,造方舟才算”

后 Covid 世界将会是一个没有多少现金可以挥霍的世界,因此性感节目将会被关闭。幸运的是,多年来,我们在分析界一直在驾驭与我们的职业相关的浪潮。我们已经获得了大量的投资,也有很多关于分析就像是商业成功的圣杯的文章。很多宣传都站得住脚,但太多的分析项目从来没有增加切实的价值,或者只是无限期地停留在概念验证模式。

因此,我们需要超越预测,专注于让用例跨越界限。但更重要的是,我们必须与利益相关方合作,确保分析的价值在商业中得到释放。这通常意味着与企业内的执行职能部门建立更紧密的工作关系,以确保业务流程、规划、预算和运营与任何花哨的数据科学模型一起考虑。否则,分析将会慢慢变回一种功能性能力,慢慢消亡。

数据素养是一个比我们想象的更大的问题

许多著名的媒体来源都声称感染率,无论是增加还是减少。我也观察到相当多的人在 LinkedIn 等论坛上评论锁定的成功。对我来说,有一件事变得非常清楚,那就是仍然存在一个巨大的数据素养问题。我们每天面对的数据不是感染率的反映,而是确诊感染的反映。你必须考虑结合感染率进行的测试数量,才能做出任何结论。在比较一个国家和另一个国家时,同样的逻辑也适用。绝对数字并不总是说明问题,一个恰当的例子是比利时,比利时记录了每百万人口中最多的艾滋病死亡人数。

作为数据从业者,我们不仅需要对我们收集用于分析的数据更加挑剔,而且我们还需要花费更多的精力来教育数据的消费者,让他们了解数据的局限性。我们还需要更多地了解数据偏差,尤其是在开发依赖数据偏差的模型时。真正希望成为洞察力驱动的组织将不得不投资于决策者的教育项目,更具体地说是简单数据和统计基础的教育项目。这不仅能让他们提出正确的问题,还能确保从分析结果中获得正确的见解。

Spotify 播客中正在讨论哪些与 Covid 相关的话题?

原文:https://towardsdatascience.com/what-covid-related-topics-are-being-discussed-in-spotify-podcasts-bbc7eb9a3f1?source=collection_archive---------65-----------------------

从 Spotify API 检索数据,使用 LDA 算法进行主题建模

由于最近的新冠肺炎疫情,我在过去的 3 个月里一直呆在家里,一直在寻找在家自娱自乐的方式。听 Spotify 播客已经成为我周末的例行公事,同时重拾我的老爱好钩针编织。然后我就在想,Spotify 播客宇宙是什么样的?

免责声明*:Spotify API 数据检索的代码大部分是根据来自*Sam Brady的源代码完成的。LDA 建模大多是跟随 机器学习加 的教程完成的。两者都经过一些修改后使用。(谢谢!)

从 Spotify API 获取数据

令我兴奋的是,Spotify 已经有了一个开发者 API ,我们可以用它从 Spotify 获取数据,或者为 Spotify 用户触发某些动作。我们需要做的只是注册到网站,创建一个应用程序,并获得 API 令牌。然后,我们可以使用 Python 中的spotipy包从 API 中检索数据。

在这里,我使用的是萨姆·布雷迪的源代码(谢谢!),只需稍加修改即可获得与 Covid 相关的播客剧集列表。我使用了两种方法:

  • 获取包含 Covid 相关术语的播客节目,然后获取这些节目的所有剧集
  • 获取包含 Covid 相关术语的所有剧集

导入包和定义

在这里进口必需品。基本上我们将使用spotipyjson requests包。

import pandas as pd
import numpy as npimport json
import requests
import urllib.parseimport spotipy.util as util

接下来,我们定义与 Spotify API 的连接。

# Get your client id, secret key, and redirect URI from your application [https://developer.spotify.com/dashboard/applications](https://developer.spotify.com/dashboard/applications)client_id = 'xxxxx'  #<----------------- YOUR ID HERE

client_secret = 'xxxxx' #<----------------- YOUR SECRET HEREusername = 'xxxxx'      #<----------------- YOUR USERNAME HEREscope = 'user-library-read' #<------------- depends on your needs, you can select different scope [https://developer.spotify.com/documentation/general/guides/scopes/](https://developer.spotify.com/documentation/general/guides/scopes/)redirect_uri = '[https://developer.spotify.com/dashboard/applications/[application_id]'](https://developer.spotify.com/dashboard/applications/24c33183a3f54ba7893c740aac55d9ab')token = util.prompt_for_user_token(username=username, 
                                   scope=scope, 
                                   client_id=client_id,   
                                   client_secret=client_secret,     
                                   redirect_uri=redirect_uri)

获取播客节目

在这里,我们将获得预先选择的与 covid 相关的关键字(“科罗纳”、“Covid”、“锁定”、“隔离”、“疫情”)的播客节目。结果被添加到数据框中以供进一步研究。

# enter term to search here
search_list = ['corona', 'covid','lockdown','quarantine','pandemic']# search endpoint
endpoint_url = "[https://api.spotify.com/v1/search](https://api.spotify.com/v1/search)?"# PERFORM THE QUERYid_list = []
name_list = []                                         
desc_list = []
publisher_list = []
languages_list = []type = 'show'    
market  = 'US'for i in range(len(search_list)):
    search = search_list[i]
    print(search)
    offset = 0                                   
    more_runs = 1        
    counter = 0  
    limit = 50# max offset is 2000 including limit
while((offset <= 1950) & (counter <= more_runs)):query = f'{endpoint_url}'
    query += f'&q={search}'
    query += f'&type={type}'
    query += f'&offset={offset}'                      
    query += f'&market={market}'
    query += f'&limit={limit}'response = requests.get(query,                                           # get request
                   headers={"Content-Type":"application/json", 
                            "Authorization":f"Bearer {token}"})  
    json_response = response.json()                                           # as a json filefor i in range(len(json_response['shows']['items'])):                      # loop through json
        if json_response['shows']['items'][i] is not None:
            id_list.append(json_response['shows']['items'][i]['id'])               # pull out info from json
            name_list.append(json_response['shows']['items'][i]['name'])           # into empty lists
            desc_list.append(json_response['shows']['items'][i]['description'])
            publisher_list.append(json_response['shows']['items'][i]['publisher'])
            languages_list.append(json_response['shows']['items'][i]['languages'])

    more_runs = (json_response['shows']['total'] // 50 )            # how many more runs of 50 are needed?       

    counter += 1                                                    # increase conditional counter by 1

    offset = offset + 50# set up a dataframe from the listspodcasts_show = pd.DataFrame()podcasts_show['show_id'] = id_list
podcasts_show['show_name'] = name_list
podcasts_show['show_description'] = desc_list
podcasts_show['show_publisher'] = publisher_list
podcasts_show['show_language'] = languages_list

下面是上面代码的结果。

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

在这里我找到了 1998 年的节目,但是有些不是英文的,我无法分析。因此,在下一步中,我将只过滤英语节目。

过滤英语播客

有三种英语定义:通用英语(en)、美国英语(en-US)和英国英语(en-GB)

en_podcasts = pd.DataFrame()
en_podcasts = podcasts_show[podcasts_show.apply(lambda x: 'en' in x['show_language'], axis=1)]en_podcasts_us = pd.DataFrame()
en_podcasts_us = podcasts_show[podcasts_show.apply(lambda x: 'en-US' in x['show_language'], axis=1)]en_podcasts_gb = pd.DataFrame()
en_podcasts_gb = podcasts_show[podcasts_show.apply(lambda x: 'en-GB' in x['show_language'], axis=1)]en_podcasts = en_podcasts.append(en_podcasts_us)
en_podcasts = en_podcasts.append(en_podcasts_gb)en_podcasts

结果被缩短为 995 个仅用英语显示的节目。

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

要从上面的节目中获得剧集列表,并获得所有带有 Covid 相关术语的播客剧集,只需对上面的代码进行轻微修改(在type语法上)。使用的完整代码可以在找到

初始数据探索

从上面的数据检索方法中,我们得到了 Spotify 中与 Covid 相关的播客的一些元数据。这些元数据包括发布日期、节目名称和描述,甚至是剧集的 30 秒音频预览。

它什么时候开始流行?

虽然 Covid 案例在 2019 年 12 月下旬就已确定,但 Spotify universe 实际上直到 2020 年 3 月 6 日左右才谈论它,我们看到发布的剧集数量从之前的每天不到 20 集激增到超过 40 集。这与 2020 年 3 月 5 日开始的美国发现新冠肺炎病例相一致。

剧集数持续增加,2020 年 5 月中旬达到 ~270 集/天。尽管这一趋势在最近几周略有下降,但仍高于 180 集/天。

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

按发布日期排列的总集数(忽略 3 月 7 日的高峰,一个频道在那一天回填了他们的内容)

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

美国新冠肺炎每日新病例(来源:谷歌/维基百科)

从播客剧集图表中看到另一个有趣的模式?不知何故,这些播客在工作日发布内容(比周末高出 2-3 倍)。也许周末也是播客的节日?😄

哪个频道的内容最多?

调查节目出版商和他们的节目,发现有一些出版商有不止一个节目讨论 Covid 相关的问题。例如,iHeartRadio 有三个与 Covid 相关的讨论节目:重开美洲(每日新闻)、妇女(与疫情战斗的女性前线)、与凯蒂和博兹一起回到商业(商业会谈)。

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

顶级播客出版商及其与 Covid 相关的节目

查看播客内容类别,我们发现有几个关键内容类别的集数最高:

  • 宗教内容:布道、宗教鼓励
  • 新闻与研究:每日更新关于疫情的最新案例、影响和研究
  • 娱乐:有影响力的脱口秀,隔离黑客
  • 鼓励:来自因封锁/危机而抑郁的人的心理健康支持

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

集数最高的播客节目

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

月月字云

我们将在分析的第 2 部分更深入地挖掘这个主题:)

每集多长?

在大多数情况下,这些播客从15-49 分钟长。还有一些剧集的运行时间更长。观察这一持续时间与听众点击率或衰减的关系可能会很有趣(正如我们所知,一些人可能会对长时间的节目感到厌倦)。但是,Spotify API 中没有这些数据,因此无法对其进行进一步分析。

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

播客时长

什么是 LDA?

引用 algorithmia ,LDA 是一种算法,它获取一组文档(任何由 up 文本组成的东西)并返回与这些文档最相关的几个主题(由几个单词组成)

主题被表示为单词的加权列表。基于模型的这 3 个主要参数来计算这些单词的权重:

  • 主题的数量
  • 每个主题的字数
  • 每个文档的主题数

该模型的输出是一个主题列表,其中包含与文档中的相关的单词及其出现次数

使用 LDA 进行 Spotify 播客主题探索

数据清理

任何类型的数据分析和建模的第一步都是进行数据清理。在这种情况下,使用的数据清理技术是从文档中删除脱离上下文的字符(标点、数字、字母、空格)。这里我使用的是 Python 中gensim包的gsp模块。

from gensim import utils
import gensim.parsing.preprocessing as gsp# remove punctuation, short words, whitespaces, numeric
filters = [
           gsp.strip_punctuation,
           gsp.strip_multiple_whitespaces,
           gsp.strip_numeric,
           gsp.strip_short
          ]def clean_text(s):
    s = s.lower()
    s = utils.to_unicode(s)
    for f in filters:
        s = f(s)
    return sdf2_clean = pd.DataFrame()
df2_clean['notes'] = df2['ep_description'].astype(str).map(lambda x: clean_text(x))

下面是清洗的结果

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

播客剧集描述清理后

数据转换

LDA 算法计算文档中定义的每个标记的权重。因此,我们需要做的第一件事是创建要加权的令牌,可以按如下方式完成:

  • 分词单词
  • 从记号中创建 n-grams (包含短语作为主题的一部分),推荐使用二元模型和三元模型
  • 删除停用词(以及通用词,在这种情况下我会删除播客和剧集之类的词,这很常见)
  • 引理令牌,让话题进入核心形式

上述步骤的代码可在这里找到

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

之前的**:播客剧集描述的实际文本**

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

之后的**:转换后的分词**

建立模型

接下来,在预处理完成后,我们创建一个数据字典和语料库来输入到 LDA 模型中。在这个过程中,我们使用单词包来计算文档中每个语料库的频率。

# Create Dictionary
id2word = corpora.Dictionary(data_lemmatized)# Create Corpus
texts = data_lemmatized# Term Document Frequency
corpus = [id2word.doc2bow(text) for text in texts]# View
print(corpus[:1])# Human readable format of corpus (term-frequency)
[[(id2word[id], freq) for id, freq in cp] for cp in corpus[:1]]

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

接下来,直接进入模型定义。这里我们在gensim包中使用 LDA 算法,初始主题数为 20。请注意,这可以进一步调整。

# Build LDA model
lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
                                           id2word=id2word,
                                           num_topics=20, 
                                           random_state=100,
                                           update_every=1,
                                           chunksize=100,
                                           passes=10,
                                           alpha='auto',
                                           per_word_topics=True)# Print the Keyword in the 10 topics
pprint(lda_model.print_topics())
doc_lda = lda_model[corpus]# Compute Perplexity
print('\nPerplexity: ', lda_model.log_perplexity(corpus))  # a measure of how good the model is. lower the better.# Compute Coherence Score
coherence_model_lda = CoherenceModel(model=lda_model, texts=data_lemmatized, dictionary=id2word, coherence='c_v')
coherence_lda = coherence_model_lda.get_coherence()
print('\nCoherence Score: ', coherence_lda)

有一个较低的困惑度分数和一个较高的连贯性分数是好的。这里我们发现模型的一致性分数很低,只有 0.28。为了改善这一结果,可以对模型进行超参数调整。

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

初始 LDA 的一致性分数

超参数调谐

为了进一步改进模型,我们正在进行模拟,以获得给最佳一致性值的一些主题。从模拟中,我们看到的最佳主题数是 8 ,这给出了大约 0.41 的相干值。

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

主题的最佳数量

根据这一发现,我们进行了模型再训练(主题的更新数量为 8),并发现了以下结果。

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

每个主题群的热门主题

对于某些群集,更容易推断出正在讨论的主题。比如在题目 4 中,看关键词(商业、金钱、公司、产业),我们可以推断这里讨论的题目与疫情时代的经济学有关。

为了进一步探索,我们可以使用“pyLDAvis”来可视化相关的主题和术语。

# Plotting tools
import pyLDAvis
import pyLDAvis.gensim  # don't skip this
import matplotlib.pyplot as plt
%matplotlib inline# Visualize the topics
pyLDAvis.enable_notebook()
vis = pyLDAvis.gensim.prepare(lda_model_2, corpus, id2word)
vis

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

主题 5 的 PyLDAvis 可视化

估价

我们可以利用 LDA 可视化,进一步探索每个文档的关键主题,以及主题在文本中的分布。

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

主题在文档中的分布,按出现次数排序

综上所述,我们可以将 Spotify 播客中讨论的主题进一步分类如下。

Topic 0 : All/Generic news introduction
Topic 1 : Pandemic case updates
Topic 2 : Personal impact (work, family life)
Topic 3 : Encouragement and support
Topic 4 : Financial impact (business and industry)
Topic 5 : Personal stories (let go, life, love)
Topic 6 : Social implications (crises, strike, history)
Topic 7 : Entertainment (sport, game)

有趣的东西,是吧?

结论

相当长的探索,在这篇文章中,我们探索了使用 Spotify API 检索具有 Covid 相关主题的播客剧集。我们发现了一些有趣的见解:

  • 播客在三月的第一周开始上升,在五月中旬达到高峰,这与美国的 Covid 病例趋势一致
  • 大部分都是在工作日发布!
  • 总集数最高的播客频道:(布道)娱乐(名人脱口秀)鼓励
  • 热门播客剧集话题:新闻介绍 (25%),对个人生活的影响 (18%),疫情案件更新 (17%),个人故事 (13%),娱乐 (11%),财务影响 (6%)

有兴趣探究并重现这一分析吗?你可以去 my GitHub 仓库查看完整的源代码。

有哪些数据工程师大学不学的东西?

原文:https://towardsdatascience.com/what-data-engineers-dont-learn-at-school-e8c10b25e804?source=collection_archive---------38-----------------------

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

来源:Matthis(Pexels)的一所学校校园的红色建筑

我已经做了六年多的数据工程师,我陪过几个初级工程师,每一次都让我想起我的早年。我们都会犯同样的错误,因为有些核心知识是我们在大学里学不到的。

生产用途管道

在大学,我们通常会有一些持续时间有限的“项目”,因此,我们没有时间去学习如何将我们的大学项目投入生产以及如何监控它们或者什么是热修复以及如何做。

我们在现场、实习或我们的第一份工作中学到了所有这些。为了加快学习过程,一个有经验的开发人员可以向初级开发人员传授有助于生产目的的最佳实践。

测试

我们在大学学习测试,不同种类的测试和代码设计原则。然而,不知何故,在开始时,很难找到小的可测试代码单元,我们倾向于在比需要的更大的数据集或比需要的更大的代码部分上进行测试。

找到可以测试的正确代码单元,并以一种易于测试的方式分割代码这是可以通过实践和阅读他人的代码来学习的。

“数据工程”是一个很大的领域

数据工程可能意味着不同的技术取决于你工作的公司/团队。

在大学,我们正在学习一些数据处理的核心概念。然而,技术的快速发展正迫使大学专注于该领域的某些部分,而将其他部分放在一边。

根据公司和大学的不同,初级数据工程师可能听说过/使用过某些概念。然而,众多的技术使得在选择初级数据工程师时需要妥协,并且需要加深初级数据工程师在多种技术方面的知识。

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

聚焦一项技术图片来源 : 詹娜·哈姆拉

“数据工程”是一个后端角色

数据工程师没有创造任何立即可见的东西,从这个意义上说,他有点像数据角色世界中的后端开发人员**。**如果没有其他数据角色(数据科学家、数据可视化专家、…).

呈现包含数据服务的仪表板或移动应用程序比呈现数据管道更容易。呈现推荐引擎的功能部分比呈现为使其能够处理所有数据而进行的数据优化更容易。

在大学里,由于每个人都在展示他们为一个项目所做的工作,我们不一定能看出区别,但在公司里,这种区别可能是惊人的。在一家公司,这意味着拥有Maxime Beauchemin在他的文章中所说的。

Gif 来源

沟通很重要

当你开始成为一名开发人员或数据工程师时,你可能会认为沟通不是你工作的核心部分。

然而,这可能比您想象的更重要,因为不沟通意味着做出假设,而做出假设意味着项目没有回答客户的真正问题。

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

交付客户想要的东西— 图片来源

此外,我们通过提问学到的东西比我们自己去寻找更多。

包装

我选择了这五个核心知识,因为我认为这些领域是我自大学以来学到了很多,初级数据工程师也在努力学习的领域。

如果你想完成我的列表,请不要犹豫在下面评论,希望老师们会阅读这篇文章并相应地调整课程。

fintech 公司使用哪些数据资源来帮助他们高效运营?

原文:https://towardsdatascience.com/what-data-resources-are-used-by-fintech-companies-to-help-them-operate-efficiently-baba33cba564?source=collection_archive---------47-----------------------

了解金融机构使用的数据管理

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

卡洛斯·穆扎在 Unsplash 上的照片

要提高任何组织的绩效,数据的作用是不可或缺的。金融科技公司处理正确数据的能力为他们提供了巨大的竞争优势。这是因为人工智能(AI)算法可以处理这些数据,并为(I)更好地分配资源(ii)识别目标客户的人口统计数据(ii)实现客户需求和允许高质量的客户决策提供机会。因此,组织将一部分投资用于数据管理。

然而,有不同类型的金融科技公司,包括:个人金融、华尔街、加密、投资、借贷、支付和房地产。这些类别中的每一个都需要不同的数据集,这些数据集需要以不同的频率更新。根据 statista.com 的数据,到 2020 年 2 月,金融科技初创公司的数量将增加约 52%。因此,拥有关于*“有用”*数据的知识会让你在同领域的其他创业公司中获得竞争优势。

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

根据资本启动情况划分的不同金融科技行业[数据来源:2019 年福布斯]

严重依赖数据的大公司或组织的例子有亚马逊、谷歌和 facebook。当用户/客户浏览他们的平台时,他们收集他们的数据。这种普查使他们有优势获得关于他们的目标受众人口统计和他们的兴趣的信息。企业可以很容易地利用这些数据,通过应用人工智能和机器学习(ML),他们可以创造更好的产品,或许可以改善他们对客户的服务。回归分析和编程也可以预测未来事件。这些最终可以帮助公司提前计划并相应地分配资源。

数据科学中使用的基本术语

  1. 数据量 :是组织收集和存储的数据量,可用于其开发的 AI 算法的未来处理。

2。数据速率: 数据被处理的速率。有五种不同的数据速度类别。实时、近实时、批量、定制和分析。为了获得竞争优势,金融科技公司需要实时或接近实时的数据速度。不过也要看 fintech 公司的类别。例如,与华尔街、加密和投资相关的数据需要实时或接近实时地执行,因为该过程涉及到易变因素。然而,支付和贷款公司可以允许 1-2 个工作日来结算任何资金交易。这为避免任何欺诈交易提供了额外的优势。

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

美国宇航局在 Unsplash 上拍摄的照片

3。数据多样性: 是数据采集和处理过程中所涉及的数据的多样性。例如复杂系统很难精确建模和预测。股票价格是这个模型的完美反映。华尔街市场的自发行为会造成价格的突然大幅波动。一个“好消息或一项研究突破”可能导致股价指数级上涨,否则申请破产肯定会对股价不利。

  1. 数据即服务: 它涉及通过与数据提供商合作,聚合和提供对更广泛的公共和私有数据的访问。

  2. 分析即服务: 它利用高级分析生成预测模型。

Fintech 公司获取了哪些数据?

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

照片由粘土堤防溅板上拍摄

根据 a Schmidt et al. (2018),数据主要依赖于核心业务模式、关键活动和价值主张。金融科技公司使用消费者提供的数据组合,同时也依赖外部获取的数据进行补充。

支付金融科技公司通常专注于安全的在线支付解决方案。他们的大多数商业模式通常不要求存储个人客户支付数据,而是使用网上商店的交易数据。他们专注于优化与银行的交易和服务。安全和扫码支付选项是他们的首选,因为他们的收入取决于使用情况。某些支付公司只收取 3%的交易费。因此,对于支付平台来说,关注点从个人客户数据转移到优化和保护交易。

房地产金融科技公司专注于处理重要数据,并以可读的格式呈现给用户。他们执行内部描述性分析,以确定任何项目组合的风险回报分析。他们专注于从各种来源获取数据,并将其转换为客户端可读的格式。对于房地产金融科技公司来说,收入既取决于销售额,也取决于客户的使用量。同样,对于房地产,他们的数据的重点是分析和风险管理,以便他们的客户可以做出明智的投资。

数据量数据速度在处理华尔街金融科技应用时至关重要。仅纽约证券交易所(NYSE)每天就要处理超过万亿字节的数据。同样,外汇市场每天有近 5.1 万亿美元的交易,也需要实时或接近实时的数据。

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

帕特里克·韦森伯格在 Unsplash 上拍摄的照片

结论

金融科技公司目前面临的最大挑战之一是,他们的数据算法更适合解决技术问题,而不是针对他们的商业解决方案。一些人认为,部分原因是因为大多数数据科学家没有积极参与金融领域,并分享更多的技术观点。这最终导致难以有效地利用这些数据来实现业务增长和改进。尽管如此,该行业仍在大规模增长,自 2019 年以来,截至 2020 年,金融科技初创公司的增长率接近 52% ,因此,未来的机会和增长潜力很大。像任何其他组织一样,金融科技公司将通过利用机器学习从高效的数据管理中受益匪浅。

参考文献

[1]Ghasemaghaei,M. (2019)。理解大数据对企业绩效的影响:从概念上区分大数据特征的必要性。国际信息管理杂志,102055。

[2]约翰,史派西。(2017 年 11 月 28 日)。5 种数据速度。简单易行。
检索自:https://simplicable.com/new/data-velocity

[3]约翰·史派西。“数据多样性的 6 个例子。”Simplicable,2017 年 11 月 28 日。网络。接入方式:https://simplicable.com/new/data-variety

[4]J. Q. Trelewicz,“大数据和大资金:数据在金融领域的作用”,载于《IT 专业》第 19 卷第 3 期,2017 年第 8–10 页,doi: 10.1109/MITP.2017.45。

科学家需要了解 DevOps 的哪些数据

原文:https://towardsdatascience.com/what-data-scientists-need-to-know-about-devops-2f8bc6660284?source=collection_archive---------17-----------------------

使用持续集成(通过 GitHub Actions)构建自动模型训练系统的哲学和实践指南。

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

独角兽!一个神话般的数据科学家,他可以编码,编写单元测试,并在逻辑回归可以做到的时候抵制深度神经网络的诱惑。由李中清通过 Unsplash 拍摄。

随着机器学习(ML)在过去几年的快速发展,开始 ML 实验变得非常容易。多亏了像 scikit-learnKeras 这样的库,你可以用几行代码制作模型。

但是,将数据科学项目转化为有意义的应用比以往任何时候都更难,比如告知团队决策或成为产品一部分的模型。典型的 ML 项目涉及如此多不同的技能组合,对于任何一个人来说,掌握它们都是具有挑战性的,如果不是完全不可能的话——如此困难,罕见的数据科学家也可以开发高质量的软件并扮演工程师,被称为独角兽

随着该领域的成熟,许多工作将需要软件、工程和数学技能的结合。有人说他们已经

引用无与伦比的数据科学家/工程师/关键观察家 Vicki Boykis 在她的博客 中的话,数据科学现在不同了 :

越来越清楚的是,在炒作周期的后期,数据科学正逐渐向工程靠拢,数据科学家前进所需的技能不再那么可视化和基于统计,而更符合传统的计算机科学课程

为什么数据科学家需要了解 DevOps

那么,数据科学家应该学习众多工程和软件技能中的哪一项呢?我赌 DevOps 赢。

DevOps,一个由开发运营组成的综合体,于 2009 年在一次比利时会议上正式诞生。召开这次会议是为了应对科技组织两个方面之间的紧张关系,这两个方面在历史上经历了深刻的分歧。软件开发人员需要快速行动并经常试验,而运营团队优先考虑服务的稳定性和可用性(这些人让服务器日复一日地运行)。他们的目标不仅是对立的,而且是竞争的。

这听起来很像今天的数据科学。数据科学家通过实验创造价值:建模、组合和转换数据的新方法。与此同时,雇用数据科学家的组织因稳定性而受到激励。

这种分歧的后果是深远的:在最新的 Anaconda“数据科学状况”报告中,“不到一半(48%)的受访者认为他们能够展示数据科学对他们组织的影响”。据估计,数据科学家创造的绝大多数模型最终都被束之高阁。对于在创建模型的团队和部署模型的团队之间传递模型,我们还没有很好的实践。数据科学家和实现他们工作的开发人员和工程师拥有完全不同的工具、约束和技能。

DevOps 的出现是为了对抗软件中的这种僵局,回到开发者对操作的时代。这是非常成功的:许多 团队已经从每几个月部署一次新代码发展到一天几次*。既然我们已经有了机器学习* vs .操作,是时候考虑 MLOps 了——来自 DevOps 的适用于数据科学的原则。

引入持续集成

DevOps 既是一种理念,也是一套实践,包括:

  1. 尽你所能实现自动化
  2. 快速获得关于新想法的反馈
  3. 减少工作流程中的手动交接

在一个典型的数据科学项目中,我们可以看到一些应用:

  1. 尽你所能实现自动化。 将重复且可预测的数据处理、模型训练和模型测试部分自动化。
  2. 快速获得新想法的反馈。 当您的数据、代码或软件环境发生变化时,请立即在类似生产的环境中对其进行测试(也就是说,在生产环境中,一台具有您预期的依赖性和约束的机器)。
  3. 减少工作流程中的手动交接。 尽可能给数据科学家找机会测试自己的模型。不要等到有开发人员时才看到模型在类似生产环境中的表现。

完成这些目标的标准 DevOps 方法是一种叫做持续集成 (CI) 的方法。

要点是,当您更改项目的源代码时(通常,更改是通过 git commits 注册的),您的软件是自动构建和测试的。每个动作都会引发反馈。CI 经常与 Git-flow 一起使用,Git-flow 是一种在 Git 分支上构建新特性的开发架构(需要 Git 复习吗?试试这个。当一个特性分支通过了自动化测试,它就成为了被合并到主分支的候选者。

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

这是软件开发中持续集成的样子。

有了这个设置,我们就有了自动化——代码变更触发自动构建,然后进行测试。我们有快速反馈,因为我们很快得到测试结果,所以开发人员可以不断迭代他们的代码。因为所有这些都是自动发生的,所以您不需要等待其他人来获得反馈,这样就少了一次交接!

那么我们为什么不在 ML 中使用持续集成呢?一些原因是文化上的,比如数据科学和软件工程社区之间的交叉较少。其他的是技术性的——例如,为了理解模型的性能,您需要查看准确性、特异性和敏感性等指标。你可能会得到数据可视化的帮助,比如混乱矩阵或损失图。所以通过/失败测试不会减少反馈。理解一个模型是否被改进需要一些关于手边问题的领域知识,所以测试结果需要以一种有效的和人类可理解的方式被报告。

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

这是机器学习项目中持续集成的样子。由数据科学 Doggy 检查。

竞争情报系统是如何工作的?

现在我们将变得更加实际。让我们来看看一个典型的 CI 系统是如何工作的。对学习者来说幸运的是,由于 GitHub Actions 和 GitLab CI 等工具,障碍从未如此之低——它们有清晰的图形界面和适合首次用户的优秀文档。由于 GitHub Actions 对于公共项目是完全免费的,我们将在这个例子中使用它。

它是这样工作的:

  1. 您创建了一个 GitHub 存储库。您创建了一个名为。github/workflows,在里面,你放置一个特殊的。yaml 文件,其中包含您想要运行的脚本,
$ python train.py

2.您以某种方式更改项目存储库中的文件,然后 Git 提交更改。然后,推送至您的 GitHub 存储库。

**# Create a new git branch for experimenting**
$ git checkout -b "experiment"
$ edit train.py**# git add, commit, and push your changes**
$ git add . && commit -m "Normalized features"
$ git push origin experiment

3.只要 GitHub 检测到推送,GitHub 就会部署他们的一台计算机来运行你的. yaml 中的功能。

4.无论函数运行成功与否,GitHub 都会返回一个通知。

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

在 GitHub 存储库的 Actions 选项卡中找到它。

就是这样!这里真正巧妙的是,你使用 GitHub 的计算机来运行你的代码。您所要做的就是更新您的代码并将更改推送到您的存储库中,工作流就会自动发生。

回到特别节目。我在步骤 1 中提到的 yaml 文件——让我们快速看一下其中一个。它可以有你喜欢的任何名字,只要文件扩展名是。它存储在目录中。github/工作流。这里有一个:

# .github/workflows/ci.yamlname: train-my-model
on: [push]jobs:
   run:
      runs-on: [ubuntu-latest]
   steps:
      - uses: actions/checkout@v2
      - name: training
      run: |
       **  pip install -r requirements.txt
         python train.py**

有很多正在进行的操作,但大部分操作都是相同的——你可以复制和粘贴这个标准的 GitHub 操作模板,但在“运行”字段中填写你的工作流程。

如果这个文件在您的项目 repo 中,每当 GitHub 检测到您的代码(通过 push 注册)发生变化时,GitHub Actions 将部署一个 Ubuntu runner,并尝试执行您的命令来安装需求并运行 Python 脚本。请注意,您的项目报告中必须有工作流所需的文件——这里是 requirements.txt 和 train.py!

获得更好的反馈

正如我们前面提到的,自动训练很酷,但是以一种容易理解的方式得到结果是很重要的。目前,GitHub Actions 允许你访问跑步者的日志,这是纯文本。

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

GitHub 操作日志的打印输出示例。

但是理解你的模型的性能是棘手的。模型和数据是高维的,通常表现为非线性——这两样东西没有图片是很难理解的!

我可以向您展示一种将数据放入 CI 循环的方法。在过去的几个月里,我在 Iterative.ai(我们制作数据版本控制)的团队一直在开发一个工具包,以帮助将 GitHub Actions 和 GitLab CI 用于机器学习项目。它叫做连续机器学习(简称 CML),而且是开源免费的。

从“让我们使用 GitHub 动作来训练 ML 模型”的基本思想出发,我们构建了一些函数来给出比通过/失败通知更详细的报告。CML 帮助您将图像和表格放入报告中,就像 SciKit-learn 生成的这个混淆矩阵:

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

当您在 GitHub 中发出拉取请求时,会出现此报告!

为了制作这个报告,我们的 GitHub 操作执行了一个 Python 模型训练脚本,然后使用 CML 函数将我们的模型准确性和混淆矩阵写入一个 markdown 文档。然后 CML 把 markdown 文档传给了 GitHub。

我们的修订版。yaml 文件包含以下工作流(新添加的行以粗体显示以示强调):

name: train-my-model 
on: [push] 
jobs:  
   run:    
      runs-on: [ubuntu-latest]    
      **container: docker://dvcorg/cml-py3:latest**     
      steps:      
      - uses: actions/checkout@v2       
      - name: training        
        **env:  **        
           **repo_token: ${{ secrets.GITHUB_TOKEN }} **  
        run: |      

           # train.py outputs metrics.txt and confusion_matrix.png  
           pip3 install -r requirements.txt          
           python train.py                    

           # copy the contents of metrics.txt to our markdown report
           **cat metrics.txt >> report.md** # add our confusion matrix to report.md **cml-publish confusion_matrix.png --md >> report.md**            # send the report to GitHub for display  
           **cml-send-comment report.md**

你可以在这里看到整个项目库。注意我们的。yaml 现在包含了更多的配置细节,比如一个特殊的 Docker 容器和一个环境变量,以及一些需要运行的新代码。容器和环境变量细节在每个 CML 项目中都是标准的,不是用户需要操作的东西,所以把注意力放在代码上!

通过将这些 CML 功能添加到工作流程中,我们在 CI 系统中创建了一个更完整的反馈回路:

  1. 创建一个 Git 分支,并在该分支上更改您的代码。
  2. 自动训练模型并生成度量(准确性)和可视化(混淆矩阵)。
  3. 将这些结果嵌入到您的拉取请求的可视报告中。

现在,当您和您的团队决定您的变更是否对您的建模目标有积极的影响时,您有一个各种各样的仪表板要回顾。此外,Git 将该报告链接到您的确切项目版本(数据和代码)以及用于培训的运行人员和该运行的日志。非常彻底!不再有图形在你的工作空间中浮动,这些图形很久以前就与你的代码失去了联系!

这就是 CI 在数据科学项目中的基本理念。明确地说,这个例子是使用 CI 最简单的方法之一。在现实生活中,您可能会遇到更复杂的场景。CML 还有一些功能,可以帮助你使用存储在 GitHub 存储库之外的大型数据集(使用 DVC )并在云实例上训练,而不是默认的 GitHub Actions 运行器。这意味着你可以使用 GPU 和其他专门的设置。

例如,我用 GitHub Actions 做了一个项目部署一个 EC2 GPU,然后训练一个神经风格传输模型。这是我的慢性粒细胞白血病报告:

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

查看我在 https://github.com/iterative/cml_cloud_case 的 GitHub 项目资源库

您也可以使用您自己的 Docker 容器,这样您就可以在生产中模拟模型的环境。将来我会写更多关于这些高级用例的博客。

关于 ML CI 的最后思考

总结一下我们到目前为止所说的:

DevOps 不是一种特定的技术,而是一种哲学,一套从根本上重构软件开发的过程的原则和实践。它是有效的,因为它解决了团队如何工作和试验新代码的系统瓶颈。

随着数据科学在未来几年的成熟,理解如何将 DevOps 原则应用到他们的机器学习项目中的人将是一个有价值的商品——无论是从工资还是他们的组织影响来看。持续集成是 DevOps 的主要内容,也是为团队建立可靠的自动化、快速测试和自治文化的最有效的方法之一。

CI 可以用 GitHub Actions 或者 GitLab CI 这样的系统来实现,你可以用这些服务来构建自动化的模型训练系统。好处很多:

  1. 您的代码、数据、模型和培训基础设施(硬件和软件环境)都是 Git 版本。
  2. 您正在自动化工作,频繁地测试并获得快速的反馈(如果您使用 CML,还有可视化的报告)。从长远来看,这几乎肯定会加速你的项目的开发。
  3. CI 系统让团队中的每个人都能看到你的工作。没有人需要非常努力地寻找代码、数据和模型。

我保证,一旦您进入最佳状态,让您的模型训练、记录和报告由一个 git commit 自动启动将会非常有趣。

你会觉得好酷

做独角兽!

进一步阅读

  • 持续集成,马丁·福勒关于这个主题的开创性博客
  • 机器学习的持续交付(Continuous Delivery for Machine Learning),Martin Fowler 网站上的另一个优秀博客,关于为 ML 构建持续集成&持续交付系统
  • devo PS 手册,一本深受喜爱的指南,被推荐给几乎任何组织(ML、软件或其他)

模拟 50,000 个游戏为社交距离提供了一个案例

原文:https://towardsdatascience.com/what-dice-can-tell-us-about-the-spread-of-disease-f44ba9cf3fb?source=collection_archive---------72-----------------------

骰子能告诉我们关于疾病传播的什么

艺术由 Giphy 上的 CmdrKitten 创作

统计和概率构成了大多数预测模型的基础。在这里,我们在骰子游戏的概率和传染病的传播之间画出了平行线。对 50,000 个游戏的模拟证明了社交距离的存在。

骰子

让我们玩一个简单的骰子游戏。规则是:

  • 滚动单个骰子
  • 如果骰子落在 1 上,你输 100
  • 如果它落在任何其他数字上,你就赢 100

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

照片由乔纳森·彼得森Unsplash 上拍摄

有了这个设置,你有 5/6 的机会赢得每场比赛。这是很好的机会。如果你玩这个游戏 100 次,你会得到大约 6667 英镑的利润。

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

每局获胜的概率

现在,让我们对规则做一个小小的修改。

第二场

  • 滚动单个模具三次
  • 如果它落在任何一局的 1 上,你将失去 100
  • 如果它落在每局中的任何其他数字上,你赢得 100

现在每场比赛有三个卷。每一次掷骰的概率保持不变。但是,每场比赛获胜的概率已经从 83%下降到 57%。玩这个游戏 100 次,你可以预期只赚 1574 左右。

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

三掷获胜的概率

游戏 N

随着我们增加赢得每场游戏所需的掷骰数,即使每次掷骰的赔率仍然对你有利,赢的机会也会迅速减少。让我们称每场比赛的掷数为 N

在这里,我们运行一个蒙特卡罗实验,针对 N 的每个值模拟 1000 个随机游戏。前一千场游戏需要掷一次才能赢,接下来的一千场游戏需要掷两次,依此类推,每场游戏最多掷 50 次。在每一组游戏之后,我们绘制出每一个 N. 值的游戏获胜比例

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

蒙特卡洛模拟结果——赢的游戏占每场游戏掷骰数的比例。这里的代码

虽然每次掷骰的赔率对你有利,但随着每场游戏掷骰数的增加,赢得游戏的赔率会下降。

疾病

在之前的一篇文章中,我们介绍了传染病模型中的传播率的概念。

* [## 新冠肺炎什么时候会达到顶峰?

房室模型日常指南

towardsdatascience.com](/when-will-covid-19-peak-96a41939ac33)

我们用传染率来模拟疾病的传播。这包括两个部分:

  1. 传染性——与活跃病例密切接触后被感染的概率
  2. 接触率 —一个人与群体中其他人互动的频率

我们可以在传染病的传播和我们掷骰子游戏的组成部分之间找到相似之处。

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

我们的骰子游戏模拟显示了我们掷骰子越多,赢得游戏的几率是如何下降的。在这种情况下,获胜意味着在没有感染疾病的情况下离开互动。保持其他变量不变,我们离家越频繁,与他人接触越频繁,返回时未受感染的几率就越低。*

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

是什么将泛化能力强的神经网络与泛化能力差的神经网络区分开来?

原文:https://towardsdatascience.com/what-distinguishes-a-neural-network-that-generalizes-well-from-those-that-dont-8954f741d533?source=collection_archive---------56-----------------------

理解深度学习需要重新思考泛化

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

蒂娜·西尼亚在 Unsplash 上的照片

最近偶然看到这篇被广泛谈论的论文,“理解深度学习需要重新思考泛化(张等 2016) ”。这篇论文已经获得了 2017 年 ICLR 最佳论文奖。这提出了一个非常重要的问题“尽管有足够的能力来记忆输入,为什么深度神经网络会泛化?”

在这篇文章中,我将分享我的理解,并讨论不同的实验执行和结果以及影响。

在直接进入本文之前,我将解释几个有用的概念。

  • 泛化误差
  • 模型容量
  • 显式和隐式正则化

泛化误差

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

泛化误差被定义为训练误差和测试误差之差。

绿色曲线表示训练误差,红色曲线表示测试误差。这里我们可以看到模型过拟合,泛化误差逐渐增加。

模型容量

模型容量定义为模型适应不同类型输入的灵活程度。

通用逼近定理

具有单层的前馈网络足以表示任何函数,但是该层可能大得不可行,并且可能无法正确学习和概括。

—伊恩·古德菲勒, DLB

VAP Nik–Chervonenkis VC 尺寸

一个分类模型 f 带有一些参数向量 θ 被说成(x1,x2,…。,xn) 如果对于这些点的所有标签赋值,存在一个 θ 使得模型 f 在评估该组数据点时不会出错。

模型 f 的 VC 尺寸是可以排列的最大点数,以便 f 粉碎它们。再正式一点,就是最大基数这样一些数据点集合的基数*D***可以被 f 粉碎。

我们可以完美标记的数据点的最大数量称为模型的 VC 维。

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

https://en . Wikipedia . org/wiki/VAP Nik % E2 % 80% 93 chervonenkis _ dimension

在上面的例子中,我们有一个简单的线性分类器,我们希望将两个组(蓝色加号和红色减号)分开。对于四个输入数据点,存在一些可能的数据点组合,这些数据点不可能使用线性分类器分成两组。因此,线性分类器的 VC 维将是 3。

VC 维预测分类模型的测试误差的概率上界。

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

这里, D 是模型中的参数个数, N 是训练集的大小。

以上条件仅在 D < < N 时有效。这个概率上界对于深度神经网络是没有用的,在深度神经网络中,参数的数量通常多于数据点的数量*(N<<D)*

显式和隐式正则化

本文引入了两个新的定义,显式正则化和隐式正则化。辍学,数据增加,重量共享,常规正则化(L1 和 L2)都是显式正则化。隐式正则化是早期停止、批量正则化和 SGD。虽然论文中没有定义这种区别,但我觉得隐式正则化是指那些我们作为其他过程的副作用而实现正则化的过程。例如,我们使用 L1 专门用于正则化,因此显式。然而,我们使用批量规范化来规范化不同输入的激活,并且作为副作用,它也碰巧执行某种正则化,所以它是隐式正则化。

注:以上部分是我的理解,如有错请指正。

不同的随机化测试

在论文中,作者进行了以下随机测试:

  • 真实标签:未经修改的原始数据集。
  • 部分损坏的标签:独立于概率 p ,每个图像的标签被损坏为均匀随机类。
  • 随机标签:所有的标签都被替换成随机标签。
  • 混洗像素:选择像素的随机排列,然后将相同的排列应用于训练集和测试集中的所有图像。
  • 随机像素:不同的随机排列独立应用于每个图像。
  • 高斯:高斯分布(具有与原始图像数据集匹配的均值和方差)用于为每个图像生成随机像素。

随机测试的结果

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

https://bengio . abracadoudou . com/cv/publications/pdf/Zhang _ 2017 _ iclr . pdf

结果看起来非常有趣,因为该模型可以完美地拟合噪声高斯样本。它还可以完美地拟合带有完全随机标签的训练数据,尽管这需要更多的时间。这表明具有足够参数的深度神经网络能够完全记忆一些随机输入。这个结果非常反直觉,因为这是一个被广泛接受的理论,即深度学习通常会发现较低级别的特征、中级别的特征和较高级别的特征,如果模型可以记住任何随机输入,那么如何保证模型会尝试学习一些建设性的特征,而不是简单地记住输入数据。

正则化测试的结果

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

https://beng io . abracadoudou . com/cv/publications/pdf/Zhang _ 2017 _ iclr . pdf

第一张图显示了不同的显式正则化对训练和测试精度的影响。这里,关键的要点是使用正则化和不使用正则化在泛化性能上没有非常显著的差异。

第二张图显示了批处理规范化(隐式正则化)对训练和测试准确性的影响。我们可以看到,使用批量标准化的训练非常顺利,但并没有提高测试精度。

通过实验,作者得出结论,显式和隐式正则化都有助于提高泛化性能。然而,正则化不太可能是泛化的根本原因

有限样本表达能力

作者还证明了以下定理:

存在一个具有 ReLU 个激活值和 2n+d 个权值的两层神经网络,它可以在一个大小为 n d 维样本上表示任何函数。

这基本上是通用逼近定理的扩展。这个证明相当沉重,如果有兴趣可以参考论文附录中的 C 部分。

隐式正则化:线性模型的吸引力

在最后一节中,作者表明,基于 SGD 的学习赋予了正则化效果,因为 SGD 收敛于具有最小 L2 范数的解。他们的实验还表明,最小范数并不能确保更好的泛化性能。

定论

  • 几个成功的神经网络架构的有效容量足以粉碎训练数据。
  • 模型复杂性的传统度量对于深度神经网络是不够的。
  • 即使泛化能力很差,优化仍然很容易。
  • SGD 可以通过收敛到具有最小-范数的解来执行隐式正则化。**

随后的一篇论文“深入研究深层网络中的记忆”对这篇论文中指出的一些观点提出了挑战。他们令人信服地证明了学习随机噪声与学习实际数据之间的定性差异。

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

https://dl.acm.org/doi/pdf/10.5555/3305381.3305406?下载=真

上面的实验显示,尝试记忆随机噪声的深度神经网络相对于实际数据集需要明显更长的学习时间。它还显示了拟合一些随机噪声会导致更复杂的函数(每层有更多的隐藏单元)。

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

【https://dl.acm.org/doi/pdf/10.5555/3305381.3305406? 下载=真

这个实验表明正则化子确实控制了 DNNs 记忆的速度。

因此,总结来说,深度神经网络首先试图发现模式,而不是蛮力记忆,以适应真实数据。然而,如果它没有发现任何模式(如在随机噪声的情况下),网络能够以仅记忆训练数据的方式简单地优化。鉴于这两种情况,该论文建议我们需要找到一些更好的工具来控制概括和记忆的程度,像正则化、批量归一化和辍学这样的工具并不完美。

如果你有任何想法、评论或问题,请在下面留下评论或在 LinkedIn 上联系我。快乐阅读🙂

安塞尔·亚当斯的标志性图像在全彩色下是什么样的?

原文:https://towardsdatascience.com/what-do-ansel-adams-iconic-images-look-like-in-full-color-b70914ec6faf?source=collection_archive---------57-----------------------

一个带有少量 Wolfram 语言的计算思维故事

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

安塞尔·亚当斯为国家公园管理局拍摄的图片(公共领域)

我一直最喜欢的摄影师之一是安塞尔·亚当斯。也许是因为我出生在黑白摄影时代接近尾声的时候?我最早的婴儿照片都是黑白的。

亚当斯对西部的全面描绘简直令人叹为观止。虽然他最出名的是他的黑白摄影,但他也大量使用彩色图像。

1941 年,国家公园管理局委托亚当斯为 DC 华盛顿州内政部大楼的一幅壁画创作照片。为这个项目拍摄的 226 张照片仍然可以从国家档案馆获得,并被放在公共领域。

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

安塞尔·亚当斯为国家公园管理局拍摄的图片(公共领域)

尽管亚当斯偏爱黑白摄影,但他拍摄的照片来自一个非常丰富多彩的世界。我看到过一些旧的黑白照片,它们被彩色化后的效果非常有趣。通常,一张似乎来自遥远过去的照片会变得更有关联。我想知道如果我从国家档案馆拿走照片并给它们上色,是否会发生同样的事情。

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

安塞尔·亚当斯为国家公园管理局拍摄的图片(公共领域)

从给图像着色开始,我们需要一个算法或函数来猜测每个灰度像素的最佳颜色。这可以通过观察大量彩色图像的例子并推断周围颜色值如何决定单个像素的颜色来确定。

对于神经网络来说,这是一项伟大的任务,事实上,许多这样的预训练神经网络已经存在。Wolfram 语言有一个非常好的神经网络库,包括可以进行 T2 图像着色的神经网络库。

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

(图片由作者提供)

有三种型号可供选择。两个基于“ColorNet 图像着色”神经网络,一个主要在地点图像上训练,另一个在标准 ImageNet 竞争数据集上训练。第三个神经网络“彩色图像着色”也是在标准 ImageNet 数据上训练的。

为了更容易地比较三个神经网络的性能,我编写了一个函数,它接受一个图像和三个神经网络模型中的一个:

ColorizeGrayscaleImage[image, model]

这三种模式是:

models = {
"ColorNet Image Colorization Trained on ImageNet Competition Data",
"Colorful Image Colorization Trained on ImageNet Competition Data",
"ColorNet Image Colorization Trained on Places Data"
}

首先,让我们使用顶部的图像来比较这三种模型。请注意,在 Wolfram notebook 界面中,您可以非常容易地将图像作为代码的一部分。那太方便了!

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

(图片由作者提供)

从输出中可以清楚地看到,输出中的第二个图像在左上角有一些红色的伪像,因此很明显,该模型在这里的表现不好。

让我们来看另一张图片:

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

安塞尔·亚当斯为国家公园管理局拍摄的图片(公共领域)

这一次,第二个模型实际上表现得相当好:

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

图片由作者提供,基于安塞尔·亚当斯为国家公园管理局(公共领域)所做的工作

这里并排显示了两种不同的版本:

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

图片由作者提供,基于安塞尔·亚当斯为国家公园管理局(公共领域)所做的工作

这是另一个图像,原始图像和三个彩色版本并排显示:

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

图片由作者提供,基于安塞尔·亚当斯为国家公园管理局(公共领域)所做的工作

还有更多的图像供你玩。你可以用这个 Wolfram Cloud 笔记本或者使用本文末尾的代码来完成。

最后,这里是一个使用整个档案的图像拼贴。尽情享受吧!🌄

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

图片由作者提供,基于安塞尔·亚当斯为国家公园管理局(公共领域)所做的工作

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

作者的图像动画,基于安塞尔·亚当斯为国家公园管理局(公共领域)所做的工作

公司真正期望从数据和分析中得到什么?

原文:https://towardsdatascience.com/what-do-companies-really-expect-from-data-and-analytics-382c3cd07c6b?source=collection_archive---------72-----------------------

关于对数据专业人员的期望的一些提示

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

卡尔·海尔达尔在 Unsplash 上拍摄的照片

公司对他们的数据和分析团队真正的期望是什么?有没有想过?作为数据专业人士,企业对你有什么期望?你开发了最先进的机器学习模型?创造创新和颠覆性的解决方案,彻底改变他们的业务?他们中的一些人可能会,但大多数人希望从数据和分析中获得他们希望从任何其他部门(如营销或销售)获得的结果!

带来结果并不意味着使用大数据、分析和数据科学的所有技术、工具和趋势,而是如何智能地使用数据,以及如何从中为企业创造价值。当然是利用技术,但是作为一种手段而不是目的。

为此,公司需要优秀的数据专家。接受过主要技术的培训,但主要知道如何从数据中创造价值。他深刻理解业务的困难和挑战,知道数据如何在这一过程中提供帮助,无论是 KPI、深度分析还是复杂的机器学习模型,但始终与业务保持联系。

那么一个数据专业人员到底应该具备哪些技能呢?

很难定义数据专业人员所需的所有技能,因为该领域有许多职业,如数据工程师和数据科学家、大数据、分析和数据可视化专家等。

无论选择何种职业,关于对数据专业人员的期望,以下几点建议值得一提:

比任何人都了解商业数字——你在数据部门做的几乎所有事情都与数字有关。如果你不知道公司的主要数字,你就很难创造出与业务相关的东西。

跟随问题,而不是答案 —在分析世界中,找出正确的问题最重要,然后找出答案。一个简单的问题,比如“为什么总收入减少了?”可以很容易地带你到另外 20 或 30 个问题,你需要走这条路,不要试图逃避它。

不要生活在泡沫中 —很多时候,我们看到优秀的数据专业人员封闭在他们的世界里,与外面的世界无关。当然,有些人比其他人更内向,但是你需要知道你周围发生了什么,即使是以你自己的方式。请记住,你的使命是帮助公司利用数据赢得挑战,而你只能在公司生活、与其他部门和人员互动时才能做到这一点。

讲故事——与建立一个好的分析一样重要的是知道如何展示它。好的分析经常被展示给公司的高层管理人员,他们对了解你的火箭科学细节不感兴趣,他们更愿意相信你知道你在做什么。他们更感兴趣的是了解什么是见解和要点,以及如何将其应用于业务中。知道如何创建一个好的演示文稿以及如何讲述这个故事是至关重要的。

机器学习不能只是一个复杂而昂贵的咖啡机——在你想开发最先进的算法之前,花时间了解数据,花时间了解业务。与人交谈,与部门交谈。了解他们的痛苦和目标。并不是因为你使用了世界上最先进的技术,它才会给企业带来一些价值。

数据质量很重要——随着大数据的出现,我们能够处理大量数据,即使不是结构化的。但这并不意味着您不必再担心数据质量了。在传播你的发现之前,花时间评估它的结构,尤其是质量。

其中一些技巧可能比其他的更有用,这取决于您的职业时刻或您在数据方面的挑战。此外,记住没有神奇的秘诀,每一个挑战都是挑战,你永远需要适应它。作为数据和分析专业人员,最重要的是要理解您对结果的承诺,只有知道如何从数据中获取价值,您才能做到这一点。

棉花糖和机器学习有什么共同点?

原文:https://towardsdatascience.com/what-do-marshmallows-and-machine-learning-have-in-common-34e8ee9447e?source=collection_archive---------30-----------------------

直观地看待强化学习

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

在 2010 年的 TED 舞台上,汤姆·伍杰克介绍了“棉花糖实验”。这个实验包括二十根意大利面条、一码胶带、一码细绳和一个棉花糖。根据这些材料,参与者被告知他们有 18 分钟的时间来建造他们能建造的最大的独立结构。只有当它成功地将棉花糖放在上面时,这个结构才被认为是完整的。他已经在不同的人群中完成了数百次这个实验。从 MBA 毕业生到幼儿园应届毕业生;每个小组处理问题的方式都有所不同。

MBA 们将花一些时间组织自己,并为权力进行谈判。他们将花时间思考,草拟计划,并最终开始建造这座塔。他们把它堆起来,直到时间快到了,最后把棉花糖放在上面。他们退后一步,欣赏自己的作品,最终的结果往往是塔在棉花糖的重压下摇摇欲坠。

幼儿园的学生完成任务完全不同。他们不花任何时间计划,并立即开始工作和建设。不过,两种策略的关键区别在于,在整个实验过程中,棉花糖会不断地放在塔上。5 岁的孩子一点点建造塔,放置棉花糖,获得反馈(塔是否倒了),并从那里继续迭代和建造。这导致幼儿园的学生比 MBA 毕业生平均多建了两倍的高楼。

现在我知道你在想什么,这和机器学习有什么关系?过去的博客描述了监督机器学习非监督机器学习,而这个故事旨在说明强化机器学习的概念以及计算机如何使用反馈来学习。

在强化学习中,工程师将把游戏的“规则”编入计算机。在这种情况下,他们会对物品的类型、重力规则、意大利面的承重能力、棉花糖的重量等进行编程。一旦规则被编程,工程师们就可以编程反馈,让计算机“奖励”更高的塔。然后,计算机执行游戏的几次迭代,并学习所有项目的最佳路径和配置,以获得最高奖励。把计算机想象成模仿幼儿园的学生,他们尝试一次迭代,放置棉花糖,得到反馈,然后重新配置他们的结构。

最近一个成功实现强化学习的例子发生在 2017 年,当时一台计算机被编程为学习‘GO’。围棋比国际象棋更复杂,有数百万种可能的走法组合。该程序能够击败世界冠军柯洁,标志着强化学习向前迈出了一大步。

强化学习是人工智能最令人兴奋和革命性的例子之一。当您试图在一个具有清晰规则和可定义为“成功”或“失败”的最终状态的环境中确定一组最佳行动时,这是最有用的。商业案例包括:

  • 无人驾驶汽车
  • 优化投资组合交易策略
  • 使用机器人在仓库里重新进货和挑选存货

当公司能够概念化和理解强化学习时,他们就从像其他类型的机器学习那样简单地预测转向优化能力。当竞争对手的 MBA 们在争权夺利、制定计划、看着他们的塔在棉花糖的重压下倒塌时,那些实施强化学习的人已经打印出了最高最坚固的塔的蓝图。

关于我的本地 Parkrun,这些数字说明了什么?

原文:https://towardsdatascience.com/what-do-the-numbers-say-about-my-local-parkrun-4ca52002e19c?source=collection_archive---------53-----------------------

浅析凯西克公园及其参与者

在我的第一篇博客中,我决定看看我们都热爱和珍惜的东西——我在当地的公园跑步。

本周六早间机构产生了大量的数据。我试图检索(主观上)最有趣的数字,以下是我的发现。所以,让我给你展示一下你每周跑 5 公里的来龙去脉。

在我们继续之前,有一件事需要澄清。Parkrun 需要你有自己唯一的条形码来记录你的时间。如果您无法出示条形码,您完成的职位将被填写为“未知”,并且不会为此职位分配时间。

为了分析的目的,如果获胜者是这样的 John Doe,我使用已知最快的时间作为获胜时间(而获胜者的首字母仍然是“未知”)。

到目前为止,在凯西克已经举行了 303 场跑步比赛,在 2019 年的新年跑步比赛中,跑步者的人数少至 54 人,多至 500 人。

由于凯西克是一个旅游和季节性很强的城市,我预计每 52 场比赛就会周期性地出现明显的高峰和低谷,虽然季节性不像我认为的那样明显,但从滚动平均值来看,模式很明显:夏季高,冬季低,圣诞和新年公园跑步越来越受欢迎。

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

平均每周有 149 名选手冲过终点线,其中有 65 名女士和 74 名男士。如果你搞不清楚 65 + 74 = 149 是怎么回事,那是因为它没有。剩下的 10 个解释了那些神秘的没有条形码的跑步者。

然而,女性在数量上击败男性并不罕见,因为在 303 次跑步中,这种情况发生了 51 次。当 79 名女性只有 51 名男性陪伴时,最有影响力的表演出现了。

平均每周有 22 名跑步者打破他们的个人最好成绩,7 名 speedos 跑完 20 分钟。

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

男性和女性的年龄分布相当相似,Parkrun 似乎很受 40 岁以上人群的欢迎。

大多数参赛的男性年龄在 50-54 岁之间(其次是 45-49 岁和 55-59 岁)。对于女士来说,这是 45-49(其次是 50-54 和 40-44)。请注意,这些不是唯一的条目,所以如果有人输入了所有的跑步记录,它们将被计数 303 次。

约翰·m 已经完成了 44 次 90-94 级别的比赛。

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

如果你的目标是在比赛的前半段完成,你应该把时间定在 27:37 以上,这样你就能在一次普通的跑步中到达终点。

然而,如果你想赢,你应该让你的腿加速,目标是 17:44。当然,这可能还不够,因为记录是 15:29(萨姆·斯)。

迄今为止,该赛事已有 5 次由女性获得冠军(罗茜·s、莎拉·t、海莉·c、丽贝卡·r 和艾米丽·r)。

虽然样本很小,但女士的获胜时间平均比男士慢半分钟:18:11 比 17:38。

11-14 岁年龄组的选手(Nathan S .和 Robin R .)和 55-59 岁年龄组的选手(Greg P .)分别两次赢得这项赛事的冠军。

31 名运动员不止一次赢得凯西克公园赛跑冠军,三大冠军是萨姆·s(42 次获胜)、马克·l(31 次)和卡尔·b(13 次)。

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

凯西克公园路最近改变了场地,从一个风景优美的沿河来回砾石路,双向都有多汁的爬坡,变成了当地公园里平坦的柏油路。

通过查阅档案,我估计这种变化发生在事件#274 之后。

奇怪的是,整体平均时间在改变后慢了 21 秒,然而获胜时间却提高了 22 秒。

我问自己的一个问题是,参加的人数是否对平均完成时间有影响。

我在这里的想法是,跑步者越多的公园跑步平均速度会越慢,因为参加人数较少的项目主要由准备好迎接恶劣天气的铁杆运动员组成。然而,当我看一张跑步者人数与平均时间的对比图时,发现跑步者多的项目往往更一般!

你可以清楚地看到,虽然安静的活动往往是双向的(更快和更慢),但更多参与的活动往往倾向于平均结束时间(28:30)。

注意最上面,有 500 名跑步者参加的大型新年派对平均时间为 28:59——睡了 3 个小时还不错,不是吗?

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

最后但同样重要的是,没有冲刺跑的比赛是什么样的友好比赛。为了周六早上的聚会,我查看了前两个已知时间的差异。

如果差距是 2 秒或更少,我把它归类为“冲刺结束”。
在 303 个项目中,这种情况发生了 35 次,其中 19 次是差距小于 1 秒的“超级冲刺”。

如果凯西克的跑步爱好者想要引起国际媒体的关注,他们可能需要在这方面努力。

用于此分析的代码可在 https://github.com/KrystofMeier/parkrun 的找到

原载于

各个国家的医疗保健能力是什么样的?

原文:https://towardsdatascience.com/what-do-various-countries-healthcare-capacities-look-like-1581896a0601?source=collection_archive---------2-----------------------

变更数据

鉴于冠状病毒(新冠肺炎),按国家可视化和比较医疗保健数据和指标。

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

增长率与产能的对比(仪表板链接

对于我们许多人来说,在世界应对新冠肺炎疫情期间,我们的生活暂时停滞不前。

对许多国家来说,3 月是一个转折点,新冠肺炎镇压措施的实施大幅增加。其原因是看到了一些国家发生的事情,以及来自建模的可怕警告。

《T4 时报》写道,如果不采取控制措施,到五月底,美国每天将有 50 万新病例。

新增病例 50 万例。一天之内。就在美国。

即使采取“一些”控制措施,到 6 月底,每天仍可能出现 30 万个新病例。一线希望是,这种未来并不是一成不变的。例如,本文概述了社交距离和其他“抑制”措施可以产生巨大的影响。所以我一直这样做——呆在室内。很多。比如经常被软禁。

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

Unsplash 上按键拍照

在家里度过的这段时间也给了我一点思考和阅读的时间,鉴于时代的现状,最近的许多阅读材料都与疫情有关。(谁知道病毒这么有趣!)

我也开始想知道不同国家处理这个问题的能力会是什么样的。

你看,像现在的许多人一样,我有一个全球性的家庭和朋友网络。我特别的一个横跨韩国、澳大利亚、美国、英国和新西兰。

所以我决定研究世界各地的医疗保健统计数据,一件事导致了另一件事。你知道是怎么回事。在我意识到之前,我正在汇编数据,并把它们放到一个在线仪表板上。

结果证明这是一个有趣的练习。我学到了很多关于医疗保健能力、老年和弱势人口规模以及经济能力的差异和关系。此外,我还做了一个粗略的模拟,模拟了系统被需求淹没需要多长时间,尤其是在需求呈几何级增长的情况下。

非常明确地说,我不是健康或政策专家,对这两方面也知之甚少。这篇文章只是我出于好奇,在观看网飞迪士尼+ 之间,把数据放在一起,想知道当我们到达那里时,常态可能会变成什么样。

数据源和分析

我已经从世界银行开放数据项目获得了数据,他们声明他们的使命是提供免费和开放的全球发展数据。

并非所有年份的所有数据都是可用的——但我在这里收集了最新的可用数据,而且只是最近 10 年的数据。在剔除了我找不到太多数据的国家之后,我最终收集了 155 个国家的信息——大到中国,小到安提瓜和巴布达。

数据

医疗保健支出

每个系统的人均医疗支出是多少?我认为这些数字表明了购买药物和设备的能力(尽管没有考虑每个国家不同的费用)。

155 个国家可能太多了,无法显示在一张图表上,所以我将数据集中值最高的 20 个国家的数据绘制出来。

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

人均医疗保健支出(最高值)—数据来源:worldbank.org

相比之下,这是人口最多的 20 个国家。

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

人均医疗保健支出(最大人群)——数据来源:worldbank.org

资源的不平等非常明显。

鉴于资源的这种差异,以及新冠肺炎是一种呼吸系统疾病这一事实令人担忧。例如,媒体广泛报道许多患者需要机械呼吸机支持——不太富裕的国家如何负担得起?

让我们来看看其他一些措施。

65 岁或以上人口的百分比

像许多其他疾病一样,年龄似乎是你易患这种疾病的一个因素。这是 65 岁或以上人口的百分比,作为年龄分布的一个指标。

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

65 岁以上人口的百分比(最大人口数)——数据来源:worldbank.org

有趣的是,日本的老年人口比例非常高,法国和德国也是如此。我们可以根据这一指标绘制出排名前 20 位的国家。

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

65 岁以上人口的百分比(最大人口数)——数据来源:worldbank.org

有趣的是,在日本之后,这份名单似乎被欧洲国家占据了。如果这是最脆弱人口规模的指标,医疗保健系统的能力是否与这一指标相关?

每人医院床位

平坦曲线的一个关键论点是防止医疗保健系统负担过重。卫生保健系统能力的一个代表是 T2 人均医院床位数。让我们再来看看那些人口最多的国家的数据。

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

每千人医院床位数—数据来源:【worldbank.org

有趣的是,日本也是这一类别的领导者,因为他们有 65 岁以上的人口规模。排名靠前的国家与我们在上面的图表中看到的相似。

这是否意味着这两个指标有很好的相关性?

与医院病床数量的相关性

是,也不是。看看下面的图表。

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

相关性——65 岁或以上人口规模与医院床位数量

对于大国来说,似乎有很好的相关性,但看看右下角 65 岁以上人口较少的点群。在该集群中存在相当大的医院床位数分布,表明相关性较低。

一般来说,可以在下面找到更好的相关性——与人均医疗保健支出的相关性。

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

相关性——医疗保健支出与医院床位数

一般来说,人均医疗保健支出似乎是人均医院床位数的一个更好的预测指标。也就是除了那些 65+人口占 10%左右(或者更高)的情况。

医生人数

这是医院的基础设施能力。但是那些可能需要照顾病人的人员呢?以下是每 1000 人中医生比例最高的国家:

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

每 1000 人医师数(最高值)世界银行

古巴遥遥领先于此。那真的很有趣。正如我所说的,我对这个地区了解不多,但我想知道这个统计数据的一些原因可能是什么。例如,我想知道某些医疗保健系统和政策是否会选择更多地关注资源(设备、药物、R&D)而不是培训医生。

尽管如此,看到古巴名列榜首还是很惊讶。你每天都学到新的东西。

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

相关性——每 1000 人中老年人口与医生的比例

将数据绘制为相关性,通常在 65 岁及以上人口规模和每 1000 名医生之间也有很大的相关性。

然而,很明显,世界各地的医疗保健能力存在巨大差异。然而,就我们所见,没有一个是足够的。这里有一些简单的数学方法来解释为什么:

为什么我们都应该呆在家里

基本上,我们看到的关于这种病毒的所有数据都表明,它比流感危险得多——根据美国的福奇博士的说法,危险程度是流感的 10 到 20 倍。

它的增长速度有多快?非常快。

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

新冠肺炎造成的死亡增长率(来自约翰·伯恩-默多克推特

这是一条指数曲线——这只是显示死亡人数。假设住院人数以类似的方式增加(即指数增长),这就是从第一次住院人数开始的增长速度。

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

增长率与可用医院床位

即使所有医院床位的 10%可用,根据三天住院率的两倍计算,美国的能力将在不到两个月内得到满足。顺便提一下,截至 3 月 24 日,三天多一点的翻倍率大约是美国数据目前的水平。像纽约这样的一些地区显示出两天翻倍的速度。

从图中可以看出,容量增加 10 倍只需要几天时间(请注意,该图以对数比例显示了指数增长)。

与此同时,翻倍率的变化对结果和产能数字有着更大的影响。这就是为什么目前的重点是在拉平曲线

所以,你走吧——注意安全,呆在家里。拯救的不仅仅是一条生命,而是更多的生命。在有效和广泛的检测与追踪一起可用之前,每个人都需要保持警惕——因为目前,不可能足够快地识别疾病,并追踪他们去过的地方,让那些接触过的人知道他们可能对自己和他人有风险。

我已经在这里在线上传了这个分析的互动版本。请随意看一看,如果您有任何意见,请告诉我。

如果你喜欢这个,比如说👋/关注 twitter ,或点击此处获取更新。ICYMI:我还写了这篇关于用 Plotly Dash 构建 web 数据仪表板的文章——我就是用它来构建当前的仪表板的。

[## 使用 Python 在几分钟内构建一个 web 数据仪表板

通过将您的数据可视化转换为基于 web 的仪表板,以指数方式提高功能和可访问性…

towardsdatascience.com](/build-a-web-data-dashboard-in-just-minutes-with-python-d722076aee2b)

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

我们所说的智力是指什么?

原文:https://towardsdatascience.com/what-do-we-mean-by-intelligence-f69673f1559e?source=collection_archive---------44-----------------------

质疑我们对智能的理解,以及如何使用人工智能创建“智能”系统。

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

让-路易·波林在 Unsplash 上拍摄的照片

介绍

给智力下一个正式的定义可能是一项相当艰巨的任务。事实上,到目前为止,还没有就这一主题达成共识。自从人类历史开始以来,人们对智力提出了不同的定义,这些定义因历史时间和文化而异。例如,在一个语言和交流技能起着重要作用的社会里,一个拥有这些技能的人可能会被认为比其他人“更聪明”。与此同时,在一个重视数字技能的社会里,大多数其他人可能被认为“更聪明”。

作为这一趋势的实际证明,我们可以认为,在最近的过去(直到 1960 年左右),为了被一些大学(甚至是技术课程)录取,懂拉丁语是必要的,而现在它不再被认为是一个先决条件。由于最近的技术革新,社会将他的兴趣从人文学科转移到更技术性的学科,这种变化可能已经发生了。

“每个人都是天才。但是如果你根据一条鱼爬树的能力来判断它,它会一辈子都相信自己是愚蠢的。”[1]

—未知

由于测量人类智力的这些差异,诸如智商(IQ)测试这样的标准化测试被创造出来。例如,这些类型的测试如今普遍用于评估求职者和检测智力残疾。

人工智能的诞生

艾伦·图灵模仿游戏现在被认为是定义智能系统的最初尝试之一。根据模仿游戏(图灵测试)事实上,如果一个系统能够与一个询问者交换信息而不让他/她理解它不是人类的本性,那么这个系统可以被认为是智能的。尽管智能系统的定义有一些限制,例如,它假设系统应该能够表达类似人类的智能形式,尽管理论上人类智能不是智能系统的唯一可能形式。

从这一点开始,两种不同的方法发展起来,试图重建智能系统:(强调形式逻辑的使用)和连接主义(旨在使用大脑功能的简化模型来复制智力)。

由于符号方法,机器人 Shakey 等项目已经实现,而由于连接主义方法,人工神经网络和当今的深度学习模型已经构建(图 1)。能够表达智能行为的系统的第一个成功例子是阿瑟·塞缪尔·跳棋游戏程序。这个程序实际上成功地学会了使用启发式搜索(最小最大算法)玩高水平的跳棋游戏。为了训练他的程序,Samuel 另外加入了不同的特性,这在某种程度上类似于早期的强化学习方法。事实上,该程序能够成功地与自己对抗,并从过去的错误中吸取教训,以便进行改进。

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

图 1:人工智能时间轴[2]

生物学视角

直到 20 世纪 80 年代初,科学家们试图通过自上而下的方法创造智能机器(例如,试图直接模仿复杂系统的行为,如人类的行为)。虽然,这种方法导致了各种限制,例如:

  • 在不断变化的环境中反应缓慢。
  • 充分扩展的能力有限,增加了挑战的难度。
  • 当试图通过搜索或从相当大查找表中检索信息来解决问题时,需要较高的存储器要求。

另一种方法(如 Brooks 所提倡的)是尝试模仿简单生物的关键特征(自下而上的方法)。这样,我们的系统就不需要任何层次系统,并且能够保证在不断变化的环境中有更快的反应时间(就像现实世界中的大多数环境一样)。最后,另一种创造受生物学启发的智能系统的可能方法是进化算法。

结论

在过去的一个世纪中,许多人工智能(AI)系统的连接主义和符号化实现已经被实现,希望创造智能系统(图 2)。尽管如此,现在我们仍然不能确定使用这两种方法中的一种(或两种)是否有可能创造一个强大的人工智能系统。

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

图 2:随着时间的推移,符号主义与关联主义的研究出版物[3]

强化和在线学习方法可能是解决这一任务的最佳途径。事实上,这可以被认为是能够模拟生物系统如何学习的最接近的方法:

  • 通过他们过去的经历(使用奖励/惩罚机制)。
  • 持续地,每次考虑一个刺激(或一个小样本)(不像深度学习系统,它一次训练完所有的东西,并有大量的数据)。

我希望你喜欢这篇文章,谢谢你的阅读!

联系人

如果你想了解我最新的文章和项目,请通过媒体关注我,并订阅我的邮件列表。以下是我的一些联系人详细信息:

文献学

[1]每个人都是天才。但是如果你根据一条鱼爬树的能力来判断它,它会一辈子相信自己是愚蠢的报价调查员,追踪报价。访问地点:https://quoteinvestigator.com/2013/04/06/fish-climb/

[2]人工智能时间轴信息图——从伊莱扎到泰和超越,Digitalwellbeing.org——保罗·马斯登博士。访问:https://digital well being . org/artificial-intelligence-timeline-infograph-from-Eliza-to-tay-and-beyond/

[3]神经元尖峰脉冲,归纳机器的发明和人工智能的争议,多米尼克·卡顿,让-菲利普·科因泰特,安托万·马齐埃,https://neurovenge.antonomase.fr/NeuronsSpikeBack.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值