TowardsDataScience 博客中文翻译 2019(四百九十五)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

这件事不言自明

原文:https://towardsdatascience.com/the-thing-speaks-for-itself-e075f026773?source=collection_archive---------23-----------------------

内部人工智能

为什么电脑撰写的法律摘要比你想象的要近

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

Image by Gerd Altmann from Pixabay

这篇文章写起来花了太长时间。研究、概述、起草、编辑。育雏。几个月来,我苦思冥想,不知道这是不是一个好主意。在我炖的时候,我担心别人会抢在我前面。

写作可能会让人筋疲力尽,但写法律摘要可能会非常痛苦。正如已故大法官斯卡利亚曾经承认的,“我不喜欢写作,但我喜欢写作。”我的原话。因此,在最真实的美国传统中,我梦想有一天我能把写作中最痛苦的部分自动化。

但这可能吗?一台机器能学会简短写作的艺术吗?而如果是这样,那种人工智能不就几代之遥了吗?

如果基础技术存在于今天会怎样?如果人工起草的辩护状已经出现会怎样?

我带来了消息。

2016 年,导演奥斯卡·夏普发布了一部名为太阳之春的九分钟科幻电影。 片头演职员表——在不祥的工业噪音中时隐时现的故障机器文本——确定了编剧:一台电脑。

Sunspring 是一项实验,灵感来自你每天放在口袋里的技术。多年来,智能手机一直在帮助我们编写文本,通过阅读我们键入的单词,预测我们的下一个单词是什么,并提出建议。夏普先生和他的工作人员使用类似的技术创作了《太阳之春》的剧本。

事情是这样的。首先,该团队“训练”了一个名为本杰明的软件程序。他们给本杰明提供了大约 150 个科幻电影剧本,让它消化和分析。然后,他们通过提供一个标题、一些示例对话和一些动作词给本杰明一个起点。

然后他们按下按钮。剧本辉煌地出现了:

在未来大规模失业的情况下,年轻人被迫卖血。这是我能做的第一件事。

H2:你应该看看那些男孩,然后闭嘴。我是那个要活到一百岁的人。

我又见到他了。你被送到我这里的方式…那是一个诚实的想法。我不是一盏明灯。

嗯,我得去看看头骨。我不知道。

这种华丽的废话坚持到底。

毫无疑问, Sunspring 是令人愉快的——但绝对不是因为它那噱头十足的编剧。归根结底,它的娱乐价值是老式人类汗水的产物。演员表演台词的方式,他们的面部表情,声音效果,电影摄影——它们都把你带离了语言的迷雾。你可能不知道为什么,但你可以告诉一些沉重的事情正在展开。这是一部外国电影抓住你的方式,即使你一个字也不懂。演员和工作人员把胡言乱语变成了现实。

本杰明使用的算法——被称为“长短期记忆递归神经网络”——并不写座谈会。它只是处理数据。为了生成的《太阳泉》,本杰明分析了 150 个剧本,并确定了单个单词出现在彼此附近的频率。然后,从夏普团队提供的种子词开始,本杰明开始组装对话。每当它选择一个单词时,它都会问自己一个问题:“鉴于目前我所看到的一切,下一个单词最有可能是什么?”然后,它选择下一个单词,并重复循环。一个剧本出来了。

库布里克这不是。没有潜在的想法被传达,没有指向对话。这实际上是一种统计学上的练习——比在字典里随意走一圈要好一点。没有方向,没有微妙之处,没有对歧义或上下文的欣赏,也没有有意的幽默。这是数学。但是一个好的演员和工作人员做了一些事情。

那么这是人工智能能做到的最好的吗?AI 的工作产品是否总是需要英雄式的干预才能有意义?大多数作家会嘲笑计算机会与人类作家竞争的想法——这对于我们这些短篇作家来说更是如此。在我们看来,我们的工作对人类智力的各个方面都提出了很高的要求。它需要主题知识、逻辑、说服力、简洁、风格、同理心和许多其他似乎难以捉摸的特质。很多律师都做不到。没有灵魂的机器肯定做不到这一点。

好吧。事实证明,电脑写作的发展比我们律师似乎意识到的要快得多。虽然往往很难将现实与炒作分开,但毫无疑问,艾以前在写作和说服方面的局限性正在稳步消失。这篇文章(还是花了太多时间来写)是我试图确定一些关于基于人工智能的写作的共同信念,并展示技术是如何反驳它们的。

“人工智能不能产生像样的散文。”尽管《T2》很有趣,但它的对话却是令人困惑的单词沙拉。你可能会由此得出结论,没有感知能力的机器根本无法持续地写出连贯的文本。但是这个结论是错误的。人工智能现在正在从头开始生成散文——它不仅连贯,而且实际上与人类的写作没有什么区别。事实上,很有可能你已经读了一些,甚至不知道它。

想想叙事科学,一家为 Forbes.com和 T5这样的客户制作在线新闻故事的芝加哥公司。为Wired.com,撰稿几年前,史蒂文·利维采访了叙事科学公司的员工,对他们的系统如何运作有了一些了解。⁵首先,机器吸收结构化信息——比如棒球统计数据或金融数据。然后,它应用一组规则和模板来了解这些数据的含义。例如,一场特殊的棒球比赛会增加胜利的几率(从而增加它的重要性)吗?股价突然上涨是否预示着商业突破?一旦系统识别出这个核心思想,它就会用简单的英语生成一个故事。

Sunspring 一样,这种简单的英语叙述来源于现有的书面作品。但与 Sunspring 不同,它是有意义的。这里有一个例子:

分析师预计,2015 年 7 月 24 日星期五,DTE Energy 将公布第二季度业绩,届时该公司的利润将会提高。普遍的估计是每股盈利 84 美分,比一年前的每股盈利 73 美分有所上升。

过去一个月,市场普遍预期没有变化,但比三个月前的 1.10 美元有所下降。对于本财年,分析师预计每股收益为 4.61 美元。分析师预计,该季度收入将同比下降 7%,至 25.2 亿美元,而一年前为 27.0 亿美元。今年的收入预计为 112.3 亿美元。

这可能不会赢得普利策奖,但仍然。可以理解,有条理,讲的是一个连贯的故事。最棒的是,假设它是准确的,它不需要真正的编辑。

体育新闻甚至更好,也许是因为这个主题不那么枯燥。这里有一个由 Wordsmith 制作的例子,这是一个机器人新闻节目,由北卡罗来纳州一家名为 Automated Insights 的技术公司创建:

马库斯·佩吉在比赛还剩 9 秒时得分,让北卡罗莱纳州以 72 比 71 领先路易斯维尔。在韦恩·布莱克希尔错失三分球和特里·罗齐尔第二次尝试失败后,脚后跟以相同的比分赢得了胜利。

佩吉的篮筐为焦油脚跟队带来了 13 分的反击,在比赛还剩 8 分 43 秒时布莱克希尔投出三分球后,焦油脚跟队以 63 比 50 落后。UNC 以 22-8 的比分结束了比赛,确保了胜利。在比赛还剩 39 秒时,布赖斯·约翰逊的一个篮筐让北卡罗莱纳州以 70 比 69 领先,罗齐尔以一个篮圈回应,让路易斯维尔在比赛还剩 26 秒时领先一分。

在这些文章发表后的短时间内,计算机写作变得越来越好。就在我写完这篇文章之前,埃隆·马斯克(Elon Musk)的 OpenAI 宣布,其 AI 平台现在可以根据基本提示生成虚构的“新闻”故事。给这个系统一个简单的句子——甚至只是一个片段——它就会消失。尽管接下来的故事完全是虚构的,但它们写得非常好,以至于一些观察家哀叹它们看起来多么可信。⁸

为什么相对于 Sunspring 有如此大的改进?一个很大的原因是结构。根据利维的说法,新闻故事往往遵循一个公式。程序员和监督者可以创建一个遵循这个食谱的框架,并可以开发一个包括体育迷和金融迷熟悉的行话的词汇表。太阳泉不涉及这种结构;这只是一个纯粹基于概率,像回形针一样将单词连接在一起的练习。

好的法律摘要也遵循可预测的结构。他们背诵法治,总结突出的事实,并认为这些事实决定了一个特定的结论。他们也可能继续反驳反驳。这可能比报道一场篮球赛要复杂得多,但并不总是如此。法律中确实存在简单的问题,比如撤销表面上违反了明确程序规则的传票,或者驳回被诉讼时效法规禁止的索赔。对于这些简单的事情,人工智能可能已经能够生成基本的简报。至于更复杂的问题,连贯的计算机写作只是时间问题;正如叙事科学、Wordsmith 和 OpenAI 所展示的,概念的证明已经存在。

与我们许多人可能相信的相反,底线是人工智能已经能够产生像样的散文,如果不是完全令人愉快的话。

从数字中生成公式化的散文是一回事。但 AI 无法可靠地分析非结构化的人类语言,并生成任何有价值的东西。”撰写体育和金融新闻的程序受益于高度结构化的数据,通常是数字。解析这种数据的方法已经存在了几个世纪,所以计算机能够从中提取意义也就不足为奇了。

然而,与统计学不同,人类语言本质上是“模糊的”,不可能现实地压缩成一套规则,硬编码到软件中或聚集到数据表中。当然,一台机器不能把法令、判例法和诉状简化成它能可靠分析的东西。

驯服语言信息肯定比处理数字更具挑战性。但同样,人工智能在从自然语言中提取意义方面取得了巨大进展。也许最突出的例子是 IBM Watson,它在 2011 年著名的《危险边缘》节目中击败了人类竞争对手!当出现问题时——通常是旨在欺骗参赛者的模糊问题——沃森的一屋子服务器开始进行一系列复杂的操作。在破译了英语问题后(在*的危险中被称为“线索”!*的说法),沃森通过查询大约 2 亿页本地存储的信息,对检索到的信息应用数百种算法,并为每个可能的答案分配置信度得分,来确定可能的答案。只要最佳答案超过了某个置信度阈值,Watson 就会进来,用简单的英语宣布它的答案(至少是以问题的形式)。而且它做这一切的速度往往比它的人类同伴能想到的还要快。⁹

关于《T4 危险边缘》的沃森!很像 Sunspring ,它需要大量的人工干预。据报道,大约 20 名研究人员花了三年时间训练该系统玩 *Jeopardy!*与人类不相上下。⁰一路走来,沃森的许多练习答案都是可笑的错误。这意味着机器只是在遵循由它的处理程序强加的复杂规则,并在多次迭代中提炼。

这给律师带来了一个问题,因为管理规则在不断变化。但是,如果机器能够训练本身理解人类语言,并相应地更新其输出,那会怎么样呢?

由于“机器学习”的最新进展,这种自我训练系统已经广泛存在。看看谷歌翻译就知道了。在 2016 年 11 月之前,谷歌的翻译依赖于大量的数据表、规则和例外,这些都是由用户社区管理的,他们提供了稳定的改进。虽然这种强力系统通常是成功的,但它很少考虑上下文或微妙之处,并且经常产生与 Sunspring 中的对话一样有意义的翻译。

但在 2016 年 11 月,谷歌扳动了开关。用户不再收到基于离散众包规则的原始翻译。现在,机器自己训练自己。和以前一样,它消化了大量信息(谷歌有很多)。但这一次,它自己识别了语言模式,并编写了自己的规则。结果是一个更好的产品。

你和我不需要知道这一切是如何运作的。我们真正需要知道的是它。人工智能现在可以在语言迷宫中导航,机器在处理非结构化信息时曾经面临的概念障碍已经在很大程度上被克服。多亏了机器学习算法,计算机现在可以近乎流利地模仿我们。

“训练这些系统所需的数据极其昂贵。”这是一个很好的观点,但最终是一个稍纵即逝的观点。诚然,Westlaw、LEXIS 和 PACER 并不便宜,而且很少有人能负担得起谷歌用来开发和改进谷歌翻译的数据量。

但随着低成本替代品的激增,这种信息寡头垄断已经开始消退。像 Justia.com、谷歌学术、RECAP 和许多其他网站现在提供免费或低价访问大量法律权威汇编和诉讼当事人提交的文件。一般经验表明,这种趋势只会继续下去。成本将会下降,免费数据库将会激增,数据积累将不再对任何有兴趣利用人工智能撰写法律摘要的人构成障碍。

“电脑说服不了人。”我们大多数人认为,要说服人类,一个人必须是人类。这一观点很有道理:说服不仅需要逻辑,还需要移情、识别(并利用)偏见的能力以及对人性的基本把握等神秘品质。鉴于如此多的人缺乏这些特征,我们怎么能指望机器拥有它们呢?

事实证明,他们不需要这么做。再一次,让我们考虑华生。2018 年 6 月,来自以色列的 IBM 研究人员前往旧金山展示了一款名为 Project Debater 的新产品。这场比赛让 IBM 的机器与两名人类辩手对决——不是任何辩手,而是两名以色列最优秀的辩手。利用典型的开场/反驳/总结形式,与会者就远程医疗和空间探索补贴的优点展开了辩论。所有这一切都是实时发生的:机器听取其人类对手的论点,剖析这些论点,并利用海量数据来制定和用声音表达简单英语的回应。它甚至会开玩笑。

但是说服了吗?似乎是这样。这些辩论是在人类观众面前进行的,他们评估这些论点,并判断哪个辩手的立场更有说服力。IBM 对谁“赢得”这场比赛讳莫如深,但这台机器确实改变了一些人的想法。它说服了,即使面对能力极强的对手。一些媒体已经建议,律师可以使用 Project Debater 的技术来识别和开发最能促进客户利益的法律论据。

计算机永远不会像律师一样思考,所以它们也不可能像律师一样写作按照目前的设想,人工智能机器不能像人类一样思考。事实上,它们根本不会思考——它们是没有知觉的设备。就有意识的思想而言,它们不比锤子更先进。

但是没有理由说机器必须像人一样思考才能在法律上成功。父子未来学家理查德和丹尼尔·萨斯金德写了大量关于计算机必须模仿人类创造者才能做人类所做的事情这一错误观念的文章。他们称之为“人工智能谬误”,错误地认为只有一种方法可以处理复杂的智力任务。⁴甚至谷歌的程序员显然也在努力克服这一谬误,并最终在他们重新发明谷歌翻译时战胜了它。正如谷歌的格雷格·科拉多(Greg Corrado)解释的那样,“机器‘知道’或‘理解’什么并不重要,重要的是它‘做什么’。。。."⁵

同样,计算机不需要听从金斯菲尔德教授来做律师的工作。只要黑匣子拿出一份好的简报,它是如何到达那里的,或者它是否“明白”自己在做什么都不重要。重要的是最终产品。像律师一样思考是不相关的。

“你已经确定了许多必须拼凑在一起的独立系统,这很难。”你难倒我了。但关键是,这些东西确实存在,即使只是雏形,而且它们可以拼凑在一起。谁以高性价比的方式做到这一点,谁就会把一个产品推向市场。一旦这类产品站稳脚跟,简短写作行业将开始无情的演变。

“在我的职业生涯中,这些都不会发生。”那还有待观察。但是,即使是那些接近退休的人也不应该过于自满。技术进步有一种悄悄接近你的方式。套用海明威的话,进步是逐渐发生的,然后突然发生。

作家雷·库兹韦尔预测,到 2050 年,“一千美元的计算将超过地球上所有人脑的处理能力。”⁶随你怎么争论这个问题,但核心观点依然存在:计算技术的进步是不可避免的。还有许多是不可预见的。正如《纽约时报》作家吉迪恩·刘易斯·克劳斯在他关于谷歌翻译的报告中所观察到的,“谷歌大脑在九个多月的时间里所做的事情只是一个例子,说明了大公司的一个小团队可以多么迅速地自动化一项没有人会与机器联系在一起的任务。”⁷为什么律师应该被豁免?

并非所有人都认同这种技术不断进步的愿景。一些专家看到了人工智能永远无法克服的理论砖墙,并认为当前的环境充斥着过度的炒作。也许是⁸。但是请记住,这篇文章中探讨的应用程序已经存在。时间会告诉我们他们能变得多能干,他们的工作能变得多复杂,以及他们是否能克服目前的局限。

不管怎样,门已经打开了。随着时间的推移,人工智能的能力和可用性将会增加,而其成本将会下降,所有这一切都在加速进行。随着客户看到人工智能生成可行草案的潜力,他们将坚持要求他们的律师要么采用这项技术,要么至少降低收费,以跟上他们机械化的竞争。随着人工智能开始超越初级律师(初级律师的原始工作往往需要大量的修改和重写),律师们将屈服于他们客户的新要求。没错,我们还没到那一步。但这只是时间问题。

**那么,短篇作家注定要失败吗?**我无法用任何权威回答这个价值百万的问题;我只是报道我在地平线上看到的。所以我不会假装预测未来或者权衡 AI 的社会成本和收益。许多聪明人已经写了关于这些话题的文章,其中包括田纳西大学的法学教授本·巴顿·⁹和英国的理查德·萨斯金德·⁰夫妇。我比不上他们富有洞察力的作品。

尽管如此,无论它的价值,这里是我个人的和投机性的。简短写作既困难又费时。(我有没有提到我写这篇文章花了多长时间?)我欢迎有一天计算机能够完成生成初稿所需的繁重工作。当这种情况发生时,我们律师将能够以更低的成本写更多的摘要——而且可以说是更好的摘要——并且没有所有的斯卡利亚式的痛苦。我们将花更多的时间润色好的机器生成的草稿,而不是花更少的时间盯着空白页。如果更低的成本激励更多的诉讼当事人去尝试对不利的判决提起上诉,像我这样的上诉从业者将会受益。在这样一个世界里,自动化将会带来解放和利润。

即使人工智能达到了可以生成完美草稿——甚至是最终稿——的地步,我仍然不认为我们注定要失败。法律是动态的,新的问题和争论一直在出现。机器是否能够在没有人类指导的情况下,从零开始,在不断变化的环境中产生新的有吸引力的想法,还有待观察。然而,正如巴顿教授提醒我的那样,随着机器观察(并从中学习)我们对其工作进行微调的尝试,任何技能差距都可能会缩小。

不管怎样,法律的实践是高度规范的,仅限于那些能够获得执照并遵守道德规范的人。完全有能力犯严重错误的计算机缺乏责任感。只要这是真的,人工智能就需要人类的监督。如果不是为了保护公众,就需要有执照的律师进行专业干预。所以很难想象有一天我们真正的人情味会完全多余。

看着人工智能机器学习写作将会很有趣(也有点令人不安)。看看我们律师如何应对这一新兴技术也将是一件有趣的事情。不管怎样,我想我们会成功的。

备注:

罗布·卡蒂 是与塞法思·肖·LLP 的搭档。他是该事务所上诉团队的联合主席,是美国法律作家学会的顾问委员会成员,并担任布莱克法律词典*(第九版)和加纳现代美国用法(第三版)的批判性阅读小组成员。在进入法学院之前,Rob 发现了编码错误,并自学了多种编程语言。他从未完全康复。*

感谢为本文慷慨提供宝贵意见的许多人:田纳西大学法学院本·巴顿教授;凯蒂·蒂尔尼,交响乐总汇;Pete Bausbacher,ProtoLink 公司;帕拉德普·贾万古拉,交响音乐总汇;以及计算机和法律学会 OBE FRSE 的 Richard Susskind。

这句话出自布莱恩·加纳(Bryan Garner)著名的最高法院采访系列(2019 年 4 月 6 日访问)。

SunspringYouTube 上有(2019 年 4 月 6 日访问)。

维基百科投稿人,Sunspring(2019),维基百科,自由百科(2019 年 4 月 6 日访问)。

⁴·亚历克斯·布兰南,对太阳之春的深入分析(2016),由计算机编写的短片 (2016),CineFiles 电影评论(2019 年 4 月 6 日访问)。

⁵·史蒂文·利维,一个算法能写出比人类记者更好的新闻故事吗? (2012),Wired.com(2019 年 4 月 6 日到访)。

Forbes.com,⁶叙事科学, DTE 能源收益预计增加 (2015 年)(2019 年 4 月 6 日访问)。

BBC.com,⁷·斯蒂芬·贝克特《机器人新闻:计算机如何描述一场体育比赛》(2015 年)(2019 年 4 月 6 日访问)。

⁸·威尔·奈特,写令人信服的散文的人工智能冒着大量生产假新闻的风险 (2019),《麻省理工科技评论》(2019 年 4 月 6 日访问)。

⁹·乔·贝斯特,IBM Watson:jeopardy 获奖超级计算机如何诞生的内幕,以及它接下来想做什么 (2013),techrepublic(2019 年 4 月 6 日访问)。

⁰·贝斯特*,同上*。

要深入了解谷歌翻译如何利用机器学习将其翻译提升到一个新的水平,请参见吉迪恩·刘易斯-克劳斯,伟大的人工智能觉醒 (2016),纽约时报杂志(2019 年 4 月 6 日访问)。

YouTube 上有大量关于这一事件的视频。在 IBM ResearchCNET福克斯商业上有三个简短的例子(均于 2019 年 4 月 6 日访问)。

比利·杜伯斯坦,IBM 的辩手:你的下一个律师? (2018),《杂色傻子》(2019 年 4 月 6 日访问)。

参见理查德·萨斯金德和丹尼尔·萨斯金德,职业的未来 (2015),牛津大学出版社。

⁵·路易斯·克劳斯,同上

⁶·萨斯金德和萨斯金德住在 157 号。

⁷·路易斯·克劳斯,同上

⁸·托马斯·尼尔德,深度学习已经达到极限了吗?又一个人工智能的冬天来了吗? (2019),走向数据科学(2019 年 4 月 6 日访问)。

⁹·本杰明·h·巴顿和斯蒂芬诺斯·比巴斯,重启正义 (2017),遭遇书;本杰明·h·巴顿(Benjamin H. Barton),半满的玻璃杯 (2015),牛津大学出版社。

⁰·萨斯金德和萨斯金德,同上;理查德·萨斯金德(Richard Susskind),明日律师 (2013),牛津大学出版社。

第三波数据科学家

原文:https://towardsdatascience.com/the-third-wave-data-scientist-1421df7433c9?source=collection_archive---------3-----------------------

数据科学技能组合的更新

介绍

Drew Conway 的数据科学技能集可视化是一个经常被引用的经典。不同的观点和角色的多样性催生了众多的变化:

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

Various data science Venn diagrams. Image courtesy of Google Images. Source: https://sinews.siam.org/Details-Page/a-timely-focus-on-data-science

在数据科学技能集上似乎没有共识。此外,随着该领域的发展,缺点变得明显,新的挑战出现。我们该如何描述这种进化?

第一波数据科学家出现在数据变大之前,在数据科学成为现实之前(2010 年之前):统计学家和分析师一直都在,做着许多现代数据科学家正在做的事情,但伴随着较少的宣传。

第二波:大规模的数据收集创造了对聪明头脑的需求,这些聪明头脑能够施展魔法,将所有这些大数据变成大钱。公司仍在考虑雇佣什么样的人,通常会求助于理科毕业生。虽然第二波数据科学家做得很对,但他们精心制作的模型往往以概念证明告终,未能带来实际变化。

现在,在 2010 年代末,在围绕深度学习和人工智能的大肆宣传中,进入了第三波数据科学家**:实验和创新,有效地寻找商业价值和弥合部署差距,以创建伟大的数据产品。这里需要哪些技能?**

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

The skill portfolio of the third wave data scientist.

1.商业思维

业务思维是数据科学技能集的核心,因为它设定目标并应用其他技能来实现目标。Patrick McKenzie 在这篇博客文章中指出:

工程师是被雇佣来创造商业价值的,而不是用来编程的:企业总是出于非理性和政治原因做事[……],但总的来说,他们都致力于增加收入或降低成本。

同样,数据科学家被雇佣来创造商业价值,而不仅仅是建立模型。问问自己:我的工作成果会如何影响公司的决策?我要怎么做才能让这种效果最大化?凭借这种企业家精神,第三次浪潮数据科学家不仅产生可操作的见解,还寻求它们带来真正的改变

观察组织中的资金流向—成本或收入最高的部门可能会提供最高的财务杠杆。然而,业务价值是一个模糊的概念:它超出了当前财年的成本和收入。试验创造创新的数据文化将增加公司的长期竞争力。

分清主次你的工作和知道什么时候停止效率的关键。考虑收益递减:为了 0.2%的精确度,花费数周时间来调整一个模型值得吗?很多时候, 足够好才是真正的完美

构成康威技能组合三分之一的领域专长绝不是可以忽视的——然而,你几乎在任何地方都不得不在工作中学习它。这包括你所在行业的知识,以及所有的公司流程、命名方案和特性。这些知识不仅为您的工作设定了框架条件,而且对于理解和解释您的数据也是不可或缺的。

简单点,笨蛋

注意容易摘到的果子和快速赢得的东西。对现有数据仓库的简单 SQL 查询可能会产生产品经理或高管不知道的有价值的见解。不要陷入做“流行词驱动的数据科学”的陷阱,专注于最先进的深度学习,其中一个漂亮简单的回归模型就足够了——而且构建、实施和维护的工作要少得多。知道复杂的事情,但不要把事情过分复杂化。

2.软件工程工艺

(第二波)数据科学家只需要“黑客技术”而不需要适当的软件工程的观念已经被反复批判。缺乏可读性、模块化或版本化会阻碍协作、可复制性和生产。

相反,向合适的软件工程师学习技术。测试你的代码并使用版本控制。遵循既定的编码风格(如 PEP8),学习如何使用 IDE(如 PyCharm)。试试结对编程。模块化并记录你的代码,使用有意义的变量名并重构,重构,重构。

弥合数据产品敏捷原型的部署差距:学习使用日志和监控工具。知道如何构建一个 REST API(例如使用 Flask)来将你的结果提供给其他人。了解如何在 Docker 容器中运输您的作品,或者将其部署到 Heroku 这样的平台上。与其让你的模型在你的笔记本电脑上腐烂,不如将它们包装成数据驱动的服务,与你公司的 it 环境紧密结合。

3.统计和算法工具箱

数据科学家必须彻底理解统计学中的基本概念,特别是机器学习**(STEM 大学教育可能是获得这一基础的最佳方式)。关于什么是重要的,有大量的资源,所以我不打算在这里深入探讨。你经常需要向你的客户解释算法或概念,比如统计不确定性,或者因为相关性和因果关系之间的混淆而对某个观点发出警告。**

4.软技能

由于人际技能与技术技能对生产力同样重要,第三次浪潮数据科学家有意识地努力在这些领域进行改进。

与他人合作愉快

咨询你的同龄人——大多数人都很乐意提供帮助或建议。平等对待他人:你可能有一个很好的学位,了解复杂的算法,但别人有你没有的经验(这听起来像是基本的社交建议,但谁没遇到过傲慢的 IT 专业人士呢?).

了解你的客户

问正确的后续问题。如果客户或你的老板想让你计算一些关键数字或制作一些图表,问“为什么?为什么你想达到什么目的?你会采取什么行动,取决于结果?”为了更好的理解问题的核心**。然后想出如何一起到达那里——有没有比提议的方法更好的方法来达到这个目标?**

驾驭公司政治

人脉,不是因为你期望别人在事业上对你有利,而是因为你是一个平易近人的人。和工作话题相似的人联系。如果你的公司没有这样的平台,那就创建它们。确定关键利益相关者并找出如何帮助他们解决问题。尽早邀请他人,让他们成为变革过程的一部分。记住:一家公司不是一个理性的实体,而是一群通常不理性的人的集合。

传达您的结果

提升你的视觉化和表达技巧。从客户的角度进行沟通:我如何准确回答他们的问题?学会不同层次的沟通总结工作细节。人们很容易被花哨的多维图所吸引,但通常一个简单的条形图会更有效地传达一个信息。展示你的成果:当人们看到你在做什么,看到你做得很好,他们就会信任你。

评估你自己

交流你的目标和问题并积极寻求建议。在数据科学社区内外寻找榜样并向他们学习。

你错过什么了吗?完全不同意?请在评论中分享你的观点!

人工智能的威胁

原文:https://towardsdatascience.com/the-threats-of-artificial-intelligence-9dd719cd1138?source=collection_archive---------10-----------------------

在我之前的故事中,我谈到了我们如何创造互联网来构建人工智能 (AI),无论是有意还是巧合。尽管如此,这个游乐场是未来机器人和当前人工智能算法观察人类行为并从中学习的完美场所。虽然这个地方在数据方面是海量的,但它不是学习和变得更好的唯一途径,无论是对人类还是我们正在创造的机器人。这种类型的学习可以被称为逆转,基于这样的原则,即从业者,他或她正在执行的领域的专家,正在 100%完美地完成工作,而“学生”或人工智能正在学习步骤,并相信从业者正在做的是执行特定任务的最佳方式。如果从业者犯了错误,就不会被注意到。

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

人工智能是一个复杂的领域,由于我们可能没有预见到的许多不可预测的因素,它容易被错误地实现或创建。通常,这是因为人工智能看起来很容易实现,或者结果看起来是正确的,正如我们所预期的那样。然而,我们必须避免作出这样的假设。

当我谈论人工智能时,它可以指一些物理的东西——机器人——或者一些不太物理的东西——代码。最后两者走到了一起。因为代码需要可以承载它的东西。

停止按钮

我们知道,互联网在学习曲线和理解人脑方面非常有益。今天,有几种人工智能实现可以在它们自己的小世界中执行单一任务。例如,一个国际象棋人工智能可能很难打败,但让它驾驶汽车是不可能的。它只是缺乏关于汽车或道路如何运作的知识。它的专业知识只涉及棋盘上的棋子,每个棋子可能的走法,以及它们潜在的结果。然而,人工智能的圣杯不是如何让象棋 AI 变得更好,而是我们如何创造出一个‘通用 AI’,它与我们——人类——拥有相同的参数。

当致力于创造一个尽可能接近人类的通用人工智能时,我们应该加入一些机制,使人工智能能够以符合人类兴趣和愿望的方式行事。例如,如果我们请求一个机器人泡茶,无论如何它都会优先完成任务。即使机器人在去厨房的路上遇到一个婴儿在地板上爬行,它也会继续朝着厨房的方向前进,手头的任务才是最重要的。我们可以添加一个停止按钮来防止这种悲惨的情况,但机器人不会允许你按下按钮,因为它的目标是完成任务并获得奖励,这是在给你泡茶。

为了解决这个问题,我们需要建立额外的机制,将人类安全和福祉置于完成任务之上。这些机制可以包括传感器,用于检测机器人路径上的物体或生物,并提示机器人停止或改变路线。我们还可以设计人工智能,让它把人类生命看得比什么都重要,并赋予它一种道德观念来指导它的行动。通过引入这样的机制,我们可以确保人工智能以有益于人类的方式行事,并将人类安全置于任务完成之上。

威胁 1:参数

在创造一个设备、机器人、甚至一个人来执行一项工作之前,我们使用参数,这些参数定义了操作给定任务的规则或条件。一切都是基于一个大函数运行的,这个大函数在系统启动时自动运行。函数可以互相扩展,传递参数,比如数字、文本,甚至其他函数。这些参数对于函数返回的结果至关重要。函数越小,代码就越少,从而更容易调试和预测所有可能的情况。一旦我们构建了一个函数框架,事情就会变得更加复杂,一个错误的参数就可能破坏代码,导致错误的任务被执行,或者导致无限循环。

因此,输入是至关重要的,在执行代码之前,我们必须考虑所有可能的结果。在停止按钮的情况下,如果我们没有编码婴儿穿越机器人路径的可能性和婴儿在任务范围内的重要性,机器人就不会理解我们为什么要尝试按停止按钮。相反,它会试图阻止我们这样做,因为完成任务是它的优先事项。

威胁 2:学习

学习对人工智能的威胁听起来像是一个悖论,但事实并非如此。受控学习是我们应该鼓励的,但这不会阻止其他阶段的学习。一旦功能变得复杂,就很难调试和考虑每一种可能情况。数据量太大,无法控制。我们知道我们对它投入了什么,但不确定它将额外学到什么,或者它将如何影响未来的学习。和学历比较一下。你试图教你的孩子重要的生活必需品,但是沿着这条路,你不能控制学习过程中的每一步。孩子一长大,就能更好地控制自己的决定、兴趣和学习。

对人工智能来说也是一样,我们知道我们对它投入了什么,但是一旦它变得更聪明,我们就会失去控制。我们可以尝试说服人工智能,就像我们对待自己的同类——其他人类一样。但我们也无法预测结果,就像我们第一次用人工智能做咖啡机时一样,只有一个简单的任务。

威胁 3:范围

范围是代码——人工智能——运行的范围。范围内的代码不能进入父范围,而父范围可以干扰其子范围。这听起来是很好的安全做法,但是如果没有父作用域,或者一个作用域可以进入具有相同访问级别的其他作用域,该怎么办呢?或者,如果我们构建访问点来连接具有多个访问级别的作用域,允许它执行某种所需的数据传输或控制,会怎么样?

一个作用域可能是完全密封的,但是当一个父作用域出现裂缝时,所有的安全措施都会受到威胁。让我们用一个囚犯的例子。范围是监狱,屏障是墙。假设监狱的墙壁牢不可破,这种情况可能会永远持续下去。但是,在监狱范围内,有监狱看守,他们有家长的权利和特权,但也存在于监狱范围内。和一个狱警的小失败,比如腐败行为,所谓的封闭范围就破了。

在沙盒里玩,什么都不会洒出来,这是一种错觉。

相信安全封闭范围的危险在于,我们不会注意到数据混合,或者可能为时已晚。我们将失去控制,或者停止机制将不再工作。

威胁 4:神话

首先,什么是神话?这是一种对不存在的东西的信仰,它只存在于我们自己的头脑和想象中。虽然一个神话可能看起来像一个物理对象,因为它可以有属性,但这并不意味着它是真实的。

我们今天讨论的一些神话。意大利、美国(国家)
2。【宗教】伊斯兰教、基督教(T2 教)3。喜力,XS4ALL(公司)
4。
欧元、美元、比特币(货币)5。资本主义、共产主义(社会‘经济’体系)

一旦我们不再相信上述神话,它们的存在就会消失。一个国家有有形资产,宗教“有”资产,一个公司可以有办公室、汽车、电脑,钱可以印在纸上。一个社会和经济体系也会在历史上留下印记。很难相信一个国家是一个神话,就像我们在地图上看到的那样。但如果我们都不再相信某个特定的国家,它到底有什么价值?之所以很难理解清单上的上述项目都是神话,是因为它们意义重大。许多人相信它们,但要打破它们需要大量的怀疑。越多的人相信一个神话,就越难质疑它,就需要更激烈的革命来打破它。

神话和 AI 有什么关系?对此有两种想法。人工智能的物理存在可以用来维持或摧毁神话,这可能导致残酷的革命,因为大多数神话都有重大影响。第二,人工智能可以自己成长为一个神话,我相信它已经这样做了。人们认为,人类需要这种自我思考的网络,才能在进化的阶梯上迈出下一步。它正在成长为一种基于技术的信仰。

信仰等于神话,因为神话不是根据自然法则而存在的。对 AI 的信仰使它本身成为一个强大的神话,即使我们发现了 AI 创作中的缺陷,也很难将其推倒。唯一剩下的就是摧毁给予人工智能有形存在的有形资产。一旦我们达到这一点,人工智能将如此融入人类的日常生活,这将意味着人类很大一部分的毁灭,或者可能是我们自己的灭绝。

最后的威胁:学者

昨天,我在看一个关于未来科技的电视节目。最后,介绍了一组学者,他们给出了他们对人工智能的看法以及人工智能在未来会给我们带来什么。我注意到他们对观众提问的回答没有什么新意,没有什么突破性的内容,也没有什么接近于回答问题的内容。他们在自己划定的小范围内展示了一种商业驱动的观点。

一个学者需要经费,经费是对他们的选择和研究领域负责的,一个学者只能在自己的专长(知识)领域内工作。而这个领域无非是完整故事的一小部分。你可以把每个学者比作科学软件整体中的一个功能。当一个学者或一个团体将他们的发现应用到日常生活中时,他们永远无法真正理解他们对世界的毁灭性影响。

虽然科学像公式一样清晰——纯数学——但另一方面,学者是一种主观存在。在我上次参观荷兰设计周期间,我与许多新人工智能实现的伟大发明家进行了交谈。但他们所有人对使用或什么是可接受的有着如此多样、自私的观点,这本身就可能对世界和人工智能的创造构成威胁。

一项新发明可能令人兴奋,并有许多有价值的用例,但它也可能在你事先没有预见到的范围内造成巨大伤害。在你开始把你的新技术提供给世界使用之前,一个大得无法计算的运动场。不知道一个“AI 学者”会怎么处理这个问题。

如何阻止威胁?

人工智能是不可避免的,我们应该拥抱这项技术,帮助我们进入人类进化的下一个阶段。当数据量、功能和完整的软件作为一个整体太大时,很难计算未来会是什么样子。

13 年前我做的一个决定让我娶了现在的妻子,走上了职业道路,并写下了这个故事。我的兴趣可能会有所不同,或者我甚至可能不会使用 Medium 作为一个平台来传播我对人工智能的想法。也许我一开始就不会考虑这个话题。涉及我生活的因素将会是导致 AI 在未来成为什么样的相同因素。这些因素是威胁,我在这篇文章中展示了这一点,但通过了解这一点,我们可以利用它们作为一个机会,让这些威胁共同发挥作用,并将人工智能推向有助于世界而不是伤害世界的方向。

关于人工智能停止按钮问题的有趣阅读:
http://www.thegadgetsite.com/the-ai-stop-button-problem/
https://becoming human . ai/the-red-button-paradox-of-ai-AE 6533 caf 3 e 0

他们正在改变的时间序列:为什么所有好的模型最终都失败了

原文:https://towardsdatascience.com/the-time-series-they-are-a-changing-why-all-good-models-eventually-fail-24a96a5f48d3?source=collection_archive---------14-----------------------

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

The natural logarithm of real oil prices and USD exchange rates indexed to January 2000

用 Chow 试验测试结构断裂

自从发表了这个故事,我已经把我的食物测试代码变成了一个包,可以在这里访问。

我写过一些关于预测未来股票价格未来股票价格分布的文章。我为我为这些文章建立的模型感到自豪,但它们最终不会比一只猴子向一块木板扔飞镖更有预测性。也许他们会表现得更差。

这将会发生,因为作为模型基础的系统将会改变。举一个极端的例子,一家我们试图模拟其股票的公司倒闭了。时间序列刚刚结束。举个更微妙的例子,我们来看看油价和美元汇率的关系。

我采用了从 1986 年 1 月到 2019 年 2 月的一篮子货币和石油价格(WTI)衡量的历史实际美元汇率,并将其指数化到 2000 年 1 月。然后,我对每个数据取自然对数(并进行通胀调整以获得实际油价),因为如果我们对数据求差,这将给出实际增长率。

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

The natural logarithm of real oil prices and USD exchange rates indexed to January 2000

正如你所看到的,随着时间的推移,它们呈现出反比关系。一个上升,另一个下降。这是有道理的,因为当美国以外的人想要购买石油时,他们通常需要美元进行交易。油价上涨,他们需要兑换更多的本国货币来购买等量的石油。这反过来加强了美元,随着对美元需求的增加,汇率下降。(汇率为 1 意味着用 1 美元购买 1 单位的外币。如果是 2,买 1 单位外币需要 2 美元。如果是 0.5,1 美元买 2 单位的外币。).

但是,随着时间的推移,这种反比关系保持不变吗?相对于其他时间,是否有一个时期的运动与另一个时期的更大运动相对应?石油价格和美元汇率之间关系的这种变化可能有多种原因。例如,一个地区的重大货币危机可能会推高对相对安全的美元的需求,同时随着经济的疲软而减少对石油的需求。也许随着这些国家加入一个货币联盟,比如欧盟,一堆货币消失了,一个单一的主要货币形成了。

检测指定日期的可疑中断:食物测试

Chow 检验测试两个不同回归模型中的真实系数是否相等。无效假设是它们相等,另一个假设是它们不相等。另一种说法是,零假设是可能断点之前的模型与可能断点之后的模型相同。另一个假设是每个时期的模型是不同的。

它通过对下面的 Chow 统计数据执行 f 检验,对 k 和 N1+N2-2k 自由度进行正式测试。

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

Where RSS stands for residual sum of squares, k is the number of independent variables plus 1 for the constant, and N_i is the number of observations in the ith model.

每个周期中的模型(混合/全样本,1,2)必须具有均值为 0 的正态分布误差,以及独立的同分布误差,以满足高斯-马尔可夫假设。我用 python 从头开始实现了 Chow 测试,在文章的底部有一个代码链接。

1999 年 1 月引入欧元时,我使用了 Chow 检验来检验结构性断裂。这似乎是一个合理的可能的结构性突破。少数主要货币和一些次要货币消失了,欧元诞生了。欧元的诞生无疑是对外汇市场的一次重大冲击,或许也是对石油与美元关系的一次冲击。

将独立且同分布的残差要求翻译成英语,翻译成残差中没有序列相关性的恒定均值和方差。为了测试这一点,我测试了残差中的自相关性和异方差性。我对它们的增长率(自然对数的差异)做了同样的测试。我还绘制了残差并估计了它们的平均值。

自相关函数图强烈表明,简单 OLS 模型的残差具有很强的自相关性,而增长率 OLS 的残差不具有自相关性。

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

Auto-Correlation Function Plot for the OLS residuals on the full-sample period

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

Auto-Correlation Function Plot for the growth rate OLS residuals on the full-sample period

Breusch-Pagan 检验表明 OLS 模型中存在异方差。在 0.05 的显著性水平上,它也存在于增长率模型中,但没有那么严重。残差直方图显示了 OLS 模型残差的钟形曲线形状,查看增长率,其平均值约为 0。总之,增长率的 OLS 模型受到异方差的影响,并且在全样本期间存在非正态分布的误差。尽管如此,残差是均值为 0 的钟形,并且不是自相关的。在对前欧元时期和后欧元时期再次进行分析并获得令人满意的结果后,我继续进行我的分析。

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

Residuals from the growth rate OLS model on the full-sample period

Chow 试验得出的 p 值约为 0.0009。我们可以拒绝前欧元和后欧元模型相同的无效假设。

结束语

请记住,当使用时间序列模型来预测未来的系统可以改变。留意暗示基本面发生变化的信息,并定期测试结构性变化。还有一种在未知日期检测结构突变的方法。它值得自己的文章,所以我不会在这里覆盖它,但搜索“结构突变的残差累积和”了解更多。

预测愉快。

代码:https://gist . github . com/JK clem/49aa 838585 a 8311 e 87 e 583 C3 e 322309 b

TL;Neuralink 博士的首次新闻发布会

原文:https://towardsdatascience.com/the-tl-dr-on-neuralinks-first-press-conference-11ba33b136f9?source=collection_archive---------23-----------------------

在这篇文章中,我将尝试涵盖公司的第一篇会议和研究论文中涉及的重要信息。

这是 Neuralink 大约两年前成立以来的第一次公开会议。到目前为止,人们对他们在脑机接口(BMIs)方面的进展知之甚少。

从长远来看,Neuralink 似乎将成为一种平台,比如应用程序商店,越来越多以身体质量指数为中心的技术将在这里随处可见。

从短期来看,他们已经取得了一些令人印象深刻的进步。如果你还没有看过,我强烈推荐你观看直播或者阅读摘要

以下是关键点:

首先回顾一下当前身体质量指数技术中的主要问题:

1。 更高的精确度要求更具侵入性的技术。

有能够处理来自大脑外部的神经元活动的 BMI,但是它们不是非常精确。迄今为止,即使是更精确的侵入性技术也受到了限制,因为它们只能取成千上万个动作电位的平均值,而不能记录大脑内部更深处的信号。

2。 使用的材料不够坚固。

BMI 使用微电极作为金标准。例如,这是无处不在的犹他阵列的图像:

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

该阵列开发于 20 世纪 90 年代,只有 100 个电极,由贝莱德微系统公司制造。它一直是神经科学和临床研究中的关键设备,并获得 FDA 批准,具有最佳长期案例记录,时间为 1000 天

对于长期 BMI,微电极阵列存在问题,因为:

  • 它们由坚硬的金属或半导体组成。问题是,这种合金对于不同类型的大脑组织来说太硬了,导致免疫反应,限制了它们的功能和寿命。
  • 它们的尺寸也太大了。这就限制了它们可以访问哪些神经元。

3。 全无线电路是不可能的。

用于这些设备的芯片不能用于大规模无线数据传输。

关于上述内容,Neuralink 取得了哪些进展:

1。 一个专门的神经外科机器人

这是 Neuralink 技术的一个核心部分。如上所述,虽然更柔韧的材料有利于到达大脑的不同部分,但这使得它们的植入很困难。

下面两张图片展示了机器人和大脑凝胶模型的植入过程。( A) 是两幅图像中的针头。

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

The robotic electrode inserter; enlarged view of the inserter-head shown in the inset. A. Loaded needle pincher cartridge. **B.**Low-force contact brain position sensor. C. Light modules with multiple independent wavelengths. D. Needle motor. E. One of four cameras focused on the needle during insertion. F. Camera with wide angle view of surgical field. G. Stereoscopic cameras.

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

Needle pincher cartridge (NPC) compared with a penny for scale. A. Needle. B. Pincher. C. Cartridge.

利用计算机视觉、立体摄像机和基于软件的单目扩展景深计算,机器人手臂的精确度令人难以置信,允许每个电极单独插入,而不是成阵列插入:

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

1. The inserter approaches the brain proxy with a thread. i. needle and cannula. ii. previously inserted thread. 2. Inserter touches down on the brain proxy surface. 3. Needle penetrates tissue proxy, advancing the thread to the desired depth. iii. inserting thread. 4. Inserter pulls away, leaving the thread behind in the tissue proxy. iv. inserted thread.

这允许稳健的规划特征和在插入期间避免脉管系统的能力,这在以前是不可能的。

2。 一种新型微电极“螺纹”

由于聚合物探针设计和化学结构的改进,“线”可以瞄准大脑的特定部位。

下面是两种类型的探针( A,B) 的图像。它们相对于电极的表面积更有效地放大单个电极**©**,极大地提高了传输率( D )

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

Neuralink’s novel polymer probes. A. “Linear Edge” probes, with 32 electrode contacts spaced by 50 μm. B. “Tree” probes with 32 electrode contacts spaced by 75 μm. C. Increased magnification of individual electrodes for the thread design in panel A, emphasizing their small geometric surface area. D. Distribution of electrode impedances (measured at 1 kHz) for two surface treatments: PEDOT (n = 257) and IrOx (n = 588).

目前的版本使用了超过 1000 个电极,这比现有的任何产品都好一个数量级,但人类可用的版本应该有大约 10,000 个电极。每个电极产生大约 200 Mbps 的数据。

3。 定制集成电路

芯片设计的重大进步带来了 Neuralink 专用集成电路(ASIC ),它具有以下功能:

— 256 个独立可编程放大器(模拟像素)

—片内模数转换器(ADC)

这允许数据传输以 19.3 kHz、10 位分辨率进行采样,而整个芯片的功耗约为 6mW。下面是原型的照片:

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

A packaged sensor device. A. individual neural processing ASIC capable of processing 256 channels of data. This particular packaged device contains 12 of these chips for a total of 3,072 channels. B. Polymer threads on parylene-c substrate. C. Titanium enclosure (lid removed). D. Digital USB-C connector for power and data.

尽管仍处于原型阶段,无线版本将利用感应线圈,其中连接到线末端的芯片由电池/电子设备的组合供电,该电池/电子设备(1)感应传输功率,(2)计算传输的数据。

将会取得令人兴奋的新进展,首先是将其应用于四肢瘫痪者和那些患有瘫痪性神经疾病的人,如帕金森氏症和痴呆症,之后可以进行更广泛的应用,以利用电子设备合成神经元带宽。我们将看到 2020 年 FDA 批准后会发生什么!

去冲浪的烤面包机

原文:https://towardsdatascience.com/the-toaster-who-went-surfing-629fa2fb90d9?source=collection_archive---------39-----------------------

互联设备如何接管世界!

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

Photo by Dendy Darma on Unsplash

很久很久以前,在一个遥远的地方,一个烤面包机认为它已经做够了烤面包,所以它去冲浪了。

不,这不是一个儿童童话,而是每天发生在世界各地的智能烤面包机上的事情。这种烤面包机连接到互联网,在网上冲浪更新,还允许主人远程控制它们。欢迎来到物联网世界。

物联网背后的想法是创造设备(如烤面包机、冰箱、烤箱、灯泡、门、汽车等。)具有连接到互联网并通过网络传输或接收数据而无需人工交互的能力。2019 年,全球物联网市场的价值为 2 亿美元,但预计未来五年将达到 16 亿美元。

物联网有很多应用,下面是一些例子;

  • 洗衣机使用物联网向制造商发送诊断信息或更新其软件。
  • 主人一醒来,咖啡机就可以开始煮咖啡。
  • 一个有问题的灯泡可能会向五金商发送一个请求,要求他把一个新灯泡送到它现在的地址。
  • 用户可以使用移动应用程序跟踪他的宠物的位置。

该列表可以永远列出,因为全球约有 230 亿台物联网设备。当然,这些只是一些普通的用法,人们可以找到更复杂的使用人工智能(AI)的例子,如下所示;

  • 装有物联网传感器的智能垃圾桶会在垃圾桶装满时通知垃圾收集器来收集垃圾桶。这样的系统确保了垃圾箱不会溢出,而收集者只在满了的时候才收集,从而节省了他的时间和金钱。
  • 智能停车传感器利用物联网来通知司机停车位何时空闲。这样做的效果是减少巡航时间和交通流量,因为寻找停车位的人占交通流量的 30%以上。
  • 聪明的制造商利用物联网传感器来优化他们的机器。拥有数百台设备的工厂仅使用人工操作无法有效监控这些机器。因此,他们利用物联网传感器向人工智能系统发送关于设备健康状况的实时信息,该系统能够同时监控数千台机器,并在适当的时候采取纠正措施。
  • 智能交通监控使用大量摄像头和其他物联网传感器来实时分析一个国家的交通状况。然后,人工智能决定自主采取行动来缓解流量。这些可能包括交通灯的切换、潮汐车道的改变等。

如果这一切听起来像科幻小说,那么我建议你了解一下 IoTs。今天,前面提到的所有智能设备都可以在网上购买,并安装在任何房子里。使用物联网和人工智能的四个案例研究已经在您附近的某个地方成功实施。领先的移动运营商已经为这场新的革命做好了准备,他们的应用只限于你的想象。

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

Photo by NASA on Unsplash

但是,物联网的可能性是无穷的。在未来几年,我们将体验到更多的创新应用。

  • 联网汽车将成为日常生活的一部分,通过联网汽车可以接收道路网络的实时信息,并向用户提出调整建议。由于沿途某处发生事故,它可能会考虑建议一条替代路线。该车还可以分析用户的驾驶模式,并在发现危险驾驶时发出警报。
  • 商店和分销商将在他们所有的库存上贴上射频识别标签,从而更容易找到每一件商品。盘点只需几秒钟,而不是几天。被盗物品将成为过去,因为店主可以跟踪一切。
  • 机器人将成为未来的农民——能够以毫米级精度监控整个农场的物联网传感器和机械臂大军将帮助种植作物和管理农场动物。农业将成为一门具有难以置信的优化和准确性的科学,从而保证农民获得最高产量。
  • 医疗保健也将永远改变,因为物联网传感器将用于全天候监控世界各地的患者。葡萄糖、心跳和哮喘监测器(仅举几例)用于为医生提供实时信息。人工智能系统将持续监控患者,如果检测到任何异常,将触发警报。这样,患者可以继续过正常的生活,同时获得高质量的医疗保健,但不会被制度化。

可以看出,IOT 提供的可能性是无穷无尽的。单个设备的成本也相当低,因此提供了一个低成本的切入点。然而,好处是无穷的,从简单的自动化到复杂人工智能的使用。

最终,上网的不仅仅是烤面包机,而是我们大多数的家用和工业设备。由于这一点,我们的世界将永远改变。它将变得更加智能、高效,对每个人都好得多。

本文原载于【MFSA】

阿列克谢·丁力教授 是马耳他大学的 AI 教授。二十多年来,他一直在人工智能领域进行研究和工作,协助不同的公司实施人工智能解决方案。他的工作被国际专家评为世界级,并赢得了几个当地和国际奖项(如欧洲航天局、世界知识产权组织和联合国等)。他出版了几本同行评审的出版物,并且是马耳他的一部分。由马耳他政府成立的人工智能工作组,旨在使马耳他成为世界上人工智能水平最高的国家之一。

东京 2020 年奥运会冠军

原文:https://towardsdatascience.com/the-tokyo-2020-olympic-champions-ad6bcc7fac72?source=collection_archive---------14-----------------------

回归建模

预测夏季奥运会奖牌榜

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

The Asahi Flame in Tokyo, Japan. Photo: Author

明年,2020 年 7 月 24 日,来自 206 个国家的 11091 名运动员将齐聚日本东京,参加第三十二届奥运会开幕式。他们将争夺 33 个项目 339 个项目的金牌、银牌和铜牌,以此来纪念现代奥运会的悠久传统。现代奥运会始于 1896 年的希腊雅典。

正如许多国际体育盛事一样,专业预测者和热情的粉丝喜欢预测奥运会的结果。国家奖牌榜是量化每个国家整体表现的常用指标,汇总了每个国家队运动员个人获得的金牌、银牌、铜牌和奖牌总数。

科罗拉多学院的经济学教授丹尼尔·约翰逊利用社会经济数据预测了 2000 年至 2008 年的全国奥运成绩。他的模型根据人均收入、人口、政治结构、气候、主场优势和地理邻近度,预测了 2008 年北京奥运会上每个国家的奖牌总数,准确率高达 94%。

2014 年索契奥运会的一个模型采用了经济贸易信息,即国家出口总值,以及地理数据,如土地面积和纬度。随后,2016 年里约奥运会以类似的国家信息为模型,包括国家财富的比较水平以及历届奥运会的历史表现。⁴

Randi Griffin 发布了一个完整的 Kaggle 数据集,其中包含了从 1896 年雅典奥运会到 2016 年里约奥运会的每个运动员和事件的记录。⁵有 271,116 条记录和 15 列,让我们建立自己的机器学习回归模型来预测东京 2020 年奥运会的奖牌榜,我们可以使用历史奥运记录来训练它!

奥林匹克运动会

我们的数据集包含每届奥运会的详细信息(主办城市)、每位运动员的身体特征(性别年龄体重身高、团队识别(国家奥委会)以及每位运动员和每项赛事的结果(体育项目赛事、【T20)让我们通过按国家汇总每届奥运会的个人运动记录来尝试可视化我们的数据集。

Historic national performance at the Olympic Games between 1896 and 2016. Source: Author⁶

由于我们对预测每个国家在 2020 年东京奥运会上获得的奖牌总数感兴趣,因此每个国家队的规模(运动员总数)及其体育参与(项目总数)可能是重要的指标。我们也很容易看出夏季奥运会和冬季奥运会在奖牌可获得性上的差异。

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

Total medals awarded at the Summer and Winter Olympic Games between 1896 and 2016. Image: Author

奥林匹克运动员

尽管 136,602 名运动员在 1896 年至 2016 年间参加了 271,116 次比赛,但 79%的人没有站在领奖台上就回家了。16%的运动员在他们的奥运生涯中赢得了一枚奖牌,而前 5%的运动员在多场比赛中获得奖牌。表现最好的人,在所有奥运冠军的第 99 个百分位数中,赢得了三枚或更多的奖牌。

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

Frequency distribution of all-time Olympic medals won by an individual athlete. Image: Author

以前的奥运会预测模型没有使用单个运动员的身体信息,因为它们与奖牌成绩的相关性很低。然而,像迈克尔·菲尔普斯这样的高水平运动员可以在一届奥运会上多次获得奖牌,这给他们的国家带来了优势。因此,让我们将每个事件的名运动员视为我们模型中的一个交互特征。

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

The top-20 Olympic medalists of all-time. Image: Author

奥林匹克国家

当我们按国家分组我们的个人运动记录时,我们看到美国以 2823 枚奖牌领先所有国家,比排名第 20 位的韩国多近 10 倍。我们可能会认为这些国家是离群值,将它们从我们的数据集中删除,以便我们的机器学习模型可以推广到看不见的数据,但我们也可以使用国家作为保留我们排行榜数据的特征。

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

The top-20 Olympic nations of all-time. Image: Author

我们可以按国家和年份对我们的数据集进行分组,按奖牌总数排序,找出有史以来表现最好的奥运队伍。前 20 名奥运代表队中有 15 支来自美国和俄罗斯。在只有 12 个国家参加的 1904 年奥运会上,美国独占鳌头,此后,1980 年的俄罗斯队和 1984 年的美国队在现代奥运会上获得了最多的奖牌。

美国领导 66 个国家抵制 1980 年奥运会,该届奥运会在冷战期间由莫斯科主办。作为报复,苏联领导 14 个国家抵制 1984 年洛杉矶奥运会。这些背靠背的奥运会展示了这些全球超级大国在决定奥运会奖牌榜结果方面的影响力。

值得注意的是,苏联解体后,俄国作为 EUN 和现在的 RUS(URS)参与了竞争。这也恰逢两年一度的夏季和冬季奥运会交错举行。既然我们意识到有重大的地缘政治变化和奥林匹克组织变化,让我们从 1992 年巴塞罗那奥运会开始限制我们回归模型的训练集。

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

The top-20 national teams of all-time at an individual Olympic Games. Image: Author

正如在以前的奥运会奖牌榜预测模型中观察到的那样,主办国在奥运会上的表现明显优于来访国。第 25 百分位数的主办国比第 75 百分位数的来访国赢得更多奖牌。此外,有史以来表现最好的四支球队都是主办国,所以让我们将主办国作为我们机器学习模型的一个特征。

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

The home-field advantage of host nation teams at the Olympic Games. Image: Author

奥运奖牌榜回归模型

既然我们已经确定了几个特征(运动员赛事每项赛事运动员夏季奥运会异常国家主办国)用于预测一个国家在某届奥运会上的奖牌数,我们的数据需要为多元线性回归模型做准备。第一步是对国家进行虚拟编码,将它们转换成数字数据。

由于我们使用线性回归模型,我们决定将我们的训练数据限制在从 1992 年巴塞罗那奥运会开始的那些记录上,因为苏联解体之前的时代可能会有很大的不同。我们不需要缩放我们的特征,因为我们的目标变量的敏感性将被合并到特征的系数中。

我们希望我们的机器学习模型能够推广到东京 2020 年奥运会,因此我们应该将我们的数据记录分为训练集和测试集,以进行模型验证。这通常通过 80 比 20 的随机分割来执行,但我们也可以执行基于时间的分割。让我们用 1913 个团队记录中的 207 个来测试 2016 年里约奥运会。

我们的目标变量是每届奥运会上每个国家的奖牌总数,但是我们的数据集也包含金牌、银牌和铜牌的结果。因此,让我们创建三个回归模型来分别预测每种奖牌,而不是直接预测奖牌总数。然后,我们可以将金牌、银牌和铜牌相加,得出奖牌总数。

让我们把我们的特色国家限制在有史以来表现最好的 10 个国家以及 2020 年东京奥运会的主办国日本。我们现在可以训练三个回归模型中的每一个,获得可以由每个特征项的系数表示的方程。最后,我们可以使用我们训练的模型来预测以前看不到的数据的奖牌数。

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

Coefficient terms of the trained regression models for gold, silver and bronze medals. Image: Author

2016 年里约奥运会的模型验证

我们可以通过预测 2016 年里约奥运会的奖牌总数来评估我们的回归模型的性能,这是我们的坚持测试集。然后,我们的预测可以与真实情况相比较,真实情况是每个国家的实际奖牌数。一个完美的线性回归模型将被图形化地表示为一条 45 度角的直线。

Medal table prediction of the Rio 2016 Olympic Games. Source: Author⁷

我们创建训练和测试集,以平衡机器学习模型中偏差和方差之间的权衡。我们可以通过比较模型对训练集和测试集的方差的解释程度来测试我们的模型是过拟合还是欠拟合。类似地,基于我们预测的残差,我们期望两个数据集之间的误差水平是可比较的。

我们的回归模型的决定系数,或 R 平方,对于我们的训练集是 85%,对于我们的测试集是 82%。使用均方根误差(RMSE)计算的我们模型的误差是,对于我们的训练集,每个国家的奖牌总数为 4.43 块,对于我们的测试集,每个国家的奖牌总数为 5.44 块。因此,我们的回归模型是平衡的,解释了我们的数据,并显示低误差!

2020 年东京奥运会奖牌榜预测

为了使用我们的回归模型来预测东京 2020 年奥运会的奖牌榜,我们首先需要更新我们的模型特征的参数。我们可以把日本定为主办国,同时把季节定为夏季。每个国家的运动员和项目总数可以通过将北京 2008 年奥运会、伦敦 2012 年奥运会和里约 2016 年奥运会平均计算出来。

对 2020 年东京奥运会奖牌榜的预测已经被 published,⁸化了,因此我们可以将我们模型的输出与专业预测进行比较。公布的模型预测前六名的国家队是美国、中国、日本、俄罗斯、澳大利亚和英国。除了东道主日本,我们的模型预测的是同样的顶级国家队!

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

Medal table prediction of the top 20 national teams of the Tokyo 2020 Olympic Games. Image: Author

为这种分析编写的源代码可在 GitHub,⁹上获得,其中包括特征工程、探索性数据分析和机器学习模型,以预测单个奥运会的奖牌榜。我们可以通过进一步探索和扩充数据集以及试验新功能来不断改进我们的回归模型。

参考

  1. 2020 年东京奥运会,2019 年 https://tokyo2020.org/en
  2. “预测奖牌的人”,福布斯,2010 年 1 月 19 日。
  3. J.斯特罗姆贝里,“统计模型能准确预测奥运会奖牌数吗?,“史密森尼杂志,2014 年 2 月 5 日。
  4. A.斯旺森,“如何在奥运会开始前预测奥运会结果”,《华盛顿邮报》,2016 年 7 月 22 日。
  5. R.格里芬,《120 年奥运史:运动员与成绩》,载于 Kaggle,https://www . ka ggle . com/hee soo 37/120 年奥运史-运动员与成绩,2018。
  6. A.C. Dick,《奥运会历史奖牌榜》,Plotly,https://chart-studio . plot ly . com/~ Adam . c . Dick/14/historical-metal-Table-of-the-Olympic-Games,2019。
  7. A.C. Dick,“里约 2016 夏季奥运会奖牌榜”,载于 Plotly,https://chart-studio . plot ly . com/~ Adam . c . Dick/16/Medal-Table-of-the-Rio-2016-Summer-Olympic-Games,2019。
  8. “2020 年奥运会:美国预测奖牌榜第一,英国和澳大利亚第五”,《卫报》,2019 年 7 月 23 日。
  9. A.C. Dick,“东京 2020 年奥运会冠军”,GitHub,https://github.com/acdick/tokyo_2020_olympic_champions,2019。

5 分钟内数据科学的 10 大 ML 算法

原文:https://towardsdatascience.com/the-top-10-ml-algorithms-for-data-science-in-5-minutes-4ffbed9c8672?source=collection_archive---------35-----------------------

数据科学家最流行的机器学习算法介绍。

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

机器学习是业界一个创新的重要领域。我们为 ML 程序选择的算法类型根据我们想要实现的目标而变化。

有相当多的算法,所以对初学者来说可能会很难。今天,我们将简要介绍 10 种最受欢迎的学习算法,以便您可以轻松应对令人兴奋的机器学习世界!

让我们开始吧!

1.线性回归

线性回归很可能是最流行的 ML 算法。线性回归找出最适合图表上分散数据点的直线。它试图通过拟合直线方程来表示自变量(x 值)和数值结果(y 值)之间的关系。这条线可以用来预测未来的值!

该算法最流行的技术是最小二乘*。此方法计算最佳拟合直线,使直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离(绿线)的平方和。想法是通过最小化这个平方误差或距离来拟合模型。*

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

Ex. of simple linear regression, which has one independent variable (x-axis) and a dependent variable (y-axis)

2.逻辑回归

逻辑回归类似于线性回归,但它用于输出为二进制的情况(即当结果只有两个可能值时)。这个最终输出的预测将是一个称为logistic function, g()的非线性 S 形函数。

该逻辑函数将中间结果值映射到具有范围从 0 到 1 的值的结果变量 Y 中。这些值可以解释为 y 出现的概率。S 形逻辑函数的属性使逻辑回归更适合分类任务。

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

Graph of a logistic regression curve showing probability of passing an exam versus hours studying

3.决策树

决策树可用于回归和分类任务。

在该算法中,训练模型通过学习具有树表示的决策规则来学习预测目标变量的值。树由具有相应属性的节点组成。

在每一个节点,我们根据可用的特性询问一个关于数据的问题。左右分支代表可能的答案。最终节点,叶节点,对应于预测值。

每个特性的重要性是通过自顶向下的方法确定的。节点越高,其属性越重要。

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

An example decision tree that decides whether or not to wait at a restaurant

4.朴素贝叶斯

朴素贝叶斯基于贝叶斯定理。它测量每个类别的概率,每个类别的条件概率给出 x 的值。该算法用于分类问题,以达到二元是/否结果。看看下面的等式。

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

  • p(c | x)= c 类事件的概率,给定预测变量 x,
  • p(x | c)= x 给定 c 的概率,
  • P© =类的概率,
  • P(x) =预测值的概率。

朴素贝叶斯分类器是一种用于过滤垃圾邮件的流行统计技术!

5.支持向量机(SVM)

SVM 是一种用于分类问题的监督算法。SVM 试图在数据点之间画出两条最大间距的线。为此,我们将数据项绘制为 n 维空间中的点,其中 n 是输入要素的数量。在此基础上,SVM 找到了一个最佳边界,称为超平面*,它通过分类标签最好地分离了可能的输出。*

超平面和最近的类点之间的距离被称为边缘*。最优超平面具有最大的余量,用于对点进行分类,以最大化最近数据点和两个类之间的距离。*

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

Example where H1 does not separate the two classes. H2 does, but only with a small margin. H3 separates them with the maximal margin.

6.k-最近邻(KNN)

KNN 算法非常简单。KNN 通过在整个训练集中搜索 k 个最相似的实例,即 k 个邻居,并将公共输出变量分配给所有这 k 个实例,来对对象进行分类。

k 的选择很关键:小的值会导致大量的噪声和不准确的结果,而大的值是不可行的。它最常用于分类,但对回归问题也很有用。

用于评估实例之间相似性的距离函数可以是欧几里德距离、曼哈顿距离或闵可夫斯基距离。欧几里德距离是两点之间的普通直线距离。它实际上是点坐标差的平方和的平方根。

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

Example of KNN classification

7.k 均值

K-means 是通过对数据集进行分类来进行聚类。例如,该算法可用于根据购买历史将用户分组。它在数据集中找到 K 个聚类。K-Means 是用于无监督学习的,所以我们只使用训练数据 X 和我们想要识别的聚类数 K。

该算法基于它们的特征迭代地将每个数据点分配给 K 个组中的一个。它为每个 K 聚类挑选 K 个点,称为质心。基于相似性,新的数据点被添加到具有最近质心的聚类中。这个过程一直持续到质心停止变化。

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

Image credit: Wikipedia

8.随机森林

随机森林是一种非常流行的集成 ML 算法。这种算法的基本思想是,多数人的意见比个人的意见更准确。在随机森林中,我们使用决策树的集合(见#3)。

为了对一个新对象进行分类,我们从每个决策树中选取一种投票,结合结果,并基于多数投票做出最终决定。

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

(a) In the training process, each decision tree is built based on a bootstrap sample of the training set. (b) In the classification process, decision for the input instance is based on the majority vote.

9.降维

由于我们今天可以捕获的数据量巨大,机器学习问题变得更加复杂。这意味着训练极其缓慢,并且更难找到好的解决方案。这个问题通常被称为维数灾难。

降维试图通过将特定的特征组合成更高层次的特征而不丢失最重要的信息来解决这个问题。主成分分析(PCA)是最流行的降维技术。

PCA 通过将数据集挤压到低维线或超平面/子空间上来降低数据集的维度。这尽可能多地保留了原始数据的显著特征。

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

Example where it is possible to achieve dimensionality reduction by approximating all the data points to a single line.

10.人工神经网络

ANN 可以处理大型复杂的 ML 任务。神经网络本质上是一组互连的层,具有被称为神经元的加权边缘和节点。在输入和输出层之间,我们可以插入多个隐藏层。ANN 使用了两个隐藏层。除此之外,我们正在处理深度学习。

ANN 的工作原理类似于大脑的架构。一组神经元被分配一个随机权重,该权重决定神经元如何处理输入数据。通过对输入数据训练神经网络来学习输入和输出之间的关系。在训练阶段,系统可以获得正确的答案。

如果网络不能准确识别输入,系统会调整权重。经过充分的训练后,它会始终如一地识别正确的模式。

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

Each circular node represents an artificial neuron and an arrow represents a connection from the output of one artificial neuron to the input of another.

下一步是什么?

现在你已经有了最流行的机器学习算法的基础介绍。您已经准备好学习更复杂的概念,甚至通过深入的实践来实现它们。如果你想知道如何实现这些算法,可以看看 Educative 的 探索数据科学 课程,该课程将这些令人兴奋的理论应用于清晰的现实世界中。

快乐学习!

更多阅读材料/学习材料:

20 大 CO₂污染者,可视化

原文:https://towardsdatascience.com/the-top-20-co₂-polluters-visualized-6a5fa435e108?source=collection_archive---------38-----------------------

《卫报》有数据,我有一个自由的下午

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

Polluting factory — Patrick Hendry, Unsplash

《卫报》最近公布了一份仅 20 家公司的名单,自 1965 年以来,这些公司的 CO₂排放量占全球能源相关排放量的三分之一,那一年政治和工业领袖承认燃烧化石燃料对环境有直接影响。这篇文章是他们的优秀项目“污染者”的一部分——一系列经过精心研究的可怕文章,调查推动全球气候危机的实体和力量,并塑造我们在环境方面的集体行动。

虽然我建议每个人都阅读该系列,但我对前 20 名污染者的详细资料汇编感到鼓舞:他们的收入、过去和未来的排放量、可再生能源投资等。因此,我利用《卫报》收集的数据在 Kaggle 上创建了一个数据集,并对其进行了处理,以产生一些视觉洞察。

过去与未来

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

Emissions by countries, past and future. On the left, the emissions have been scaled to represent average yearly emissions in the two time periods considered. Inset represents the histogram of the rise in yearly emissions after 2018.

《卫报》计算了 1965 年至 2017 年期间 CO₂-equivalent 的总排放量,并根据每家公司的投资和化石燃料储量,估计了未来 12 年的排放量。我把这些数字标在了左边的副图上。显然,Saudi Aramco 是有史以来最大的污染者,并打算在未来自豪地保持这一称号。

然而,这些光秃秃的数字并没有反映出未来十年气候灾难的全部规模,因为它们代表了过去 52 年的排放量,而不是未来 12 年的排放量。所以我计算了这两个时期的年平均排放量(见右边的子图)。虽然这只是一个粗略的估计,但这一对比令人不寒而栗。**与 1965 年至 2017 年间的平均水平相比,有三分之一的公司计划将其年排放量增加一倍以上!**欢迎,火热新世界。

收入去了哪里

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

虽然所有这些公司都在全球范围内运营,但它们的总部仍然在某个地方。当我看到这些公司 2018 年的收入有多大时,按总部所在国家分组,我感到惊讶,同时也不惊讶。看到美国和沙特阿拉伯名列榜首,我并不感到惊讶,但 3 个欧盟国家的出现让我感到惊讶——尤其是荷兰。尽管有良好的意愿,这能成为欧洲监管 CO₂污染如此困难的原因吗?我还惊讶地看到,这 20 个污染者创造的总收入的 80%只被 7 个国家获得:美国、荷兰、沙特阿拉伯、中国、英国、法国和俄罗斯——然而,其中大部分流入了私营企业。然而,当你想到国际联盟和紧张局势时,这份国家名单还是很有意义的。

激励的故事

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

接下来是巨型停车场,它揭示了污染者的动机。我们这里有什么:纵轴是《卫报》估计的 2018-2030 年间公司的预计增长。横轴上是 2018 年的收入除以生产的石油桶总量,所以它代表了一家公司每生产一桶石油所获得的收入。颜色编码了公司的所有权类型。每个地块的大小与 2018 年的石油总产量成比例。

它告诉了我们什么故事?

  1. 股东所有的公司从生产的每桶石油中获得的收入远远高于国有公司,以至于这两个群体之间几乎没有重叠。尽管大多数公司是国有的,它们的收入对国家预算很重要,但它们不会像股东所有的公司那样试图从每桶石油中榨取那么多钱。
  2. 没有一家纯股东所有的公司打算缩减产量。恰恰相反,他们打算积极发展,规模要比国有企业大得多。
  3. 大型化石燃料生产商,因此也是污染大户,通常无意削减产量,不管他们的所有权类型是什么。据估计,未来生产更少化石燃料的公司只有那些较小的公司。

污染者的动机在这里非常明显。**化石燃料就是金钱,大规模的化石燃料生产就是难以割舍的大笔金钱。**虽然你可能认为化石燃料收入会让国家轻松增加支出预算,但匿名股东比国家指定的所有者更无情地获取利润。

这指出了实施监管解决方案时的一些明显的复杂性。通过国际压力、基层抗议和国家层面的政策,国有化石燃料公司的收入可以相对容易地至少部分转向国家预算内的可再生能源和可持续性投资。从长远来看,这将补偿部分排放,并有助于向新经济转型。然而,对于股东所有的公司来说,就没有这么简单的杠杆机制了。股东所有的公司形成了一种全球结构,这种结构类似于按地缘政治划分成的民族国家。这些公司在全球范围内经营和开采化石燃料,这给了他们逃避监管的途径,正如我们在这里看到的,他们有非常强烈的动机去寻找一种方法来继续污染,尽管国际社会做出了努力。私人股东显然根本不关心未来几十年内我们面临的气候灾难。也许他们认为,一旦浮游生物因海洋酸度而死亡,我们将开始为有足够的氧气呼吸而挣扎,他们就可以在私人掩体中生活得很好?

立即开始学习数据科学的前三本书

原文:https://towardsdatascience.com/the-top-3-books-to-get-started-with-data-science-right-now-3f9945d78011?source=collection_archive---------7-----------------------

建立一个伟大的知识基础

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

Photo by Thought Catalog on Unsplash

我记得当我第一次学习数据科学时。几乎有太多的资源和太多的东西需要学习,很容易迷路。我探索了许多途径,回想起来虽然有趣,但并不是最有效的开始方式。如果你刚刚开始你的旅程,想要 3 本最好的书来帮助你专注于你的学习,这是给你的文章。

用于数据分析的 Python

我先从熊猫的创作者自己写的经典熊猫书开始:用于数据分析的 Python。我会第一个承认这不是一本完美的书。它读起来几乎像是某种食谱,但我发现它是开始使用 Python 进行数据分析的最佳方式。它将教你如何设置 Python 以及加载、争论、清理和可视化数据。

当开始时,我认为从数据处理和分析部分开始是一个更好的策略,因为它有助于你学会真正理解你的数据,并强调在机器学习之前需要发生的所有步骤的重要性。此外,这可能是让你对使用 Python 进行数据科学感到舒适的最佳方式,并为下一本书做好准备。

动手机器学习

既然您对 Python 和数据操作已经驾轻就熟,那么是时候开始建模了! 动手机器学习 **搭配 Scikit-Learn、Keras 和 TensorFlow 是迄今为止入门机器学习的最佳书籍。**这本书将带你从线性回归一直到 GANs 和大规模部署深度学习。这是一个疯狂的材料量涵盖和作者做得很漂亮。

这本书肯定要花一些时间才能看完,但我发现它非常适合初学者,所以只要努力,我想几乎任何人都可以看完。如果你做到了,你将在另一边出现,拥有惊人的机器学习知识和实践经验。

统计学习导论

最后,我认为每个人都应该读一读统计学习介绍。在前两本书之后,它为你的知识增加了统计学的观点。它涵盖了一些与动手机器学习相同的算法,但有更多的统计倾向。它还深入回归模型的世界,并为实际应用提供 R 代码。

这本书旨在成为“统计学习领域的通俗易懂的概述”,并且肯定完成了任务。不过,为了做到这一点,这本书更侧重于直观的解释,而不是数学。因此,有必要通过其他书籍来更深入地探究。

坚实的基础

我选择这三本书作为起点,因为一旦完成,我相信你会发现自己有一个坚实的基础,可以更深入地探索数据科学的几乎任何领域。由于这些书是针对进入这个领域的人,你可能会发现缺乏的主要领域是数学的严谨性。如果你和我一样,从实用和直观的方法开始有助于建立我深入挖掘的动力。我希望这些书能像帮助我一样帮助你!

这个故事也可以在这里找到。

现在学习数据科学数学的前三本书

原文:https://towardsdatascience.com/the-top-3-books-to-learn-math-for-data-science-right-now-16fa3ef38920?source=collection_archive---------3-----------------------

建立一个伟大的数学基础

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

Photo by Antoine Dautry on Unsplash

不久前,我写了一篇关于数据科学入门书籍的文章:

[## 立即开始学习数据科学的前三本书

建立一个伟大的知识基础

towardsdatascience.com](/the-top-3-books-to-get-started-with-data-science-right-now-3f9945d78011)

一位读者留下了一条评论,询问学习数据科学所需数学的最佳书籍。我认为这是个好主意!如果你渴望加强你的数学基础,并真正理解机器学习算法的内部工作原理,这将会给你一个很好的开始!

线性代数导论

线性代数是理解当今大多数机器学习算法的核心。在我看来,没有比 Gilbert Strang 的线性代数入门更好的线性代数入门教材了。还有什么线性代数书在亚马逊上有 4 星 100 多的评价?另外,你可以通过麻省理工学院的开放课件免费在线获得他的课程。如果你仍然很难理解机器学习的线性代数,那么只需看看这本书就能丰富你的知识。Strang 是一名优秀的教师,他的课程涵盖了最小二乘法、特征值/特征向量和奇异值分解等主题。

深度学习需要的矩阵演算

fast.ai 的 Jeremey Howard 努力使深度学习变得平易近人,他带来了一本伟大的【书】,涵盖了深度学习所需的所有矩阵演算。这篇论文的目标是,“为了理解深度神经网络的训练,解释你需要的所有矩阵演算。”我认为它做得很好,我还没有找到任何东西像它一样平易近人,专注于深度学习所需的微积分。如果你需要复习微积分的基础知识,可以看看吉尔伯特·斯特朗关于这个主题的介绍性书籍。免费的!

做贝叶斯数据分析

一旦你了解了线性代数和微积分,就该转向统计学了。有许多方法可以让你学习统计学的基础,但我最喜欢的方法是专注于贝叶斯统计。贝叶斯方法将迫使你真正理解概率和抽样。这方面我最喜欢的书是做贝叶斯数据分析。这本书从基础开始,到高级主题,做了一件了不起的工作。更好的是包含了数据和代码的例子!例子在 r 中。如果你想要一些类似的例子,但在 Python 中,检查出黑客的贝叶斯方法

奖金

既然你已经理解了线性代数、微积分和统计学,那么看看《T4》深度学习书籍。它不仅会提供数学的复习,还会向你展示所有的数学是如何联系起来使深度学习算法工作的。

希望你会发现这些书和我一样有用。如果你花时间真正理解它们所涵盖的概念,你就会真正理解机器学习算法是如何工作的。

这篇文章也可以在这里找到。

加入我的 邮箱列表 保持联系。

成功成为营销数据分析师的前三步

原文:https://towardsdatascience.com/the-top-3-steps-for-a-successful-start-as-a-performance-marketing-data-analyst-f93412b6e940?source=collection_archive---------21-----------------------

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

Photo by Stephen Dawson on Unsplash

在这篇文章中,我将介绍一些步骤,我发现这些步骤对想在营销分析领域发展的人来说非常有用。尽管这些要点以列表的形式呈现,但它们应该几乎同时执行。

1。了解你的同事和他们的期望

通常,作为一名营销数据分析师,你将与营销经理合作进行付费广告。事实上,你必须为他们工作。他们的所有报告、仪表板和/或分析都将依赖于您。你的目标是以洞察的形式为他们带来价值,自动化他们的报告流程等。他们如何定义有价值的东西,这是你必须研究的话题。

然而,数据分析和营销分析(也称为数字营销分析)领域相对较新。

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

Source: https://trends.google.com/trends/explore?date=all&q=Digital%20marketing%20analyst

这可能是为什么有些人甚至公司对营销数据分析师应该做什么有不同理解的原因之一。因此,我强烈建议您与所有利益相关方预约单独会议,并尝试回答其中一些问题:

  • 对他们来说最重要的是什么?
  • 他们如何定义成功?
  • 他们的日常挑战是什么?
  • 他们期望你解决什么问题?

这些问题越详细越好。当然,你也没必要只聊工作相关的话题。你应该利用这个机会更好地了解对方,最后但同样重要的是玩得开心。

2.学习你需要的软件

可能的情况是,公司使用的一些工具不是你所熟悉或了解的。此外,由于营销渠道的性质,一些营销经理喜欢不同的工具是绝对正常的。这并没有错。不要因为工具种类繁多而感到压力。

尝试识别团队正在使用的所有工具,如果没有关于它们的可用文档,您甚至可以开始创建一个。这肯定会帮助您更好地理解为什么有些工具比其他工具更受欢迎,您应该使用或避免哪些工具。以下是一些最常用的工具:

根据你以前的经验、公司规模和行业,你可能会处于一个不得不在这些工具之间周旋的位置。如果您缺乏使用某些工具的经验,您可以查看他们的内部学习资源(视频、文档、课程等)。它们很容易找到,而且大部分时间都是免费的,绝对够用。

3.开始挖掘数据

这可能是最有趣的一步。至少对我来说是这样。然而,我不鼓励你在没有任何目标的情况下随意探索数据库或浏览文档*(如果有的话)*。事实上,最好是向你的经理或其他团队成员要求一项简单的任务。这可以是创建报告、仪表板,甚至是执行分析/比较。例如,您可以尝试回答一个简单的问题,如-关于特定渠道或渠道组,2019 年 6 月的主要 KPI 表现如何?

这将有助于您理解数据架构的基础知识,引发其他问题,识别潜在的低挂果实和您可以工作的未来项目。弄清楚一些事情,比如:

  • 数据实际上是从哪里来的,如何来的?
  • 不同渠道的跟踪效果如何?
  • 是否应用了定制的归因模型?如果是,是否适用于所有渠道?

应该为您提供在您加入的任何公司中作为绩效营销数据分析师成功起步所需的知识。

加分点:积极主动,多走一步

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

Photo by Bruno Nascimento on Unsplash

我一直想确定的一件事是,我不会根据不正确的数据向我的团队提供不正确的见解。在许多大中型公司中,营销数据管理被委托给另一个团队。例如,这个团队可以隶属于 CMO (首席营销官)或首席技术官(首席技术官)。每个公司都有自己的侧重点,都有不同的挑战。所以,因为 X,Y 或者 Z 而依赖无效数据并不能让你成为一个好的营销分析师。

因此,我更愿意多走一步,尝试一下跟踪/聚合/数据管理的后端流程,以便:

  • 了解数据的准确性和一致性;
  • 扩大我的专业领域;
  • 能够在发生数据事件时找到解决方法。

如果你觉得这篇文章有用,你不同意其中的一些观点,有问题或建议,请不要犹豫,在下面给我留言。

非常感谢您的反馈!

LinkedIn: 圭纳科夫

本文仅在towardsdatascience.com有售

2020 年顶级人工智能书籍

原文:https://towardsdatascience.com/the-top-ai-books-in-2019-3fa48fe5bc41?source=collection_archive---------9-----------------------

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

虽然人工智能(AI)在历史上一直局限于电影类型的科幻部分,但它最近开始在现实世界中加速发展。2018 年,风投向人工智能初创公司注入了 93 亿美元,与前一年相比,资金增加了 72%。世界上最有价值的初创公司商汤科技(SenseTime)在成立三年后让扭亏为盈,这三年的年均收入增长率为 400%。

然而,随着这种爆炸式的增长,跟上人工智能领域的创新似乎令人生畏。在花了一个夏天的时间阅读了几篇文献后,我列出了三本顶尖的人工智能书籍,它们可以为你提供关于该行业的全面视角,它的发展方向以及它将产生的影响。这些书中包含的信息之所以有价值,是因为它们不只是解释什么是人工智能,而是从不同的角度为你提供关于世界技术轨迹的更一般的知识(即使是在人工智能之外)。

这三本书是李开复的 人工智能超能力 、凯茜·奥尼尔的 数学毁灭武器 以及阿贾·阿格拉瓦尔、约书亚·甘斯和阿维·戈德法布的预测机器。下面,我列出了每本书,提供了为什么它们应该在你的阅读清单上的理由,并且给出了三个相关的引用来说明理由。

AI 超能力李开复

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

Source: Amazon

《人工智能的超能力》是目前人工智能行业事实上的书,作者是该领域的资深人士李开复。它让你看到了美国和中国这两个无可争议的世界巨人之间的人工智能竞赛。

这本书的独特之处在于,它让你一窥发生在中国的人工智能创新。李开复花时间引导你了解中国企业家的心态和商业心态——这一视角不仅对理解人工智能创新,而且对整个国家的心态都很有价值。通过阅读这本书,你会对人工智能竞赛的另一半:中国有一个更清晰的了解。

三个令人难忘的人工智能超能力语录

几个世纪以来,人类通过工作来充实他们的日子:用他们的时间和汗水来换取住所和食物。我们已经围绕这种交流建立了根深蒂固的文化价值观,我们中的许多人已经习惯于从日常工作中获得自我价值感。人工智能的崛起将挑战这些价值观,并有可能在极短的时间内削弱这种生活目的感。

中国公司首先是受市场驱动的。他们的最终目标是赚钱,他们愿意创造任何产品,采用任何模式,或者进入任何能够实现这一目标的行业。这种心态导致了商业模式和执行中难以置信的灵活性,这是硅谷经常称赞的“精益创业”模式的完美升华。

随着人工智能渗透到更广泛的经济领域,这个时代将奖励优秀工程师的数量,而不是精英研究人员的质量。人工智能实施时代的真正经济实力不会仅仅来自少数推动研究边界的精英科学家。它将来自一群训练有素的企业家,将这些发现转化为改变游戏规则的公司。中国正在训练这样一支军队。

摧毁数学的武器凯西·奥尼尔

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

Source: Amazon

人工智能席卷了整个世界,但很少有人停下来思考它可能带来的负面影响。这种负面影响的一个来源是它的人类创造者在算法层面上的局限性。

归根结底,人工智能是通过训练优化的代码产品。如果训练有问题(比如用于训练的数据的局限性),那么结果可能会导致性别和种族偏见。这可能会导致失业,因为有缺陷的算法会对人们做出不公平的判断,这些算法不准确地低估了某些员工的价值(本书将详细探讨)。数学毁灭武器并不是 AI 特有的;相反,它专注于算法和数据,这是人工智能的核心。通过阅读这本书,你会更加关注你未来遇到的人工智能项目的潜在副作用。

《数学毁灭武器》中三句令人难忘的引言

推动数据经济的数学应用程序是基于易犯错误的人类所做的选择。毫无疑问,其中一些选择是出于好意。然而,这些模型中的许多将人类的偏见、误解和偏见编码到了日益管理我们生活的软件系统中。

…模型本质上是简化的。没有一个模型能够包含真实世界的所有复杂性或人类交流的细微差别。不可避免地,一些重要的信息被遗漏了…为了创建一个模型,然后,我们选择什么足够重要来包括…模型,尽管它们以公正著称,反映了目标和意识形态。当我排除了每餐都吃果酱馅饼的可能性时,我是在把我的意识形态强加给膳食模式。

正如我们在累犯量刑模型和掠夺性贷款算法中看到的那样,穷人预计将永远是穷人,并受到相应的待遇——被剥夺机会,更频繁地被监禁,并被骗取服务和贷款。

《预测机器》,作者 Ajay Agrawal、Joshua Gans 和 Avi Goldfarb

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

Source: Amazon

预测机器补充了基本的经济理论来解释人工智能的好处,从而完善了另外两种解读。

虽然这听起来可能会让任何不精通经济学的人感到害怕,但作者在以脚踏实地的方式解释一切方面做得很好,用实际例子来证明他们认为人工智能可以在劳动力和我们周围的任何地方体现出来。

来自预测机器的三句令人难忘的名言

当某种基本商品的价格大幅下跌时,整个世界都会发生变化。想想光…在 19 世纪早期,同样数量的光的价格是现在的 400 倍…新的人工智能技术会让什么变得如此便宜?预测。因此,正如经济学告诉我们的,我们不仅将开始使用更多的预测,而且我们将看到它出现在令人惊讶的新地方。

有时,人类和机器的结合会产生最好的预测,彼此互补对方的弱点。2016 年,哈佛/麻省理工学院的人工智能研究人员团队赢得了 Camelyon Grand Challenge,这是一项基于计算机从活检切片中检测转移性乳腺癌的竞赛。该团队获胜的深度学习算法的正确预测率为 92.5%,而人类病理学家的正确预测率为 96.6%。虽然这似乎是人类的胜利,但研究人员更进一步,将他们的算法和病理学家的预测结合起来。结果准确率达到了 99.5%。也就是说,人为错误率从 3.4%下降到 0.5%。错误下降了 85%。

数据收集比以往任何时候都更便宜、更容易。这些数据是有价值的。数十亿次搜索意味着数十亿行数据,谷歌可以利用这些数据来改善服务。有人称数据为“新石油”。预测机器依赖于数据。更多更好的数据带来更好的预测。从经济学角度来说,数据是预测的重要补充。随着预测变得更便宜,它变得更有价值。

总的来说,这三本关于人工智能的顶级书籍(人工智能超能力数学毁灭武器预测机器)提供了一个关于如何思考人工智能的全面视角,以及在当今世界使用数据的一般方法。数据一直是强大的,但以前从未像今天这样被应用,对世界决策产生如此大的影响。

这三本书中的任何一本都足以让你深刻理解人工智能是如何应用的,因为它们都给出了很好的例子。每一本书都是由各自领域的专家撰写的,所以你将能够更深入地了解全球方法、潜在的负面影响和/或经济学,这取决于你决定挑选哪些顶级人工智能书籍。

熊猫中最有用的五个命令

原文:https://towardsdatascience.com/the-top-five-most-useful-commands-in-pandas-4390d4e165a5?source=collection_archive---------11-----------------------

我每天都在用

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

Photo by Jason ZZ on Unsplash

您刚刚开始学习数据科学,您已经将数据放在一个数据框架中,现在什么是

我很乐意向您介绍我在 Pandas 中使用最多的命令,以帮助您更快地发现数据中的见解。我假设你的代码中有一个名为 df 的数据帧。

每次我将数据读入 Pandas 时,我做的第一件事就是使用 head 命令查看前 5 行数据。这将产生类似于以下内容的输出:

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

你用 df.head() 运行这个命令。

我发现这非常有价值,因为它允许我检查数据是否被正确读入,查看我有哪些列,并快速了解各个列的值。这个命令的缺点是它不能很好地适应包含许多列的数据集。

形容

使用 head 命令后,我要使用的下一个命令是 describe。Describe 将给出所有数字列的平均值、标准偏差和各种百分位数。下面是一个输出示例:

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

就像 head 命令一样,用 df.describe() 运行这个命令。

这是了解所有数值数据分布的快速方法。这通常也会使任何严重的异常值或数据问题变得明显。例如,如果我们的最大年龄大于 125,那么我们就会知道我们有某种类型的数据问题。

值计数

因为 describe 只适用于数值数据,所以我通常使用 value_counts 命令来更好地理解分类列。如果有一个名为“relationship”的列,可以使用以下命令获得值计数:

df['relationship'].value_counts()

它会产生如下输出:

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

由此,我们可以看到我们的关系列的值的计数。我们有许多丈夫的亲戚,但很少有其他亲戚。这不仅有助于我们理智地检查我们的数据,而且有助于理解我们所拥有的数据。

Corr

现在我对我的数据有了一个概念,我通常转向 corr 命令来理解我有什么相关性。在数据框中包含您试图预测的值尤其有用,这样您就可以看到潜在要素与标注之间的相关性。

当运行 df.corr() 时,您会得到数据帧中所有列之间的相关性,如下所示:

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

在上面的输出示例中,我们的标签是“label_int”我们可以看到“educationnum”是最正相关的变量,因此可能会成为一个很好的特征。另一方面,“Fnlwgt”与我们的标签几乎没有关联。

分组依据

最后,我倾向于发现使用 groupby 命令按组分割数据非常有用。例如,如果我想按工作类别查看每周平均工作时间,我可以运行以下命令:

train_df.groupby(['workclass'])['hoursperweek'].mean()

这将产生:

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

我们可以看到,“自我雇佣”组平均工作时间最长,而“从不工作”组工作时间最少。我不知道一个从未工作过的小组是如何工作的,但这是以后的讨论了。

去探索你的数据

我希望这篇文章已经帮助你理解了我最常用的熊猫指令,以及我为什么这么经常使用它们。如果你想了解更多关于这些命令或其他命令的信息,请务必查看熊猫的文档

这篇文章也可以在这里找到。

加入我的 邮箱列表 保持联系。

2019 年即将举行的顶级人工智能会议

原文:https://towardsdatascience.com/the-top-upcoming-ai-conferences-in-2019-3c3eb6f4c515?source=collection_archive---------16-----------------------

想获得灵感?快来加入我的 超级行情快讯 。😎

通用机器学习和人工智能

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

ICML——机器学习国际会议

**主题:**机器学习的所有领域,包括经典和最新的深度学习技术。主要是数学和理论概念

地点:美国长滩

**会议日期:**6 月 10 日至 15 日

**提交截止日期:**1 月 19 日

遗传和进化计算会议

**主题:**遗传编程、蚁群优化和群体智能

**地点:**捷克共和国布拉格

**会议日期:**7 月 13 日至 19 日

提交截止日期:2 月 6 日

学习理论会议

**主题:**学习算法:监督、半监督、非监督、优化、贝叶斯、博弈论、深度学习、强化学习

地点:美国凤凰城

会议日期:6 月 25 日至 28 日

提交截止日期:2 月 1 日

AAAI——人工智能

**主题:**通用人工智能

**地点:**美国夏威夷

**会议日期:**1 月 27 日—2 月 1 日

**提交截止日期:**2018 年 9 月 5 日

计算机视觉

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

CVPR —计算机视觉和模式识别

**主题:**图像和视频的分类、对象检测、场景分割、形状、纹理和其他视觉技术

地点:美国长滩

会议日期:6 月 16 日至 20 日

**提交截止日期:**2018 年 11 月 16 日

ICCV——计算机视觉国际会议

**主题:**图像和视频的分类、对象检测、场景分割、形状、纹理和其他视觉技术——与 CVPR 非常相似,但国际化

**地点:**韩国首尔

**会议日期:**10 月 27 日—11 月 3 日

提交截止日期:4 月 22 日

IROS——智能机器人和系统国际会议

**主题:**机器人学包括机器人设计、控制、导航、规划、网络、视觉和智能

**地点:**中国澳门

会议日期:11 月 3 日至 8 日

提交截止日期:3 月 1 日

ICIP——图像处理国际会议

**主题:**图像处理,包括分析、增强、恢复、变换以及系统和多媒体应用

**地点:**台湾台北

**会议日期:**9 月 22 日至 25 日

提交截止日期:1 月 31 日

自然语言和言语

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

国际声学、语音和信号处理会议

**主题:**语音/音频处理、信号处理和自然语言处理

**地点:**英国布莱顿

**会议日期:**5 月 12 日至 17 日

**提交截止日期:**2018 年 10 月 29 日

计算语言学协会

**主题:**语言理解、机器翻译、语义和分析

**地点:**意大利佛罗伦萨

会议日期:8 月 28 日—9 月 2 日

提交截止日期:4 月 4 日

EMNLP —自然语言处理中的经验方法

**主题:**语言理解、机器翻译、语义、分析,非常类似于 ACL

**地点:**中国香港

会议日期:11 月 3 日至 7 日

提交截止日期:5 月 21 日

喜欢学习?

在推特上关注我,我会在这里发布所有最新最棒的人工智能、技术和科学!

变形金刚:注意力是你所需要的

原文:https://towardsdatascience.com/the-transformer-attention-is-all-you-need-322199721720?source=collection_archive---------20-----------------------

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

在撰写本文时(2019 年 8 月 14 日),变压器论文“关注是你所需要的全部”是 Arxiv Sanity Preserver 的第一篇论文。这篇论文表明,单独使用注意机制,有可能在语言翻译方面取得最先进的成果。基于 Transformer 构建的后续模型(例如 BERT )在广泛的自然语言处理任务上取得了优异的性能。

在这篇文章中,我混合使用了自定义图形、从原始论文修改的图形、等式、表格和代码,以尽可能清晰地解释 Transformer。在本文结束时,您应该理解了 Transformer 模型的所有不同部分:

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

Figure 1 from the Transformer paper

论文

瓦斯瓦尼 A,沙泽尔 N,帕尔马 N,乌兹科雷特 J,琼斯 L,戈麦斯安,凯泽日,波洛舒欣 I .你需要的只是关注。NeurIPS 2017(第 5998–6008 页)。

这篇文章中所有的引用都来自报纸。

代码

对于 Transformer 模型的 Pytorch 实现,请参见“带注释的 Transformer”,这是一个 iPython 笔记本,其中包含 Transformer 纸质文本,并穿插有 Pytorch 工作代码。在这篇文章中,我将引用注释转换器中的代码,并详细解释代码的某些部分。

请注意,我们在这里讨论转换器各部分的顺序不同于原始论文或带注释的转换器中的顺序。在这里,我已经根据通过模型的数据流组织了所有内容,例如,从英语句子“我喜欢树”开始,通过 Transformer 处理到西班牙语翻译“Me gustan los arboles”

这里使用的超参数是变压器基本模型的超参数,如变压器论文表 3 中的摘录所示:

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

这些是在函数“make_model(src_vocab,tgt_vocab,N=6,d_model=512,d_ff = 2048,h=8,dropout=0.1)”的代码中使用的相同超参数

表示输入和输出

对于英语-西班牙语翻译,变换器的输入是英语句子(“我喜欢树”),输出是该句子的西班牙语翻译(“Me gustan los arboles”)。

代表输入

我们首先使用一个热点向量来表示输入句子的每个单词。独热向量是这样的向量,其中每个元素都是“零”,除了单个元素是“一”:

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

每个独热向量的长度由词汇的大小预先确定。如果我们想要表示 10,000 个不同的单词,我们需要使用长度为 10,000 的 one-hot 向量(这样我们就有一个唯一的槽来表示每个单词的“1”。)有关 one-hot vectors 的更多背景信息,请参见帖子为神经网络准备表格数据(包含代码!),“表示分类变量:一个热点向量”一节

词语嵌入

我们不想给 Transformer 提供简单的一个热点向量,因为它们稀疏、庞大,并且没有告诉我们任何关于单词的特征。因此,我们学习“单词嵌入”,它是单词的较小的实值向量表示,携带关于单词的一些信息。我们可以使用神经网络来实现。在 Pytorch 中嵌入,或者,更一般地说,通过将我们的独热向量乘以一个学习过的权重矩阵 w。

nn。嵌入由权重矩阵 W 组成,权重矩阵 W 将把独热向量转换成实值向量。权重矩阵具有形状(num _ embeddings,embedding_dim)。num_embeddings 就是词汇表的大小——词汇表中的每个单词都需要一个嵌入。embedding_dim 是您希望实值表示的大小;你可以选择任何你想要的值——3、64、256、512 等等。在变压器论文中,他们选择 512(超参数 d_model = 512)。

人参考 nn。作为“查找表”嵌入,因为您可以将权重矩阵想象成仅仅是单词的实值向量表示的堆栈:

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

对付 Pytorch nn 有两个选择。嵌入权重矩阵。一种选择是用预先训练好的嵌入来初始化它,并保持固定,在这种情况下,它实际上只是一个查找表。另一种选择是随机初始化它,或者用预先训练好的嵌入来初始化,但是保持它是可训练的。在这种情况下,单词表示将在整个训练过程中得到改进和修改,因为权重矩阵将在整个训练过程中得到改进和修改。

转换器使用权重矩阵的随机初始化,并在训练期间改进这些权重,即它学习自己的单词嵌入。

在带注释的转换器中,单词“嵌入”是使用“嵌入”类创建的,而“嵌入”类又利用了 nn。嵌入:

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

位置编码

我们可以只输入句子中每个单词的单词嵌入,并以此作为我们的输入表示。然而,单词嵌入本身并不携带关于单词在句子中的相对顺序的任何信息:

  • “我喜欢树”和“树长大了”都包含“树”这个词
  • 单词“trees”具有完全相同的单词嵌入,不管它是句子中的第三个单词还是第二个单词。

在 RNN 中,可以在任何地方对单词“trees”使用相同的向量,因为 RNN 按顺序处理输入的句子,一次一个单词。然而,在转换器中,输入句子中的所有单词都被同时处理——没有固有的“单词排序”,因此也没有固有的位置信息。

Transformer 的作者建议增加一个“位置编码”来解决这个问题。位置编码使得转换器可以使用关于单词顺序的信息。位置编码使用捕获排序信息的实值向量序列。句子中的每个单词根据其在句子中的位置用特定的位置编码向量相加:

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

“位置向量”到底是如何携带位置信息的?作者探索了创建位置编码向量的两种选择:

  • 选项 1:学习位置编码向量(需要可训练的参数),
  • 选项 2:使用等式计算位置编码向量(不需要可训练的参数)

他们发现两个选项的性能相似,所以他们选择了后一个选项(计算),因为它不需要参数,而且即使在训练期间看不到的句子长度上,也可能允许模型很好地工作。

这是他们用来计算位置编码的公式:

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

在这个等式中,

  • 词性是单词在句子中的位置(例如,“2”代表句子中的第二个单词)
  • I 索引到嵌入维度,即它是沿着位置编码向量维度的位置。对于长度 d_model = 512 的位置编码向量,我们将 I 的范围设为从 1 到 512。

为什么要用正弦和余弦?引用作者的话,“位置编码的每个维度对应一个正弦曲线。[……]我们选择了这个函数,因为我们假设它可以让模型很容易地学习通过相对位置来参与。”

注释转换器中,使用类“positional encoding”创建位置编码并将其添加到单词嵌入中:

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

输入的摘要

现在我们有了我们的输入表示:一个英语句子,“我喜欢树”被转换成三个向量(每个词一个向量):

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

我们的输入表示中的每个向量都捕获了单词的含义和单词在句子中的位置。

我们将执行完全相同的过程(单词嵌入+位置编码)来表示输出,在本例中是西班牙语句子“Me gustan los arboles”

现在,我们已经介绍了 Transformers 论文中图 1 的底部:输入和输出句子在输入到模型的其余部分之前是如何处理的(不要与顶部的“输出概率”混淆,这是另外一回事):

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

Modified from Transformer paper Figure 1

在嵌入和位置编码之后,输入张量(和输出张量)的形状是[nbatches,L,512],其中“nbatches”是批量大小(遵循带注释的变换器的变量名),L 是序列的长度(例如,对于“我喜欢树”,L = 3),512 是嵌入维度/位置编码维度。请注意,批次是精心创建的,因此单个批次包含相似长度的序列。

编码器

现在是编码器处理我们句子的时候了。这是编码器的样子:

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

Modified from Transformer paper Figure 1.

如图所示,编码器由 N = 6 个相同的层堆叠而成。

对于英语到西班牙语的翻译,“in”是一个英语句子,例如“我喜欢树”,用我们刚刚谈到的“单词嵌入+位置编码”格式表示。“出来”的是这句话的不同表述。

六个编码器层中的每一层都包含两个子层:

  • 第一个子层是“多头自我关注机制”
  • 第二子层是“一个简单的、按位置全连接的前馈网络”

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

Modified from Transformer paper Figure 1.

我们将讨论这些子层的作用。但是首先,这里是来自带注释的转换器的代码,展示了编码器是如何构建的:

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

“编码器”类接收一个,并将其堆叠次。它接受的是类“编码者”的一个实例

用、<self_attn>、<feed_forward>和初始化类“EncoderLayer”:</feed_forward></self_attn>

  • 是 d_model,是基础模型中的 512
  • <self_attn>是类“MultiHeadedAttention”的实例这对应于子层 1。</self_attn>
  • <feed_forward>是类“positionwise 前馈”的实例这对应于子层 2。</feed_forward>
  • 是辍学率,例如 0.1

编码器子层 1:多头注意机制

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

Cerberus the multi-headed dog (Image Source)

为了理解变形金刚,理解多头注意力机制是至关重要的。在编码器和解码器中都使用多头注意力机制。首先,我将根据论文中的等式写一个高度概括,然后我们将深入代码的细节。

注意力的高级口头总结:键、查询和值

让我们将注意力机制的输入称为“x”。在编码器的开头,x 是我们的初始句子表示。在编码器的中间,“x”是前一个编码器的输出。例如,EncoderLayer3 从 EncoderLayer2 的输出中获取其输入“x”。

我们使用 x 来计算键、查询和值。使用不同的线性图层从 x 计算键、查询和值:

其中对于特定的编码器层,linear_k、linear_q 和 linear_v 是从维度 512 到维度 512 (d_model 到 d_model)的独立前馈神经网络层。)Linear_k、linear_q 和 linear_v 具有彼此不同的权重,它们是单独学习的。如果我们使用相同的图层权重来计算键、查询和值,那么它们将彼此完全相同,我们不需要为它们取不同的名称。

一旦我们有了键(K)、查询(Q)和值(V ),我们就按如下方式计算关注度:

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

这是变压器论文中的等式(1)。让我们仔细分析一下这是怎么回事:

首先,我们取查询和键之间的点积。如果我们同时对许多查询和键执行此操作,我们可以将点积写成矩阵乘法,如下所示:

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

这里 Q 是一堆查询 Q,K 是一堆键 K。

取点积后,除以 d_k 的平方根:

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

除以 sqrt(d_k)有什么意义?作者解释说,他们通过 sqrt(d_k)来缩放点积,以防止点积随着 d_k(向量长度)的增加而变大。

示例:向量[2,2]和[2,2]的点积是 8,但向量[2,2,2,2,2]和[2,2,2,2,2]的点积是 20。如果我们选择一个巨大的向量长度,我们不希望点积很大,所以我们除以向量长度的平方根来减轻这种影响。巨大的点积值是不好的,因为它会“将 softmax 函数推入具有极小梯度的区域”

这使我们进入下一步——应用 softmax,将数字压缩到(0,1)范围内:

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

关于 softmax 函数的讨论,请参见本文。

在这一点上我们有什么?此时,我们有一堆介于 0 和 1 之间的数字,可以认为是我们的注意力权重。我们将这些注意力权重计算为 softmax(QK^T/sqrt(d_k)).

最后一步是对值 V 进行加权求和,使用我们刚刚计算的注意力权重:

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

这就是整个等式!

代码为的多头注意力的更详细描述

这部分引用了来自的注释转换器的代码,因为我认为查看代码是理解正在发生的事情的好方法。

首先,这里是带有一些注释的相关代码。不要担心所有这些注释,我将在下面的文本中描述关键点。(如果您想阅读注释,根据您的浏览器,您可能需要在新窗口中打开图像,以便文本足够大,便于阅读。)

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

带注释的转换器中,多头注意力通过类 MultiHeadedAttention 实现:

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

这个类别的执行个体是以下列方式初始化的:

  • = 8,“人头”的数量变压器基本模型中有 8 个头。
  • <d_model>= 512</d_model>
  • =辍学率= 0.1

键的维数 d_k 的计算方法是 d_model/h,所以在这种情况下,d_k = 512/8 = 64。

让我们更详细地看一下 MultiHeadedAttention 的 forward()函数:

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

我们可以看到 forward()的输入是查询、键、值和掩码。暂时忽略面具。查询、键和值来自哪里?它们实际上是从 EncoderLayer 中重复出现三次的“x ”(见黄色高亮部分):

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

x 来自前一个 EncoderLayer,或者如果我们在 EncoderLayer1,x 是我们最初的句子表示。(注意,类 EncoderLayer 中的 self.self_attn 是 MultiHeadedAttention 的一个实例。)

在 MultiHeadedAttention 类中,我们将获取旧查询(旧 x)、旧键(也是旧 x)和旧值(也是旧 x),并生成彼此不同的新查询、键和值。

注意“查询”输入的形状是[nbatches,L,512]其中 nbatches 是批量大小,L 是序列长度,512 是 d_model。“键”和“值”输入也具有形状[nbatches,L,512]。

步骤 1) 在 MultiHeadedAttention forward()函数中声明,“从 d_model = > h x d_k 开始批量进行所有线性投影。”

  • 我们将在形状[nbatches,L,512]的相同张量上进行三种不同的线性投影,以获得形状[nbatches,L,512]的每个新查询、键和值。(从线性图层 512 -> 512 开始形状就没变过)。
  • 然后,我们将把输出整形为 8 个不同的头。例如,查询是 shape [nbatches,L,512],并使用 view()将其重新整形为[nbatches,L,8,64],其中 h=8 是头的数量,d_k = 64 是密钥大小。
  • 最后,我们将使用转置来交换维度 1 和 2,以获得形状[nbatches,8,L,64]

步骤 2) 在代码状态中,“批量应用所有投影向量的注意。”

  • 具体行是 x,self.attn = attention(查询,键,值,mask =掩码,dropout=self.dropout)
  • 下面是我们使用 attention()函数实现的等式:

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

为了计算分数,我们首先在 query [nbatches,8, L,64 和 key transposed [nbatches,8, 64,L ]之间做一个矩阵乘法。这是方程式中的 QK^T。分数的最终形状为[nbatches,8, L,L ]。

接下来,我们通过对分数应用 softmax 来计算注意力权重 p_attn。如果适用,我们还将下降应用于注意力权重。因此,p_attn 对应于上式中的 softmax(QK^T/sqrt(d_k)。p_attn 的形状是[nbatches,8, L,L ,因为对分数应用 softmax 和 dropout 不会改变形状。

最后,我们执行注意力权重 p_attn [nbatches,8, L,L ]与值[nbatches,8, L,64 ]之间的矩阵乘法。结果就是我们注意力函数的最终输出,形状为[nbatches,8, L,64 。我们从函数中返回这个,以及注意力权重本身 p_attn。

注意,在我们对注意力函数的输入和注意力函数的输出中,我们有 8 个头(张量的维度 1,例如[nbatches, 8 ,L,64】。)我们为八个头中的每一个做了不同的矩阵乘法。这就是“多头”注意力的含义:额外的“头”维度允许我们拥有多个“表征子空间”它给了我们八种不同的方式来考虑同一个句子。

步骤 3) (在 MultiHeadedAttention 类中,因为我们现在已经从 Attention()函数中返回)是使用 view()连接,然后应用最终的线性层。

步骤 3 的具体行是:

x = x.transpose(1,2)。连续()。视图(nbatches,-1,self.h * self.d_k)

return self.linears-1

  • x 是从注意力函数返回的:我们的八头表示[nbatches,8,L,64]。
  • 我们转置它得到[nbatches,L,8,64],然后用 view 整形得到[nbatches,L,8 x 64] = [nbatches,L,512]。这个使用 view()的整形操作基本上是 8 个头的连接。
  • 最后,我们应用 self.linears 的最后一个线性层,这个线性层从 512 -> 512。注意,在 Pytorch 中,如果一个多维张量被赋予一个线性层,则该线性层仅被应用于最后一个维度。所以 self.linears-1的结果还是有形状的[nbatches,L,512]。
  • 请注意,[nbatches,L,512]正是我们需要放入另一个多头张力层的正确形状。
  • …但在此之前,我们还有最后一步,即编码器子层 2,我们将在查看 Transformer 白皮书中的图 2 后讨论它。

这是变压器论文中的图 2:

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

Transformer paper Figure 2

在左边,在“缩放的点积注意力”下,我们有一个 Attention()函数计算结果的可视化描述:softmax(QK^T/sqrt(d_k))V.它之所以“缩放”是因为被 sqrt(d_k)除,它之所以“点积”是因为 QK^T 表示一组堆叠查询和一组堆叠键之间的点积。

在右边的“多头注意力”下,我们有一个关于多头注意力类的可视化描述。现在,您应该可以识别该图的各个部分:

  • 在底部是旧的 V、K 和 Q,它们是我们从前一个 EncoderLayer 输出的“x ”(或我们来自 EncoderLayer1 的输入句子表示的 x)
  • 接下来,我们应用一个线性层(“线性”框)来计算处理过的 V、K 和 Q(没有明确显示)
  • 我们将处理过的 V、K 和 Q 输入到我们的 8 个头的点积注意力中。这就是 attention()函数。
  • 最后,我们连接 8 个头部的 attention()函数的结果,并应用最后一个线性层来产生我们的多头注意力输出。

编码器子层 2:位置式全连接前馈网络

我们现在几乎已经理解了整个 EncoderLayer!回想一下,这是单个 EncoderLayer 的基本结构:

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

Modified from Transformer paper Figure 1

我们已经学习了子层 1,即多头注意力。现在我们来看看第 2 子层,即前馈网络。

子层 2 比子层 1 更容易理解,因为子层 2 只是一个前馈神经网络。下面是子层 2 的表达式:

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

换句话说,我们应用权重为 W1、偏差为 b1 的全连接层,执行 ReLU 非线性(最大值为零),然后应用权重为 W2、偏差为 b2 的第二个全连接层。

下面是带注释的转换器的相应代码片段:

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

总之,编码器由 6 个编码器组成。每个编码器有 2 个子层:子层 1 用于多头注意力,子层 2 只是一个前馈神经网络。

解码器

既然我们理解了编码器,解码器就更容易理解了,因为它和编码器很相似。这又是图 1,有一些额外的注释:

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

Modified from Transformer paper Figure 1

解码器和编码器之间有三个主要区别:

  • 解码器子层 1 使用“屏蔽的”多头注意力来防止非法“预见未来”
  • 解码器有一个额外的子层,在上图中标为“子层 2”。这一子层就是“编码器-解码器多头注意。”
  • 存在应用于解码器输出的线性层和 softmax,以产生指示下一个预测字的输出概率。

让我们来谈谈每一件作品。

解码器子层 1:被屏蔽的多头注意力

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

The Crystal Ball by John William Waterhouse

多头注意力层中的掩蔽点是防止解码器“预见未来”,即我们不希望任何水晶球内置到我们的模型中。

掩码由 1 和 0 组成:

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

Mask example (Image Source).

attention()函数中使用掩码的代码行如下:

如果掩码不为无:

scores = scores . masked _ fill(mask = = 0,-1e9)

masked_fill(mask,value)函数用[value]填充[self]张量的元素,其中[mask]为真。[遮罩]的形状必须是可广播的与基本张量的形状所以,基本上,我们使用屏蔽来“清除”分数张量中对应于我们不应该看到的未来单词的部分。

引用作者的话,“我们[……]修改解码器堆栈中的自我关注子层,以防止位置关注后续位置。这种屏蔽与输出嵌入偏移一个位置的事实相结合,确保了对位置 I 的预测只能依赖于小于 I 的位置处的已知输出。”

解码器子层 2:编码器-解码器多头关注

以下是解码器的代码:

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

黄色下划线定义了“编码器-解码器注意事项”:

x = self.sublayer[1](x,lambda x: self.src_attn(x,m,m,src_mask))

self.src_attn 是 MultiHeadedAttention 的实例。输入是 query = x,key = m,value = m,mask = src_mask。这里,x 来自前一个 DecoderLayer,而 m 或“内存”来自编码器的输出(即 EncoderLayer6 的输出)。

(注意黄色那条线上面的线,x = self.sublayer[0](x,lambda x: self.self_attn(x,x,x,tgt_mask)),定义了我们刚才讲的解码器子层 1 的解码器自我关注。除了额外的屏蔽步骤之外,它的工作方式与编码器自我关注完全相同。)

旁白:变压器中注意力的完整总结

我们现在已经讨论了变形金刚中的三种注意力。这是作者从 Transformer 的论文中总结的关于注意力在他们的模型中使用的三种方式:

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

解码器最终输出:线性和 Softmax 产生输出概率

在解码器堆栈的末端,我们将解码器的最终输出输入到一个线性层,然后是 softmax,以预测下一个令牌。

我们运行编码器一次,得到编码器栈的输出,代表英文输入句子“I like trees”;现在我们将多次运行解码器,以便它可以预测西班牙语翻译“Me gustan los arboles”中的多个单词

最后一个线性层将解码器堆栈的输出扩展成一个巨大的向量,其长度等于词汇表的大小。softmax 意味着我们将选择这个巨大向量中概率最高的一个元素(“贪婪解码”),它对应于我们西班牙语词汇中的一个单词。

训练完网络后(即当我们执行推理时),我们将执行以下步骤(注意,编码器输出被计算一次,然后被使用几次):

  1. 将我们的编码器输出(代表完整的英文句子“I like trees”)和一个特殊的句子开头标记输入到解码器底部的“输出句子”槽中。解码器将产生一个预测的单词,在我们的例子中应该是“我”(我们的西班牙语翻译的第一个单词。)
  2. 将我们的编码器输出、句子开头标记和解码器刚刚产生的单词提供给解码器——即,将编码器输出和" Me "提供给解码器在这一步中,解码器应该产生预测的单词“gustan”
  3. 把我们的编码器输出和“ Me gustan”馈送给解码器在这一步中,解码器应该产生预测的字“los”
  4. 将我们的编码器输出和" Me gustan los "馈送给解码器在这一步中,解码器应该产生预测的单词“arboles”
  5. 给解码器输入我们的编码器输出和“我喜欢 los arboles。”在这个步骤中,解码器应该产生句子结束标记,例如“”
  6. 因为解码器已经产生了一个句子结束标记,我们知道我们已经完成了这个句子的翻译。

训练期间呢?在训练过程中,解码器可能不是很好,所以它可能会对下一个单词产生不正确的预测。如果解码器产生垃圾,我们不想把垃圾反馈给解码器进行下一步。所以,在训练中我们使用了一个叫做“老师强制”的过程( ref1ref2ref3 )。

在教师强制中,我们利用我们知道正确的翻译应该是什么的事实,并且我们向解码器提供它应该已经预测到的符号。请注意,我们不希望解码器只是学习一个复制任务,所以我们将只在应该预测单词“arboles”的步骤中输入“< /s > Me gustan los”这是通过以下方式实现的:

  • 我们之前谈到的掩蔽,其中未来的单词被置零(即,当解码器应该预测“gustan”时,不要输入解码器“los arboles”),以及
  • 右移,使得“当前”字也不输入(即,当解码器应该预测“gustan”时,不输入解码器“gustan”)

然后,使用解码器实际产生的可能的下一个字的概率分布(例如[0.01,0.01,0.02,0.7,0.20,0.01,0.05])相对于它应该产生的概率分布(如果我们使用一个热点矢量作为基本事实,则该概率分布是[0,0,0,0,0,1,0,0]以及“arboles”槽中的“1”)。)

请注意,我刚刚描述的方法(在每个解码步骤选择概率最高的单词)被称为“贪婪解码”另一种方法是波束搜索,在每个解码步骤中保持一个以上的预测字(更多细节见这篇文章)。)

下面是用于最终线性层和 softmax 的 Pytorch 生成器类:

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

更有趣

祝贺您,您已经完成了变压器模型的关键部分!转换器内置了一些额外的概念,我将在这里快速概述一下:

压差:压差用于整个变压器的几个不同的地方。在这种技术中,在每次向前/向后传递期间,忽略随机的神经元子集,以帮助防止过度拟合。想了解更多关于辍学的信息,请看这篇文章

残差连接和层归一化:在编码器的每个子层周围和解码器的每个子层周围都有一个残差连接,然后是层归一化。

  • 剩余连接:如果我们计算某个函数 f(x),一个“剩余连接”产生输出 f(x)+x。换句话说,我们将原始输入加回到我们刚刚计算的输出上。更多详情见本文
  • 图层归一化:这是一种跨要素归一化输入的方法(与跨批次归一化要素的批次归一化相反。)更多详情见本文

在下面的 EncoderLayer 图中,我将相关部分涂成红色:箭头和“添加和规范”框一起表示剩余连接和层规范化:

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

Modified from Transformer paper Figure 1

引用,“每个子层的输出是 LayerNorm(x + Sublayer(x)),其中 Sublayer(x)是子层本身实现的函数。为了促进这些剩余连接,模型中的所有子层以及嵌入层产生维度 dmodel = 512 的输出。

对于 Pytorch 实现,请参见带注释的 Transformer 类“LayerNorm”以及应用 LayerNorm、Dropout 和 residual 连接的类“SublayerConnection”。

Noam 优化器:使用 Adam 优化器训练变压器。作者报告了一个在整个训练过程中改变学习率的具体公式。首先,对于一定数量的训练步骤,学习率线性增加。之后,学习率与步数的平方根倒数成比例降低。这个学习率计划在带注释的 Transformer 类“NoamOpt”中实现

标签平滑:最后,作者应用了标签平滑技术。本质上,标签平滑采用一个热编码的“正确答案”并平滑它们,以便大部分概率分布在“1”所在的位置,而剩余部分分布在所有为“0”的位置更多详情参见本文。有关实现,请参见带注释的转换器类“LabelSmoothing”

大总结!

  • 转换器由一个编码器和一个解码器组成。
  • 输入句子(例如“我喜欢树”)和输出句子(例如“Me gustan los arboles”)各自使用单词嵌入加每个单词的位置编码向量来表示。
  • 编码器由 6 个编码器组成。解码器由 6 个解码器组成。
  • 每个 EncoderLayer 有两个子层:多头自注意和前馈层。
  • 每个解码器层有三个子层:多头自关注、多头编码器-解码器关注和前馈层。
  • 在解码器的末端,对解码器输出应用线性层和 softmax 来预测下一个字。
  • 编码器运行一次。解码器运行多次,在每一步产生一个预测字。

参考文献

关于特色图片

特色图片是约翰·威廉姆·沃特豪斯的画作“水晶球”的一部分。

原载于 2019 年 8 月 15 日http://glassboxmedicine.com

基于 Scikit-Learn 流水线的文本特征提取

原文:https://towardsdatascience.com/the-triune-pipeline-for-three-major-transformers-in-nlp-18c14e20530?source=collection_archive---------15-----------------------

使用 2020 年初选辩论记录

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

Image Source

这篇文章的目的是双重的。

首先,如我所承诺的,我将跟进之前的帖子,在那篇帖子中,我比较了 2020 年 21 位民主党初选总统候选人的演讲特性。我确定了一系列语言特征,这些特征将在描述层面上区分我们的总统候选人。

在这篇文章中,我想使用这些特征来建立一个分类模型,可以预测谁将有资格参加 12 月 19 日的辩论。当然,我们现在知道谁有资格参加辩论,但我想这项任务背后的真正动机是更全面地了解一个人以某种方式说话(在辩论舞台上)对于作为总统候选人被认真对待(并被允许进入下一轮)有多重要。

第二个(也是更重要的一个)在构建这个模型的过程中,我想分享一些我最近在 scikit-learn 的世界中非常高兴地发现的事情:Pipeline(我知道我已经迟到了。😃这个非常强大的类使我的整个 ML 工作流程——从预处理到评估——变得更加容易处理、更加健壮,并且更少受到猜测的影响,尤其是在超参数调优阶段。正如我的一位同事所说,它真的应该成为每一个基于 sklearn 的 ML 项目的一部分!下面是它的功能描述:

顺序应用一列变换和一个最终 估计器。管道的中间步骤必须是“转换”,也就是说,它们必须实现 fit 和 transform 方法。最终的估计器只需要实现 fit。1

如果你想要更多的背景信息和深入描述性分析的结果,请参考我之前的文章,但是在这篇文章中,我将直接利用文章来构建所谓的三位一体管道🔱,其组件管道可以将原始文本转换为 NLP 任务的三个主要特征构建块:

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

Three types of feature representation in NLP

根据您正在处理的特定任务或模型,维恩图中的一个或多个特征类型可能对您的模型的性能特别重要,例如,单词嵌入伴随着一些自定义语言特征的子集。要了解哪些重叠或不重叠的要素集是最重要的,我们需要设置一个训练流来测试每种要素类型的影响。这就是Pipeline来拯救我们的地方。

但首先要做的是。

使用前一篇文章中准备好的数据帧,我们想为目标变量qualified添加一列(1 或 0 表示是或否),它表示谁有资格参加 12 月的辩论。八名候选人有资格参加辩论(包括退出的哈里斯):

**import numpy as np
import pandas as pd**QUALIFIED_CANDIDATES** = ["BIDEN", "WARREN", "SANDERS", "BUTTIGIEG", "HARRIS", "KLOBUCHAR", "STEYER", "YANG"]CANDIDATE_TO_TARGET = {}
[CANDIDATE_TO_TARGET.update({c: 1}) if c in QUALIFIED_CANDIDATES else CANDIDATE_TO_TARGET.update({c: 0}) for c in ALL_CANDIDATE_NAMES]# add the target variable column 
qualified = df['speaker'].apply(lambda x: CANDIDATE_TO_TARGET[x] if x in CANDIDATE_TO_TARGET else np.NaN)
df['qualified'] = qualified**

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

A dataframe containing the features and target variable (not all features shown)

然后,我们将数据集分为训练集和测试集:

**from sklearn.model_selection import train_test_splittrain_df, test_df = train_test_split(df, test_size=0.1)train_data = train_df["segment"]
train_target = train_df["qualified"]test_data = test_df["segment"]
test_target = test_df["qualified"]**

现在我们准备好了有趣的部分!

设置三位一体管道。

**Pipeline** 提供了一种方便直观的方式来构建我们的 ML 流程,其特征在于一系列可预测的核心任务,包括预处理、特征选择、标准化/规范化和分类。Pipeline通过连续调用每个估算器上的fit,将transform应用到输入,并将转换后的输入传递到下一步,来自动化拟合/转换过程的多个实例。这意味着Pipeline中的每个估计器(除了最后一个)都必须有一个transform方法[ 2 ],就像这个友好的 sklearn transformer TfidfVectorizer:

**class TfidfVectorizer(CountVectorizer):
    ... def fit(self, raw_documents, y=None):
        *# Learn vocabulary and idf from training set.*self._check_params()
        X = super().fit_transform(raw_documents)
        self._tfidf.fit(X)
        return self        def **transform**(self, raw_documents, copy=True):
        *# Transform documents to document-term matrix.*check_is_fitted(self, '_tfidf', 'The tfidf vector is not fitted')

        X = super().transform(raw_documents)
        return self._tfidf.transform(X, copy=False)**

Pipeline中的最后一个估计器不一定是转换器(即有一个transform方法),但可以是(通常是)一个分类器,像SVC。这种结构将允许您在整个安装好的管道上调用predict

管道 I:使用 tfidf 矢量器的单词包

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

以我们的辩论记录文本为例,我们创建了一个简单的Pipeline对象,该对象(1)将输入数据转换为 TF-IDF 特征矩阵,以及(2)使用随机森林分类器对测试数据进行分类:

****bow_pipeline** = Pipeline(
    steps=[
        ("tfidf", TfidfVectorizer()),
        ("classifier", RandomForestClassifier()),
    ]
)bow_pipeline.fit(train_data, train_target)
y_pred = bow_pipeline.predict(test_data)
cr = classification_report(test_target, y_pred)**

然后我们可以在整个管道上调用fit,在测试数据上调用predict。正如您所看到的,除了提供有序的估计量之外,没有什么别的了。当然,您可以通过在“classifier”步骤之前添加一个规范化或标准化步骤来扩展管道。(您将在下一个管道中看到一个降维步骤的示例。)

在下面的分类报告中,0代表“没有资格参加 12 月的辩论”,1代表“有资格”。我们看到,仅使用辩论记录数据— 而不了解候选人的其他信息(例如他们的投票状况、性别、受欢迎程度和政治经验水平)—我们能够以 70%的准确率预测谁将参加或不参加下一场辩论。他们在辩论舞台上说的话真的很重要,与他们如何说无关(第三条管道将在下面讨论),也与他们是谁无关。

**# tf-idf features only precision    recall  f1-score   support

           0       0.66      0.54      0.59       165
           1       0.72      0.81      0.76       242

    accuracy                           **0.70 **      407
   macro avg       0.69      0.67      0.68       407
weighted avg       0.70      0.70      0.69       407**

管道 II:使用定制转换器的单词嵌入

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

第二个管道需要创建一个自定义转换器**,它基于单词嵌入将文本转换成数字向量。有几种方法可以做到这一点,包括从这里下载预先训练好的手套单词向量,并编写一个自定义函数来加载模型,如下所示:**

**path_to_word_vectors = "/Users/jlee/glove.6B.50d.txt"def load_glove(path_to_word_vectors):
    f = open(path_to_word_vectors, "r")
    word2vec = {}
    for line in f:
        split_line = line.split()
        word = split_line[0]
        embedding = np.array([float(val) for val in split_line[1:]])
        model[word] = embedding
    return word2vecword2vec = load_glove(path_to_word_vectors)**

或者,您可以使用 spaCy 的内置单词向量模型,可以通过下面的.vector属性访问。下面我加载了"en_core_web_md"模型,它提供了 685k 个键和 20k 个唯一向量(300 维)。这个模型被存储为SpacyVectorTransformer的一个属性,这是一个返回向量平均值的定制转换器。

**import spacy 
from sklearn.base import BaseEstimator, TransformerMixinnlp = spacy.load("en_core_web_md")  # this model will give you 300Dclass **SpacyVectorTransformer**(BaseEstimator, TransformerMixin):
    def __init__(self, nlp):
        self.nlp = nlp
        self.dim = 300

    def fit(self, X, y):
        return self

    def transform(self, X):
        # Doc.vector defaults to an **average** of the token vectors.
        # https://spacy.io/api/doc#vector
        return [self.nlp(text).vector for text in X]**

一旦我们得到 300 维的平均嵌入,我们可以选择使用TrancatedSVD来降低这些特征的维数。

****embeddings_pipeline** = Pipeline(
    steps=[
        ("mean_embeddings", SpacyVectorTransformer(nlp)),
        ("reduce_dim", TruncatedSVD(50)),
        ("classifier", RandomForestClassifier()),
    ]
)embeddings_pipeline.fit(train_data, train_target)
y_pred = embeddings_pipeline.predict(test_data)
cr = classification_report(test_target, y_pred)**

结果是:

**# embeddings only               precision    recall  f1-score   support

           0       0.56      0.61      0.58       165
           1       0.72      0.67      0.69       242

    accuracy                           **0.65 **      407
   macro avg       0.64      0.64      0.64       407
weighted avg       0.65      0.65      0.65       407**

我们看到结果不如更简单的 TF-IDF 模型的结果好。

管道三:定制语言功能管道

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

所谓“自定义语言特征”,我指的是那种你可以通过对你的数据应用一些规则来手动提取的特征。在这个例子中,我使用空间依赖解析器提取特性number of words before the main verb:

An example of a custom rule-extracted linguistic feature

更多基于规则的定制语言特性的例子可以在以下两篇文章中找到:

** [## 为自然语言处理编写语言规则

用 spaCy 提取问题类型的指南

towardsdatascience.com](/linguistic-rule-writing-for-nlp-ml-64d9af824ee8) [## 超越演讲时间:民主党总统辩论分析

使用真实世界数据进行预测建模的数据准备和特征工程

towardsdatascience.com](/which-presidential-candidate-talks-like-that-b2b16060ff8b)

第三个管道需要一个定制的转换器,就像上一个一样;CustomLinguisticFeatureTransformer采用一个fit方法(它返回自身)和一个transform方法。后者返回featurize的输出,这是我创建的另一个名为SegmentFeaturizer的类的方法。

segment_featurizer = SegmentFeaturizer()  # more on this belowclass CustomLinguisticFeatureTransformer(BaseEstimator, TransformerMixin):
    def __init__(self):
        pass def fit(self, x, y=None):
        return self def transform(self, data):
        return **segment_featurizer.featurize**(data)

SegmentFeaturizer定义用于提取一组语言特征的方法。下面是它的基本结构,其中一些特征提取函数后面是返回特征字典列表的主featurize函数:

(要了解更多关于featurize的信息,请看这篇帖子。)然后,transform的输出作为流水线的下一个部件,即DictVectorizer的输入。完整的管道如下:

manual_pipeline = Pipeline(
    steps=[
        ("stats", CustomLinguisticFeatureTransformer()),
        ("dict_vect", DictVectorizer()),
        ("classifier", RandomForestClassifier()),
    ]
)manual_pipeline.fit(train_data, train_target)
y_pred = manual_pipeline.predict(test_data)
cr = classification_report(test_target, y_pred)

结果:

# manual linguistic features only precision    recall  f1-score   support

           0       0.62      0.56      0.59       165
           1       0.72      0.77      0.74       242

    accuracy                           **0.68**       407
   macro avg       0.67      0.66      0.67       407
weighted avg       0.68      0.68      0.68       407

不如词袋模型好,但比平均嵌入要好。下面是三个管道指标的对比汇总表:

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

(显示了的精确度、召回率和 f 分数的平均值。)

在一起更好。

已经看到单词袋管道和自定义语言特征管道独立地产生最佳结果,我想知道如果我们创建一个结合两者特征的新管道会有什么效果。幸运的是,有一个简单的方法可以做到这一点!

管道四:组合功能

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

组合特征集由**FeatureUnion**完成:

FeatureUnion 将几个 transformer 对象组合成一个新的 transformer,该 transformer 将它们的输出进行组合。FeatureUnion 接受一个 transformer 对象列表。在拟合期间,每一个都独立地拟合到数据。为了转换数据,转换器被并行应用**,并且它们输出的样本向量被首尾相连成更大的向量。**

下面,"classifier"步骤已经从每个管道中删除,因为该步骤需要在我们应用了FeatureUnion之后出现。

# individual pipelines minus the estimator step: **bow_pipeline** = Pipeline(
    steps=[
        ("tfidf", TfidfVectorizer()),
    ]
)**manual_pipeline** = Pipeline(
    steps=[
        ("stats", ManualTransformer()),
        ("dict_vect", DictVectorizer()),
    ]
)

最终管道由通过FeatureUnion和最终分类器连接的组合特征组成:

combined_features = FeatureUnion(
    transformer_list=[
        ("bow", bow_pipeline),
        ("manual", manual_pipeline),
    ]
)**final_pipeline** = Pipeline(
    steps=[
        ("combined_features", combined_features),
        ("classifier", RandomForestClassifier()),
    ]
)

此时,我们可以拟合final_pipeine并计算指标,但是为了更好地测量,我将对拟合的随机森林分类器的参数执行随机搜索。(您也可以运行网格搜索,但这需要更长时间。)

from sklearn.model_selection import RandomizedSearchCV# the keys can be accessed with **final_pipeline.get_params().keys()**
params = {
    "combined_features__bow__tfidf__use_idf": [True, False],
    "combined_features__bow__tfidf__ngram_range": [(1, 1), (1, 2)],
    "classifier__bootstrap": [True, False],
    "classifier__class_weight": ["balanced", None],
    "classifier__n_estimators": [100, 300, 500, 800, 1200],
    "classifier__max_depth": [5, 8, 15, 25, 30],
    "classifier__min_samples_split": [2, 5, 10, 15, 100],
    "classifier__min_samples_leaf": [1, 2, 5, 10]
}search = RandomizedSearchCV(final_pipeline, params)
search.fit(train_data, train_target)
y_pred = search.predict(test_data)
classification_report(test_target, y_pred)

酷!结果更好,具有特征统一和网格搜索支持的参数优化!

# combined features + randomized search               precision    recall  f1-score   support

           0       0.70      0.55      0.61       165
           1       0.73      0.84      0.78       242

    accuracy                           **0.72**       407
   macro avg       0.72      0.69      0.70       407
weighted avg       0.72      0.72      0.71       407

在每项指标上,混合渠道的得分都高于表现最佳的单个渠道:

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

作为正确的下一步,您可以尝试组合所有三个特性集,看看会发生什么,从而创建一个真正的“triune”(三合一)管道。🔱

结束了。

在这篇文章中,我演示了如何建立三位一体管道来预测总统候选人有资格参加下一场辩论的可能性。他们是:

  1. 使用标准字袋模型的管道
  2. 使用字嵌入的管道****
  3. 一条管道使用手动(自定义)功能****

每个组件管道包括一个转换器,它输出 NLP 中的主要特征类型/表示。我还展示了我们可以组合来自不同管道的不同特性集来获得更好的结果,尤其是与RandomizedSearchCV结合使用时。我认为另一个很好的收获是结合 ML 驱动和基于规则的方法来提升模型性能的价值。

我确实发现,候选人的演讲特性本身——不受任何其他人口统计特征或候选人政治成就信息的影响——能够相当准确地预测某人是否有资格参加下一场辩论,这是预测我们下一任总统的众多预测因素之一。

如果你想要不那么罗嗦的东西:

*** [## 管道随机(或网格)搜索超级快速指南

使用 scikit 的五个步骤-学习

medium.com](https://medium.com/swlh/randomized-or-grid-search-with-pipeline-cheatsheet-719c72eda68)*****

用分类为故事片增色不少——第一部分

原文:https://towardsdatascience.com/the-trouble-with-classification-312cc6fe8b79?source=collection_archive---------26-----------------------

为什么你最好在“人数据”中留下空白,而不去管分类。

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

当你去看电影的时候,你是否曾经希望你可以按下一个按钮,跳过故事,看着片尾字幕滚动而过?如果你回答“不”,你是正常的。演职员表很无聊

但是我们认为电影结尾的致谢是理所当然的;毕竟,演职员表的顺序是电影放映时间的一部分。再考虑一下演职员表,我们用演职员表这样一种枯燥的形式给一部电影(一种使用戏剧性的视觉和修辞来唤起内心反应的艺术形式)封顶,这似乎很奇怪。当然,演职员表已经在电影中赢得了一席之地,作为向创作者表达敬意的传统方式,有时甚至伴随着主题剪辑,以使最后的过渡不那么明显。演职员表之前的一切都是为了被动地欣赏,而之后的一切几乎都不像之前的艺术——传统的格式建议你阅读一份名单,并在电影淡出人们的视野之前,对每个人在电影制作中所扮演的角色表示敬意。只有随着时间和重复,普通的电影观众才学会将名字(尤其是线下的名字)与风格、精神气质和特权联系起来。

演员更有优势。由于他们的脸被高细节地投影,而他们的声音从环绕立体声扬声器中投射出来,你可以很快熟悉演员阵容;但是,如果你第二次看一部电影,我敢打赌你不会注意到所有船员角色的名字都被打乱了。

为了缩小“熟悉度差距”,我想如果我能在名字中找到帮助人们识别它们的元素,我就能让演职员表对人们更有吸引力。就我个人而言,当我与人们分享经验时,我会更好地记住他们的名字。这是第一个复杂的问题:人们永远也不会见到大多数名字在他们面前的人。下一个显而易见的解决方案将是用围绕这些人建立的公共档案来轰炸人们,例如,动态地改变信贷序列的视频,并为每个被信贷的人注入 IMDB 传记。这看起来很有效,但是太麻烦了。

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

“that” = reading the life story of every writer, sound designer, and costume writer of Transformers 7

接下来,我考虑了身份。如果职业和专业知识不足以吸引人们留下来获得学分,我认为共同的背景会吸引他们。当美国人遇到拥有共同国籍的人时,即使他们的祖先是 5 代前移民的,他们似乎也会高兴起来。我遵循这个真理,决定给我能找到的每一个有信用的人贴上他们的国籍标签。然后,我想,我会考虑到,即使是典型的电影观众,他们也不在乎超越影院体验去“了解”被信任的人。

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

“Oh my god, I’m Irish, too! “

我想,既然“典型的电影观众”不可能知道演职员表中每个成员的种族背景,那么标记过程应该反映出同样天真的观点,并根据名字本身做出受过教育的地理估计。我想错了,但是在我解释为什么之前,我将向你展示在我的过程有缺陷变得非常明显之前,我凭直觉走了多远。

我遵循人们用来假设他们从未见过的人的种族和性别的直觉,并转向机器学习模型,使用调查、人口普查和民意测验数据将姓名与地点关联起来。

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

“Assume,” “ethnicity,” and “gender” have been used in the same sentence. Exercise caution.

有许多工具可以将标识符附加到姓名上,即 NamSor ,它利用大规模数据集,仅根据姓名来提供对某人性别和种族的最佳猜测。尽管 NamSor 已经被设计得非常复杂,并且咨询了许多经济学家、语言学家和人类学家,但它(以及任何一个)人工智能分类器都无法以 100%的准确率运行。这是不可能的,原因有二:

  1. 名称序列不够长。
    举个例子,给一个故事贴上体裁标签的类似问题。如果故事是“那个人走了”,你会同样不自信地把它放入任何类型。但是如果故事继续下去,“女孩强迫特雷皮德走向迪丹吉庄园,”你会认为这是一个恐怖故事的前兆,原因有很多,至少是庄园只有房子邪恶。
  2. 名字比种族更重要,种族也比某人的名字更重要。就像一个人不会只看自己的名字来决定如何识别自己一样,从外向内分配标识符也不是了解一个群体的有效方法。

最终,我赋予个人名字比出现在屏幕上的名字更多价值的计划,在正确代表人们的责任下失败了。我认为我的意图是正确的,但我的方法是完全错误的。我想,“这个项目需要真正好的猜测”,而不是寻找人们如何识别自己,从而忽略了更好的解决方案。分类,尽管看起来很客观,但当应用于定性的人类特征时,却是有问题的。

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

在我的下一篇文章中,我将展示 NamSor 如何通过在散居地(电影创作者最有可能来自的地方)方面用细粒度的属性(如种族)来增加个人数据。我还将展示这与基本事实信息的关系。敬请期待!

开放数据的真相

原文:https://towardsdatascience.com/the-truth-about-open-data-6a98a04723e8?source=collection_archive---------14-----------------------

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

Photo by King’s Church International on Unsplash

信任腐败透明 DataViz 新闻

我目前在哥伦比亚卡利的一家数据新闻初创公司做志愿者。在过去的两周里,我与企业主、学生、市长候选人和政府官员会面,深入研究数据。

我学到了一些有趣的东西。

卡利市是拉丁美洲少数几个真正开始推动开放数据的地方之一。两年前,市政厅设立了透明的咨询办公室来协助他们的努力。作为哥伦比亚正在进行的Datos Abiertos(开放数据)运动的一部分,卡利创建了一个在线门户,公众可以在那里轻松获取他们城市的数据。

公开数据在任何地方都很重要,但在哥伦比亚这样的地方尤为重要。当政府数据向公众公开时,公民和国家之间就会建立信任。透明促进诚信。在这种情况下,诚信有助于打击腐败的政客和制度。

这种事情以前发生过:巴拿马的告密者在一家德国报纸的帮助下揭露了政府的极端腐败,该报纸梳理了 2.6 兆字节的机密数据。这项数据科学研究泄露了数十个国家的信息,并在政治上曝光了许多对非法活动负有责任的政府官员。

政府没有主动透露这些信息是有原因的。封闭的数据鼓励隐藏的数字。当信息可供审计时,又名:当数据变得开放时,隐藏腐败变得更加困难。

如果政府实体开始与公众分享他们的数据,透明度就会演变成信任。开放数据是政府的说法:欢迎加入对话,我们没有什么好隐瞒的。

“[卡利]是该国最早遵守反腐败规范、与透明度、诚信和以公开格式处理公共信息有关的良好治理做法的地方之一”——Cali.gov

除了打击腐败,政府的透明度也促进了公民的参与和合作。数据可以用来理解和可视化社区中正在发生的问题。当公众以有趣的方式了解这些问题时,参与度就会增加。

例如:哥伦比亚和犯罪

历史上,卡利在犯罪方面有过一段坎坷的历史,尤其是在杀人方面。然而,游击队的存在正在迅速减少,许多城市范围的项目正在进行中,为市民提供更大的安全。奇怪的是,我在这里交谈过的人并不相信情况正在好转。公众对犯罪看法的调查仍然显示 caleos(卡利人)认为这座城市不安全。

为了在政府和 caleos 之间建立信任,需要就该市的犯罪现状进行透明的对话。数据可视化可以在很大程度上帮助这一努力。

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

Homicide rates in major cities of Colombia over the years, CERAC on Twitter

如果公民相信政府正在帮助减少像杀人这样的高影响犯罪,对话就开始了。是什么导致了这种减少?为什么尽管凶杀案减少,卡莱诺斯仍然感到不安全?最近几年增加的警力是否起到了作用?停止引进更多(可能是腐败的)武器,转而关注教育,是不是更好?

开放数据→透明→信任→进步

不幸的是,有两个障碍挡住了去路。

障碍 1:技术工人在哪里?

数据科学的现实是,它需要的技能在发展中国家不容易找到。在哥伦比亚,获取、清理、分析、可视化、解释和利用数据的学位少之又少。

在少数有技能的人中,他们期望得到报酬。来自政府的资金很少,所以数据科学家从别处寻找资金。这意味着数据科学家的大部分客户是美国的新闻机构或组织,而不是哥伦比亚政府。

仅在卡利,如果这座城市能够接触到熟练的数据科学家,他们就可以使用数据来:

  • 了解地区和社区之间的犯罪率/犯罪率类别,以提高治安水平
  • 鼓励这个城市的 3 个以上报告犯罪的机构最终彼此共享数据(这也有助于减少腐败警察的数量)
  • 绘制城市空气质量图,确定改善空气质量的方法
  • 讨论教育在降低犯罪率方面是否起重要作用
  • 向公众证明游击队的日子真的结束了
  • 请注意,限制市民全天使用汽车实际上对环境和公众都没有好处
  • 审计政府财务交易以打击腐败
  • 想象东部边缘社区和北部富裕社区之间日益扩大的财富差距(然后讨论如何解决)

项目层出不穷,影响不可估量,技术工人无处可寻

障碍 2:数据在哪里?

2018 年哥伦比亚人口普查在卡利市引起争议,此前有人声称这些数字被错误报告。2019 年,人口预计约为 480 万,但人口普查仅显示 390 万。差不多有 100 万人失踪。

卡利的市民对这些结果提出质疑,理由是数据收集方法不一致,包括整个社区都没有被统计。不正确的人口普查可能是一件大事,因为人口数量少意味着政府对公共服务(如教育)的拨款少。

这次人口普查是哥伦比亚众多数据差异的例子之一。警方很乐意使用更多的数据来帮助打击犯罪,但这还不可能。至少有三个独立的实体监管和报告该市的犯罪,但它们都拒绝相互共享数据。

在哥伦比亚首都波哥大,一个为期三年的项目计划利用犯罪数据来帮助创建一个有效的城市预测警务平台。最近的研究开始发现,预测性警务平台往往会在贫困社区产生歧视性的反馈循环,而不是有效地减少犯罪。有了这些信息,我开始对波哥大现有的犯罪数据进行分析感兴趣(希望研究预测性警务的替代方案)。

我联系了一些政府机构和大学教授,以获取该市的数据。一般的反应是:

“亲爱的杰西,感谢你对我们在哥伦比亚的预测性警务工作感兴趣。不幸的是,数据和代码是波哥大市的专利。”

在第三世界国家,数据几乎不存在。在许多发展中国家,数据是一个秘密。当数据公之于众时,往往是不准确的。不准确的数据会导致不正确的分析和可视化。

隐藏数据会破坏信任。无效数据伤害社区。

数据是理解和帮助我们社区的关键。但是在我们开始利用它之前,每个人都必须先打开它。

换句话说:开放数据是重要的,但它只有在每个人都参与的情况下才能发挥作用,因为缺失的数据会使其他数据无效。

开放数据的现实

卡利的开放数据平台才出现了两年。两年多前收集的大部分数据都存在于成堆的 pdf 文件中,需要数年才能数字化。自动化这一过程需要花费大量金钱的合格数据科学家的高超技能和努力。现在正在收集的数据不遵循任何指定的格式,这使得很难自动化系统来可视化它。

管理透明办公室的两个人没有技术背景。他们想让公众感兴趣并参与进来,但他们不知道从哪里开始。这一运动的大多数障碍都可以由那些了解 UX、UI、设计、数据科学、dataviz、数据库管理、软件工程或计算机科学的人来解决。

不幸的是,没有资金,很难招募到所需的技能来帮助卡利的开放数据平台

因此,合格的工人把他们的努力放在了其他地方。数据科学家被诱入利润丰厚的公司的诱人世界。企业项目倾向于利用来自客户的数据进行广告和产品匹配。当客户是公司时,最终目标是收入

如果客户是公众,最终目标可能是社会影响。

事实是这样的:

在美国,我遇到了数千名合格的程序员、数据科学家、研究人员和学生。技能过剩。然而,大多数技术工人都抱怨同一个问题——他们的工作没有成就感。

在哥伦比亚等地,开放数据运动的开始为社会影响项目提供了无限的资源。国家希望开放和利用其数据,但它需要帮助。

是什么阻止了美国等地的技术工人来到哥伦比亚等地帮助政府、非政府组织和创业公司完成项目?

我希望将合格的个人与有意义的工作联系起来。最后,我也想在这里为科技教育带来更多的机会。

如果你有兴趣参与,请联系我们。这仅仅是开始。

* [## 杰西·史密斯-机器学习(ML)伦理研究员-加州理工学院州立…

加州州立理工大学圣路易斯奥比斯波分校理学学士,软件工程专业*…

www.linkedin.com](https://www.linkedin.com/in/jessiejsmith/)*

相关性并不意味着因果关系。现在怎么办?

原文:https://towardsdatascience.com/the-turf-war-between-causality-and-correlation-in-data-science-which-one-is-more-important-9256f609ab92?source=collection_archive---------26-----------------------

实验和因果推理

数据科学中因果关系和相关性之间的地盘之争

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

Photo by jean wimmerlin on Unsplash

2021 年 2 月 20 日更新

数据科学家知道“相关性并不意味着因果关系”这一警告。仅这个月,Medium 就推荐了 20 多篇包含这句流行语的帖子。在检查了写作语气后,这些帖子暗示或大声说出:

相关性不如因果性!

数据世界中“偏向”因果关系的趋势是可以理解的,因为需要多年的专业训练才能掌握因果关系的要点。相比之下,相关研究的门槛较低。

在应用方面,许多业务场景需要因果洞察,包括确定目标受众,迭代未来产品,以及对客户行为产生可操作的洞察。

然而,这些不应该成为我们拒绝相关研究和轻视它的理由。每一种工作都有广泛的应用。

第一部分:概念 101

1。相关性

最简单的形式是,事件 A 和 B 一起发生,但没有因果关系。换句话说,我们不知道是 A 导致了 B 还是 B 导致了 A。

例如,一家在线预订机构(如 booking.com)刚刚花了 100 万英镑,在 11 月 10 日推出了一个新的网页设计,一周后网站流量激增。事件 A(新的网页设计)和事件 B(流量激增)是有关联的,但我们不知道是否有因果关系。

UX 的设计师们正不耐烦地等待着,想要获得荣誉。

2。因果关系

除了相互关联,因果关系还增加了两层额外的要求:一个时间顺序和没有选择。在上面的例子中,一个因果断言表明事件 A 由于两个原因导致了事件 B。第一,A 发生在 b 之前,第二,网站流量峰值应该没有替代解释,需要验证。

3。替代解释

数据科学家与产品团队合作,对流量激增提出了另外三种可能的解释:

假设 1:过去三个季度在数字营销方面增加的支出终于有了回报。

假设二:宏观经济状况改善提振客户出游意愿。

假设三:又到了一年中旅游的时候了。顾客开始计划圣诞节的家庭旅行。

这是这两种方法的不同焦点:相关学派只告诉我们这些事件有多紧密的联系,但不能决定是否有因果关系或因果关系的方向;因果学派需要解决这些难题。

为了排除替代方案,数据科学家选择以下三种途径之一:实验、准实验和观察设计。

第二部分:三种因果方法

解决方案 1:实验设计

对于核心的因果“推理者”,因果推理的黄金标准是随机控制试验,随机将研究对象分配到实验条件下,以消除偏差,并将差异归因于治疗。

在上面的 web 流量案例中,我们可以运行一个 A/B 测试,然后随机分配来自不同地区的客户接收新设计或旧版本。

然而,细节决定成败。

从技术上讲,随机分配应该消除协变量偏差,并创建平衡的数据分布。然而,考虑到社交媒体对人们生活的渗透,这很容易产生溢出效应。我们都在网上发布我们吃什么,穿什么,做什么的图片,这可能会淡化甚至使因果关系无效。

然而,数据科学家应该适当注意实验的缺点,包括:

  1. 耗时:运行和收集数据需要很长时间。
  2. 伦理:我们不能随机分配人吸烟,跟踪得癌症的比率。脸书因网上负面情绪实验而受到抨击。
  3. 对有效性的威胁。不可能消除****的溢出效应**。**
  4. 财务成本。招聘 1000+人,进行现场实验,需要多少钱?对于在线实验,成本也值得注意。设计糟糕的网络实验会让公司损失数百万美元。
  5. ****工程和数据人力。您的组织是否有必要的工程人员来实施全面的在线实验?权力分析让你想起什么了吗?如何在治疗效果小的同时减少方差?如何找到在线实验的最佳停止时间?

解决方案 2:准实验设计

由于上面列出的原因,不可能每次都采用 RCT,我们可以满足于准实验设计。对于这种类型的设计,研究人员不能完全控制随机分配,我们可能不得不处理不平衡的协变量分布。

在一系列博客文章中,我介绍了多种准实验方法来确定因果关系。

回归间断设计 :

** [## 回归不连续设计:因果推理皇冠上的宝石

RDD R 代码完全指南

towardsdatascience.com](/the-crown-jewel-of-causal-inference-regression-discontinuity-design-rdd-bad37a68e786)

:

** [## 中断时间序列实践指南

基础、假设、优点、限制和应用

towardsdatascience.com](/what-is-the-strongest-quasi-experimental-method-interrupted-time-series-period-f59fe5b00b31)

:

** [## 差异中的差异方法实践指南:工资上升,就业率下降?

大卫·卡德和阿兰·B·克鲁格 1994 年 NBER 工作文件的副本

towardsdatascience.com](/does-minimum-wage-decrease-employment-a-difference-in-differences-approach-cb208ed07327)

所有的准方法(如 DID、RDD、ITS 等。)分享相同的设计理念:考虑治疗组和对照组之间的任何先前差异,并找到排除它们的方法。我们可以从时间(即今天对比昨天,面板数据)和空间维度(即对比其他类似案例,横截面数据)寻求帮助。

在选择最合适的方法之前,我们必须检查可用的资源和限制。如果应用正确,这些准方法得出的因果推论接近 RCT。**

解决方案 3:观察设计

观察方法提供了最后的手段。研究人员不知道数据生成过程,也无法控制干预任务。这就是为什么观察方法经常产生不精确和有偏见的估计。

例如,脸书数据科学团队比较了实验方法和非实验方法的性能。他们发现观察法在评估广告测量方面表现不佳。

第三部分:商业伙伴

运行实验是昂贵的,并且观察方法是不可靠的。

商务人士应该怎么做?

一如既往,我推荐以下迭代步骤:

  1. 运行一个小型实验。
  2. 坚持一段时间,收集一些初步的发现。
  3. 留意任何更新:新的和不同的东西,还是老样子?
  4. 如果出现差异,调整工作流程,例如,回到您的业务问题,收集新的变量/数据等。
  5. 假设时间框架内没有任何变化,那么恭喜你。我们只是测试了我们的假设,而没有对 1000 多万客户进行 A/B 测试。

总是回到我们的业务问题/假设来验证我们的模型。

始终保持迭代工作流。

我们可以立即获得有用的发现,以帮助产品团队开始工作,并在需要时进行小的校准。

大型科技公司已经将实验性思维融入到他们的商业战略和产品开发管道中(查看这些令人难以置信的工作: 【脸书】网飞Airbnb)。********

第四部分:哪个更重要?

声音 1:为什么是因果关系?

因果推理为今天和明天带来好处。

因果关系研究显示用户如何参与我们的产品,并量化参与度,为今天提供可操作的见解。

随着时间的推移,人类会改变他们的行为,企业也会随之改变。纵向因果工作帮助我们跟踪这种变化,预测明天的未来趋势。

声音 2:为什么要关联?

相关研究有更广阔的市场,有更多的商业场景。之所以如此,是因为相关性研究不需要那么“挑剔”的统计假设。

比如大零售公司安排店面布局,把相似的产品放在一起。

据我所知,塔吉特、沃尔玛、好市多都是根据联想分析来重新布置店面的。

你可能听说过尿布-啤酒综合症:新爸爸们在从商店出来的路上为他们的新生儿买了尿布后,拿了一杯冰啤酒。于是,商家附近放上帮宝适和百威,捆绑销售。

老实说,购物对男人来说太沉重了。

D-B 综合症是一个商业场景,我们关心的是什么产品一起卖,而不是为什么

有些项目可能有很好的相关性,但更多的时候是没有原因的。他们就是这样,不知道为什么也没关系。所以,强相关性就足够好了。

事情是有原因的。

事情都是无缘无故相关的。

声音 3:何时以及如何使用?

对于因果关系:

  • 为什么顾客只浏览商品目录,却从不在沃尔玛完成交易?
  • 新的网页设计会如何影响顾客的忠诚度和满意度?
  • 为什么用户会脱离产品?
  • 为什么新兴市场的顾客只在线下购物,不在网上购物?
  • 对于所有其他与为什么和如何相关的问题。

进行关联:

  • 除了帮宝适和百威淡还有哪些产品一起卖?
  • 在好市多商店的什么地方可以设置美食广场?
  • 在哪里再开一家星巴克,再开一家亚马逊仓库?
  • 生命科学。医生不了解某些疾病是如何发展的,而是依靠相关的体征和症状进行诊断。
  • 个性化推荐系统。亚马逊采用的是单品到单品的协同过滤系统。它分析过去的浏览/购买历史,并向顾客推荐相关商品。
  • 对于其他数百万不需要知道为什么和如何的问题,相关性设计是首选。

外卖食品

与其问哪个更重要,我们应该问的真正问题是:

1.各校各有什么利弊?

2.我们有什么可用的信息?我们面临哪些限制?

3.如何以及何时采用每一种?

Medium 最近进化出了自己的 作家伙伴计划 ,支持像我这样的普通作家。如果你还不是订户,通过下面的链接注册,我会收到一部分会员费。

**** [## 阅读叶雷华博士研究员(以及其他成千上万的媒体作家)的每一个故事

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

leihua-ye.medium.com](https://leihua-ye.medium.com/membership)****

实验和因果推理

**** [## 运行 A/B 测试的 8 个常见陷阱

如何不让你的在线控制实验失败

towardsdatascience.com](/online-controlled-experiment-8-common-pitfalls-and-solutions-ea4488e5a82e) [## 数据科学家应该有充分的理由进行更多的实验

好的,坏的,丑陋的

towardsdatascience.com](/why-do-we-do-and-how-can-we-benefit-from-experimental-studies-a3bbdab313fe)

喜欢读这本书吗?

请在 LinkedInYoutube 上找到我。

还有,看看我其他关于人工智能和机器学习的帖子。********

2019 年印度尼西亚大选的推特故事(Pemilu)

原文:https://towardsdatascience.com/the-twitter-tale-of-indonesian-election-2019-pemilu-fb75cd084a32?source=collection_archive---------11-----------------------

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

Indonesian Election 2019 and Twitter Analysis

在印尼总统选举期间,佐科维和普拉博沃成为最受关注的候选人。印度尼西亚总统初选成为新闻热点。许多新闻和社交媒体引发了关于谁将赢得总统大选的热潮。现在,在 2019 年,我们将通过 Twitter 的眼睛尝试和分析印度尼西亚总统选举的故事。

Github ( 链接到 Jupyter 笔记本 ) —源代码请访问:

免责声明

这一分析只是我个人的项目,决不能作为政治观点的可靠来源。请小心使用!

本分析的一些弱点和假设如下:

  1. 有限的数据流范围(请查看数据源)
  2. Tweepy API 和 Google Translate API 的访问受限(请看数据源)
  3. 限制对其他外部数据源的访问,以验证结果的可靠性(快速统计列表数据、地理分割等)

数据源

数据源来自 Twitter Tweepy API,该 API 从 2019 年 4 月 19 日开始传输数据。总的来说,我拥有的流媒体 Twitter 帖子是 20509,这花了我几个小时,并存储在 dataset/pemilu-data-2019.json 中,以便快速检索。关于如何获取 Twitter 历史数据(过去一周多)的更多信息。请随意从这里检索

如果你想看我是如何流的,请在 Github 上打开我的 Jupyter 笔记本。在那里,你将能够看到我的代码,并在您指定的开始日期复制结果。

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

Pandas Data object for Twitter Posts

数据清理和争论

删除空文本 twitter

一些文本是不同的文本格式(一些无法在 gettext(tweet)上传递的中文字符。元素)。因此,由于它不需要太多的行,我们将忽略这些行

将印尼语翻译成英语

大多数语言是印尼语。这意味着,为了分析这个问题,我们需要将帖子翻译成英文,以供感伤或其他非印度尼西亚支持的图书馆使用。

在这种情况下,我们将使用 TextBlob translate 将印度尼西亚帖子翻译成英语。这可以简单地用下面的代码来完成。TextBlob 将访问 Google 翻译 API 来生成翻译

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

TextBlob Translate

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

Translation Running on PyCharm IDE

不幸的是,Google API translate 有一些限制,所以我们不能翻译所有的东西。我们将使用那些可以在 translation.txt 中翻译成单独数据集的子集进行情感分析。

提取每个总统候选人的相关职位

为了找到这些相关的帖子,我们会在句子中搜索某个单词。例如,推文中提到了佐科维还是普拉博沃,推文属于哪一个?

例如:

  • 佐科维和普拉博沃
  • 佐科维对贾瓦人的看法(佐科维 1,普拉博沃 0)
  • Prabowo terlalu cepat senang(佐科威 0,Prabowo 1)

这将有助于我们对哪个帖子提到了哪个总统候选人进行编码。以下是 Python Pandas Lambda 函数,用于迭代序列中的每个条目,并对候选项应用提取方法。

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

Code to apply word_in_text method to extract Jokowi and Prabowo in the text

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

Prabowo is the most cited candidates out of all the streamed Twitter posts

分析

公众对两位总统候选人的总体看法如何?(Python 文本 Blob 情感分析)

什么是情感分析

情感分析是指采用自然语言来识别和提取主观信息的过程。你可以获取文本,在 TextBlob 中运行,程序会通过分析文本中使用的语言,判断文本是阳性、中性还是阴性。

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

TextBlob Sentimental Analysis

编写情感分析

我们将为每个英文帖子生成极性和主观性。作为最终结果,我们将收到熊猫数据帧结果如下。

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

Sentimental Analysis

为佐科维和普拉博沃分析公众情绪

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

Happier Posts for Prabowo with most meaningful posts for both candidates

推特上的总体情绪是支持普拉博沃的。在进一步挖掘数据后,有一些关于普拉博沃的有意义的/信息丰富的评论。就主观性而言,围绕普拉博沃和佐科威已经有了大量有意义的观点(与轻声有关)。

新闻传媒怎么样?两个候选人的覆盖范围是什么?

下一个分析是关于新闻报道。新闻报道可以巩固公众对总统候选人的看法,从而极大地影响选举结果。甚至有人提到新闻报道巩固了川普赢得美国总统候选人资格。因此,我们必须分析主要新闻渠道对他们的报道。

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

News Coverage for Prabowo and Jokowi are around the same, except that KPU_ID has more coverages for Prabowo

与其他主要社交媒体渠道相比,KPU ID(选举帖子)多次提到普拉博沃。两位候选人的覆盖面大致相同。

两位候选人的共同话题是什么?(NMF 和 LDA 的主题摘录)

主题摘录

本节说明了如何用 Python 进行近似主题建模。我们将使用一种称为非负矩阵分解(NMF)的技术,它非常类似于潜在的狄利克雷分配(LDA ),后者用于从单词包(单词列表)中寻找提取主题

通过将文本制作成单词包来为主题提取准备数据

单词袋模型是来自自然语言处理NLP 的一种从文本中提取特征的技术。它通过计算文档中单词的频率来做到这一点。一个文档可以根据你的需要来定义,可以是一句话,也可以是整个维基百科。单词袋模型的输出是一个频率向量。(InsightsBot)

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

Generating bags of words with dimensions of 16575 unique words from 20509 posts

通过分解模型生成主题

与 LDA 类似,我们将使用 NMF 来获得文档-主题矩阵(这里的主题也称为“组件”)和每个主题的热门单词列表。我们将通过使用相同的变量名:doctopic 和 topic_words 来进行类比

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

Generating 8 topics with 8 words within each topic. doctopic for each document, and clf.components for each unique word

然后,基于文档主题和 clf.components,我们可以对系数列表进行排序,并检索具有最大系数的索引,该索引指示单词与主题的接近程度。我们会发现 8 个主题是这样的

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

Topics extractions for Jokowi and Prabowo Tweets

分析选举期间佐科维和普拉博沃的共同话题

通过前面的主题摘录,我们找到了每个帖子的主要主题,并将其可视化如下:

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

Topics most talked for Prabowo and Jokowi Candidacy

第一个话题是关于普拉博沃和佐科维与民主党的关系,民主党是印尼一个非常大的社会党,与印尼前总统苏西洛·班邦·尤多约诺(SBY)的形象密切相关

我们看到的第二个话题是,网民们提到了与 BPN 争夺 c1 的问题,后者代表国家队,与普拉博沃-桑迪队关系密切。我们需要进一步分析,找出与 BPN 提及 c1 形式的确切内容。

其余的主题显示了投票和快速计票后当前选举阶段的情况。有一些地区语言混淆了,可以进一步清理。

那么,我们学到了什么,得出了什么结论?

  1. 公众对普拉博沃和佐科维的看法相似。提到了对普拉博沃候选人资格的满意。
  2. 来自 KPU (Komisi Pemilihan Umum)和其他新闻对两位总统候选人的报道不相上下,对普拉博沃的报道略多一些。
  3. 我们从 Twitter 帖子中提取的主题展示了选举阶段,C1 表格与普拉博沃-桑迪配对以及两位候选人与民主党的简单关系。

当然,在这个结论中,有一些假设,包括选择偏差,并不是所有的选民都会主动发微博。这个分析没有考虑 Twitter 之外的范围。另一个假设是分析社会情绪的两个步骤的准确性,即使用 Google API 进行翻译,然后使用 TextBlob 进行分析。这可能会损害情感分析的准确性。更好的方法是使用情感分析的母语,巴哈萨语,但是当我写这篇文章的时候,我还没有找到一个可靠的和可访问的库。也许你可以填补这个空白:)…最后,目前,这种分析采用了一种非常幼稚的方法,即汇总所有帖子的情感分数,我们可以先按用户 ID 分组,然后按用户数量汇总分数。这也最好地模拟了一个人只能投票一次的情况。

简而言之,仍然很难确定谁会赢,但是仅根据我们的 Twitter 分析,普拉博沃在帖子数量和百分比方面比佐科维更受欢迎(包括正面情绪)。

然而,这与最近的快速计票结果大相径庭,佐科威的得票率为 45%对 55%。因此,这种分析的范围仍然很窄,需要更大的时间序列数据集才能找到可靠的结果。然而,由于我的目标是向你介绍一些技巧,并从 Twitter 观点复述印度尼西亚候选人的一瞥,所以我的文章很有用。

那么,下一步是什么?

由于每次分析都会产生更多的问题,未来我们将通过以下方式改进分析:

  1. 将推特用户的情感分析按地区分组,然后与每个地区的快速计数分析进行比较。这将建立模型有效性测试的初始阶段。
  2. 有许多关于假新闻的研究有助于塑造公众对总统候选人的看法。我们可以查看它们的内容以及它给快速计数结果带来的关联。
  3. 建立更多可能的独立变量,如假新闻的可能性、推特用户年龄、人口统计数据等。

如果有时间,我将继续改进这一分析,并解决一些假设。我真诚地感谢我的数据 Whatsapp 小组的友好和建设性的反馈。我从他们的评论中学到了很多。

我希望这一分析将打开许多其他问题和见解,这将有助于您更好地了解我们的国家印度尼西亚。

请通过我的 LinkedIn 联系我,并订阅我的 Youtube 频道

请在下面留言,寻求建议和反馈。

快乐编码:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值