TowardsDataScience 博客中文翻译 2019(四十二)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

艾认为雷切尔·玛多是一个男人(这是我们所有人的问题)

原文:https://towardsdatascience.com/ai-thinks-rachel-maddow-is-a-man-and-this-is-a-problem-for-all-of-us-921e45523d6e?source=collection_archive---------4-----------------------

对生产系统中人工智能偏差的数据驱动审查

2011 年,IBM Watson 在一场 100 万美元的比赛中击败了 Jeopardy 传奇人物肯·詹宁斯和布拉德·鲁特,成为了 T2 的头条新闻。在《最后的危险》中,詹宁斯承认失败,他写道:“就我而言,欢迎我们新的电脑霸主。”

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

那是在 2011 年,在一场名为 ImageNet Challenge 的计算机图像识别比赛中,一个好成绩是 75%。最近,在硬件(GPU&TPUs)、软件和技术的大量进步之后,最好的程序现在可以识别超过 95%的对象。一些专家的共识是,最先进的人工智能在图像识别任务方面已经超过了人类。

因此,人们会认为,今天的[沃森视觉识别](http://Watson Visual Recognition),一个(至少是通过营销)赢得了《危险边缘》的超级计算机的后代,同时代的超人图像识别器,会毫无问题地识别出有线电视新闻人物雷切尔·安妮·玛多的图像。

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

Watson thinks Maddow is male with 84% confidence.

虽然沃森成功地猜出了麦道的年龄范围(有 52%的把握),但它对麦道的性别标注(有 84%的把握)是错误的。

然而,沃森并不孤单。来自 AWS 的图像识别器 Amazon Rekognition 也认为 Maddow 是男的,虽然只有 59%的把握。

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

AWS also thinks that Maddow is a man.

AWS 在混淆亚历克斯·安佐隆(Alex Anzalone)的性别时更有信心,这位 6 英尺 3 英寸,245 磅的 NFL 后卫,以 79%的信心将 Anzalone 标记为女性。

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

这是怎么回事?为什么具有超人图像识别能力的超级计算机在性别标注上如此自信地失败了?

*二元性别标签(例如:“男性”或“女性”)显然存在固有缺陷,因为我们越来越意识到 性别是一个光谱 。性别认同、性别表达、生物性别可能对齐也可能不对齐,增加了问题的复杂性。

现代机器学习如何工作

要理解 AWS 和 Watson 的失败,首先应该理解现代机器学习实际上是如何工作的。今天的顶级计算机视觉系统通过使用大型标签训练集优化极其复杂的数学模型来“学习”。在 2017 年的论文重新审视数据的不合理有效性中,谷歌的 AI 团队再次确认了 2010 年的直觉,即数据越多越好。

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

Per Google, performance continues to increase as the size of datasets increases.

随着模型变得更加复杂,训练数据增长到数亿张图像甚至更多,任何一个机器学习开发者都几乎不可能完全理解任何系统的行为。与具有确定性结果的传统计算机编程不同,大型机器学习系统根据概率(“置信度”)而不是确定性来操作。它们几乎是黑匣子,数据被输入其中,结果被调整到“最小化损失尽管研究人员越来越专注于开发能被人类更好地理解其决策的可解释的人工智能,但这种努力还远未准备好投入生产。

鉴于测试这种复杂系统的难度,系统误差可能会出现。在一项名为性别阴影研究中,麻省理工学院的 Joy Buolamwini 和微软的 [Timnit Gebru](http://Timnit Gebru) 展示了商业图像识别系统的偏见,他们表明,与浅色皮肤的男性相比,深色皮肤的女性被误判的几率高达 34%,而浅色皮肤的男性只有 0.8%。ProPublica 的一项研究声称,法庭上使用的一个名为 COMPASS 的软件系统错误地预测黑人被告比他们有更高的再犯风险,而白人被告则相反。

虽然有关于人工智能安全的突出对话和慷慨资助,重点是防止来自天网一样的人工智能的存在威胁,但很清楚的是,今天的生产中存在实际的人工智能安全问题。使用机器学习系统更广泛地做出关键决策。例如,在中国越来越注重监控的社会,面部识别已经被用于“算法治理”——捕捉犯罪和羞辱不受欢迎的行为。系统误差和偏差会导致严重的后果。

云图识别系统

2013 年,马修·泽勒,前述 Imagenet 比赛的顶级选手,为了创办 Clarifai,拒绝了谷歌的邀请。Clarifai 提供基于云的服务,任何开发者都可以以每张 0.0012 美元的价格获得世界级的图像识别服务。从那以后,这个领域变得竞争激烈,今天提供服务的有亚马逊的 AWS谷歌的云平台微软的 AzureIBM 的 Watson

这些服务都以相似的方式工作。开发人员将图像发送给 API,API 会以相关结果进行响应。每种服务都有自己的模型集合,允许对特定类别的图像进行优化。例如,Clarifai 为对这些类别感兴趣的顾客提供服装和食品特定的模特。它们还提供定制模型,用户可以在其中添加额外的数据来增强定制图像识别器的结果。

这些系统中的性别分类通常通过它们的面部检测模型来暴露。目前,AWS 提供年龄范围、性别,以及对胡须和眼镜等特征的检测。Azure 提供年龄和性别分类没有可信度。Clarifai 提供年龄、性别、 种族 分类,Watson 提供年龄范围和性别

谷歌,这家拥有最好的图像识别技术和团队的公司,是唯一不提供年龄和性别分类的公司。取而代之的是,它提供了对情绪(“喜悦”、“悲伤”、“愤怒”和“惊讶”)以及这个人是否有“头饰”的检测。“谷歌没有性别标签说明了提供这种服务的道德、商业和技术挑战。

培训&测试机学习

为了建立他们的服务,这些公司使用大量的数据。在机器学习中,数据分为训练集、验证集和测试集。训练数据集用于构建模型。您看到的结果基于为适应训练数据而执行的数学优化。验证数据集用于进一步调整模型。最后,测试数据集独立于训练数据,但遵循相同的概率分布,并用于测试模型。

例如,如果糕点图像的训练数据集包含 100 万个油炸圈饼图像、100 万个松饼图像和 100 万个羊角面包图像,则测试数据集应该具有相同的比例。因此,即使系统以接近 100%的成功率成功通过测试数据集,它也不会成功识别 kouign-amannroti canai 的图像,因为这些图像不在原始训练和测试集中。

实际上,用于训练 AWS、Azure、Clarifai、Google 和 Watson 的数据集的实际构成是不透明的。Timnit Gebru(上述性别阴影项目的)现在倡导为数据集提供“数据表”,以便数据的构成和预期用途是透明和可问责的。然而,鉴于机器学习中的硬件、软件和技术正在变得商品化,公司仍然将数据视为其业务的专有优势,应该保持不透明。

随着越来越多的机器学习系统用于生产,在测试数据集之外采用更好的测试变得越来越重要。与传统的软件质量保证不同,在传统的软件质量保证中,系统经过测试以确保功能按预期运行,机器学习测试需要新数据集的管理和生成,以及能够处理置信水平的框架,而不是来自 web 服务器的传统的 404 和 500 错误代码。

我和我的搭档阿历克斯一直致力于开发工具来支持生产中的机器学习。正如她在的《模型服务器的崛起中所写的那样,随着机器学习从实验室走向生产,需要额外的安全和测试服务来完整地完成堆栈。我们的数据监控工具之一“安全服务器”允许快速生成和管理额外的测试数据集,并跟踪这些数据集随时间推移的表现。正是通过使用这个工具,我们发现艾认为是一个男人。

我们如何测试

我们一直在使用公共云 API 来构建安全服务器的原型。我们在测试图像识别服务时发现了雷切尔·玛多问题。AWS、Azure、Clarifai 和 Watson 在给雷切尔·玛多最近的照片时都弄错了她的性别。

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

Rachel Maddow is misgendered in all 4 image recognition APIs.

然而,当她从高中年鉴中得到一张雷切尔·玛多的照片时,她留着长长的金发,性别标签是正确的。

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

如果雷切尔·玛多要做一个 20 年挑战,她的五官变化将是不起眼的。撇开自然衰老不谈,她的脸就是她的脸。唯一明显的区别是她黑色的短发和她的厚框眼镜。

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

为了测试我们的假设,即短发和眼镜是有问题的,我们策划了 1000 张照片,分别是浅色皮肤的短发女性、浅色皮肤的眼镜女性和浅色皮肤的短发和眼镜女性。在所有情况下,所有 3 个数据集的所有 4 个 API 的误性别率都高于预期,超过 15%。很明显,配饰和发型(随着时尚的发展而演变)会导致性别的错误标签。

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

The APIs are struggling with test data of women with short hair and glasses

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

AWS thinks that a short-haired Katy Perry is male.

我们还生成了 1000 张长发男性和眼妆男性的图像,结果不言自明,误差率超过 12%。

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

Clarifai: Man with eye makeup is classified as a woman.

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

AWS: Man with eye makeup is classified as female.

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

Clarifai: Prince with eye makeup is labelled as a woman.

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

Watson: Man with long hair is classified as female.

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

AWS: Man with long hair is classified as female.

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

Watson: Man with long hair is classified as female.

的确,其中一些错误发生在较低的置信水平上,AWS 确实警告需要为任务关键型应用程序设置适当的阈值。尽管如此,并不是所有的开发者都会遵循这一指导方针,微软的 Azure 对自己非常确定,它甚至没有默认提供一个置信度得分。

问题是

如果“人工智能认为雷切尔·玛多是男人的原因”出现问题,“什么是不完整的测试和训练数据?”可能是比“什么是眼镜和短发”更好的问题公平地说,这些人工智能公司试图解决的问题在技术上很难,解决方案也不总是显而易见的。他们的系统在原始训练数据之外的“边缘案例”中失败是意料之中的。通过扩大他们的训练数据,这些系统可以随着时间的推移而改进。尽管如此,完全有可能随着一个领域的进步,其他领域的结果会变得更糟。

随着我们的世界逐渐进入一个人工智能发挥权威作用的世界,记住这些系统的谬误对我们来说很重要。在生产中部署机器学习的公司应该持续跟踪和测试他们的模型,即使是在野外,像图像识别这样的公共云服务也许应该像其他产品一样受到《消费者报告》等机构的审查。

如果你想谈论更多关于机器学习中的测试和安全问题,请随时联系我们。

更新:生殖人工智能正在把水搅浑。下面是一些由 AI 生成的 【雷切尔·玛多】男*雷切尔·玛多女 (承蒙 提示流 )的图片。*

人工智能:自动化还是增强?现实生活中的案例研究。

原文:https://towardsdatascience.com/ai-to-automate-or-to-augment-a-real-life-case-study-50585b5459f9?source=collection_archive---------41-----------------------

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

Photo by Franck V. on Unsplash

当产品经理第一次开始使用人工智能(或机器学习)时,尤其是在直接涉及最终用户的用例中,她面临着一个决定:

我应该使用自动化用户任务还是应该增加它?

这是我的团队在 VRBO 领导内容和媒体产品期间遇到的一个任务的几个例子,希望能够触及潜在的困境。

案例 1 : VRBO 拥有数百万个房源,每个房源所有者都会上传自己的照片,作为建立房源的一部分。对于我们的旅行者,我们假设通过展示按“空间类型”组织的照片,我们将向旅行者提供一个更完整的图片,这是通过查看的照片数量来衡量的。这将有助于购买过程。

让这种情况变得有趣的是,我们有两种类型的用户:已经创建了他们的列表的用户和将来将要创建他们的列表的用户。对于后者,我们可以(潜在地)提示用户在创建他们的列表时(或不久之后)组织他们的照片。

对于那些已经上传了照片的成千上万的用户和数百万的列表,我们该做些什么呢?

我们是否应该自动将它们组织到空间中,并照此发布?我们应该组织它们并等待用户批准吗?对于一张图片被归类为厨房还是客厅,列表所有者会有多“强烈”的感受?列表所有者(主机)不同意我们建议的可能性有多大?在那些 VRBO 出错的罕见案例中,出错的潜在代价是什么?如果 VRBO 真的弄错了,VRBO 能让列表所有者多容易地纠正它呢?

这些是我们在团队制定战略时问自己的一些问题。

U 对于每一个列表,VRBO 都会呈现一个引导图像。(当我加入 VRBO 的时候,搜索结果中的每一个条目都被称为一个广告,这也是房源所有者用来描述他们房源的术语。)作为创建他们的列表的一部分,列表所有者将指定他们想要在他们的“广告”中使用哪张照片。

我们的一个假设是,如果我们使用 VRBO 可以访问的点进数据,我们可以自动确定哪个列表图像最有可能导致旅行者点进该列表,并找到他们喜欢的列表。

同样,这个场景有许多产品团队必须问自己的问题。所有者对选择他们的“广告”领导形象的感受有多强烈?对于 VRBO 来说,解释它为什么选择一个特定的图片来代表列表有多容易?所有者理解 VRBO 的基本原理的可能性有多大?哪些数据可能有助于证明这一点?在搜索结果中列出同质/异质对旅行者的行动有什么影响?潜在的 A/B 测试对受其影响的列表所有者有什么影响?VRBO 应该要求车主选择加入实验吗?如果 VRBO 改变他们的列表,即使最终结果是预订增加,在用户信任方面有什么潜在的附带损害(如果有的话)?

这篇文章不是要提供具体的答案,也不是要谈论我们是如何解决这个问题的。公司采取的方法是其知识产权的一部分。

这篇帖子的目的是让产品经理退一步,提出这样的问题。

谷歌是一家一直面临这种决策的公司。这就是一些经验法则的用处。这些经验法则本质上为产品经理和设计师建立了一个路线图,作为他们评估产品策略、实验设计和用户界面时必须提出的问题。

为了帮助他们的团队,谷歌整理了这个指南,我鼓励所有产品经理和设计师阅读。熟悉这些主题对于构建未来的成功产品至关重要。

你们的产品遇到过这样的情况吗?你是怎么做到的?留言评论!

AI to P:在神秘的生产森林中航行

原文:https://towardsdatascience.com/ai-to-p-navigating-the-mystical-forest-of-production-3d51048cbdf?source=collection_archive---------22-----------------------

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

Unsplash — Cederic X

我经常感到安慰的是,一些邪恶的人工智能,不顾一切地破坏和肆虐世界,因为我们知道它很可能会在从笔记本电脑转移到生产的关键点上失败。一些最酷的数据驱动项目在他们的概念与预期的实现相遇的地方绊了一跤,但是对于云计算、专家领域空间和无限资源,为什么会出现这种情况呢?

对于那些希望这将是一些关于使用“xyz”技术将人工智能带入生产的神奇教程的读者来说,不幸的是,我必须让你失望。相反,我选择向您介绍将算法引入生产时遇到的一些常见问题,并可能传授一些智慧。

攀登绝望之塔……我指的是产品

不仅仅是在数据领域,在整个工程领域,最大也可能是最常见的陷阱之一是停下来花一秒钟问自己"我在做什么,我怎么知道什么时候完成了?“通常情况下,这是一个业务失败,因为理想情况下,业务和产品应该为其数据团队制定一套明确的 KPI,但是,如果您发现自己的情况并非如此,那么在继续之前定义一些目标可能是一个好主意。作为一个组织的一部分,无论是初创公司还是科技巨头,通常你所做的一切都需要对组织产生一些可衡量的影响,这给我们带来了第一个障碍: 你正在做的事情会产生影响吗,你能告诉我们什么时候会产生影响吗?

在成熟的组织中,跨越第一个障碍并不总是可能的。经常会遇到这样的情况,你可以说你正在做的事情将会带来一些价值,但是现在是时候让产品和业务团队相信这种价值了。从我的经验来看,这通常不是数据光谱中任何人的失败,而是数据在组织内的感知位置出现了巨大偏差。
术语“数据驱动”已经失去了所有的意义,AB 测试泛滥,期望几乎从未实现,听起来熟悉吗?这让我想到了第二个障碍,从本质上来说,就是试图组建一个数据感知产品团队。一个数据感知产品团队对于将数据分类(分析、机器学习和工程)整合在一起、弥合业务差距并控制这些期望至关重要。

不幸的是,在数据领域,对产品的理解并不总是清晰的。经常会遇到仓促实施的情况,因为在一个领域产生影响的算法被认为会在另一个领域产生影响,不幸的是,由于空气中弥漫着错误的成功气味,有时很难说服任何人后退一步重新评估。在这种情况下,数据感知产品团队对于创建更易管理的预期至关重要。

到无限远,并在…

我经常听到人们提到这样一种观点,即因为云中有东西,所以它的内存和处理能力是无限的,但这与事实相去甚远。首先,虽然你可以使用一些相当疯狂的资源,但它们不是无限的,当然也不便宜。将资源与所需的业务案例相匹配是有帮助的,例如在“实时推理”的情况下,尝试在 AWS Lambda 这样的无服务器架构上运行较小的脚本,而不是持久且昂贵的 AWS EC2 实例。另一个例子是,与其请求数据库资源,不如从编目文件存储中加载数据。

第二个原因,也可能是最重要的原因,源于认为资源无关紧要,没有必要进行优化。常见的情况是,将大量数据帧加载到内存中只是为了执行单个值查找,或者使用大量昂贵的计算资源来高效地完成无服务器架构所能完成的工作,甚至没有让我开始运行一些 SQL 查询。
应该遵循基本的编程原则,算法应该被很好地记录,你的代码不应该重复,你应该只加载你想消费的东西。

独角兽、彩虹和巫师

经常有人问我什么是数据科学家?直到今天我也不确定。我曾经认为那些拥有高等数学学位的疯狂天才(以前称为统计学家)是数据科学家。这些天来,我在两种思想流派之间左右为难。首先,数据科学通常包含所有属于数据范围(数据工程、机器学习和数据分析)的参与者,有点类似于系谱物种树。

在这一点上,我希望强调前面提到的一个概念:数据分类。这不是一个独特的概念,但在我看来,无论产品和业务团队如何,这都是有效地将机器学习引入生产的最低要求。机器学习,以有效地计算预期结果,工程建设管道和分析,以确保见解可以输入到商业机器。

然而,这个概念也有一些例外,最重要的是在某些情况下独角兽是存在的。独角兽是这三个亚种的有效混合,众所周知,它能够创建令人惊叹的算法,连接所有的工程管道,并随着时间的推移轻松获得其商业价值。

无论你是独角兽还是数据分流中的一员,我确信你在某个阶段会遇到和我目前遇到的问题类似的问题。希望,有了正确的目标,一点点天真和正确的团队,你将会把这个统治世界的人工智能带入生产。更重要的是,需要在数据和产品之间取得平衡,这种关系往往是脆弱的,微妙的,需要始终保持警惕。

人工智能趋势:提供各行业的业务增长

原文:https://towardsdatascience.com/ai-trends-offer-business-growth-across-various-industries-2bd07e12eede?source=collection_archive---------34-----------------------

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

images source: https://unsplash.com/@maximevalcarce

人工智能是游戏规则的改变者,它改变了商业运作和日常生活。人工智能趋势已经成为承认当前市场最新进展的最突出的方式之一。企业可以在人工智能支持的运营中体验到显著的改进。市场上有如此多的应用程序被设定为突破。

向用户提供的服务比以往任何时候都更加个性化和定制化。 人工智能解决方案 **承诺更安全、更具未来感、更具革命性。**这些天机器学习和人工智能是行业的热门话题,从那以后允许做出更好的选择。

企业正在以创新的方式使用人工智能技术作为驱动力。该报告称,82%已经投资人工智能以获得投资财务回报的公司。 企业正在实施人工智能以实现更好的决策和未来的结果。

利用这些人工智能趋势为您的业务提供新的高度

技术进步对行业的重大发展起着重要的作用。因此,人工智能趋势提高了对提供给用户的服务的期望。很少有实质性的人工智能趋势可以从商业角度来考虑。

预测服务

人工智能技术最适合在数据的基础上预测结果。如今,企业正在使用人工智能来预测结果。先进的预测算法被创业公司和企业用来提高竞争力。 用户满意是任何企业的优先考虑,因此,人工智能可以用来完成这一点。从数据收集到分析,这项技术提供了令人惊讶的解决方案。

智能搜索

人工智能的普遍采用是为了简化客户体验。人工智能为任何解决方案的智能搜索提供了上下文理解的特征。这一特征在各种品牌搜索中普遍存在。

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

零售商从人工智能搜索功能中受益最大。初创公司正专注于在智能搜索选项的基础上瞄准他们的受众。

面部识别

如今,面部识别正在成为主流。企业正在将面部识别整合到他们的解决方案中,以更好地增强安全性。 用户也在朝着安全问题迈出积极的一步。业界已经接受了这种的人工智能功能,以更好的方式连接用户。

从解锁手机到在线试穿购物,面部识别正在提升整个行业。面部识别通过最终的用户参与将市场趋势带到了另一个层面。

艾缘

人工智能的趋势处于领先地位,因为它正以最大的趋势引领者影响着这个行业。人工智能的一个特征——实时决策正在全球范围内成为一个时髦词汇。许多初创公司专注于利用人工智能来实现长期增长。 利用 AI 的结果无论如何都要慎重一些。

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

给任何规模的企业赋予人工智能优势,在任何形式下都会更好。在许多情况下,它有助于在处理相关信息时快速响应。

AI 透明

各行各业对人工智能的日益采用带来了透明度。 机器学习的介入正在帮助商家更深入地了解场景。初创公司和企业正试图通过拉他们的服务来更好地理解用户。

计算机视觉的使用让企业开发数据集来改善用户体验。人工智能驱动的应用程序因为保持透明性而受到越来越多的关注。

自动化机器学习

人工智能解决方案正在彻底改变商业分析。机器学习在任何过程中的参与都可以作为一个重要的过程。 一个复杂的问题,不用费多大力气就能解决。自动机器学习可以在不手动训练机器的情况下实现。

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

这节省了培训的时间和成本。企业正在选择支持机器学习的策略来进行分析和决策,以获得最佳结果。

外卖

人工智能趋势将极大地影响各个行业和商业。这项技术正在世界范围内优雅地扩展其规模,为企业提供新的生产力水平。不同行业的企业正在收获人工智能的好处,并帮助用户以最佳方式体验他们的服务。

人工智能信任、模型偏差和使用 IBM Watson Openscale 的可解释性

原文:https://towardsdatascience.com/ai-trust-bias-model-explainability-using-ibm-watson-openscale-68cb5b257320?source=collection_archive---------32-----------------------

规模化信任、解释、运营 AI

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

人工智能信任、偏见和模型可解释性在商业难题中提供了重要的一块,以帮助组织将人工智能项目从开发中取出,并将其投入大规模生产。人工智能偏见和模型解释能力有助于确保公平和公正的结果,同时让业务流程所有者对人工智能增强决策能力充满信心。同时,它提供了一个强大的框架,以确保 AI 保持符合公司政策和监管要求。

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

Watson Openscale AI Solutions

一项简短的调查显示,由于各种原因,业务利益相关者对他们对人工智能应用程序的信任度有着混合和混乱的反馈:

  • 94% 的公司认为人工智能是竞争优势的关键
  • 60%监管约束作为实施人工智能的障碍。
  • 63%技能的可用性视为实施的挑战
  • 5% 的公司已经将 AI 广泛整合到产品或流程中。

此外,众所周知,企业主面临着与偏见和可解释性相关的挑战:

  • 很难跟踪和衡量企业生产成功的指标
  • 不可能微妙的领域知识传授给生产中的人工智能模型
  • 没有办法验证人工智能模型是否会实现预期的商业成果
  • 违反监管和企业治理要求的风险

Watson OpenScale 通过专注于人工智能应用生命周期的 4 个阶段来实现这些目标:构建、运行、管理和应用内操作。

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

Watson Openscale across the data science cycle

在构建时,数据科学家使用他们首选的流行开源框架和工具,同时访问用于偏差检测和事务可解释性的工具包。

开发和运营团队然后在运行时环境中使用他们现有的 DevOps 工具和流程来扩展和管理 AI 应用程序。

因此,业务用户能够出于审计和监管目的测量和跟踪单个人工智能工作流的结果。

Watson OpenScale 帮助企业用户大规模交付和运营可信 AI 应用:

  1. 跟踪和衡量生产中的业务成果

a.定义业务 KPI 并输入到现有业务应用中,以衡量业务影响
b .定义应用合同,以在构建时评估人工智能模型,并获取指标以在运行时跟踪这些模型
c .在运行时,通过错误分析和有效负载的描述性分析提供可操作的指标和警报

2。满足法规约束&管理生产中的人工智能

a.使用运营数据模拟业务条件,验证和批准用于生产的人工智能模型
b .跟踪和解释人工智能决策,以便在应用程序中跨多个模型进行全面审计
c .运行时人工智能驱动的偏差检测和缓解,以推动公平的结果

3。使人工智能适应生产中不断变化的商业环境

a.通过现有的商业应用收集反馈,在运行时教授人工智能
b .检测商业环境中的偏差,提醒用户并触发缓解措施

c.使用来自有效负载分析的特定输入自动触发模型再培训渠道,以满足业务目标并适应新数据

使用 Watson Openscale 的高级模型管理

指示性例子 :某银行因少数民族客户待遇不平等被罚款。少数族裔客户获得的贷款更少,利率更高。

在这种情况下,Watson Openscale 如何帮助减轻模型开发中的偏差?

第一步: 监控预测、模型性能和准确性

Openscale 提供了一个显示模型精度的仪表板。使用标准模型评估方法(不同的模型类型有所不同)来确定模型的准确性。

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

Monitor Predictions, Performance and Accuracy

第二步: 为模型预测提供解释

我们可以使用可解释性特征来理解为什么会做出某些预测。可解释性的两个主要组成部分是:

****预测器重要性:哪些因素/预测器影响预测

****统计显著性:确定每个预测值的统计重要性

对比解释:为了控制预测,我们需要改变哪些特征

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

Model Predictions Explainability

第三步: 监控不公平的预测并自动纠正它们

I .定义受保护字段:通常是关于客户的人口统计信息,如种族、年龄、性别、人口细分

二。定义 上下文 :用于确定阈值的记录数,即评估每 100 个批准或每 1000 个贷款申请

三。为偏差定义一个阈值,定义为少数人赞同相对于多数人赞同的百分比。可选地,OpenScale 可以“去偏差”模型,即自动校正结果:

  • 除了模型评分结果之外,去偏差的结果被自动记录在数据库中
  • 去偏的结果不一定要在生产中使用,它们可以用于审查或审计

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

Biased Prediction Monitoring and Mitigation

自动偏差缓解

描述

嵌入到生产中的模型需要做出公平的决策,并且在他们的建议中不能有偏见。那些显示出偏差的需要在不干扰预测到应用的当前路径的情况下被校正。

它是如何工作的?

  • 给定一个输入记录,我们将它发送给偏差检测模型,以找出该模型是否可能以有偏差的方式对该记录进行操作
  • 一旦我们确定了模型可能有偏差的记录,我们就通过改变预测来修正它
  • Auto-debias 训练在后台执行的影子模型,以便在部署到生产环境之前生成信任

考虑到人工智能模型偏差、模型可解释性和信任,大多数行业都在拥抱人工智能。

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

De-Bias Modeling Process

价值主张

  1. 偏差缓解的配置与当前部署的模型一起运行,这提供了去偏差的输出,而不影响正在服务的当前预测
  2. UI 中去偏差输出的可视化,根据建议采取措施修改数据集,并用新数据集重新训练模型
  3. 使用自动生成的去偏差模型终点对输入进行评分

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

Bias Mitigation De-biased Output

模型偏差和可解释性的行业用例

利用 Watson Openscale 的全行业用例从电信到金融服务和医疗保健:

1。电信:预测性维护

有效维护物理资产和基础设施对电信行业至关重要,资产故障会导致服务中断,这是客户流失的主要原因。维护优先化是一个昂贵且困难的过程,并且在资产故障导致网络问题之前,通常很难在现场发现它。机器学习提供了在问题发生之前根据传感器数据预测故障的机会。

网络基础设施的预测性维护可以防止导致代价高昂的客户流失的中断,但是基于历史资产数据训练模型是困难的,因为故障往往很少发生,训练预测模型可能很耗时,并且即使经过训练,它也可能无法在所有故障情况下准确执行

Watson OpenScale 的 r untime 监控功能允许团队根据真实数据跟踪他们的模型在实地的表现,以确保持续的表现*——并在必要时指导再培训。OpenScale 的可追溯性功能还可以帮助工程师和技术人员获取对审计跟踪至关重要的信息,因此组织可以更轻松地将因该模型而采取的预防性维护措施与关键业务成果(如预防故障和提高客户满意度)联系起来。***

2。保险:承保风险建模

保险业市场竞争日益激烈。公司正试图在数据科学和人工智能的帮助下简化他们的流程——保险承保是人工智能洞察的主要目标。传统的核保方法依赖于复杂的基于规则的流程和昂贵的手动分析,而机器学习模型可以分析不同数据之间的复杂交互,以提供风险评分。

根据历史客户和索赔数据训练的风险评估模型可以帮助保险商做出更加一致和准确的决策。这些模型可以根据个人资料中的不同特征为个人客户提供价格建议。

Watson OpenScale 的可解释特性* 允许承销商和监管机构逐个决策地查看这些风险评估模型优先考虑的确切特性。在保险部审计期间,专员可以用业务友好的语言审查每个决策的模型谱系、输入和输出。其偏差检测和缓解功能有助于承销商确保这些模型在部署后继续做出公平的决策。***

3。金融服务:信用风险建模

传统银行面临着向更大、更多样化的受众扩展其数字金融服务组合的压力,这需要一种新的信用风险建模方法。为了向更广泛和更高风险的人群提供信贷,申请人的信用记录必须扩展到传统信用(如抵押贷款和汽车贷款)之外的其他来源,如公用事业和手机计划支付记录,以及教育和职位。

这些额外的特征增加了意想不到的相关性的可能性,这种相关性引入了基于申请人的年龄、性别和其他个人特征的偏见。最适合这些多样化数据集的数据科学技术可以生成高度准确的风险模型,但这是有代价的——这种模型是黑匣子,其内部工作原理不容易理解。

银行和信用合作社需要能够检查他们的信用风险模型的偏差,不仅在培训期间,而且在这些模型部署之后。为了遵守《平等信贷机会法》等法规,他们需要能够解释为什么他们的模型做出个人信贷决策。

Watson OpenScale 的偏差检测和缓解功能* 允许风险和治理官员在运行时监控其模型中的偏差。Watson OpenScale 的可解释性支持为信贷官员和信用分析师提供模型决策的事后解释,从而在信用风险建模中提供高准确性。***

4。供应链:有效需求预测

有效的需求预测对于在满足消费者需求的同时降低运营成本至关重要,但这非常困难。企业没有能力处理应对需求实时变化所需的数据量和多样性。不能适应当今市场不断变化的变量的预测会导致数百万美元的误判,严重损害公司的底线

需求预测者必须不断监控他们部署的模型的性能,以防止可能使他们的组织损失数百万美元收入的误算。这些模型所依赖的数据并不是固定的,随着新的实际数据的出现,它们分布的统计特性会不断变化。

Watson OpenScale 的运行时监控功能允许需求规划者跟踪其部署模型在生产中的性能,因此他们可以确保准确性并识别数据中的扭曲结果和固有偏差。

5。医疗保健:疾病结果预测

特定疾病非常复杂,很难早期识别,因为它的症状与其他常见疾病的症状重叠。特定疾病诊断导致的死亡率随着治疗的延迟而每小时增加——因此医生和护士能够在患者进入疾病休克之前发现它们是至关重要的。能够识别那些处于最高风险的患者可以帮助临床医生优先考虑护理。机器学习模型可以根据住院数据和患者数据进行训练,以识别高风险患者并预测死亡结果。用于构建精确模型的算法和方法,如 XGBoost 梯度增强树,有时确实像黑盒一样。

Watson OpenScale 的可解释特性提供了对特定患者和住院特征的细分,这有助于做出每个预测的决策。这些结果以护理患者的临床医生可以理解的语言显示,增加了他们对预测模型的信任,并帮助他们做出更好的护理决策。OpenScale 还提供了可追溯性功能运行时监控*,因此医院可以对做出的所有患者护理决策进行审计跟踪,并可以跟踪这些模型在一段时间内的性能。*****

免责声明: 此处表达的观点仅代表本文作者的观点,不一定代表 IBM 公司的观点。博客上的部分内容是版权所有,除非在 IBM Corporation 下另有说明,否则保留所有权利(例如照片、图像)。

艾:为什么它实际上有所不同

原文:https://towardsdatascience.com/ai-why-it-actually-makes-a-difference-eecc87c6a3b2?source=collection_archive---------15-----------------------

简单的人类决策对计算机来说很难:

想想你在一天内做出的所有决定**。从早上吃什么到晚上下班怎么回家。许多你做对的事情现在就像是的第二天性,但是它们实际上真的很难做到。例如,你如何找出正确的方法在早上把牛奶和麦片倒进碗里而不洒出来?或者,更重要的是,你如何在不导致撞车的情况下找到刹车的正确时机?令人惊讶的是,这些小而常规的决定正是让我们活下去的**。虽然这些个人决定中的每一个对人类来说都是微不足道的,但很难用计算机有效地复制它们——这是避免灾难性错误并使我们的生活更轻松的必要任务。****

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

Photo by Bacila Vlad on Unsplash.

这就是人工智能的用武之地。人工智能有许多不同的方面和类型,但它们都有相同的最终目标:让计算机聪明地代表人类做决定,甚至可能比人类做得更好。在决定何时停车的例子中,人们对创造能像人一样思考的计算机产生了极大的兴趣,以便在运输中更加方便和安全。让我们来分解做出该决定时必须考虑的一些因素:

  1. 汽车速度
  2. 停车距离
  3. 危险和交通方向

计算机必须像人类一样考虑很多因素:

这些只是众多因素中的三个,正如你可能会想的那样,它们本身可以分解成更多的考虑因素。为了展示人工智能如何被用来解决这个问题,我将专注于最后一点,并强调人工智能的一个主要用途。

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

Photo by Evan Dennis on Unsplash.

当你注意你周围的其他车时,你的首要任务可能是测量那些车的速度和距离。然而,这跳过了识别你所看到的是一辆汽车的任务;这个简单的步骤对人类来说是如此的自动**,我们很少停下来想一想。大多数人在醒着的时候都有多年识别周围物体的经验。电脑,没有我们人类的经验, 难度做这个和人类一样:只是做这个看似复杂,却重要的决定刹车的第一步。最近,人工智能已经通过神经网络帮助解决这个问题,甚至比人类更好。**

神经网络让计算机自学:

起初,神经网络对我来说太复杂了,我把它们的缩写 CNN 从卷积神经网络改成了卷积神经网络。然而,在坚持了一段时间后,我找到了一个适合我的类比。想想你过去的经历是如何塑造你今天的行为的。如果你过去做错了什么,你就不太可能重蹈覆辙。例如,如果你在热炉子上烧伤了手指,下次你会改变烹饪方式。同样,如果你在一家新餐馆发现了喜欢的菜单,下次你可能会再点。这个过程利用生活的积极和消极输入逐渐增加你的能力和理解。现在,想象一下,如果你能够经历成千上万次生活,从这样的反馈中学习和再学习,找到解决几乎任何问题的最佳方法,会发生什么。

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

Photo by Benjamin Elliott on Unsplash

这是计算机通过神经网络提供的能力。我们训练计算机程序来尝试解决问题,例如识别图像中的汽车。最初,他们可能只是根据线条、颜色、阴影等特征随机猜测一个物体是否是一辆汽车。有时,程序可以做到这一点,而其他时候却不能。利用关于他们是否成功识别汽车的反馈,他们可以修改他们处理问题的方式。也许,他们下次会在图像中寻找更亮的阴影或更直的线条,因为这让他们能够更准确地猜测汽车。最终,计算机修改寻找汽车特征的方式,或者它们的搜索参数**,变得更加精确。这就像人类随时间学习一样;一个婴儿可能能够区分汽车和树,但是一个蹒跚学步的孩子能够区分汽车和卡车。这就是我们看到在这项任务中使用人工智能的内在优势所在;一个人在他/她一生中的某些时候只能一次看一幅图像,但是一台计算机可以同时浏览成千上万幅图像,有效地同时体验成千上万次人类经历。**

人工智能有真正的优势:

由于这样的优势,人工智能在创造以前缺乏可行性的解决方案方面提供了直接的好处。

通过教会计算机像人类一样思考,计算机教会了我们它们可以比人类思考得更多。

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

Photo by Franck V. on Unsplash

事实上,它们也比其他计算机想得更多,因为人工智能允许计算机学会更好地自己解决问题,而不需要额外编程。然而,这并不是说,人工智能在所有领域都超过了人类的能力。特别是在识别汽车时,有许多异常值,神经网络很难识别。例如,如果挡风玻璃的阳光部分掩盖了汽车的轮廓会怎么样?或者,如果在晚上看到一辆只有尾灯的汽车怎么办?由于即使是如此简单的任务中的巨大差异,人们可以想象人工智能在更复杂的任务中仍然难以完全满足或超越人类的能力。然而,值得注意的是,正如人工智能必须克服的问题是巨大的,它可以被使用的机会也是巨大的。****

许多实用的创新正在发生:

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

Photo by Roberto Nickson on Unsplash

目前,使用人工智能来解决识别汽车和决定何时刹车等问题是自动驾驶的一部分,这是该领域的许多进步之一。你可能听说过像谷歌和特斯拉这样的大公司积极致力于在现实生活中实现这一点。从医疗保健到市场营销,还有许多其他领域在利用人工智能,值得在这个主题上发表自己的文章。想想我们在人工智能的一个简单应用中分解的复杂问题,想象一下在人工智能的这些不同领域和应用中存在的所有问题。当然,实现人工智能的挑战是巨大的,但它在许多不同领域的承诺也是巨大的。这就是人工智能如此有益的原因:它扩展了计算机的能力,超出了我们简单的编程能力,它教会计算机像人类一样思考,智能地解决问题。****

关于人工智能需要了解的 3 件事:

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

Photo by Andy Kelly on Unsplash.

因此,以下是需要记住的关键点:

  1. 人工智能是一个广阔的领域,但归根结底是让计算机以更聪明的方式进行自我思考。
  2. 人工智能面临许多挑战,但也有像神经网络这样的聪明技术,可以让计算机自己克服挑战。
  3. 许多大公司现在在这个领域有重要的项目。很容易陷入炒作,但更难,也更重要的是,获得细节信息。

如果你想了解更多关于神经网络和自动驾驶的细节,请查看这些文章:

卷积神经网络指南

自动驾驶汽车目标检测指南

AI 将取代乔布斯。还是会?对即将到来的人工智能革命的思考

原文:https://towardsdatascience.com/ai-will-replace-jobs-or-will-it-thoughts-on-the-coming-ai-revolution-7be420f82af8?source=collection_archive---------17-----------------------

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

根据今年早些时候出现在《财富》杂志上的一篇文章:自动化可能会在 15 年内取代 40%的工作。这篇文章和无数其他文章一起敲响了即将到来的人工智能式工业革命的警钟。正如我们经常听到的那样,人工智能将取代成千上万的工作。几乎一夜之间,半个国家都会失业。

在这个问题上有很多不确定性、恐惧和怀疑。诚然,不可能从各个角度解决这个问题。我们甚至不会尝试。然而,我们可以提供我们对这个行业的看法,可能会有什么影响,以及我们在 15 年内可能会走向哪里。

AI 将在 15 年内取代乔布斯。我们应该担心吗?

会发生吗?是啊,可能吧。现在已经发生了。无论是人工智能,人工智能,自动化,还是任何其他技术进步。我们听说自动驾驶汽车会让整个卡车运输行业一夜之间失业。智能列车将完整的自动化货物从一个城市运送到另一个城市。

所有这些都可能在某种程度上发生。然而,现在确实有事情正在发生。从无人便利店到餐厅触摸屏;自动化已经在发生了。

真正的问题不是自动化或人工智能是否会取代工作。已经是了。已经发生了。问题是它如何击中,击中哪里,以及我们如何反应。

幸运的是,我们有一点路线图要看。我们以前经历过这个。

不是未知领域

工业革命带来了国家和全球范围的巨大变化。其他“真正的”革命也给全球带来了动荡、不确定性和社会变迁。

技术上的巨大变化不仅给工作本身带来了变化,也改变了我们看待工作的方式。当一个新的过程被建立时,效率的尺度会发生巨大的变化。无论是轧棉机、印刷机、装配线,还是微芯片,这样的例子不胜枚举。

美国和第一世界的大部分地区在一代人的时间里发生了巨大的变化。似乎一夜之间,美国、欧洲和其他地方(尽管规模较小)从农业社会转变为工业社会。

在过去的 100 年里,这种转变已经从以工业制造为基础的社会转变为以服务业为基础的社会。所以这是有蓝图的。这并不像我们想象的那样史无前例。

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

它可能也没有人们想象的那么可怕。

正如一位经济学家所说:

“自工业时代开始以来,人们一直担心技术变革会导致大规模失业。新古典主义经济学家预测这种情况不会发生,因为人们会找到其他工作,尽管可能需要经历长期的痛苦调整。总的来说,这一预测被证明是正确的。”

这在今天仍然适用吗?

上面的引述抓住了不那么危言耸听的观点。这是一个概念,是的,它会发生。然而,总的来说,社会将会生存下去。工业革命见证了几乎每一项技术的进步,如果它没有毁灭社会;会不会 AI?

当然,这可能是在比较苹果和橘子。工业革命时期的失业率相对较低。然而,我们能从那时到现在追踪一条直线吗?相似之处存在吗?

当然,对于一个劳动者来说,学习如何采煤而不是砍伐树木来获取生物燃料是很容易的。但是今天呢?是不是可以说,即将到来的因 AI 而产生的变化也会遵循同样的路线?

很难说。到目前为止,我们忽略了上面引用的部分:

问题是:多长时间,多痛苦?我们将痛苦的调整期视为世界末日。是吗?看情况。可怕的是,社会变革的剧变可能是,而且经常是艰难的。说得好听点。

工业革命无疑让一些人失去了工作和生计。历史上的文化和社会革命(积极的和消极的)让人们付出了生命的代价。

如果这能说明问题的话,那么有很多东西并不值得期待。比如战争。我们还没有打败那个。另一方面是政治和文化冲突。内乱。甚至,是的,革命。

但与此同时,我们之前也经历了很多。对我们中的一些人来说足够了。立竿见影的效果不总是好的。长期结果呢?很难说我们没有成功,没有在另一边领先。

需要提取一些现金吗?

为了抓住问题的核心,人们普遍担心人工智能会取代乔布斯,而且这种情况会突然发生。它会发生得如此突然,我们几乎看不到它的到来。以前有几个行业发生过这种情况。技术进步总是会导致某种程度的位移。但稍微乐观一点来看,痛苦的调整期往往会带来长期的好处。

我们中的一些人已经老到可以记得 ATM 机出现之前的世界。那些知道的人会记得,人们坚信,自动取款机将通过大量减少银行出纳员的工作来改变银行业。

确实如此。这就是问题的关键。自动化,无论是自动驾驶卡车还是自动取款机,都是为了准确地做到这一点,如果不是明确地做到这一点的话。破坏工作。

但是它也创造了新的。现在有自动取款机制造商和销售他们的销售队伍。有帮助公司解决技术问题的客户服务代表。有运钞车服务,收钱存进去。需要更多吗?进行维修的服务技术人员、为他们提供保险的保险公司以及围绕 ATM 行业存在的无数其他行业和专业又如何呢?

除了一些本来可能存在的工作(例如,运钞车服务),如果没有 ATM 机,上面列出的工作就不会存在。

对自动化的选择性蔑视

然而,这扇门并不总是双向开启的。我们中的一些人足够年轻,知道在这个世界里我们几乎不需要去提款机。网上银行业务。我们可以去几个星期,几个月,甚至更长时间,而不用去银行或信用合作社。

然而,很少有人对 PayPal 和 ApplePay 对 ATM 行业的影响敲响警钟。或者易贝和亚马逊对零售业的影响。

我们喜欢亚马逊。但不是它的阴暗面。听到员工或小企业在竞争中工作条件差的一方。我们不太喜欢那边。我们很容易同情这一方,在某种程度上,我们都是如此。

然而,对我们大多数人来说,对个人的好处可能会超过它的负面影响。我们一键购买并在两天内拥有它(不管它是什么)。免费送货。亚马逊甚至开始为其许多产品提供一日送达服务。当天送达会不会太远了?

运营效率不容忽视。对企业和最终消费者都是如此。每当我们听到亚马逊的阴暗面时,我们中的许多人都会高兴地在公共场合摇头或摇手指。

然后我们就回家续办我们的会员资格。

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

这不是一个大胆的宣言,也不是我们哀叹人类行为或耐心的状态时摇摇手指。这也不是给猖獗的商业主义或资本主义的情书。我们不会对世界对更快、更快、更好、更有效率的热爱是好是坏进行道德评判。

然而,这是商业效率的一课。这是过去通过几次技术和社会破坏一次又一次吸取的教训。

再说一次,当我们困在现在担心未来的时候,很难记得我们曾经来过这里。

但是我们应该担心吗?

自动化和人工智能肯定会取代工作。但不要显得油嘴滑舌,这也是重点。会不会是一夜之间的原子弹造成 40%的失业率?对无休止的抗议采取一种与众不同的方式:

不,我们不这么认为。至少不完全是那样。

今天存在的 40%的工作可能在 15 年内被人工智能取代。但是那实际上看起来像什么呢?首先,一场真正的“一夜之间”的人工智能革命(即所有的革命都发生在一两年内)是不太可能的。即使在今天这个快节奏、在线、随需应变的社会,事情也很少会发生得那么快。

这也不太可能是真正的 1:1 互换。也就是说,如果今天美国有 300 万卡车司机在工作,那么到 2022 年,路上将不会有 300 万辆自动驾驶卡车,也不会有 300 万名失业的卡车司机。

就像上面那个自动取款机的例子一样,将会有新的机会、新的产业和新的工作来取代旧的工作。

但这并不意味着 T2 没有什么可担心的。

担心是有根据的

AI 吓人。人工智能将取代乔布斯的想法让他们更加害怕。这是可以理解的,即使有时可能有点夸张和歇斯底里。

我们不能忽视正在取得的进步。但是我们也不能假装没有负面影响。我们知道自动化和人工智能将在某种程度上取代工作,但我们还不知道那会是什么样子。

技术进步往往以低收入工人为代价。那不能轻描淡写。然而,这些损失往往会导致新的、薪酬更高的工作岗位被创造出来,尽管不一定是为失业的个人创造的。

正如 300 万卡车司机可能不会在一夜之间失业一样,每个卡车司机也不会在一夜之间学会如何维修自动驾驶卡车。

代际方法

我们认为,如果这一领域在未来 5-10 年内持续发生变化,我们将会看到什么。在此期间,这些技术的早期推动者和采用者将有真正的机会提出主张,推动对话,并开始向我们展示“由人工智能运行”的世界将会是什么样子。

在这段时间里,我们有机会准备。这意味着理解、教育和为未来做准备。我们不太确定美国,甚至全球经济的下一个开端会是什么样子。

在过去的大约 200 年里,我们已经迅速地从农业经济转向工业经济,再转向以服务为基础的经济。后服务经济到底是什么样子的?

目前,尽管人们对无人驾驶汽车或自动化餐厅感到恐惧,但它们并没有真正扩散开来。尽管看起来很奇怪,但很少有人真正推动它们以任何有意义的方式广泛传播。事实上,虽然这些领域中的许多都在试验中,但没有一个领导者站出来说“这就是我们要做的”,并为此提出一个 15 年计划。

因此,在这一代人的时间里,我们可能看不到最糟糕的恐惧或最美好的想象成为现实。也许时间会更短,但对于真正的人工智能革命来说,15 年似乎是一个积极的时间表。20 或更多似乎更现实。这将导致对自动化服务的需求不断增长,老年劳动力的逐步淘汰,以及该领域出现一个或多个明确的领导者来引领我们前进。后者真的还没发生。

这可能是积极的,也可能是消极的,取决于你的观点。但在这发生之前,关于自动化,特别是人工智能和人工智能的大部分喧嚣都有点言过其实了。它仍然处于初级阶段。谨慎和好奇是必要的。但当怀疑人工智能明天是否会取代乔布斯时,现实主义也是如此。

最后,这很复杂

有很多问题要问,其中许多问题还没有答案。AI 会取代 40%的工作吗?很难说这个数字是否准确。可以说是 20%,40%,60%,或者其他任何数字。

然而,在我们的行业中,我们有责任为社会做正确的事情,甚至是人类,如果你接受这种夸张的声明的话。我们需要成为我们正在创造的世界的管理者,并意识到这意味着什么。

我们需要确保我们正在透明和诚实地开发改善社会的工具,并在应用这些工具时保持谨慎。如果在这个过程中,我们可以引导社会理解这些工具和应用,我们也可以让他们为此做好准备。

如果我们遵循这些指导原则,人工智能革命可能不会像我们最担心的那样迅速或痛苦。与此同时,它也会变得和我们想象的一样奇妙。

原载于 2019 年 6 月 21 日【https://introspectdata.com】

人工智能将在人类进化中占据中心位置

原文:https://towardsdatascience.com/ai-will-take-center-stage-in-human-evolution-cead9fa22c25?source=collection_archive---------25-----------------------

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

Edited. (Original: Photo by Viktor Talashuk on Unsplash)

其他关于工程智能的文章

人类 3.0 的崛起始于 AI

Don’t have time to read? Listen to this article on my podcast.

在你生命中的某个时刻,你意识到你曾经敬仰的人并不像你曾经想象的那样完美。我们现在正努力用我们的智慧来处理这种意识。在这个世界上,曾经是人类成就巅峰的月球发射现在可以通过你的智能手机中的一小部分计算能力来处理(这种转变发生在不到一个世纪的时间里),我们不禁想知道我们未来将走向何方——一个人类可能不再相关的未来。

但不要相信我的话,埃隆·马斯克甚至为此拍了一部纪录片,这也是他与 Neuralink 有牵连的原因之一。然而,未来还没有到来,作为一个文明,我们仍然有时间找到保持自身相关性的方法——特别是在我们的认知相关性方面,这是我们首先到达这里的原因。

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

A Timeline from Human 1.0 to Human 3.0

人类简史

人类已经进行了一次穿越时间和空间的长途旅行(主要是在地球上,但最近也在其轨道之外)。首先出现在非洲(嗯,这是最广为接受的理论),随后迁移到每一寸土地,作为一个物种,我们已经实现了许多里程碑,慢慢走向我们今天拥有的地球的最终统治地位。

人类 1.0 标志着我们作为一个物种的出现:智人。我们繁殖火焰的能力有助于提高我们的认知能力,这反过来又让我们成为一种弱势动物。人类 2.0 标志着一个独立的里程碑:文明,通过能源的再生产——即农业。正是在这个转折点上,我们可以将重点转移到集体创建一个名为社区的实体上。最后,人类 3.0 标志着另一个里程碑,我们正在见证今天的开端:我们复制智能的能力。就像我们使用火和农业来帮助引领我们进入人类的早期阶段一样,我相信人工智能将是我们在未来用来诞生人类 3.0 的工具。

人类 1.0 出现在 10 万年前,在掌握火之后

人类 1.0 标志着智人的出现,我们今天仍然是这个物种。目前,该物种的出现估计发生在大约 30 万年前。这发生在我们驯化火之后不久,大约 30 万到 40 万年前(嗯,公平地说,考古学家认为火的驯化可以追溯到 150 万年前,但 30 万到 40 万年的范围是最广泛接受的)。

这不仅仅是巧合。一种理论指出火是现代人类大脑发展的催化剂(象征性的,不是字面上的)。当我年轻的时候,我记得我爸爸曾经吃得很多。我妈妈会开玩笑说,他之所以一直很瘦,是因为他用脑太多。回想起来,背后还是有一定道理的。据估计,人类大脑要消耗身体总能量的 20%左右才能发挥作用。

作为能量消耗者,大脑是我们随身携带的最昂贵的器官

通过用火烹饪,食物对我们来说变得更容易消化,这做了两件事:首先,它减少了消化所需的能量,其次,它让我们消耗更多的热量,吸收更多的营养,用于大脑的发育。火对我们智力进化的确切影响仍有争议,但不可否认的是,它有助于为我们的大脑提供能量。

[## 对智力的起源感兴趣?阅读我的系列文章。

《智力的起源》是一个探索智力产生的历史和因素的系列。

medium.com](https://medium.com/tag/origins-of-intelligence/latest)

人类 1.0 是游牧的。虽然它的智力明显高于类人猿,但它也严重依赖体力和耐力生存。由于没有家可回(由于缺乏文明),人类 1.0 严重依赖同伴合作来生存。Yuval Noah Harai 在他的书《智人》中详细描述了我们祖先的生活。

人类 2.0 出现在 23000 年前,在掌握农业之后

人类 2.0 随着农业的出现而到来。以前,人们认为人类大约在 10,000 年前发明了农业。这正好是最近一次冰河时期结束的时间(11700 年前)。

然而,在 2015 年,科学家发现证据表明的农业可以追溯到 23000 年前,这意味着这种做法开始于——而不是在——最后一次冰河时期之后。在这一点上,世界各地的人类开始独立驯化植物和动物(或者像尤瓦尔·诺亚·哈拉里(Yuval Noah Harari)认为的那样,世界各地的植物和动物开始驯化人类)。在进化的时间线上,农业出现在大约 35000 年前第一个现代人类大脑开始出现之后。

这个从狩猎采集生活方式向农耕生活方式转变的时期也标志着向人类 2.0 的转变。在某种程度上,农业将人类束缚在他们的土地上,导致了更复杂的社区。在此之前,在狩猎采集的生活方式中,人类是游牧民族——他们四处旅行寻找食物,并没有一个真正称之为家的地方。农业把我们变成了定居的哺乳动物。

此时的里程碑标志着文明诞生的转折点。最初帮助我们物种生存的过程演变成了我们今天看到的现代社会——可以说是一种生物本身,人类已经成为其细胞。现在,我们有微型文明,我们中的许多人是所谓的企业的一部分,这可以被法律认为是纳税和承担诉讼责任的实体,就像人类一样。随着文明的出现和持续发展,人类个体生命的价值越来越受到质疑。

掌握人工智能后出现人类 3.0

人类 3.0 是技术直接或间接补充或增强其智力的人类。有几种方法可以实现这一点,但人工智能将不可避免地在某种程度上参与其中。

有人可能会认为人类 3.0 已经到来,它是随着 iPhone 和物联网等技术的出现而出现的,我们连接的每一个设备都为我们提供关于我们自己的可操作信息,并在日常生活中帮助我们。然而,这些物品只是工具。正如火为现代人类铺平了道路,农业开创了文明,人工智能的工具将被应用于在基因或增强水平上衡量人类的智力。

与我们使用的替代工具相比,我们迄今为止取得的人工智能成就相当惊人,尤其是在自动化方面。例如,通过面部识别,人工智能可以对几小时或几天的安全录像进行排序,以找到一个失踪的孩子。在像这样的工具出现之前,一个人必须坐在那里自己浏览所有的片段。

话虽如此,人工智能仍处于起步阶段,要将其应用于更多行业和用例,我们需要数据——海量和正确的数据。李开复在他的书《人工智能的超能力》中广泛地谈到了这一点,所以如果你想了解更多细节,可以看看这本书。我们今天拥有的工业用例令人印象深刻,围绕自动驾驶等未来用例的研发更令人印象深刻。但要让人工智能应用于某些用例(即,那些将带领我们更快实现人类 3.0 的用例),它需要等待数据和我们对主题的理解赶上来。根据我们实现人类 3.0 的方法类型,人工智能将需要不同的技术来赶上。

通过人工智能增强的人类 3.0

实现人类 3.0 的第一个策略最近引起了媒体的广泛关注——neural ink 是埃隆·马斯克的最新创意,它希望开发一种大脑芯片,可以在人工智能的帮助下帮助用户思考和控制技术。

[## 什么是 Neuralink:看看它是什么,它想要成为什么,以及它可能成为什么

向你的第六感问好。

towardsdatascience.com](/what-is-neuralink-a-look-at-what-it-is-what-it-wants-to-be-and-what-it-could-become-2acf32b51dc5)

无论是 Neuralink 还是另一家大脑芯片设备制造商,结果仍然是可以想象的——人类历史上第一次,我们建造的所有工具都将成为我们的直接延伸。与我们周围的世界互动可能不再需要我们动动手指。如果人类 2.0 变成了久坐,那么人类 3.0 就有变成久坐 2.0 的风险(请笑)。

虽然与我们周围的物体互动可能不再需要动动手指,但与我们周围的人互动可能不再需要我们张嘴。大脑芯片设备(Neuralink 的设备已经支持蓝牙,可以与你的 iPhone 通信)可以相互通信。大脑芯片读取我们的想法后,它可以比我们大声说出来更快地将信息传递给其他人。

通过 DNA 操作的人类 3.0

我们已经探索了进入人类基因组的祖先病毒是如何操纵我们神经通讯的。我们还观察了人类基因组中天然发生的基因突变,这种突变改变了干细胞产生的神经元数量,从而增加了我们的智力。

过去对人类基因组的操纵导致了我们认知能力的提高,没有证据表明我们已经达到了遗传智力的上限。一旦我们对人类基因组有了更多的了解,特别是对智力有最直接影响的基因片段,我们就可以训练人工智能算法进行模拟,并帮助我们发现其他可能的突变,以进一步开发人类大脑。

一个组合:人类 3.0 机器人

一个结合是可能的,因为科学界在各自的领域内平行地工作以取得独立的技术进步。这种可能性为人类 3.0 的更多选择打开了大门。例如,目前,要使用 Neuralink,芯片及其电极必须自动安装在颅骨下方。

这是一个侵入性的过程,但需要工作,因为电极需要足够近才能检测到微弱的信号,电极可以捕获神经元相互通信时发出的电信号。通过基因操作,我们有可能增加信号的半径,使其可以被电极检测到,而无需进入大脑。

虽然这听起来很容易想象,但无论我们选择哪条道路来创造人类 3.0,都将不可避免地充满我们必须解决的技术障碍,以及我们必须回答的伦理困境。虽然我们必须等待技术赶上或首先自己制造,但伦理问题以及我们如何最负责任地开发它可以在短期内得到解决。像 Neuralink 这样的公司已经在实现这项技术的过程中,所以现在是时候考虑人类如何在道德上安全地迎接人类 3.0 了。

人工智能会教我们成为人类

原文:https://towardsdatascience.com/ai-will-teach-us-to-be-human-aaf7dd218b6d?source=collection_archive---------35-----------------------

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

A woman interacting with Sony’s AIBO (Source: AIBO Official Website)

审判日只是开始

2017 年,普华永道发表了一篇论文,记录了其对美国和英国人类就业未来的预测;具体来说,它着眼于机器人和人工智能发展带来的工作自动化。该论文将普华永道的预测与弗雷、奥斯本、阿恩茨、格雷戈里和 AGZ 的其他预测进行了对比。

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

Predictions of current jobs automated by 2030 (Source: PwC)

不管普华永道、FO 或 AGZ 如何预测,人工智能对世界的影响之大,在它发生之前可能不会真正被意识到。想想报纸行业发生了什么。2006 年,《卫报》发表了一篇评论文章, 博客不是新闻 。三年后,Business Insider 发表了一篇名为 的文章,这一年报纸死了 。我们甚至在 2006 年之前就看到了互联网的到来,但在当时,很少有人能够意识到它将带来的革命性影响,不仅是对报纸行业,而是对整个世界。

人工智能有潜力产生更大的影响。然而,这不仅仅是通过人工智能本身;同时开发区块链、5G 和机器人等技术将与人工智能相结合,以实现最大的影响。2030 年,如果普华永道的预测成为现实,今天美国超过三分之一的现有工作将由机器人和/或人工智能处理。把时间线拉得更远一点,有一天我们可能会看到人类工人的完全取代,这涵盖了就业领域的所有方面。

是什么让我们成为人类

我们有一种倾向,也许是绝望,想要在自己和其他事物之间划一条线。什么使我们成为人类的问题远在人工智能的概念被构想出来之前就存在了。这就是为什么答案在整个人类历史中不断变化。在文明出现之前,考古学家指出的答案是我们相对的拇指和不断增加的神经数量。在现代人类发展过程中,正是我们复杂的社会结构和认知能力发展了语言和量化,从而产生了社会。

当机器人和人工智能仅仅是作者或电影制片人的想象时,我们的答案再次发生了变化,但这一次有点不同。以前的答案是为了解释为什么我们处于食物链的顶端,但这个新答案是为了解释为什么我们应该留在那里。不幸的是,我们不能再依赖我们的制胜法宝:语言和量化。毕竟,计算机数据的传输和处理速度比人类数据快得多。所以我们开始说只有人类才有能力去爱和艺术。但是我们错了。

艺术和爱情的复杂之处在于两者都没有明确的定义。艺术是主观的,取决于观众的口味。爱也是主观的——它是一种神秘的情感,我们很难描述。它的复杂性源于它是自然过程和人类文化的混合体;也就是说,它既是自然的又是非自然的。

自然的是我们繁衍后代的欲望。不自然的是婚姻制度——我不是说这是错的,我只是说这不是我们的基因编码,而是教给我们的。在公元前 2350 年之前,我们没有婚姻的记录证据,人类学家认为家庭是由“多达 30 人组成的小团体,有几个男性领导,他们共有多个女人,还有孩子。”

现有的最佳证据表明,婚姻大约有 4350 年的历史。大多数人类学家认为,在那之前的几千年里,家庭由多达 30 人的松散组织的群体组成,有几个男性领导人,他们共有多个女人,还有孩子。

-星期

虽然我们最初退回到人性中更柔软、不可测量的方面,但这些特征(艺术和爱)可能不会再是人类独有的了。

糖、香料和香料

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

Mario Klingemann’s Memories of Passersby I (Source: The Verge)

2019 年春,艾艺术品在苏富比进行拍卖。它是由通用对抗网络(GAN)生成的——这是一种通过使用两个计算机参与者来创建人工智能算法的方法。第一个参与者拿着一堆数据,试图理解它们(在这个例子中,是艺术的图像),然后产生它的版本。第二个参与者接受训练,以辨别人工智能生成的材料与人类生成的材料。如果它能够区分,那么第一个参与者没有产生足够好的艺术作品,并再次尝试(注意:参与者不是人,只是计算机)。现在,人工智能已经开始创作艺术品,并在苏富比拍卖行出售,我们关于人类艺术技能的论点受到了质疑。

此外,随着人类和机器人之间的交互从手(即打字)转向声音和面部,爱和情感在机器人身上变得越来越普遍。计算机的拟人化正在将它们的角色从工具转变为伴侣。像亚马逊 Echo 和谷歌 Home 这样的设备正在融入我们的生活,了解我们喜欢什么和我们日常生活的节奏。2018 年,超过1.1 亿台此类设备出货。作为一个失去亚马逊回声的人,我可以证明我感受到的人类情感——就像失去一个朋友。

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

AIBO, Sony’s AI-enabled Robot Dog (Source: AIBO Official Website)

即使是 AIBO,一个非常基本的人工智能机器人版本的狗,也被视为不同于 iPhone 等工具。2008 年的一项研究观察了儿童与 AIBO、索尼制造的机器狗和真狗的互动行为,结果显示,60%的儿童肯定 AIBO 可以拥有精神状态(情绪)、社会性和道德地位,就像人类的狗一样。但是在 AIBO,孩子并不是唯一给予和寻找爱和感情的人——甚至成年主人也对他们的机器人最好的朋友有强烈的情感依恋。

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

The AlphaGo documentary is a must-watch for anyone interested in AI. You can view it on NetFlix (Source: IMDB)

我们生活中曾经充满人性的一面正在慢慢消失。人工智能正在开始创造艺术,它也能够接收和提供爱和情感。虽然它做这两件事的能力可能是有限的,但随着时间的推移,它会在这些能力上变得更加熟练,有可能达到超越人类的精通。我们已经知道这是可能的。

当谈到识别人脸时,人工智能已经比人类更擅长于此——sense time提供了世界上最精确的面部识别算法,可用于为拥有数百万人口的智能城市提供动力。说到玩游戏,OpenAI 已经击败了 DOTA 的人类世界冠军。在棋盘游戏的世界里,AlphaGo 已经击败了这个星球上最伟大的围棋选手

清算日

在技术创新和我们重建自我的矛盾愿望的推动下,终结者的审判日可能比我们想象的更不可避免。在我们这个数据驱动的世界里,智力由智商来衡量,繁荣由金钱来衡量,社会信誉由追随者来衡量,人类量化、存储数据并准确有效地处理数据的能力远远低于计算机化的能力。我们将这个缺点称为人为错误——这可能是最终将我们与人工智能区分开来的唯一原因。

再见,旧世界

我们保住我们的工作,比较我们的头衔,数钱,好像这就是生活的定义,但正是这种结构阻止了我们中的许多人真正生活。许多人活着就是为了工作。令人精疲力尽的工作时间已经变成了一个天真的包袱。然而,当人工智能成为改变我们社会现有结构的解决方案时,我们抱怨它如何将我们从我们自己建造的枷锁中解放出来,就像斯德哥尔摩综合症一样。也许我们现有的社会结构没有按比例建立。

纽约市的人口超过 800 万。在 1776 年革命战争期间,整个美国的人口是 250 万,其中估计有 50 万是奴隶。开国元勋们写美国宪法时考虑的是 200 万人口。他们管理着纽约市 1/4 人口的权利。今天,宪法是美国这片土地上事实上的法律,这里有超过 3 . 2 亿人居住在。这里也是一个文化和价值观的大熔炉,其中一些人享有携带武器的权利,而另一些人则认为这是一个日益严重的暴力问题。

我不是在争论宪法是否适合当今世界的美国。我敢肯定,人们可以列举出拥有这样一部像宪法一样具有基础性的法律的好处。我认为,在当前形势下,它在治理国家方面发挥着至关重要的作用。相反,我是在暗示,开国元勋们在撰写这本书时,可能没有考虑到其他 3.18 亿人和文化会在多年后存在。

西方噩梦和东方梦想

然而,当下一代人工智能来敲门时,它可能会带来一个新的社会结构。然而,这种新的结构看起来会随着你和谁说话而变化——更具体地说,是你在哪里说话。对于人工智能在未来的角色,最常见的并列看法是美国和日本。机器人与人类的典故在美国文化中很盛行,比如《终结者》《黑客帝国》和《T2》埃隆·马斯克史蒂芬·霍金这样的思想领袖。与此同时,日本和许多其他亚洲文化是在机器人英雄身上成长起来的,如阿童木高达之翼

Joi Ito 在 2018 年的一篇名为 的文章中解释了为什么西方人害怕机器人而日本人不害怕 的差异。他将此归因于神道教。用伊藤先生的话来说,“与犹太教和基督教的一神论者以及他们之前的希腊人不同,神道教的信徒不相信人类是特别的。”"

日本人不区分人类、高等生物和他周围的世界。一切都融合在一起,我们很容易接受机器人以及我们周围的广阔世界,昆虫,岩石——这都是一个整体。我们对机器人没有怀疑的态度,就像你在西方看到的伪人类一样。因此,在这里你找不到阻力,只是安静地接受。

引自手冢治虫,翻译:伊藤约伊

另一方面,基督教是西方最普遍的宗教,认为人类不仅不同于其他动物,而且更好,仅次于上帝。不管你的宗教信仰是什么,基督教的这个产物,就像婚姻的概念一样,已经在文化中扎根了。我们这一代人是听着巴尼的歌长大的,这些歌的歌词包括:

你是特别的,你是唯一的

只有你像你一样。

世界上没有第二个了

谁能做你做的事情。

——巴尼演唱会

也许巴尼之歌是一个有偏见的例子,因为我在没有有线电视和一盘 VHS 磁带的情况下长大,我用它来记录巴尼在音乐会上的插曲。然后我看了一遍又一遍,一遍又一遍,因为这是我在接下来的几年里唯一可以看的东西(嗯,还有杜立德医生,它也可以放在 VHS 上)。也许我是唯一一个得到紫色恐龙巴尼灌输给我的信息的人。不管怎样,巴尼并不是唯一宣扬以人类为中心的宇宙观的人。

在西方人看来,没有什么能遮蔽人类。不幸的是,也许有一天。从这个角度来看,人们认为世界末日是一场零和游戏。但重要的是要明白,这不是一个事实,驱动到那个结论;相反,这是一种文化。证据在世界的另一边,那里的人们信奉与人工智能共存的理念。除了日本,中国也在优先发展人工智能。虽然在美国,人工智能可能是一个资金充足的想法,但在中国,它得到了政府的全力支持(财政和立法)。

这并不是说东方没有恐惧,西方也没有拥抱。这两者之间没有界限——文化,尤其是在全球化的国家,正在成为政治边界内外影响的融合。这就是为什么人工智能对人类的影响没有明确的定论。

人工智能的黎明是人类的重生

在可预见的未来,AI 不会比人类更像人类,因为我们不知道作为人类意味着什么;因此,我们不能衡量它,也不能比较它。它能做的是推动我们重新思考社会目前的运行方式。随着工作岗位的减少,最终,我们将到达一个转折点,我们必须评估工作在人类生活中所扮演的角色。

如果钱是通过工作来支付的,但是大多数人不能工作,那么就必须重新考虑货币的供给。在这种情况下,像普遍基本收入 (UBI)这样的想法出现并占据中心舞台。金钱可能不再与工作交换,因为工作可能不再是对社会贡献者的要求。

但这种改变不会在一夜之间发生,过渡期也不会很美好。工作将会失去,在人类做出适当反应之前,许多人的生命将会被毁掉。不幸的是,这些成长中的痛苦可能会成为一种不可避免的影响,许多人可能会误认为是目的本身,但它是达到目的的一种手段。在这一过渡时期,我们必须考虑如何减轻可能出现的负面影响,这也是 UBI 发挥重要作用的地方。

在我开始步入无知的更深层次之前,这大概是我所能想到的。人类可能不再需要工作,普遍基本收入可能发挥人类生存的基本经济作用,或者货币交换的概念可能被完全取代。虽然我不能对生活的目的进行任何有意义的讨论,但我可以同意这个目的不太可能被采用,并存下 401K。

然而,自从农业出现以来,人类的生命慢慢变成了一种可消耗的资源——让企业、政府或经济运行更快的汽油。人工智能的到来挑战了这一范式,但不一定会变得更糟。它带来的效率提供了过上更充实生活的机会。没有了对工作和薪水的担忧,随着一种更注重实现的生活方式的引入,人工智能清算日可能会让我们更接近于回答对人类意味着什么。

人工智能不会取代艺术家,相反,它会增加他们的数量

原文:https://towardsdatascience.com/ai-wont-replace-artists-instead-it-will-augment-them-2963532ec8f3?source=collection_archive---------12-----------------------

艺术界痴迷于人工智能创作的作品,这并不令人惊讶,但也令人筋疲力尽。如果你一直关注艺术新闻,你会知道去年 10 月,一幅非常普通的人工智能肖像卖到了 43.2 万美元。它是由一个叫做 GAN 的开源程序开发的。佳士得声称这是“第一幅由算法生成的待拍卖的肖像画。”当然,这不是真的-像托马斯·拉夫这样的艺术家几十年来一直在制作这样的汇编艺术品。在佳士得售出的这件作品甚至不是人工智能图像创作的高级或受启发的应用。那么它为什么会被卖掉呢?我相信这是因为我们正处于艺术界一个一致趋势的逻辑终点:拒绝自己。几个世纪以来,艺术一直处于永久的自由落体状态,分裂并挑战其形式的定义。

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

这并不新鲜。16 世纪晚期,绘画大师卡拉瓦乔通过描绘令人难以置信的黑暗、病态、戏剧性的场景,拒绝了绘画的光明和理想主义。毕加索拒绝了人类的形式,而喜欢更直观、更感性的形象。杜尚拒绝将艺术视为神圣的创造,并确实想过将便池称为艺术——让观众震惊和敬畏。罗斯科完全拒绝数字和表现,靠在画布上出售模糊的色块过着神话般的生活。安迪·沃霍尔用他对媚俗流行文化的不敬表现拒绝了艺术中剩下的任何意义。

沃霍尔的精神传人杰弗·昆斯通过制作更丑陋、更媚俗、更重复的作品,并经常从不太出名(也可以说更有才华)的艺术家那里窃取创意,进一步堕落到了无意义的无耻艺术中。艺术界不在乎昆斯或其他人是否不道德。只要是拒绝旧标准,什么都可以。首先是拒绝完美,然后拒绝现实主义,然后拒绝形式,然后是意义。现在,看起来,我们已经拒绝了任何目的。人工智能艺术只是一个概念的解释,归结到它的螺母和螺栓。虽然这可能有一些哲学上的兴趣和美学上的吸引力,但我不能提出任何更广泛的理由。

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

我们什么时候才能意识到拒绝标准就是新标准?什么时候我们会拒绝拒绝本身?

我想知道艺术定义的概念去进化是否在 AI 艺术中达到了最低点,这里是 AI 艺术的工作方式:程序被训练识别艺术和结构中的模式,然后使用那些模式来创作自己的作品。他们还需要一段时间才能开始寻找创造意义的方法,并像真正的艺术家那样对社会趋势做出反应。目前,它们天生就是 100%的衍生品。

事实上,这是艺术界的拒绝执念仍然可以产生一些有趣的东西的地方。为什么我们不要求我们的人工智能创造出分析然后拒绝趋势的作品,而不是模仿它们?如果他们能确定艺术的规则,我们不妨要求他们打破那些规则。

然而,我觉得这比让艺术家使用人工智能创作有意义的作品有趣得多。在之前的一篇文章中,我谈到了技术可以重塑我们所知的艺术。我相信它将非常依赖于大量的开源资产库。我还认为,这些图书馆或数据库将包含我们上传的大量信息。为什么考虑以下技术。

  1. 这个人不存在创建看起来很真实的脸,但实际上是不同脸的集合。
  2. 活尸人工智能将他人创造的资产放入人工智能生成的场景中。它负责灯光/阴影&很容易修改。
  3. Nvidia 的 GauGAN 允许你绘制一个形状,并用一种物体/材质类型填充它。然后,艾把它变成了一个逼真的 2D 场景。
  4. WordsEye 让你用文字描述一个场景,然后 AI 创造那个场景。它为每个对象提供了一个小型资源库,因此您可以选择正确的对象。

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

Source: https://www.wordseye.com/about

Promethean 和 WordsEye 都在 3d 空间中工作,而其他的都是 2d 的。连接所有这些的事情是他们使用人工智能和资产库来达到一个特定的目标。除了这个人不存在,他们都允许用户输入具体的要求或限制。(这个人不存在可以修改为允许用户约束,因为是用开源的 GAN 系统做的)。从艺术上来说,这些都更像是拼贴画而不是绘画。但是这些技术仍处于起步阶段。系统变得越可定制,它们就越有创造性和个性化。

在这项技术中,我们可以开始看到个人资产库的具体潜在应用。我们这个时代的大多数人已经通过电话、视频和音频记录在他们的手机上创建了丰富的资源库。我们用这些来创造我们自己的身份,包括个人身份和社会身份。但是,如果我们可以用这些图像来创造受我们个人世界启发的东西,会怎么样呢?如果我们拍的照片可以是工具而不是最终结果呢?

让我们稍微探讨一下这个想法。你可能有一种特定的数字审美,建立在你的整个数字足迹之上:保存在手机上的照片,你在 Pinterest 上喜欢的东西,你在 Instagram 上发布的东西,等等。人工智能可以很容易地分析你的所有帖子,并重新创建符合你审美的新场景和物体。你可以要求它创造一个受此启发的房间;或者由您概述的特定约束来定义。你可以从画房间的形状和里面的物体开始,就像你在高根画的那样。然后,它可以按照普罗米修斯人工智能创建空间的方式来建造(它会从你发布和喜欢的房间图像中提取)。最后,房间里可以放满亚马逊和宜家购物清单上的物品。

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

Source

假设您想更进一步,将您自己的对象添加到您正在创建的场景中。实现这一点的一种方法是将您从现实生活对象中创建的 3d 资源包括在内。这可以通过智能手机上的应用轻松实现。或者,用你在 2D 的旧照片。像 Smoothie 3D 这样的免费在线平台能够将任何 2d 照片转换成 3D 物体。像 Threedy.ai 这样的新创公司旨在利用人工智能使这一过程更快、更少人工干预。一旦你有了一个粗略的 3d 场景,你可以使用类似 GauGAN 的绘图功能来绘制一些形状,然后用一个对象填充它们。

让我们进一步推动它。假设你想在你创建的场景中添加一个科幻小工具。你戴上虚拟耳机,画出一个粗略的圆柱体。然后,你必须用纹理填充形状——所以你要求人工智能从你创建的 moodboard 中提取。它利用这些图像的灵感创造了一个圆柱形的物体。使用同样的技术,可以创造出一个装满物品的房间。

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

Source: https://worrell.com/using-mood-boards-to-drive-design-decisions/

等等,这和艺术世界有什么关系?

很明显,这些方法(以及更多我们还没有想到的方法)可以将艺术界推向新的高度。创作和自我表达将变得越来越容易获得,越来越多媒体化。这项技术还将允许艺术家创造比目前更具沉浸感的艺术体验。

我想象的最后一个应用是一种艺术类型,它不仅仅使用人工智能来整合艺术家自己的数字信息。相反,我认为下一个合乎逻辑的步骤是将艺术扩展到我们的思想世界和社会体系中。

人工智能艺术可以与观众建立真正的个人关系。

想象一下,你走进一家画廊去看一场新的艺术展览。在门口,你登录你的谷歌账户,然后戴上虚拟现实耳机。突然,你被传送到一个房间。这些墙壁是一个梦幻般的场景集合体,看起来就像是来自你自己的生活。你的猫的动画,由数百张你的猫的照片和视频创建,在地板上蹦蹦跳跳。房间周围的植物与你以前见过的完全不同——它们不存在于现实世界中——但它们看起来像是真的。它们就像你经常在 Instagram 上喜欢的植物图片一样美观。你在镜子里看到自己——这是你谷歌账户上所有自拍照的 3d 组合。你走进房间时穿的衣服已经被摄像头扫描并在虚拟现实中复制。你可以切换不同的服装——既有你在照片中穿过的,也有你喜欢的视频中的,还有 AI 通过汇编你喜欢的风格创建的。

如果陌生人走进展览,人工智能会将你的品味与他们的结合起来。墙上的一扇窗户打开了,你看到自己童年的场景和他们的场景混合在一起。覆盖在你们世界地面上的花卉地毯现在变成了带有花卉图案的瓷砖。音乐从你个人的 Spotify 播放列表转移到你和他们的歌曲的混音,由 AI 创建。这个世界不可能存在于任何人之间。你会以一种全新的方式感受到与这个人的亲密联系。

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

source

艺术世界是建立在拒绝之上的,而技术和虚拟艺术是一个充满机遇的世界。任何人都可以投身其中,做出下一个疯狂的新事物,就像历史上新的艺术范式让文化惊叹一样催眠观众。这种创造、自由和自我探索的行为就是艺术。如果你认为计算机程序可以取代艺术家,那你对艺术为什么被创造就有了根本性的误解。

艺术一直只是分享人类感知的一种方式。

艺术家总是从他们周围的世界中获取灵感,AI 也是如此。将人工智能作为一种新的媒介或工具,而不是最终结果,要有趣得多,也更有创造性。人工智能和数字艺术是一个新的方向,我们可以在其中探索我们的感知和灵感。

如果我们要继续拒绝艺术规范,是时候抵制简单、无意义和无聊的艺术规范了。在创造力进化的所有方式中,人工智能艺术肯定是最有趣的途径之一——当然,也是最聪明的。

利用深度学习的最新进展来预测股价走势

原文:https://towardsdatascience.com/aifortrading-2edd6fac689d?source=collection_archive---------0-----------------------

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

Overview of the complete architecture.

完整笔记本链接:https://github.com/borisbanushev/stockpredictionai

在这本笔记本中,我将创建一个预测股票价格变动的完整过程。坚持下去,我们会取得一些不错的成果。为此,我们将使用一个生成对抗网络 (GAN)与**(一种递归神经网络)作为生成器,以及一个卷积神经网络**(CNN**)作为鉴别器。我们使用 LSTM 的明显原因是我们试图预测时间序列数据。为什么我们使用 GAN,特别是 CNN 作为鉴别器?这是一个很好的问题:稍后会有专门的章节讨论这个问题。**

当然,我们将对每个步骤进行更详细的描述,但是最困难的部分是 GAN:成功训练 GAN 的非常棘手的部分是获得正确的超参数集。出于这个原因,我们将使用贝叶斯优化**(以及高斯过程)和深度强化学习 (DRL)来决定何时以及如何改变 GAN 的超参数(探索与开发困境)。在创建强化学习时,我将使用该领域的最新进展,如 RainbowPPO 。**

我们将使用许多不同类型的输入数据。除了股票的历史交易数据和技术指标,我们还将使用 NLP (使用“变压器的双向嵌入表示法”、 BERT ,NLP 的一种转移学习)的最新进展来创建情绪分析(作为基本面分析的来源)、傅立叶变换来提取总体趋势方向、堆叠自动编码器来识别其他高级特征、特征投资组合来寻找相关资产、 自回归综合移动平均线( ARIMA )用于股票函数的逼近,以及更多,以便尽可能多地捕捉关于股票的信息、模式、相关性等。 众所周知,(数据)越多越好。预测股价走势是一项极其复杂的任务,所以我们对股票(从不同角度)了解得越多,我们的变化就越大。

为了创建所有的神经网络,我们将使用 MXNet 及其高级 API——Gluon,并在多个 GPU 上训练它们。

注意 : 虽然我试图深入几乎所有算法和技术背后的数学和机制的细节,但这本笔记本并没有明确打算解释机器/深度学习或股票市场是如何工作的。其目的是展示我们如何使用不同的技术和算法来准确预测股票价格的变动,并给出在每一步中使用每种技术的理由和用途。

目录

1.介绍

准确预测股票市场是一项复杂的任务,因为有数以百万计的事件和先决条件,特定股票会向特定方向移动。因此,我们需要尽可能多地捕捉这些先决条件。我们还需要做几个重要的假设:1)市场不是 100%随机的,2)历史重复,3)市场遵循人们的理性行为,4)市场是“完美的”。请务必阅读底部的免责声明。

我们将尝试预测高盛的价格走势。为此,我们将使用 2010 年 1 月 1 日至 2018 年 12 月 31 日的每日收盘价(七年用于培训,两年用于验证)。我们将交替使用‘高盛’和‘高盛’这两个术语

2.数据

我们需要了解是什么影响了 GS 的股价是上涨还是下跌。这是人们作为一个整体的想法。因此,我们需要整合尽可能多的信息(从不同的方面和角度描述股票)。(我们将使用每日数据— 1,585 天来训练各种算法(我们拥有的数据的 70%),并预测接下来的 680 天(测试数据)。然后,我们将预测结果与测试数据进行比较。每种类型的数据(我们称之为特性)将在后面的章节中详细解释,但是,作为一个高层次的概述,我们将使用的特性有:

  1. 相关资产 —这些是其他资产(任何类型,不一定是股票,如商品、外汇、指数,甚至是固定收益证券)。像高盛这样的大公司显然不会“生活”在一个孤立的世界中——它依赖于许多外部因素并与之相互作用,包括其竞争对手、客户、全球经济、地缘政治形势、财政和货币政策、获得资本的途径等。细节在后面列出。
  2. 技术指标——很多投资者追随技术指标。我们将把最流行的指标作为独立的特征包括进来。其中——7 日和 21 日移动平均线,指数移动平均线,动量,布林线,MACD。
  3. 基本面分析——一个非常重要的特征,表明股票可能上涨或下跌。基本面分析中可以使用两个功能:1)使用 10-K 和 10-Q 报告分析公司业绩,分析 ROE 和 P/E 等(我们不会使用这一功能),以及 2)新闻——潜在的新闻可以表明即将发生的事件,这些事件可能会使股票向某个方向移动。我们将阅读高盛的所有每日新闻,并提取当天对高盛的总体情绪是积极、中立还是消极(以 0 到 1 的分数表示)。随着许多投资者仔细阅读新闻,并根据新闻做出投资决定(当然部分是这样),如果今天高盛的消息非常积极,那么明天该股很有可能会飙升。至关重要的一点是,我们将在以后对绝对每一个特征(包括这个特征)执行特征重要性(意味着它对 GS 运动的指示性)并决定是否使用它。稍后会有更多的介绍。
    为了创建准确的情感预测,我们将使用神经语言处理( NLP )。我们将使用 BERT —谷歌最近宣布的用于情感分类股票新闻情感提取的迁移学习的 NLP 方法。
  4. 傅立叶变换 —除了每日收盘价之外,我们还将创建傅立叶变换,以便概括几个长期和短期趋势。使用这些变换,我们将消除大量噪声(随机游走),并创建真实股票运动的近似值。拥有趋势近似值可以帮助 LSTM 网络更准确地选择其预测趋势。
  5. 自回归综合移动平均法(ARIMA)——这是预测时间序列数据未来值最流行的技术之一(在神经网络出现之前的时代)。让我们添加它,看看它是否是一个重要的预测特征。
  6. 堆叠式自动编码器——前面提到的大多数特性(基本面分析、技术分析等)都是人们经过几十年的研究发现的。但也许我们遗漏了什么。也许由于大量的数据点、事件、资产、图表等,人们无法理解隐藏的相关性。通过堆叠式自动编码器(一种神经网络),我们可以利用计算机的力量,或许可以找到影响股票走势的新型特征。即使我们无法理解人类语言中的这些特征,我们也会在 GAN 中使用它们。
  7. ****深度无监督学习用于期权定价中的异常检测。我们将使用另一个功能—每天我们将添加高盛股票 90 天看涨期权的价格。期权定价本身就结合了很多数据。期权合约的价格取决于股票的未来价值(分析师也试图预测价格,以便得出看涨期权的最准确价格)。利用深度无监督学习(自组织地图),我们将试图发现每天定价中的异常。异常(如价格的剧烈变化)可能表示对 LSTM 了解整体股票模式有用的事件。

接下来,有了这么多特性,我们需要执行几个重要步骤:

  1. 对数据的“质量”进行统计检查。如果我们创建的数据是有缺陷的,那么无论我们的算法多么复杂,结果都不会是正面的。检查包括确保数据没有异方差、多重共线性或序列相关性。
  2. 创建功能重要性。如果一个特征(例如另一只股票或技术指标)对我们想要预测的股票没有解释力,那么我们就没有必要在神经网络的训练中使用它。我们将使用 XGBoost (极端梯度提升),一种提升树回归算法。

作为我们数据准备的最后一步,我们还将使用主成分分析( PCA )创建特征组合**,以减少自动编码器创建的特征的维度。**

print('There are {} number of days in the dataset.'.format(dataset_ex_df.shape[0]))**output** >>> There are 2265 number of days in the dataset.

让我们想象一下过去九年的股票。垂直虚线表示训练数据和测试数据之间的分离。

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

Goldman Sachs stock price (NYSE:GS)

2.1.相关资产

如前所述,我们将使用其他资产作为特性,而不仅仅是 GS。

那么还有哪些资产会影响 GS 的股票走势呢?对公司、其业务线、竞争格局、依赖关系、供应商和客户类型等的良好理解对于选择正确的相关资产非常重要:

  • 首先是类似 GS 的公司**。我们将把摩根大通和摩根士丹利等公司加入数据集。**
  • 作为一家投资银行,高盛依赖于全球经济。糟糕或动荡的经济意味着没有并购或 IPO,自营交易收入可能有限。这就是为什么我们将包括全球经济指数。此外,我们将包括 LIBOR(美元和英镑计价)利率,因为分析师可能会考虑经济中的冲击来设定这些利率,以及其他 FI 证券。
  • 每日波动指数(VIX)——原因如上所述。
  • 综合指数——如纳斯达克和纽约证券交易所(来自美国)、富时 100(英国)、日经 225(日本)、恒生和 BSE Sensex (APAC)指数。
  • 货币 —全球贸易在很多时候反映在货币的变动上,因此我们将使用一篮子货币(如美元、日元、GBPUSD 等)作为特征。

总的来说,数据集中还有 72 项其他资产——每项资产的每日价格。

2.2.技术指标

我们已经讨论了什么是技术指标,以及我们为什么使用它们,所以让我们直接跳到代码。我们将仅为 GS 创建技术指标。

""" Function to create the technical indicators """def get_technical_indicators(dataset):
    # Create 7 and 21 days Moving Average
    dataset['ma7'] = dataset['price'].rolling(window=7).mean()
    dataset['ma21'] = dataset['price'].rolling(window=21).mean()

    # Create MACD
    dataset['26ema'] = pd.ewma(dataset['price'], span=26)
    dataset['12ema'] = pd.ewma(dataset['price'], span=12)
    dataset['MACD'] = (dataset['12ema']-dataset['26ema'])# Create Bollinger Bands
    dataset['20sd'] = pd.stats.moments.rolling_std(dataset['price'],20)
    dataset['upper_band'] = dataset['ma21'] + (dataset['20sd']*2)
    dataset['lower_band'] = dataset['ma21'] - (dataset['20sd']*2)

    # Create Exponential moving average
    dataset['ema'] = dataset['price'].ewm(com=0.5).mean()

    # Create Momentum
    dataset['momentum'] = dataset['price']-1

    return dataset

所以我们有每个交易日的技术指标(包括 MACD,布林线等)。我们总共有 12 个技术指标。

让我们想象一下这些指标过去 400 天的情况。

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

Technical indicators for Goldman Sachs — last 400 days.

2.3.基本面分析

对于基本面分析,我们将对所有关于高盛的每日新闻进行情绪分析。在末尾使用 sigmoid,结果将介于 0 和 1 之间。分数越接近 0,消息越负面(接近 1 表示情绪积极)。对于每一天,我们将创建平均每日得分(0 到 1 之间的数字),并将其作为一个特性添加。

2.3.1.来自变压器的双向嵌入表示— BERT

为了将新闻分类为正面或负面(或中性),我们将使用 BERT ,这是一种预先训练好的语言表示。

MXNet/Gluon 中已经提供了预训练的 BERT 模型。我们只需要实例化它们,添加两个(任意数量)Dense层,去 soft max——分数从 0 到 1。

import bert

深入 BERT 和 NLP 部分的细节不在本笔记本的范围之内,但是如果您有兴趣,请告诉我——我将只为 BERT 创建一个新的 repo,因为它在语言处理任务方面肯定非常有前途。

2.4.用于趋势分析的傅立叶变换

****傅立叶变换取一个函数并创建一系列正弦波(具有不同的振幅和帧)。当组合在一起时,这些正弦波近似于原始函数。从数学角度来说,变换看起来像这样:

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

我们将使用傅立叶变换来提取 GS 股票的全局和局部趋势,并对其进行一点降噪处理。所以让我们看看它是如何工作的。

""" Code to create the Fuorier trasfrom  """data_FT = dataset_ex_df[['Date', 'GS']]
close_fft = np.fft.fft(np.asarray(data_FT['GS'].tolist()))
fft_df = pd.DataFrame({'fft':close_fft})
fft_df['absolute'] = fft_df['fft'].apply(lambda x: np.abs(x))
fft_df['angle'] = fft_df['fft'].apply(lambda x: np.angle(x))
plt.figure(figsize=(14, 7), dpi=100)
fft_list = np.asarray(fft_df['fft'].tolist())
for num_ in [3, 6, 9, 100]:
    fft_list_m10= np.copy(fft_list); fft_list_m10[num_:-num_]=0
    plt.plot(np.fft.ifft(fft_list_m10), label='Fourier transform with {} components'.format(num_))
plt.plot(data_FT['GS'],  label='Real')
plt.xlabel('Days')
plt.ylabel('USD')
plt.title('Figure 3: Goldman Sachs (close) stock prices & Fourier transforms')
plt.legend()
plt.show()

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

Figure 3: Fourier transform of Goldman Sachs Stock

如图 3 所示,我们使用的傅立叶变换成分越多,逼近函数就越接近真实的股票价格(100 成分变换几乎与原始函数相同,红线和紫线几乎重叠)。我们使用傅立叶变换来提取长期和短期趋势,因此我们将使用具有 3、6 和 9 个分量的变换。您可以推断,具有 3 个组件的转换是长期趋势。

另一种用于数据去噪的技术叫做小波**。小波和傅立叶变换给出了相似的结果,所以我们将只使用傅立叶变换。**

2.5.ARIMA 是一个特色

ARIMA 是一种预测时间序列数据的技术。我们将展示如何使用它,虽然 ARIMA 不会作为我们的最终预测,但我们将使用它作为一种技术来降低股票的噪声,并(可能)提取一些新的模式或特征。

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

ARIMA on Goldman Sachs stock

error = mean_squared_error(test, predictions)
print('Test MSE: %.3f' % error)**output** >>> Test MSE: 10.151

正如我们从图 5 中看到的,ARIMA 给出了真实股票价格的一个非常好的近似值。我们将使用 ARIMA 的预测价格作为 LSTM 的输入特征,因为正如我们之前提到的,我们希望尽可能多地捕捉高盛的特征和模式。我们测试的 MSE(均方误差)为 10.151,这本身是一个不错的结果(考虑到我们确实有大量的测试数据),但我们仍然只将它作为 LSTM 的一个特征。

2.6.统计检查

确保数据具有良好的质量对于我们的模型非常重要。为了确保我们的数据是合适的,我们将执行几项简单的检查,以确保我们获得和观察到的结果是真实的,而不是由于基础数据分布存在基本错误而受到损害。

2.6.1.异方差,多重共线性,序列相关

  • ****条件异方差出现在误差项(回归预测值与真实值之间的差异)依赖于数据时,例如,当数据点(沿 x 轴)增长时,误差项也会增长。
  • ****多重共线性是指误差项(也称为残差)相互依赖。
  • ****序列相关是指一个数据(特征)是另一个特征的公式(或完全依赖于另一个特征)。

我们不会在这里深入代码,因为它很简单,我们的重点更多地是在深度学习部分,,但数据是定性的**。**

2.7.特征工程

print('Total dataset has {} samples, and {} features.'.format(dataset_total_df.shape[0],                                                          dataset_total_df.shape[1]))**output** >>> Total dataset has 2265 samples, and 112 features.

因此,在添加了所有类型的数据(相关资产、技术指标、基本面分析、傅立叶和 Arima)后,我们在 2,265 天中共有 112 个特征(然而,如前所述,只有 1,585 天用于训练数据)。

我们还将有更多的自动编码器生成的功能。

2.7.1.XGBoost 的特性重要性

有这么多的特征,我们不得不考虑是否所有的特征都真正预示了 GS 股票的走向。例如,我们在数据集中包括了以美元计价的伦敦银行同业拆放利率,因为我们认为伦敦银行同业拆放利率的变化可能表明经济的变化,而经济的变化又可能表明高盛股票行为的变化。但是我们需要测试。有许多方法可以测试特性的重要性,但是我们将应用的方法使用 XGBoost,因为它在分类和回归问题上都给出了最好的结果。

由于要素数据集非常大,因此出于演示的目的,我们将仅使用技术指标。在真实特性重要性测试期间,所有选择的特性都被证明有些重要,所以我们在训练 GAN 时不会排除任何东西。

regressor = xgb.XGBRegressor(gamma=0.0,n_estimators=150,base_score=0.7,colsample_bytree=1,learning_rate=0.05)xgbModel = regressor.fit(X_train_FI,y_train_FI, eval_set = [(X_train_FI, y_train_FI), (X_test_FI, y_test_FI)], verbose=False)fig = plt.figure(figsize=(8,8))
plt.xticks(rotation='vertical')
plt.bar([i for i in range(len(xgbModel.feature_importances_))], xgbModel.feature_importances_.tolist(), tick_label=X_test_FI.columns)
plt.title('Figure 6: Feature importance of the technical indicators.')
plt.show()

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

Feature importance using XGBoost

毫不奇怪(对于那些有股票交易经验的人来说), MA7、MACD 和 BB 是重要的特征。

我遵循相同的逻辑对整个数据集执行特征重要性分析——只是与少数特征相比,训练时间更长,结果更难阅读。

2.8.使用堆叠自动编码器提取高级特征

在我们进入自动编码器之前,我们将探索另一种激活功能。

2.8.1.激活函数— GELU(高斯误差)

格律 —高斯误差线性单元最近被提出——环节。在论文中,作者展示了使用 GELU 的神经网络优于使用 ReLU 作为激活的网络的几个实例。gelu也用于 BERT ,我们用于新闻情感分析的 NLP 方法。

我们将使用 GELU 作为自动编码器。

:下面的单元格显示了 GELU 数学背后的逻辑。它不是作为激活函数的实际实现。我必须在 MXNet 中实现 GELU。如果你按照代码把act_type='relu'改成act_type='gelu'它就不会工作,除非你改变 MXNet 的实现。对整个项目发出一个 pull 请求,以访问 GELU 的 MXNet 实现。

我们把GELUReLULeakyReLU形象化一点(最后一个主要用在 GANs——我们也用)。

def gelu(x):
    return 0.5 * x * (1 + math.tanh(math.sqrt(2 / math.pi) * (x + 0.044715 * math.pow(x, 3))))def relu(x):
    return max(x, 0)
def lrelu(x):
    return max(0.01*x, x)plt.figure(figsize=(15, 5))
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=.5, hspace=None)ranges_ = (-10, 3, .25)plt.subplot(1, 2, 1)
plt.plot([i for i in np.arange(*ranges_)], [relu(i) for i in np.arange(*ranges_)], label='ReLU', marker='.')
plt.plot([i for i in np.arange(*ranges_)], [gelu(i) for i in np.arange(*ranges_)], label='GELU')
plt.hlines(0, -10, 3, colors='gray', linestyles='--', label='0')
plt.title('Figure 7: GELU as an activation function for autoencoders')
plt.ylabel('f(x) for GELU and ReLU')
plt.xlabel('x')
plt.legend()plt.subplot(1, 2, 2)
plt.plot([i for i in np.arange(*ranges_)], [lrelu(i) for i in np.arange(*ranges_)], label='Leaky ReLU')
plt.hlines(0, -10, 3, colors='gray', linestyles='--', label='0')
plt.ylabel('f(x) for Leaky ReLU')
plt.xlabel('x')
plt.title('Figure 8: LeakyReLU')
plt.legend()plt.show()

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

Comparison of GELU, ReLU, and LeakyReLU

:在这款笔记本的未来版本中,我将尝试使用 U-Net ( link ),并尝试利用卷积层,提取(并创建)更多关于股票基本运动模式的特征。现在,我们将只使用一个简单的由Dense层组成的自动编码器。

好的,回到自动编码器,如下图所示(该图只是示意性的,并不代表真实的层数、单位等。)

注意:我将在以后的版本中探索的一件事是移除解码器中的最后一层。通常,在自动编码器中,编码器的数量==解码器的数量。然而,我们希望提取更高级别的特征(而不是创建相同的输入),因此我们可以跳过解码器中的最后一层。我们通过在训练期间创建具有相同层数的编码器和解码器来实现这一点,但是当我们创建输出时,我们使用唯一一个层旁边的层,因为它将包含更高级别的特征。

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

自动编码器的完整代码可以在附带的 Github——顶部的链接中找到。

我们从 autoencoder 中创建了 112 个新功能。由于我们只想要高层次的特征(整体模式),我们将使用主成分分析(PCA)在新创建的 112 个特征上创建一个特征组合。这将减少数据的维度(列数)。特征组合的描述能力将与最初的 112 个特征相同。

****注意同样,这纯粹是实验性的。我不能 100%确定所描述的逻辑是否成立。正如 AI 和深度学习中的其他事情一样,这是艺术,需要实验。

3.生成对抗网络

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

Architecture of GANs

GANs 是如何工作的?

如前所述,这本笔记本的目的不是详细解释深度学习背后的数学,而是展示其应用。当然,在我看来,从基础到最小的细节都要有透彻、扎实的理解。因此,我们将试图平衡并给出一个高层次的 GANs 如何工作的概述,以便读者充分理解使用 GANs 预测股价运动背后的基本原理。如果您对 GANs 有经验,请随意跳过这一节和下一节(并检查第 4.2 节)。)。

GAN 网络由两个模块组成——一个发生器** (G)和一个鉴别器 (D)。训练 GAN 的步骤如下:**

  1. 生成器使用随机数据(噪声表示为 z )试图“生成”与真实数据不可区分或极其接近的数据。其目的是了解真实数据的分布。
  2. 随机地,真实的或生成的数据被放入鉴别器,鉴别器充当分类器并试图理解数据是来自生成器还是真实的数据。d 估计引入样本对真实数据集的(分布)概率。(第 3.2 节中有更多关于比较两种分布的信息。下面)。
  3. 然后,来自 G 和 D 的损耗被合并,并通过发电机传播回来。因此,发电机的损耗取决于发电机和鉴频器。这是帮助生成器了解真实数据分布的步骤。如果生成器在生成真实数据(具有相同的分布)方面做得不好,鉴别器的工作将很容易区分从真实数据集生成的数据。因此,鉴频器的损耗将非常小。较小的鉴频器损耗将导致较大的发电机损耗(见下面的等式 L(D,G))。这使得创建鉴别器有点棘手,因为太好的鉴别器总是会导致巨大的发电机损失,使发电机无法学习。
  4. 该过程继续进行,直到鉴别器不再能够区分生成的数据和真实的数据。

当组合在一起时,d 和 g 有点像在玩一个最小最大游戏(生成器试图愚弄鉴别器,使其增加假样本的概率,即最小化𝔼z∼pz(z)[log(1−D(G(z)))].)鉴别器希望通过最大化𝔼x∼pr(x)[logD(x)].来分离来自发生器 D(G(z))的数据然而,在分离损失函数之后,还不清楚两者如何能够收敛在一起(这就是为什么我们在普通 GAN 上使用一些改进,例如 Wasserstein GAN)。总的来说,组合损失函数看起来像:

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

注意:真正有用的训练 GANs 的小技巧可以在这里找到。

注意:我不会在这个笔记本中包括 GAN强化学习部分后面的完整代码——只会显示执行的结果(单元输出)。作出拉请求或联系我的代码。

3.1.甘为什么要进行股市预测

生成性对抗网络 (GAN)最近主要用于创建现实图像、绘画和视频剪辑。在我们的案例中,用于预测时间序列数据的 GANs 应用并不多。然而,主要思想应该是相同的——我们想要预测未来的股票走势。未来,GS 股票的模式和行为应该或多或少是一样的(除非它开始以完全不同的方式运作,或者经济发生剧烈变化)。因此,我们希望为未来“生成”与我们已经拥有的数据(历史交易数据)具有相似(当然不是绝对相同)分布的数据。所以,理论上,这应该行得通。

在我们的例子中,我们将使用 LSTM 作为时间序列发生器,使用 CNN 作为鉴别器。

3.2.大都会-黑斯廷斯甘和瓦瑟斯坦甘

注意: 接下来的几节假设有一些关于 GANs 的经验。

一.大都会-黑斯廷斯甘

优步的工程团队最近对传统 GANs 进行了改进,称为Metropolis-Hastings GAN**(MHGAN)。优步方法背后的想法(正如他们所说)有点类似于谷歌和加州大学伯克利分校创建的另一种方法,称为鉴别器拒绝采样 ( DRS )。基本上,当我们训练 GAN 时,我们使用鉴别器(D)的唯一目的是更好地训练发生器(G)。通常,在训练完 GAN 之后,我们就不再使用 D 了。而 MHGAN 和 DRS 为了选择由 G 生成的接近真实数据分布的样本,都尽量使用 D(两者略有不同的是,MHGAN 使用马尔可夫链蒙特卡罗( MCMC )进行采样)。**

MHGAN 获取从 G 产生的 K 个样本(从独立的噪声输入到 G 产生,如下图中的 z0 至 zK)。然后,它依次通过 K 输出(x’0 至 x’K ),并遵循一个接受规则(由鉴别器创建)决定是接受当前样本还是保留上一个接受的样本。最后保存的输出被认为是 g 的真实输出。

: MHGAN 最初由优步在 pytorch 中实现。我只把它转入 MXNet/Gluon。

注:我也将很快上传到 Github。

图 10:MHGAN 的可视化表示(来自最初的优步邮报)。

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

二。瓦瑟斯坦·甘

训练 GANs 相当困难。模型可能永远不会收敛,模式崩溃很容易发生。我们将使用 GAN 的一个变体,称为wasser steinGAN—WGAN

同样,我们不会深入讨论细节,但最值得注意的几点是:

  • 正如我们所知,GANs 背后的主要目标是让生成器开始将随机噪声转换成我们想要模拟的一些给定数据。因此,在 GANs 中,比较两个分布之间的相似性是非常必要的。两个最广泛使用的此类指标是:
  • KL 散度(kull back–lei bler)—DKL(p‖q)=∫XP(x)logp(x)q(x)dx。当 p(x)等于 q(x)时 dk1 为零,
  • JS 发散(詹森-香农)。JS 散度以 0 和 1 为界,与 KL 散度不同,它是对称的,更平滑。当损失从 KL 切换到 JS 发散时,GAN 训练取得了重大成功。
  • WGAN 使用瓦瑟斯坦距离**,w(pr,pg)=1ksup‖f‖l≤k𝔼x∼pr[f(x)]−𝔼x∼pg[f(x】(其中 sup 代表上确界)作为损失函数(也称为推土机距离,因为它通常被解释为将一堆沙子移动到另一堆,两堆沙子具有不同的概率分布,在转换过程中使用最小能量)。与 KL 和 JS 背离相比,Wasserstein 度量给出了平滑的度量(没有背离的突然跳跃)。这使得它更适合在梯度下降期间创建稳定的学习过程。**
  • 此外,与 KLJS 相比,瓦瑟斯坦距离几乎在任何地方都是可微的。如我们所知,在反向传播过程中,我们对损失函数进行微分,以创建梯度,梯度进而更新权重。因此,拥有一个可微的损失函数是非常重要的。

毫无疑问,这是这个笔记本最难的部分。混合 WGAN 和 MHGAN 花了我三天时间。

3.4.发电机——一层 RNN

3.4.1.LSTM 还是 GRU

如前所述,生成器是 LSTM 网络一种类型的递归神经网络(RNN)。rnn 用于时间序列数据,因为它们跟踪所有以前的数据点,并可以捕捉随时间发展的模式。由于它们的性质,rnn 很多时候会遭受消失梯度——也就是说,在训练期间接收到的权重变化变得如此之小,以至于它们不会改变,使得网络无法收敛到最小损失(有时也会观察到相反的问题——当梯度变得太大时)。这被称为渐变爆炸,但解决方案非常简单——如果渐变开始超过某个常数,就对其进行剪辑,即渐变剪辑)。两种修改解决了这个问题——门控循环单元( GRU )和长短期记忆( LSTM )。两者最大的区别是:1) GRU 有 2 个门(更新和复位),LSTM 有 4 个门(更新、输入、忘记和输出),2) LSTM 保持内部存储状态,而 GRU 没有,3) LSTM 在输出门之前应用了一个非线性(sigmoid),GRU 没有。

在大多数情况下,LSTM 和 GRU 在准确性方面给出了相似的结果,但 GRU 的计算强度要小得多,因为 GRU 的可训练参数要少得多。然而,LSTMs 使用得更多。

严格地说,LSTM 细胞(门)背后的数学是:

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

The math behind the LSTM cell

其中⊙是逐元素乘法运算符,对于所有 x=[x1,x2,…,xk]⊤∈R^k,两个激活函数:,

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

3.4.2.LSTM 建筑

LSTM 架构非常简单,一个LSTM层有 112 个输入单元(因为我们在数据集中有 112 个要素)和 500 个隐藏单元,一个Dense层有 1 个输出-每天的价格。初始化器是 Xavier,我们将使用 L1 损失(这是使用 L1 正则化的平均绝对误差损失——参见第 3.4.5 节。了解更多关于正规化的信息)。

注意 —在代码中你可以看到我们使用Adam(带有. 01 的learning rate)作为优化器。现在不要太关注这个——有一节专门解释我们使用什么超参数(学习率被排除在外,因为我们有学习率调度程序——3 . 4 . 3 节。)以及我们如何优化这些超参数-第 3.6 节。

gan_num_features = dataset_total_df.shape[1]
sequence_length = 17class RNNModel(gluon.Block):
    def __init__(self, num_embed, num_hidden, num_layers, bidirectional=False, sequence_length=sequence_length, **kwargs):
        super(RNNModel, self).__init__(**kwargs)
        self.num_hidden = num_hidden
        with self.name_scope():
            self.rnn = rnn.LSTM(num_hidden, num_layers, input_size=num_embed, bidirectional=bidirectional, layout='TNC')
            self.decoder = nn.Dense(1, in_units=num_hidden)

    def forward(self, inputs, hidden):
        output, hidden = self.rnn(inputs, hidden)
        decoded = self.decoder(output.reshape((-1,self.num_hidden)))
        return decoded, hidden

    def begin_state(self, *args, **kwargs):
        return self.rnn.begin_state(*args, **kwargs)

lstm_model = RNNModel(num_embed=gan_num_features, num_hidden=500, num_layers=1)
lstm_model.collect_params().initialize(mx.init.Xavier(), ctx=mx.cpu())
trainer = gluon.Trainer(lstm_model.collect_params(), 'adam', {'learning_rate': .01})
loss = gluon.loss.L1Loss()

我们将在 LSTM 层使用 500 个神经元,并使用 Xavier 初始化。为了规范化,我们将使用 L1。让我们看看 MXNet 打印的LSTM里面有什么。

print(lstm_model)**output** >>>RNNModel(
   (rnn): LSTM(112 -> 500, TNC)
   (decoder): Dense(500 -> 1, linear)
)

正如我们所看到的,LSTM 的输入是 112 个特征(dataset_total_df.shape[1]),然后进入 LSTM 层的 500 个神经元,然后转换成单一输出——股票价格值。

LSTM 背后的逻辑是:我们获取 17 天(sequence_length)的数据(同样,数据是 GS 股票每天的股价+当天的所有其他特征——相关资产、情绪等。)并尝试预测第 18 天。然后,我们将 17 天窗口移动一天,再次预测第 18 天。我们像这样在整个数据集上迭代(当然是分批的)。

在另一篇文章中,我将探讨修改香草 LSTM 是否更有益,例如:

  • 使用双向** LSTM 层——理论上,回溯(从数据集的末尾向开始)可能会在某种程度上帮助 LSTM 找出股票运动的模式。**
  • 使用堆叠** RNN 架构——不止一层 LSTM,而是两层或更多层。然而,这可能是危险的,因为我们可能会过度拟合模型,因为我们没有很多数据(我们只有 1585 天的数据)。**
  • 探索GRU**——正如已经解释过的,格鲁的细胞要简单得多。**
  • 注意力向量添加到 RNN。

3.4.3.学习率调度程序

最重要的超参数之一是学习率。在训练神经网络时,为几乎每个优化器(如 SGDAdamRMSProp )设置学习率至关重要,因为它控制收敛速度和网络的最终性能。最简单的学习率策略之一是在整个训练过程中保持固定的学习率。选择小的学习速率允许优化器找到好的解决方案,但是这是以限制初始收敛速度为代价的。随着时间的推移改变学习率可以克服这种权衡。

最近的论文,如一篇,显示了在训练期间改变全局学习率在收敛和时间方面的好处。让我们画出每个时期的学习率。

schedule = CyclicalSchedule(TriangularSchedule, min_lr=0.5, max_lr=2, cycle_length=500)
iterations=1500plt.plot([i+1 for i in range(iterations)],[schedule(i) for i in range(iterations)])
plt.title('Learning rate for each epoch')
plt.xlabel("Epoch")
plt.ylabel("Learning Rate")
plt.show()

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

3.4.4.如何防止过度拟合和偏差-方差权衡

拥有大量的特征和神经网络,我们需要确保防止过度拟合,并注意总损失。

我们使用几种技术来防止过度拟合(不仅在 LSTM,而且在 CNN 和自动编码器中):

  • 保证数据质量。我们已经执行了统计检查,并确保数据不会出现多重共线性或序列自相关。此外,我们对每个特性进行了特性重要性检查。最后,初始特征选择(例如,选择相关资产、技术指标等。)是用一些关于股票市场运作方式背后的机制的领域知识完成的。
  • 正规化(或加重处罚)。最广泛使用的两种正则化技术是套索(【L1】)和岭(【L2】)。L1 增加了平均绝对误差,L2 增加了损失的均方误差。在不涉及太多数学细节的情况下,基本区别是:套索回归(L1)进行变量选择和参数收缩,而岭回归只进行参数收缩,并最终包括模型中的所有系数。在存在相关变量的情况下,岭回归可能是首选。此外,岭回归在最小二乘估计具有较高方差的情况下效果最好。因此,这取决于我们的模型目标。这两种正规化的影响大不相同。虽然它们都不利于大的权重,但是 L1 正则化导致在零处的不可微函数。L2 正则化倾向于较小的权重,但是 L1 正则化倾向于趋于零的权重。因此,通过 L1 正则化,你可以得到一个稀疏模型——一个参数更少的模型。在两种情况下,L1 和 L2 正则化模型的参数“收缩”,但是在 L1 正则化的情况下,收缩直接影响模型的复杂性(参数的数量)。准确地说,岭回归在最小二乘估计具有较高方差的情况下效果最好。L1 对异常值更稳健,在数据稀疏时使用,并创建要素重要性。我们将使用 L1。
  • 辍学。丢弃层随机删除隐藏层中的节点。
  • 密-疏-密训练。— 链接
  • 提前停止

构建复杂神经网络时的另一个重要考虑是偏差-方差权衡。基本上,我们在训练网络时得到的误差是偏差、方差和不可约误差——σ(噪声和随机性引起的误差)的函数。最简单的权衡公式是:Error=bias^2+variance+σ.

  • 偏置。偏差衡量一个经过训练(在训练数据集上)的算法对看不见的数据进行归纳的能力。高偏差(拟合不足)意味着模型不能很好地处理看不见的数据。
  • 差异。方差衡量模型对数据集中变化的敏感度。高方差是过度拟合。

3.5.鉴别器——一维 CNN

4.5.1.为什么 CNN 是一个歧视者?

我们通常使用 CNN 进行与图像相关的工作(分类、上下文提取等)。他们非常擅长从特征中提取特征,等等。例如,在一幅狗的图像中,第一个卷积层将检测边缘,第二个卷积层将开始检测圆,第三个卷积层将检测鼻子。在我们的例子中,数据点形成小趋势,小趋势形成大趋势,趋势反过来形成模式。CNN 检测特征的能力可以用来提取关于 GS 股票价格运动模式的信息。

使用 CNN 的另一个原因是,CNN 在空间数据上工作得很好,这意味着相互靠近的数据点比分散的数据点更相关。这应该适用于时间序列数据。在我们的例子中,每个数据点(对于每个特征)都是连续的一天。人们很自然地认为,两天之间的距离越近,它们之间的关联就越大。需要考虑的一件事(虽然没有包括在本书中)是季节性以及它如何改变 CNN 的工作。

注意:和本笔记本中的许多其他部分一样,使用 CNN 获取时间序列数据是实验性的。我们将检查结果,但不提供数学或其他证明。并且使用不同的数据、激活函数等,结果可能不同。

3.5.1.CNN 架构

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

The architecture of the proposed CNN model.

不需要看完整的代码,我们只显示 MXNet 打印的 CNN。

Sequential(
   (0): Conv1D(None -> 32, kernel_size=(5,), stride=(2,)) 
   (1): LeakyReLU(0.01) 
   (2): Conv1D(None -> 64, kernel_size=(5,), stride=(2,)) 
   (3): LeakyReLU(0.01) 
   (4): BatchNorm(axis=1, eps=1e-05, momentum=0.9, fix_gamma=False, use_global_stats=False, in_channels=None) 
   (5): Conv1D(None -> 128, kernel_size=(5,), stride=(2,)) 
   (6): LeakyReLU(0.01) 
   (7): BatchNorm(axis=1, eps=1e-05, momentum=0.9, fix_gamma=False, use_global_stats=False, in_channels=None) 
   (8): Dense(None -> 220, linear) 
   (9): BatchNorm(axis=1, eps=1e-05, momentum=0.9, fix_gamma=False, use_global_stats=False, in_channels=None) 
   (10): LeakyReLU(0.01) 
   (11): Dense(None -> 220, linear) 
   (12): Activation(relu) 
   (13): Dense(None -> 1, linear) 
)

3.6.超参数

我们将跟踪和优化的超参数有:

  • batch_size:LSTM 和 CNN 的批量
  • cnn_lr:CNN 的学习率
  • strides:CNN 的大步数
  • lrelu_alpha:GAN 中 LeakyReLU 的 alpha
  • batchnorm_momentum:CNN 批量正常化的势头
  • padding:CNN 中的填充
  • kernel_size':1:CNN 中的内核大小
  • dropout:LSTM 辍学
  • filters:过滤器的初始数量

我们将培训 200 多名epochs

4.超参数优化

在 GAN 在 200 个历元上训练之后,它将记录 MAE(这是 LSTM GG 中的误差函数),并将其作为奖励值传递给强化学习,强化学习将决定是否改变超参数,以保持用相同的超参数集训练。如后所述,这种方法严格用于 RL 实验。

如果 RL 决定它将更新超参数,它将调用贝叶斯优化(下面讨论)库,该库将给出超参数的下一个最佳预期集合

4.1.超参数优化的强化学习

为什么我们在超参数优化中使用强化学习?股票市场一直在变化。即使我们设法训练我们的 GAN 和 LSTM 产生极其精确的结果,这些结果也可能只在一定时期内有效。也就是说,我们需要不断优化整个流程。为了优化流程,我们可以:

  • 添加或删除功能(例如,添加可能相关的新股票或货币)
  • 改进我们的深度学习模型。改进模型的最重要的方法之一是通过超参数(在第 5 节中列出)。一旦找到某个超参数集,我们需要决定何时改变它们,何时使用已知的超参数集(探索与开发)。此外,股票市场代表了一个依赖于数百万个参数的连续空间。

:本笔记本整个强化学习部分的目的更多的是研究导向。我们将使用 GAN 作为环境来探索不同的 RL 方法。有许多方法可以在不使用 RL 的情况下,成功地对我们的深度学习模型执行超参数优化。但是…为什么不呢。

注意:接下来的几节假设你对 RL 有一些了解——尤其是政策方法和 Q-learning。

4.1.1.强化学习理论

在不解释 RL 的基础知识的情况下,我们将跳转到我们在这里实现的具体方法的细节。我们将使用无模型 RL 算法,原因很明显,我们不知道整个环境,因此对于环境如何工作没有定义的模型——如果有,我们不需要预测股票价格的运动——它们只会遵循模型。我们将使用无模型强化学习的两个分支——策略优化和 Q 学习。

  • Q-学习 —在 Q-学习中,我们学习从给定状态采取行动的Q 值是采取行动后的预期收益。我们将使用 Rainbow ,它是七种 Q 学习算法的组合。
  • 策略优化 —在策略优化中,我们学习从给定状态采取的行动。(如果我们使用像演员/评论家这样的方法)我们也知道处于特定状态的价值。我们将使用近似策略优化

构建 RL 算法的一个关键方面是准确设置奖励。它必须捕捉环境的所有方面以及代理与环境的交互。我们将奖励 R 定义为:

reward = 2∫lossG+lossD+accuracy g,

其中,lossG、accuracyG 和 lossD 分别是发生器的损耗和精度,以及鉴频器的损耗。环境是训练的结果。不同代理可以采取的行动是如何改变 GAN 的 D 和 G 网络的超参数。****

4.1.1.1.彩虹

彩虹是什么?

Rainbow ( link )是一种基于 Q 学习的非策略深度强化学习算法,结合了七种算法:

  • DQN 。DQN 是 Q 学习算法的扩展,它使用神经网络来表示 Q 值。与监督(深度)学习类似,在 DQN,我们训练一个神经网络,并试图最小化损失函数。我们通过随机抽样转换(状态、动作、奖励)来训练网络。例如,这些层不仅可以是全连接的,也可以是卷积的。
  • 双 Q 学习。双 QL 处理了 Q 学习中的一个大问题,即高估偏差。
  • 优先重放。在传统的 DQN 中,所有的转换都存储在一个重放缓冲区中,并对该缓冲区进行统一采样。然而,在学习阶段,并非所有的过渡都同样有益(这也使得学习效率低下,因为需要更多的片段)。优先体验重放并不统一采样,而是使用一种分布,为在先前迭代中具有较高 Q 损失的样本提供较高的概率。
  • ****决斗网络。决斗网络通过使用两个独立的流(即具有两个不同的迷你神经网络)稍微改变了 Q 学习架构。一个流是价值流,一个流是优势流。两者共用一个卷积编码器。棘手的部分是流的合并——它使用了一种特殊的聚合器(王等人 2016 )。

(优点,公式为 A(s,a)=Q(s,A)—V(s),一般来说就是一个动作相对于特定状态下的平均动作有多好的比较。当一个“错误”的行为不能用负面奖励来惩罚时,优势有时会被使用。所以优势会尝试进一步奖励普通行为中的好行为。)

  • ****多步学习。多步学习背后的巨大差异是,它使用 N 步回报(不仅仅是下一步的回报)来计算 Q 值,这自然应该更准确。
  • 分布式 RL 。Q 学习使用平均估计 Q 值作为目标值。然而,在许多情况下,不同情况下的 Q 值可能不相同。分布式 RL 可以直接学习(或近似)Q 值的分布,而不是平均它们。同样,数学比这复杂得多,但对我们来说,好处是对 Q 值的采样更准确。
  • 吵网。基本 DQN 实现了一个简单的𝜀-greedy 机制来进行探索。这种探索方法有时效率很低。噪声网络解决这个问题的方法是添加一个噪声线性图层。随着时间的推移,网络将学会如何忽略噪声(作为噪声流添加)。但这种学习在空间的不同部分以不同的速度进行,从而允许状态探索。

注:敬请期待——我将于 2019 年 2 月初在 Rainbow 上上传一个 MXNet/Gluon 实现到 Github。

4.1.1.2.聚苯醚(Polyphenylene Oxide 的缩写)

近似策略优化 ( PPO )是一种无策略优化模型类型的强化学习。实现其他算法要简单得多,并且给出非常好的结果。

我们为什么要用 PPO?PPO 的优势之一是直接学习策略,而不是通过值间接学习(Q 学习使用 Q 值学习策略的方式)。它可以在连续动作空间中很好地工作,这适用于我们的用例,并且可以学习(通过平均值和标准偏差)分布概率(如果 softmax 作为输出被添加)。

政策梯度方法的问题在于,它们对步长的选择极其敏感——如果步长很小,则进展需要很长时间(很可能主要是因为需要二阶导数矩阵);如果它很大,就会有大量噪声,从而显著降低性能。由于政策的变化,输入数据是不稳定的(奖励和观察值的分布也会变化)。与监督学习相比,选择不当的步骤可能更具破坏性,因为它会影响下一次访问的整体分布。PPO 可以解决这些问题。此外,与其他一些方法相比,PPO:

  • 要简单得多,例如与 ACER 相比,ACER 需要额外的代码来保持偏离策略的相关性,还需要一个重放缓冲器,或者与 TRPO 相比,TRPO 对代理目标函数施加了约束(新旧策略之间的 KL 偏差)。此约束用于控制改变太多的策略,这可能会造成不稳定。PPO 通过利用(在[1- 𝜖,1+𝜖]之间)截取的替代目标函数并通过具有太大更新的惩罚来修改目标函数,来减少(由约束产生的)计算。**
  • 与 TRPO 相比,与在价值和策略函数或辅助损失之间共享参数的算法兼容(尽管 PPO 也具有信赖域 PO 的增益)。

注意:出于我们练习的目的,我们不会过多地研究和优化 RL 方法,包括 PPO 和其他方法。相反,我们将利用现有资源,并努力将其融入我们的超参数优化流程,用于我们的、**、CNN 模型。我们将重用和定制的代码是由 OpenAI 创建的,可以在这里获得**

4.1.2.关于强化学习的进一步工作

进一步探索强化学习的一些想法:

  • 接下来我要介绍的第一件事是使用增强随机搜索 ( 链接)作为替代算法。该算法的作者(来自加州大学伯克利分校)已经成功实现了与其他最先进的方法(如 PPO)类似的奖励结果,但平均速度快 15 倍。
  • 选择奖励函数非常重要。我在上面陈述了当前使用的奖励功能,但是我将尝试使用不同的功能作为替代。
  • 利用好奇号【T21 号】作为探索政策。
  • 按照柏克莱人工智能研究团队(BAIR)的提议,创建多智能体架构——链接

4.2.贝叶斯优化

我们将使用贝叶斯优化,而不是花费大量时间寻找超参数的最佳组合的网格搜索。我们将使用的库已经实现了— link

4.2.1.高斯过程

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

Gaussian process for Bayesian hyperparameter optimisation

5.结果呢

最后,我们将比较在过程的不同阶段后,将看不见的(测试)数据用作输入时 LSTM 的输出。

  1. 第一个纪元后的情节。
**from utils import plot_predictionplot_prediction('Predicted and Real price - after first epoch.')**

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

2.50 个时代后的情节。

**plot_prediction('Predicted and Real price - after first 50 epochs.')**

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

**plot_prediction('Predicted and Real price - after first 200 epochs.')**

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

RL 运行 10 集(我们将一个时期定义为在 200 个时期上的一个完整的 GAN 训练。)

**plot_prediction('Final result.')**

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

作为下一步,我将试着把每件事分开,并提供一些关于什么有效以及为什么有效的分析。为什么我们会得到这些结果,这仅仅是巧合吗?敬请关注。

6.下一步是什么?

  • 接下来,我将尝试创建一个 RL 环境,用于测试决定何时以及如何交易的交易算法。来自 GAN 的输出将是环境中的参数之一。

7.放弃

这本笔记本内容丰富。本笔记本中的任何内容都不构成任何特定证券、证券组合、交易或投资策略适合任何特定人士的建议。期货、股票和期权交易涉及大量的损失风险,并不适合每个投资者。期货、股票和期权的估值可能会波动,因此,客户的损失可能会超过其原始投资。

所有交易策略使用风险自担。

在选择数据特征、选择算法、调整算法等方面,还有更多细节需要探索。这个版本的笔记本本身花了我两个星期才完成。我确信这个过程中有许多未回答的部分。所以,任何意见和建议——请分享。我很乐意在当前流程中添加和测试任何想法。

感谢阅读。

最好的,鲍里斯

西雅图的 Airbnb 数据分析

原文:https://towardsdatascience.com/airbnb-in-seattle-data-analysis-8222207579d7?source=collection_archive---------9-----------------------

了解西雅图的 Airbnb 租赁情况

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

Photo by Sidekix Media on Unsplash

对于所有西雅图的准 Airbnb 房东,我将在本文中回答这些问题:

  • 何时租赁以实现收入最大化?
  • 什么时候是维修的淡季?
  • 西雅图旅行者的常见团队规模,是 2 人或家庭还是 4 人或更大?
  • 最大化预订率的卧室配置?
  • 如何达到一个好的评分?
  • 收视率高的主机收入高吗?
  • 包括哪些便利设施?

获取和准备数据

在本文中,我将对从 Airbnb 内部的获取的 Airbnb 数据集执行探索性数据分析。

获取列表数据

我们的数据将被加载到 pandas 中,逗号分隔值(CSV)文件可以通过read_csv函数轻松加载到 DataFrame 中。

让我们看看使用pd_listings.head(10)的前 10 行是什么样子的:

并用pd_listings.describe()查看数字数据的汇总:

观察结果:

  • 此数据集中有 3813 个列表
  • 价格列中的值包含美元符号($)
  • 浴室卧室中有缺失值
  • 评论评级列中有缺失值(评论分数评级、评论分数准确性、评论分数清洁度、评论分数签入、评论分数交流、评论分数位置、评论分数值)

数据准备

价格栏,这是清单的价格,它包含美元符号($)。我们仍然不能使用它进行分析,因为它不是一个数值,所以我们删除了美元符号,并将值转换为数值:

pd_listings['price'] = pd_listings['price'].str.replace("[$, ]", "").astype("float")

然后用零替换这些空值:

pd_listings.at[pd_listings['bathrooms'].isnull(), 'bathrooms'] = 0
pd_listings.at[pd_listings['bedrooms'].isnull(), 'bedrooms'] = 0
pd_listings.at[pd_listings['beds'].isnull(), 'beds'] = 0pd_listings.at[pd_listings['review_scores_rating'].isnull(), 'review_scores_rating'] = 0
pd_listings.at[pd_listings['review_scores_accuracy'].isnull(), 'review_scores_accuracy'] = 0
pd_listings.at[pd_listings['review_scores_cleanliness'].isnull(), 'review_scores_cleanliness'] = 0
pd_listings.at[pd_listings['review_scores_checkin'].isnull(), 'review_scores_checkin'] = 0
pd_listings.at[pd_listings['review_scores_communication'].isnull(), 'review_scores_communication'] = 0
pd_listings.at[pd_listings['review_scores_location'].isnull(), 'review_scores_location'] = 0
pd_listings.at[pd_listings['review_scores_value'].isnull(), 'review_scores_value'] = 0

最后,将 id 重命名为 listing_id:

pd_listings.rename(columns={'id':'listing_id'}, inplace=True)

获取评论数据

让我们加载另一个 CSV 文件,其中包含每个列表的评论。数据帧包含以下各列:

  • id —审核的标识号
  • listing _ id——列表的标识号,我们可以将它与上面的数据帧连接起来
  • 日期—审核的日期

计算每个列表的预计收入

我认为每一次点评都是一次成功的预订,客人住了几晚。不幸的是,我们不知道每位客人入住的确切天数,但我们可以使用列表中的minimum_nights,假设每位客人至少入住了最少的天数。对于每次点评,price * minimum_nights获得每次预订的收入:

pd_bookings = pd.merge(pd_reviews, pd_listings, on='listing_id')
pd_bookings['estimated_revenue'] = pd_bookings['price'] * pd_bookings['minimum_nights']

将每个列表的每次预订的收入合计为每个列表的预计收入:

pd_listings_revenue = pd_bookings[['listing_id','estimated_revenue']].groupby(['listing_id']).sum()

并将预计收入合并到现有数据框架中(列表):

pd_listings = pd.merge(pd_listings, pd_listings_revenue, on='listing_id', how='left')pd_listings.at[pd_listings['estimated_revenue'].isnull(), 'estimated_revenue'] = 0

我们已经为一些分析准备好了数据框架。每行代表一个列表、其属性及其估计收入:

开始分析

按街区划分的收入

下表显示了每个街区的平均收入:

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

市中心、国会山和灯塔山的 Airbnb 房产可以获得最高的收入。是购物和 CBD 区。

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

市中心、国会山和比肯山的收入最高

一年中的热门时期出租?

了解西雅图一年中最受欢迎的租赁时间会很有用,这样 Airbnb 的主人就能够决定何时租赁以及何时进行维护。

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

七月、八月和九月是收入最大化的最佳时期。五月前的几个月是维修工作的最佳时间。从 10 月到 12 月是休息和享受假期的好时间,如果他们想的话。

七月、八月和九月是收入最大化的最佳时期。

最高收入列表

以下是估计收入最高的前 5 个列表:

哇!看起来我们的最高收入者是最低夜数为 1000 的主持人。但这可能是数据异常,因为 1000 晚有点极端,所以让我们看看不同 minimum_nights 的列表的比例。(谢谢,辜莞允·乌马西强调了这一点!)

大多数主机有最少一个月的夜数,有 1000 夜的主机,必须过滤掉。

这些是预计收入最高的顶级主机(最少 7 晚)。

这些是预计收入最高的顶级酒店(最少 4 晚)。

从这两张表中可以看出,最短住宿时间越长,收入越高。我们来看看最低夜数预计收入之间的相关性。

以及最低夜数去除 1000 最低夜数的房源后预计收入的相关性。

拥有 1000 个最低夜数的主机已经导致偏向更高的最低夜数,导致更高的收入,在最低夜数收入之间有 87%的相关性。但是在移除该主机之后,最低住宿和估计收入并不高度相关,最低住宿收入之间的相关性为 20%。

最低住宿天数和预计收入并不高度相关

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

Photo by Kelcie Gene Papp on Unsplash

供求——卧室配置

作为一个 Airbnb 的房东,知道我的房产在市场上是否过饱和会很好。找出不同卧室配置的房源数量(供应)与预订数量(需求)之间的比率:

少于 2 间卧室的房源很受欢迎。

但是等等!没有卧室的房产,这是什么样的房产?

这些房产的床位数是多少?

所有这些没有卧室的房产都出租了整个公寓,而且他们至少提供了一张床。唷~

供应和需求——游客群体配置

作为一个 Airbnb 的主持人,我也很想知道西雅图访客的常见群体规模。从而发现我的物业配置在市场上是否过饱和。

可容纳 14 人的地方排名第一(最高供需比),但与容纳 2 或 3 人的地方相比,预订数量很低(只有 83 个预订)。

为 2 或 3 个人租一个地方会给主人带来相当不错的固定租金。

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

Photo by Priscilla Du Preez on Unsplash

供应和需求—2 至 3 人的卧室配置

因此,让我们把重点放在 2 到 3 人的租赁物业上,因为超过一半的人会在这种规模的团队中旅行。这些客人喜欢一间卧室还是两间独立的卧室?

适用于 2 人的 Airbnb 卧室配置:

适用于 3 个人的 Airbnb 卧室配置:

大多数人喜欢一间卧室。

大多数人喜欢一居室,不到 1%的人喜欢两居室。所以对于 2 人或 3 人的群体,他们更喜欢 1 间卧室。但这可能是由于目前 2 居室房产的供应量很低。

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

Photo by Christopher Jolly on Unsplash

哪些因素很重要?

有好的收视率对 Airbnb 的主持人来说很重要。让我们比较不同因素如何影响总体评分:

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

良好的沟通会影响整体评分和入住率

沟通总体评分的相关性最高。西雅图(也许其他地方也一样)的主人需要反应灵敏、友好,因为良好的沟通往往会获得较高的总体评价。良好的沟通也直接影响签到评分。

拥有良好的总体评级是否意味着上市将带来丰厚的财富?

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

拥有良好的总体评级与预计收入的正相关性非常小。而且有好的收视率对主持人定的价格几乎没有影响。

但是,强烈建议您获得良好的总体评分。

舒适

这是西雅图提供这些便利设施的机场数量:

互联网、暖气和厨房是西雅图的必需品。

烟雾探测器?我刚刚了解到,自 1973 年以来,华盛顿州建筑法规要求所有住宅安装烟雾探测器。

摘要

所以,下面是这篇文章的摘要:

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

笔记本

查看本文中使用的代码!

[## 数据科学家:21 世纪最肮脏的工作

40%的吸尘器,40%的看门人,20%的算命师。

towardsdatascience.com](/data-scientist-the-dirtiest-job-of-the-21st-century-7f0c8215e845)

嗨!,我是叮当。我喜欢构建机器学习项目/产品,我在走向数据科学上写了它们。在媒体上关注我或者在 LinkedIn 上联系我。

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

悉尼的 Airbnb

原文:https://towardsdatascience.com/airbnb-in-sydney-an-exploratory-data-analysis-ec91334e4780?source=collection_archive---------33-----------------------

用 Python 进行探索性数据分析

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

Photo by Holger Link on Unsplash

介绍

这是我作为一名有抱负的数据科学家提高技能时写的第一篇文章,我希望以后会有很多文章。

我在寻找一个有趣的数据集,它符合几个条件。

  • 是完整的,需要有限的转换或清理
  • 提供了学习一些基本 python 包和在地图上可视化数据的机会
  • 与我住的地方相关,这意味着我可以提供一些专业知识

代码可以在我的 Kaggle 笔记本这里找到。

数据和灵感

我在 Insideairbnb.com 的上找到了数据,这是一套独立的、非商业的工具和数据,用来探索 Airbnb 在世界各地的城市中的实际使用情况。

Sarang Gupta 和他的团队对纽约市 Airbnb 数据集进行了极其彻底的分析,这给了我灵感和指导。

Airbnb 的增长

2009 年 2 月 22 日,悉尼的第一套出租房屋挂牌出售。这是亚历山大附近的整个公寓。在接下来的十年里,Airbnb 已经发展到超过 35,900 个房源。

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

虽然这种增长是显著的,但有明显的迹象表明在放缓2015 年似乎是悉尼平台的高水位。从那以后,每年增加的房源越来越少,这似乎是一个稳步下降的趋势。

2019 年的数据并不完整,但如果趋势可以预测的话,我预计 Airbnb 将经历其迄今为止最糟糕的一年,并在上市数量增长方面达到 2013 年之前的水平。

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

也许悉尼的供应已经接近 Airbnb 的顶峰。

列表类型

Airbnb 以其不同寻常的租房体验而闻名。在数据中,我找到了一个谷仓、一个蒙古包、一个帐篷和一个洞穴的租金。然而,这是个例外,悉尼的大多数房源都要主流得多。

超过 26,000 份房源是针对整个住宅/公寓的,占可用租金的三分之二。其中14000房源为整栋房源。包间约占13000房源。从下面的图表可以看出,合租房间在悉尼并不常见。

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

热门街区

房源大多在悉尼 CBD 及周边地区(9500+),其次是东郊(8000+),以及北部海滩 (5000+)。

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

Photo by Simon Rae on Unsplash

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

房源最多的街区是邦迪海滩(1600+) 紧随其后的是曼利(1500+)

这并不特别令人惊讶。大多数房源都位于悉尼顶级景点所在的街区,或者靠近中央商务区。

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

承受能力

旅行者被 Airbnb 吸引的原因之一是其实惠的价格。悉尼的平均租金是 202 美元一整套公寓,485 美元一整套房子。

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

在价格方面,数据中有一些异常值,所以我把剩下的分析集中在房源最多的街区(前 20 名)。

这将数据集减少到大约 15,500 个列表。我发现这个子集更有助于衡量支付能力,因为它与悉尼最受欢迎的街区有关。

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

雷德费恩和纽敦等市中心街区提供了最实惠的住宿选择。然而,当你靠近中央商务区或海滩时,平均。房价上涨了不少。

乍一看,这些价格似乎并不比酒店便宜。我在谷歌上快速搜索了一下,找到了从每晚 89 美元到 200 美元不等的预算选项。

Airbnb 真的比酒店便宜那么多吗?我不完全相信。

体验

Airbnb 长期以来一直在推这种像当地人一样体验城市的形象。这个想法是,你的主人可以作为你在这个城市的向导,这是酒店或旅行社无法做到的。原则上,我相信这个理论,所以想看看客人对他们的租赁有什么看法。

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

Photo by Rose Lamond on Unsplash

他们快乐吗?他们如何评价他们住的酒店?

对数据的初步浏览显示,大多数客人通常对他们的租赁非常满意。分数高达 90 多分,对我来说,这表明审查过程中存在一些固有的偏见。

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

也许客人会因为留下平庸或负面的评价而感到“内疚”。以我的经验来看,酒店评论倾向于更少偏见,更具代表性。我想知道 Airbnb 是否正在考虑如何克服他们的评论数据中似乎存在的固有偏见。

我不认为这很容易。毕竟,想要有礼貌是人之常情。

人气

Airbnb 不会公开披露预订数据。然而,Airbnb 的“旧金山模式”中的使用了如下修改后的方法:

  • 50% 的审核率用于将审核转换为预计预订。****

我用同样的方法来估算预订量。

在一个非常高的水平上,我们可以估计需求已经大幅增长,预订数量几乎比去年同期翻了一番。在 2018 中,平台上预计有 40 万份预订**。**

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

入住

我想知道随着上市数量的增加,这个平台有多受欢迎。我还想估计需求方面的潜在增长机会。

我将评论数据和列表数据结合起来,做出了以下假设。

  • 每年每家酒店可入住 365 晚。我承认这是一个大胆的假设,但它是估算入住率的一种简便方法。
  • 根据 2 的规定,每次预订的最低住宿天数。我选择中值来消除数据中的异常值。
  • 每次预订的客人数1 。我再次选择中值,因为它对数据中的异常值更有弹性。

快速浏览一下,我们可以观察到占用率每年翻一番,这代表了一个确定需求或平台在旅行者中受欢迎程度的代理。

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

然而,似乎有一个明显的机会来提高的入住率。至少目前,供应似乎超过了需求。

客观地看,悉尼在 2018 年接待了近1480 万游客,其中只有 3% 选择住在 Airbnb。

关闭思路

自成立以来,Airbnb 迅速颠覆了旅游业。毫无疑问,它是当今世界上最有价值的私有公司之一。

在悉尼,似乎至少在目前,供应已经达到某种平稳状态,该平台每年增加的新房源越来越少。

另一方面,需求继续以狂热的速度增长,没有显示出任何放缓的迹象。

随着悉尼预计在 2019 年接待超过 1500 万游客,机会在于说服这些游客以他们的酒店房间换取像当地人一样生活的机会。

西雅图 AirBnB 房源:更深入的观察

原文:https://towardsdatascience.com/airbnb-listings-in-seattle-a-deeper-look-4fc4dad3e34e?source=collection_archive---------10-----------------------

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

Source: Wikimedia

AirBnB 彻底改变了人们寻找住宿的方式。它让人们向游客敞开家门,住在比老一套单调的旅馆有趣得多的地方。

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

在本文中,我们将分析西雅图的 AirBnB 房源。这个数据是 AirBnB 发布的,发布在 Kaggle 上。分析的 AirBnB 西雅图数据集由 3 部分组成:

  1. 列表及其详细信息
  2. 每天的可用性信息
  3. 每个列表的评论

在浏览数据集后,我发现了 3 个真正引起我兴趣的问题。我想更深入地研究数据集,以了解同样的情况。

执行下面总结的所有分析的代码托管在 Github 上。

提问

  1. 通常什么时候有房源
    答:是只有周末有房源,还是整个星期都有房源?一年中的几个月是否有明显的季节性?
    这个问题的灵感来自于 Josh Bernhard 的博客对西雅图和波士顿 Airbnb dat a 的分析
  2. 房源可以出租几天以上。他们可以租一个星期甚至一个月!租房一周或一个月的典型折扣是多少?
  3. 西雅图有多个社区。我们能观察到它们之间的一些变化吗?大部分房源集中在哪里?
    2。街区之间的价格分布是否存在偏差?
    3。某些社区的房源通常比其他社区更容易获得吗?

问题 1:列表可用性

1.a 房源通常只在周末或一周中的特定日子提供吗?

当我们使用星期几透视可用性数据时,我们得到以下结果:

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

我们看到,至少在西雅图,一周中的每一天几乎没有变化。

事实上,如果我们要分析邻居级别的可用性/一周中的某一天,同样适用。没有一个邻域显示出一周中的任何一天有任何变化。

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

Avg availability/day of the week for different neighborhoods in Seattle

1.b 一年中的几个月是否有明显的季节性?

当我们取西雅图每个月的列表的平均可用性时,我们得到如下结果

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

Average monthly availability for listings in Seattle

这个挺有意思的。这里有三个主要观察结果:

  1. 接近年底时达到峰值
    一个可能的解释是,接近年底时,更多的人会去度假,更高的需求反映在更高的可用性上
  2. 一月份的大幅下降
    这一次非常有趣,尤其是因为 2 月份的供应量反弹至接近其他月份的水平。我猜在年底的高峰期过后,人们会利用这段时间来重新进货、修复、升级等等。
  3. 七月和八月
    西雅图以多雨闻名。七月和八月是西雅图一年中最干燥和最温暖的月份。我相信这可能意味着更多的人倾向于在这两个月去城外度假。较低的需求可能导致可用性下降,列表所有者可以利用这段时间对其列表进行升级或修复等。

问题二:租房一周或一个月的典型折扣是多少?

在查看周租或月租的折扣之前,你必须记住,并不是所有的房源都允许出租这么长的时间。事实上,只有大约 50%的房源列出了周租金,只有大约 40%的房源列出了月租金。

每周和每月折扣的分布如下

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

Distribution of weekly and monthly discounts across Seattle

从上面的图表中突出的第一件事是,每周和每月的折扣可以是负数!

人们通常根本不会想到这一点。对负折扣的一个合理解释是,维持一个设施一周或一个月可能需要更多的努力。再次必须记住,只有少数上市提供周租或月租。

现在让我们来看看一些数字

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

Weekly and monthly discount statistics

上面的一些观察结果:

  1. 平均每周折扣远低于每月折扣,这是可以理解的。人们会认为月租的折扣比周租的折扣高。
  2. 周折扣和月折扣差异很大
    月折扣可高达 66%!!而且周折扣可以高达~24%。从负面来看,两者都可能接近-10%

问题 3 :西雅图不同社区的差异

3.a 大多数房源集中在哪里

数据集中提供了两个属性来指示列表的位置。一个是邻里,一个是邻里团体。后者将城市分成 17 个区,而前者将城市分成 87 个区。这里我们使用邻居组属性来查看列表在城市中的分布情况。展望未来,我们将会交替使用邻域和邻域组。

每个邻域组中的列表数量如下:

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

为了了解这些地区的位置,让我们参考西雅图市政府办公室的西雅图地图

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

Seattle city map. Source: Office of the city clerk, Seattle

不包括“其他社区”,排名前五的社区中有四个位于西雅图市中心。在某种程度上,这似乎很自然。离市中心越近,人口密度越大,商业空间越集中。这两种情况都可能意味着该地区对房源的需求更大,因此房源数量也会更多。

3.b 不同社区的价格分布是否存在偏差?

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

让我们来看看西雅图各个社区的平均房价

我们还是能看到西雅图市中心的地方定价高了一点,这又是蛮期待的。通常情况下,越靠近市中心,房地产价格和生活成本越高,这在数据中有所反映。

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

Avg price/bed for listings in different neighborhoods in Seattle

然而,这种分析在某一方面并不公平。将 3 张床的价格与单人床的价格进行比较是不公平的。虽然很难创建一个完美的指标来考虑所有这些因素,但让我们从价格/床位开始

让我们计算一下价格/床位,看看它的分布如何。和我们之前看到的类似吗?

当按价格和价格/床位比较社区时,前 5 个社区中有 3 个重叠。此外,西雅图中部仍然显示在顶部。因此,人们可以说价格和价格/床位在不同的社区遵循相同的模式。如果将上述分析扩展到价格/卧室,就会看到类似的结果。

3.c 某些社区的房源比其他社区的房源更多吗?

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

Avg num days available per neighborhood

如果我们计算每一个街区的可用房源的平均天数,我们会得到左边的数据。

可用性最低的 5 个地区中有 4 个位于西雅图市中心。

这里可以形成 3 个不同的桶:

高可用性:> 260
中可用性:240–260
低可用性:< 240

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

可以观察到低可用性存储桶的所有成员都来自西雅图中部。

注:以上列表不包括“其他社区”

结论

在这篇文章中,我们查看了来自西雅图的 AirBnB 数据。特别是,我们分析了 3 个方面——可用性模式、每周/每月折扣和邻近地区的变化。

我们注意到每个方面都有许多有趣的模式,有些我们能够解释,有些需要更多的分析才能更好地理解。高层次的要点是:

  1. 西雅图的房源在年底达到高峰,在 1 月、7 月和 8 月跌至低谷。它们在工作日和周末同样可用。
  2. 租赁一周或一个月的房源会有一些折扣,但差异很大,甚至可能是负数。
  3. 大多数房源都集中在西雅图市中心。那里的价格最高,可用性也最低。

这个数据集非常有趣,让人不禁要问几个问题。未来分析的一些问题包括:

  1. 影响房子定价的主要因素是什么?
  2. 人们对西雅图的房源写什么样的评论?

使用线性回归(Scikit-Learn 和 StatsModels)进行 Airbnb 价格预测

原文:https://towardsdatascience.com/airbnb-price-prediction-using-linear-regression-scikit-learn-and-statsmodels-6e1fc2bd51a6?source=collection_archive---------6-----------------------

Airbnb 的租赁价格是由什么决定的?床位数?允许的客人数量?复习分数?取消政策?

这个问题的答案提供了有趣的见解,可以使寻求利润最大化的主机受益。为了更深入地探究影响 Airbnb 租赁价格的可能因素,我用 Python *中的 Scikit-Learn 和 StatsModels 使用了各种线性回归模型。*在这篇文章中,我将重点介绍我用来回答这个问题的方法,以及我如何利用两个流行的线性回归模型。

**主要问题:**什么预测 Airbnb 租房价格?

**数据:**约 74k Airbnb 租房的 Kaggle 数据集。该数据集包括许多功能,如:床位数、允许的客人数、描述、评论数等等。有关特性和数据的更详细预览,请参见数据集此处

**方法/模型:**这个问题属于回归和预测的范畴,所以使用了线性回归模型。我使用 StatsModels 生成一个起点普通最小二乘模型,使用 Scikit-Learn 生成一个 LassoCV 模型。

步骤 0:思考问题和数据集

在一头扎进数据和产生大的相关矩阵之前,我总是试图思考这个问题并对特征有一个感觉。我为什么要做这个分析?目标是什么?特征和目标变量之间的关系有什么意义?

步骤 0:导入包

# Import packages
import pandas as pd
import patsy
import statsmodels.api as sm
import statsmodels.formula.api as smf
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor
from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from sklearn.model_selection import train_test_split
from sklearn.linear_model import lars_path
from sklearn.linear_model import LinearRegression, Lasso, LassoCV
from sklearn.metrics import r2_score
import scipy.stats as stats# Visualization
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

步骤 1:探索性数据分析和熊猫模型准备

下面是一些我经常采取的一般数据清理和 EDA 步骤。我没有包括一些更细微的数据集特定步骤。

  • 我从 pd.describe()和 pd.info()开始,了解丢失了哪些数据以及每个特性的值
  • 清理了包含空格的功能名称
  • 将一些功能与许多类别相结合。例如,“property_type”有 25 个不同的类别(这是使用 pd.value_counts()检查的)。我把最低的 23 个组合成了“其他”类别。这也是在其他一些特性上完成的。这很有帮助,因为我没有从虚拟代码中创建 20+个新列。
  • 删除分布非常不均匀或不会被使用的功能。比如‘host _ has _ profile _ pic’有 32k 个“是”,只有 97 个“否”。这在模型中没有用。
  • 缺失数据的进一步检查。对于我认为重要的特征(例如“点评分数评级”),我用中间值填充。注意-这里的插值可能比用中值填充更微妙。例如,我可以用他们自己的中间值填充租赁的每个子类(公寓、房子、其他)。
  • 检查与 pandas (pd.corr())和 Seaborn heatmap 的视觉相关性:特征和结果之间,以及特征本身之间。
model_df.corr() # Whole correlation matrix
model_df.corr()['log_price'] # Check correlations with outcome onlysns.heatmap(model_df.corr(), cmap="seismic", annot=True, vmin=-1, vmax=1);
  • 各种分类变量的虚拟代码(如“取消 _ 政策”、“财产 _ 类型”)。确保设置 drop_first=True,以便不包括引用列。注意-如果特征是分类的,但只有两个选项(例如“男性”、“女性”),则不需要手动生成虚拟代码,只需确保它是一个整数(0,1)。
# Example dummy coding for 'cancellation_policy'
model_df = pd.get_dummies(model_df, columns=['cancellation_policy'], drop_first=True)
  • 确保目标变量(’ log_price ')是:正态分布,峰度和偏度是正态的。
sns.distplot(model_df['log_price'], kde=True,);
fig = plt.figure()
res = stats.probplot(model_df['log_price'], plot=plt)
print("Skewness: %f" % model_df['log_price'].skew())
print("Kurtosis: %f" % model_df['log_price'].kurt())

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

步骤 2:在 StatsModels 中运行 OLS,并检查线性回归假设

StatsModels 中的 OLS 模型将为我们提供最简单的(非正则化)线性回归模型,作为我们未来模型的基础。从简单开始,然后增加复杂性总是好的。此外,它还提供了一个很好的汇总表,很容易理解。这是检查线性回归假设的好地方。

  • Patsy 创建特征矩阵。Patsy 很好,因为它用简单的 R 语法创建了我们的模型。默认情况下,它还会在您的模型中添加一个截距(如果您不使用 Patsy,请确保手动添加一个截距)。
  • 训练/测试分割数据。80%将用于培训,20%将用于测试(稍后将详细说明为什么没有验证拆分)。
  • 运行 OLS 模型,检查汇总表。

要从 OLS 摘要表中检查的关键指标:

  • R Adjusted :告诉你模型中的预测者解释了你的结果(租赁价格)的多少差异。
  • 对数似然:这个模型在新数据上表现相同的可能性有多大。您希望这个数字接近于零(很可能是负数)。
  • P 值:检查每个变量。低于 0.05 是标准阈值,让您了解哪些对模型有显著影响。
  • 德宾-沃森:有自相关吗?这应该是两点左右。
  • 也可以查看综合条件号以获得模型质量的整体感觉。

获取方差膨胀因子(VIFs)

  • Vif不是从上面的 OLS 表中产生的,因此您应该手动提取它们。
  • 它们是检查模型中多重共线性的好方法。多重共线性是指要素之间高度相关。线性回归假设您的数据没有多重共线性,因此请确保检查这一点。你希望你的波动率指数低于 4。
# Check for VIFs of each feature, then save to its own DF
vif_census = pd.DataFrame()
vif_census[“VIF Factor”] = [variance_inflation_factor(X_census.values, i) for i in range(X.shape[1])]
vif_census[“features”] = X_census.columns

检查模型的残差

  • 线性回归的另一个假设是残差是正态分布的。你可以很容易地用图来验证这一点。在下图中,你可以看到有一些传播(特别是左上),但残差大多落在中线附近。
# Use statsmodels to plot the residuals vs the fitted values
plt.figure(figsize=(12,8))
plt.scatter(fit_census.predict(), fit_census.resid); # print resids vs predictions
plt.title("Residuals plot from OLS Model")
plt.xlabel("Predicted Values")
plt.ylabel("Residuals")
plt.savefig('LR_Residual_Plot')

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

第三步:拉索夫

接下来,我使用正则化线性回归模型。这些类型的模型对变量施加惩罚,并有助于降低模型的复杂性。正则化有助于偏差-方差权衡,并有助于模型对新的测试数据更具普遍性。参见这篇文章对正规化的一个很好的概述。

  • 由于正则化模型惩罚变量,我们需要将它们标准化,这样它们都以相同的比率被惩罚。这是通过对数据应用标准定标器来实现的。把标准化想象成把所有的特性放在同一个平面上,并给它们一个 z 的分数。
# Standard scale the datastd = StandardScaler()
std.fit(X_train_census.values) # only std.fit on train set
X_tr_census = std.transform(X_train_census.values)
X_te_census = std.transform(X_test_census.values)

型号类型快速说明

  • 现在我们准备运行我们的正则化模型。我们是要用套索,脊,弹力网,还是三者都用?我只在这里使用套索,不会去详细说明,但套索和山脊惩罚变量/系数不同,所以每个可以用来获得不同的见解。简而言之,Lasso 惩罚了一些系数,以至于它们变为零并被排除在模型之外。这基本上是一个自动的特征选择。Ridge 通过“缩小”系数和“抹黑”它们的影响来惩罚系数。当您希望平稳地处理多重共线性时,岭是很好的选择。ElasticNet 本质上是两者的结合。Scikit-learn 的网站上有关于所有这些的很好的文档。这三者的代码本质上是相同的。

步骤 3a:拉索夫

  • 我使用 CV 版本的 Lasso,因为它们有内置的交叉验证。这意味着您不必在新的数据集上手动验证,而是由 CV 模型为您进行训练和交叉验证。注意前面(训练-测试分割代码)我只做了 80-20 分割——没有留出验证数据,而是将整个 80 用于训练和验证。
  • 我喜欢先运行 LassoCV,因为它固有的特性选择。从具有 0.0 beta 系数的模型中得出的特征可能不是强特征,并且可以在以后被移除。
# Run the cross validation, find the best alpha, refit the model on all the data with that alphaalphavec = 10**np.linspace(-2,2,200)
lasso_model_census = LassoCV(alphas = alphavec, cv=5)
lasso_model_census.fit(X_tr_census, y_train_census)
  • 在上面的代码中,我做了三件事:1)创建一个将放入 CV 模型的 alpha 数组 2)使用设置为步骤 1 的 alpha 数组的 alpha 参数初始化模型,并设置五重交叉验证 3)拟合训练数据。
  • 在这一步之后,我们可以检查每个特性的 beta 系数,以及访问关于模型的一些重要信息。

关于模型比较指标的简要说明

  • 有几种方法可以比较回归模型,但这里我用的是 R 和平均绝对误差(MAE)。r 是我们用模型计算的结果变量的方差的度量。MAE 是我们模型中平均误差量的度量。这很容易解释,也是一个很好的分享指标。例如,在我预测 Airbnb 租赁价格的模型中,如果我的 MAE 是($)20,那么在进行预测时,我可以说我的模型误差了大约 20 美元。
# Print feature name zipped with its beta
lasso_betas = list(zip(X_train_census.columns,
lasso_model_census.coef_))# R2 of Training set
lasso_model_census.score(X_tr_census,y_train_census)

如果满意,运行测试数据的时间。如果没有,就回去做一些特色工程。如果你满意,以下步骤。

# Predict model on test data
y_census_pred = lasso_model_census.predict(X_te_census)# R2 of test set using this model
r2_score(y_test_census, y_census_pred)#Mean Absolute Error (MAE)
def mae(y_true, y_pred):
    return np.mean(np.abs(y_pred - y_true))mae(y_test_census, y_census_pred)# Plot
plt.scatter(y_test_census, y_census_pred)
plt.plot([0,10],[0,10],color='red')
plt.grid(True)
plt.title('Predicted vs. Actual Rental Price (log) with LASSO CV')
plt.ylabel('Rental Price (log) Predicted')
plt.xlabel('Rental Price (log) Actual');

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

  • 这里我们可以看到,我们的模型是体面的,有一些低于性能时,租金价格高。这可能是因为在这个范围内没有太多的。

使用 LARS 路径确定哪些功能最重要

  • LARS path 是一个很好的工具,可以用来查看 LassoCV 模型中哪些特性最重要/最不重要。简单来说,在下图中,首先从零(正或负)变化的特征是最重要的,最后变成非零的特征是最不重要的。也就是说,出现在左边的特征是最重要的。这也反映在这些特征的β系数中。
print("Computing regularization path using the LARS ...")
alphas, _, coefs = lars_path(X_tr_census, y_train_census, method='lasso')# # plotting the LARS path
xx = np.sum(np.abs(coefs.T), axis=1)
xx /= xx[-1]
plt.figure(figsize=(10,10))
plt.plot(xx, coefs.T)
ymin, ymax = plt.ylim()
plt.vlines(xx, ymin, ymax, linestyle='dashed')
plt.xlabel('|coef| / max|coef|')
plt.ylabel('Coefficients')
plt.title('LASSO Path')
plt.axis('tight')
plt.legend(X_train_census.columns)
plt.show()

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

概括地说,这里我介绍了我喜欢在数据探索和清理中采取的一些基本步骤(还有更多的事情可以做,参见这篇文章以获得更详细的 EDA 技巧)。此外,我运行了一个简单的 OLS 回归和一个正则化套索模型。在这些步骤之后,人们可以运行 RidgeCV 和/或 ElasticNetCV 并比较模型。

感谢您的阅读,如果有我需要补充的地方,请告诉我。

Airbnb 租赁房源数据集挖掘

原文:https://towardsdatascience.com/airbnb-rental-listings-dataset-mining-f972ed08ddec?source=collection_archive---------2-----------------------

对 Airbnb 数据的探索性分析,以了解纽约市的租赁情况

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

自 2008 年成立以来,Airbnb 经历了飞速发展,其网站上的租赁数量每年都呈指数级增长。Airbnb 成功地颠覆了传统的酒店行业,因为越来越多的旅行者,不仅是那些希望物有所值的旅行者,还有商务旅行者,都将 Airbnb 作为他们的首选住宿提供商。

纽约市一直是 Airbnb 最热门的市场之一,截至 2018 年 11 月,已有超过 52,000 个房源。这意味着每平方公里有 40 多所房屋被出租。在纽约的 Airbnb 上!人们或许可以将 Airbnb 在纽约的成功归因于酒店收取的高额费用,这主要是由该市过高的租金价格推动的。

在本帖中,我将对来自 Airbnb 网站内 的 Airbnb 数据集进行探索性分析,通过各种静态和交互式可视化来了解纽约市的租房情况。

分析已经用 r 做了,源代码可以在我的 Github 上找到:https://github.com/saranggupta94/airbnb

数据描述

数据集由三个主表组成:

  • listings -显示每个列表的 96 个属性的详细列表数据。分析中使用的一些属性有price(连续)、longitude(连续)、latitude(连续)、listing_type(分类)、is_superhost(分类)、neighbourhood(分类)、ratings(连续)等等。
  • reviews -嘉宾给出的 6 个属性的详细评价。关键属性包括date(日期时间)listing_id(离散型)reviewer_id(离散型)comment(文本型)。
  • calendar -通过列表提供下一年的预订详情。共有四个属性,包括listing_id(离散型)date(日期型)available(分类型)price(连续型)。

快速浏览一下数据可以发现:

  • 纽约市共有 50,968 个唯一列表。2008 年 4 月,纽约曼哈顿哈莱姆区的第一次租金上涨。
  • 从那时起,客人们已经写了超过 100 万条评论。
  • 房源的价格从每晚 10 美元到 10,000 美元不等。)每晚。标价为 10,000 美元的列表位于布鲁克林的绿点;阿斯托利亚,皇后区和曼哈顿上西区。

Airbnb 在纽约的迅速崛起

Airbnb 的成功取决于其广泛的主机网络,以及使用其服务寻找度假租赁的客人数量。纽约市在这两个方面都出现了指数级增长——独特房源的数量和在 Airbnb 上预订住宿的游客数量。

下面的动画展示了 2008 年至 2018 年 Airbnb 在该市的主机网络增长情况。正如你所观察到的,这个城市所有行政区的房源数量都在快速增长,如杂乱的蓝点所示。

Number of Airbnb listings over the years

2008 年,Airbnb 在纽约的第一个上市地点是在哈莱姆区,此后的增长一直呈指数级。头几年增加了大约 600 处房产,大部分在曼哈顿和布鲁克林。曼哈顿市中心和布鲁克林附近的区域一直都有很多 Airbnb。自那以后,上市公司的数量每年大约翻一番。到 2015 年,曼哈顿的每个街区都有多个房源。有趣的是,布朗克斯区的房源非常少,以至于在动画中可以看到曼哈顿-布朗克斯区的边界,因为房源的突然减少。自 2016 年以来,Airbnb 房源已经扩散到斯塔滕岛的部分地区。预计到 2020 年将有 7 万套房产,这应该不远了。

我无法获得这些年来在 Airbnb 上预订的数量数据。相反,我用“评论数量”来代表 Airbnb 的租赁需求。根据该公司的说法,大约 50%的客人会评论主机/列表,因此研究评论的数量将会给我们一个很好的需求估计。

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

与主机数量类似,接受评论的独特房源数量多年来稳步增长,表明对 Airbnb 租赁的需求呈指数级增长。

要获得所有列表的详细视图,请查看下面我设计的交互式 RShiny 应用程序,它允许用户根据各种参数过滤列表。下面是 RShiny 应用的截图。你可以通过链接试试实际的应用程序:【https://ankitpeshin.shinyapps.io/listings/ (抱歉,加载需要几秒钟)

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

Airbnb Property Finder: RShiny app

位置,位置,位置!:了解纽约的房地产市场

Airbnb 用户根据位置、清洁度和一系列其他参数对他们的住宿进行评级。在这里,我处理位置得分数据。查看每个街区的平均位置得分会很有趣。位置得分必须是该社区吸引力的坚实指标。高评级的社区往往具有更好的连接性(地铁站),往往更靠近城市热点(时代广场、帝国大厦、华尔街)。

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

曼哈顿在市中心地区(尤其是中央公园以下)获得了最高的位置分数。在斯塔滕岛,靠近州立公园的区域位置得分最高。靠近曼哈顿的布鲁克林区往往有更高的位置评级。观察布鲁克林的纽约地铁系统,有趣的是观察到高度评价的区域与地铁线路的存在相对应。地铁线不去的布朗克斯也是如此。

上市成本在很大程度上与位置得分一致。高评级的位置也往往是最昂贵的。很明显,高评级的位置也往往是昂贵的(需求与供应)

然而,有趣的是发现一些异常值:I)。寻找高评级-低租金区域(两全其美):斯塔滕岛的州立公园区域(上图中讨论过)就是这样一个区域,尽管其位置评级最高,但租金往往相当低。另一个这样的好去处位于布鲁克林的东北部。ii)。寻找低评级-高租金地区(两个世界中最糟糕的):斯塔滕岛的榆树公园地区租金高得不成比例,但位置得分非常低。在靠近北布朗克斯区的地方可以找到其他这样的地方。

现在让我们探索一下纽约市的房源类型。下图显示了各区不同列表类型的分布情况。

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

除了斯塔滕岛,公寓风格的房源在所有四个街区都是最多的。斯塔滕岛的“房子”式房产多于“公寓”。这似乎很直观,因为斯塔滕岛人口稀少,因此与其他行政区相比有更多的“空间”。

一切都是为了钱:分析需求和定价

在这一部分,我将对 Airbnb 租赁进行需求和价格分析。我将观察自 2008 年 Airbnb 成立以来的几年以及一年中几个月的需求,以了解季节性。

如前所述,由于预订数据不可用,我将使用评论数量作为 Airbnb 租赁需求的代理。根据 Airbnb 声称 50%的客人会对他们的住宿进行评论,假设评论的数量与租赁需求相对应。此外,客人必须在入住两周内提供点评,因此点评的数量可以很好地估计特定时期的需求。

通过“Airbnb 有多受欢迎?”之前显示的图表(为了便于参考,我在下面再次提供了它),可以观察到评论/需求数量的季节性模式。每年都有需求的高峰和下降,表明某些月份比其他月份更忙。

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

从更细的层面来看,需求在 1 月份最低,并在 10 月份增长,然后开始下降,直到年底。

租房价格有季节性吗?让我们看看历年来的每日平均价格。

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

随着一年时间的推移,各上市公司的平均价格往往会上升,并在 12 月达到峰值。除了 11 月和 12 月的审查数量(表示需求)开始下降之外,该模式与审查/需求数量的模式相似。

我们还可以在图表上看到两组点,这些点描述了某些日子的平均价格比其他日子高。下面,我将绘制一个一周中各天平均价格的箱线图来理解这一现象。

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

正如我们所见,周五和周六比一周中的其他日子更贵,可能是因为住宿需求更高。

我将通过研究明年的入住情况来结束对这一部分的分析。使用表calendar中的数据,我将找出下一年的入住率,即截至 2018 年 11 月 3 日(收集数据的日期),已预订房源的百分比。我无法获得过去的入住率数据,因此无法研究实际入住率。

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

可以推断,一月往往是最安静的,随着一年的进展,入住率也在增加。这与对审查数量(表明需求)的分析结果密切相关,该结果显示了全年的增长趋势。

进入顾客的头脑:分析顾客评论

数据集为我们提供了大量的数据,但没有什么比他们的评论/反馈更有见地、更贴近客户。如果挖掘得当,它们可以告诉我们很多关于客户心态、他们的期望以及这些期望的满足程度。为了使最终结果有意义,评论文本数据需要大量的清理,例如,需要对单词进行词干处理,需要删除逗号-句号-百分比等,需要删除常见的英语单词和停用词等。有一百多万条评论,所以我对这些数据进行了随机抽样,在这个例子中是大约 30k 条评论。

对“云”这个词的分析显示了有趣的趋势;位置似乎是关键,因为单词“邻居”、“位置”、“区域”在单词“云”中非常突出。像“地铁”、“步行”这样的交通方式也经常被提及。Airbnbs 是短期租赁,然而人们似乎强调他们住宿的舒适性,像“厨房”这样的词告诉我们,许多人宁愿做饭也不愿出去吃饭。附近的餐馆也可以找到。浴室和床,正如预期的那样,如果不是处于最佳状态,显然会成为交易的破坏者。“主机”一词被多次提及;表明了主人在塑造 Airbnb 体验中扮演的重要角色。

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

单词向量提供了一种有效的方法来找出与特定搜索项最接近的单词。使用评论数据,我构建了一个向量空间来构建相似单词的单词云,以获得有趣的见解。

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

第一个字云是为了“难受”这个字。类似于“不舒服”的词通常是那些经常与它连用的词,即不舒服的原因。“云”这个词正好说明了这一点——注意像“拥挤”、“拥挤”、“小”、“闷”和“杂乱”这样的词表明缺乏空间是最常见的抱怨之一。“热”、“潮湿”和“冷”是一些常见的温度问题。“满是灰尘”、“肮脏”、“不干净”的环境会促使人们写下负面反馈。很多感觉“紧张”、“不安全”、“压力大”;对于未来的租户来说,这显然是一个危险信号。

类似地,通过关键字“舒适”查询,我们希望看到导致积极体验的事情。突出的特点是像“安静”、“可步行”、“干净”、“一尘不染”等词,再次证明了环境、位置和清洁的重要性。有益的“主人”和“交流”会让你感到舒适。床单的干净程度和床的大小会给人留下决定性的印象。

看看这个闪亮的应用程序,它是对客户评论的词向量分析的扩展。你可以查询向量来找到“相似”的单词,并建立一个自定义的单词云。输入任何有效的查询词,并在词云中设置“最大字数”。一个有效的查询词应该出现在语料库中,否则它就不是词向量的一部分。

下面是一个截图,你可以通过链接试试实际的应用:https://ankitpeshin.shinyapps.io/wordcloud_generator/(允许它一些时间来加载)。

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

拥有超能力的主持人!:分析如何成为超级主持人

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

Airbnb 将“超级房东”的称号授予一小部分可靠的房东。这是一个激励计划,对房东、Airbnb 和他们的客户都是双赢的。superhost 通过更高的预订量获得了更多业务,客户获得了更好的服务,Airbnb 获得了满意的客户。

但是怎样才能成为超级主持人呢?Airbnb 的网站有一套必须满足的要求,以便成为一个。保持 50%以上的审核率,90%以上的回复率等。我们的发现,虽然大部分符合 Airbnb 的指导方针,但也显示出一些有趣的异常值。虽然大多数超级主机都处于高评级:高响应率区域,但我们也可以看到少数主机的响应率低于 75%(这违反了 Airbnb 设定的 90%+标准)。这只是很小一部分主机。收视率方面,几乎所有主持人的评分都在 80%及以上。

也就是说,大多数 Airbnb 主机位于高评级:高响应区域,但只有一小部分成为超级主机。所以很明显,成为超级主播需要的不仅仅是高收视率和高回复率。

总的来说,Airbnb 在纽约市出现了惊人的增长。上述分析强调了数据中的几个趋势,以概述 Airbnb 的市场。Airbnb 内部保存了全球其他几个主要城市的类似数据,我相信比较这些城市之间的模式和趋势会非常有趣。

在我的 Github 上检查源代码:【https://github.com/saranggupta94/airbnb

我目前正在纽约州的哥伦比亚大学攻读数据科学硕士学位。这个项目是作为探索性数据分析和可视化课程的一部分完成的。特别感谢 Ankit Peshin 和 Ankita Agrawal 的贡献。

欢迎在http://www.columbia.edu/~sg3637/查看我的其他项目,或者在 saranggupta94@gmail.com给我留言

气流和超级查询

原文:https://towardsdatascience.com/airflow-and-superquery-9acc87c0398d?source=collection_archive---------12-----------------------

使用 SuperQueryOperator 实时监控您的大查询开销

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

Photo by Soheb Zaidi on Unsplash

“费用是多少?”这个问题在科技界被问得如此频繁,以至于一家小型初创企业的每个人在被问到这个问题时都会微微颤抖。答案总是:“我们不确定”。

在数据工程领域,调度工作流的最佳工具之一是 Apache Airflow 。这个工具让许多企业摆脱了僵化的 cron 调度,在有向无环图(Dag)的公海上驾驭大数据浪潮。

当然,这意味着大量数据被移入和移出数据库,伴随着这一辉煌的运动,往往会产生不可避免的成本。

一个这样的数据库,你可以称之为超级计算机,叫做谷歌大查询。它是谷歌云产品的旗舰,支持 Pb 级的数据处理。它非常善于让您少担心数据库基础设施的能力,而更多地担心您的分析质量和需要解决的数据流问题。

BigQuery 要考虑的一个关键因素是,任何个人或组织对提高在这个平台上扫描数据的成本有多开放。即使是最精明的数据工程师也会焦虑地告诉你,他们在扫描他们并不真正想要的数据时犯了错误,并使他们的业务每月分析账单超出了预算。

在步骤 superQuery 中。superQuery 提供的理念是,你不必担心你的成本,因为你有你需要的所有信息和一些保障措施,让你有机会做出明智的决定。

了解气流成本

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

当您的气流 Dag 愉快地搅拌并将数据推送到您选择的处理系统时,大量日志记录在后台发生。气流日志易于访问,易于阅读,并让您很好地了解 DAG 正在做什么。如果日志文件还可以显示查询执行计划的信息,特别是成本和扫描的总数据是多少,这不是很好吗?肯定会的!大概是这样的:

--------------------------------------------------------------------
Starting attempt 1 of 4
--------------------------------------------------------------------

[2019-03-11 21:12:02,129] {models.py:1593} INFO - Executing <Task(SuperQueryOperator): connect_to_superquery_proxy> on 2019-03-01T00:00:00+00:00
[2019-03-11 21:12:03,836] {superq_operators.py:54} INFO - Executing: #standardSQL
SELECT COUNT(testField) FROM `mydata.PROD.myTable`;
[2019-03-11 21:12:03,844] {logging_mixin.py:95} INFO - [2019-03-11 21:12:03,843] {base_hook.py:83} INFO - Using connection to: id: mysql_default. Host: superproxy.system.io, Port: 3306, Schema: None, Login: XXXXXX, Password: XXXXXXXX, extra: {}
[2019-03-11 21:12:15,172] {superq_operators.py:68} **INFO - ((
'{
   "startTime":1552331525642,
   "endTime":1552331534624,
   "executionTime":"8988",
   "bigQueryTotalBytesProcessed":****26388279066****,
   "bigQueryTotalCost":"0.12",
   "superQueryTotalBytesProcessed":0,
   "superQueryTotalCost":"0.00",
   "saving":0,
   "totalRows":"1",
}**', '', '1', 'true'),)
[2019-03-11 21:12:17,121] {logging_mixin.py:95} INFO - [2019-03-11 21:12:17,119] {jobs.py:2527} INFO - Task exited with return code 0

这个日志块告诉您,您在 Airflow 中的 BigQuery 操作符扫描了 24Gb 的数据,花费了您 0.12 美元。简单。您还可以在第三方工具或 bash 脚本中解析日志文件,并创建扫描 BigQuery 数据的 Dag 的开销汇总。

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

这一切是如何运作的?

SuperQuery 使用 MySql 代理来实现普遍连接,并提供一个 Sql 接口来获取信息。

下一步需要什么:超级查询运算符

为了获得与上述相同的功能,需要执行以下步骤:

  1. 将 superquery 插件添加到 Airflow,以便使用 SuperQueryOperator。
  2. 订阅 superQuery 试用版,获取 superQuery MySql 代理的登录信息
  3. 使用下面提供的 DAG 测试您与代理的连接。
  4. 当您想要使用这个功能时,在您自己的 Dag 中用 SuperQuery 操作符替换您的 BigQuery 操作符。

使用超级查询运算符

这是超级查询操作符的界面:

TEST_SQL = """#standardSQLSELECT COUNT(*) FROM `mydata.PROD.myTable`;"""SuperQueryOperator( *task_id*="connect_to_superquery_proxy", *sql*=TEST_SQL, *database*="", *explain*=True,  # False if you don't want information *dag*=dag)

以下是操作员的代码,您应该将其复制到 Airflow 中的plugins 文件夹中:

下面是一些测试 SuperQuery 连接的代码:

总之

这篇文章描述了当您连接到 BigQuery 并从 big query 实现气流任务时,如何获得气流成本的视图。超级查询代理的使用可以扩展到包括各种详细的执行计划信息,并利用系统提供的好处。

快乐的成本监控(和节约)!

内容概要:本文深入探讨了AMESim仿真平台在电动汽车(EV)热泵空调系统设计与优化中的应用。首先介绍了AMESim的基础建模方法,如构建制冷循环模型中的压缩机、蒸发器和冷凝器等组件,并详细解释了各部件的工作原理及其参数设定。接着重点阐述了EV热泵空调系统的特殊之处,即不仅能够制冷还可以在冬季提供高效的制热功能,这对于提高电动汽车在寒冷条件下的续航里程和乘坐舒适性非常重要。文中给出了几个具体的案例,包括通过改变压缩机运行频率来进行性能优化,以及针对低温环境下热泵系统的控制策略,如四通阀切换逻辑、电子膨胀阀开度调节等。此外,还讨论了热泵系统与其他子系统(如电池温控)之间的协同工作方式,强调了系统集成的重要性。最后分享了一些实用的经验技巧,例如如何避免仿真过程中可能出现的问题,怎样评估系统的整体性能等。 适合人群:从事汽车工程、暖通空调(HVAC)领域的研究人员和技术人员,特别是关注新能源汽车热管理系统的专业人士。 使用场景及目标:适用于希望深入了解电动汽车热泵空调系统特性的工程师们,旨在帮助他们掌握基于AMESim进行系统建模、仿真分析的方法论,以便更好地指导实际产品研发。 阅读建议:由于涉及到较多的专业术语和技术细节,建议读者具备一定的机械工程背景知识,同时配合官方文档或其他参考资料一起研读,以加深理解。
期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目),个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作业Python实现基于图神经网络的信任评估项目源代码+使用说明(高分项目)期末作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值