加密资产评估
数据科学家的生态系统概述
来源: Pixabay
注:此处无任何财务建议。本文仅供参考,不用于投资决策。
要点
- 加密协议及其本地资产提供了一个开放的、数据丰富的资产类别,具有风险规模的经济性和公开市场流动性的优势
- 我们仍然没有建立长期估值的标准,这提供了一个机会之窗
- 将加密协议建模为复杂系统是一个活跃的研究领域
- 分解价值链可以增加特定想法迷宫的迭代次数。这加速了产品市场契合度的集体发现。
- 投资该资产类别提供了不对称的机会
简介
作为一名数据科学家,很难不对加密生态系统的开放性感到兴奋。开放的知识和开放的数据意味着一个可以指导我们投资决策的洞见宝库。
至少,它是值得深入研究的,因为它采用了多学科的方法来研究我们如何改变我们如何协调人类活动。我们不仅可以了解如何改善我们的人类系统,还可以了解它们如何以及为什么以这样的方式运行。
主流的兴趣很大程度上跟随着最近的价格趋势。在这篇文章中,我超越了加密价格的短期价格投机,并探讨了如何从长期角度看待加密资产估值的各个方面。这并不意味着对任何主题的深入探究,而是对生态系统的高层次概述。为了更深入,我提供了提到的概念的来源。
投资分析
大多数关于密码市场的数据科学相关文章都专注于技术分析来预测未来价格。如果历史模式显示未来价格上涨/下跌,这提供了一个买入/卖出信号。同时,基本面分析侧重于资产内在价值的估计。如果一项资产的估计内在价值高于/低于市场价格,这就提供了一个买入/卖出信号。
为什么这种区别对加密市场很重要?他们仍然不成熟,大部分投资(交易)都是投机性的,只要现实世界的问题没有用技术解决,这种情况就会持续下去。市场发展将使资产估值与其他更成熟的资产类别(股票、商品、外汇等)相似。)
为什么技术分析更受欢迎?最明显的答案是数据的可用性。即使区块链的数据是公开的,它仍然需要以一种有意义的格式进行解析。价格信息很容易获取。不仅如此,我们可以应用与任何其他资产类别相同(或相似)的方法进行分析。它可以被建模为有监督的机器学习或深度强化学习问题。或者我们可以用技术指标,从传统金融中转移知识。为了在基础价格上建立 LSTM 神经网络,除了知道如何优化模型架构(这是一个复杂但不同的问题),我们不需要任何领域知识。因此,关注点更多的是超越他人(大众心理),而不是评估资产的潜在价值。
与此同时,基本面分析依赖于领域知识,很难找到一个比密码学跨越更多领域的领域。它包括经济学、博弈论、密码学和分布式系统等。
基本面分析可以分解为两个部分:
- 对解决商业问题的未来市场潜力的估计
- 估计单个解决方案获取解决该问题的投资回报的概率
随着时间的推移,单个解决方案如何成功解决业务问题是 Balaji Srinivasan 称之为思想迷宫的进化过程。
想法迷宫
思想迷宫的一个非加密的历史例子是社交网络产品。如果我们估计未来的总目标市场 (TAM)将会很大,我们将如何在不同的选择中分配成功的概率?脸书获得的归因概率会和它今天在整个潜在市场中所占的百分比一样高吗?或者,MySpace 或 Hi5 会被视为更有未来潜力吗?或者,我们可能会得出结论,另一种产品将占领当时尚未推出的市场?当前的市场领导者解决业务问题的能力如何,其[网络效应](http://70 Percent of Value in Tech is Driven by Network Effects We wanted to put an actual number on the amount of value network effects have created in the digital world. The short…www.nfx.com)有多强和多有价值?这些问题可能值得一问。
这可能是一个很好的智力练习,但基本上没用。这有两个原因:缺乏交易流和封闭数据。第一个原因是,大多数人(散户投资者)没有机会投资早期企业。这是留给天使投资人和风险投资人的,因为他们既有资金也有动机长期持有非流动性资产,以换取大概率的大幅上涨。第二个原因是,我们可以用来评估业务的指标不对散户开放。这些公司在私人市场运营,所以他们没有动力分享他们的使用指标。随着越来越多的经济增长来自科技公司,它们上市的时间越来越长,这带来了一个困难的挑战:留给散户投资者的回报已经不多了。
在 crypto 中,许多人谈论“杀手级 dApp”(分散式应用程序),它将使加密技术成为主流。与此同时,仍然存在需要克服的关键挑战,这些挑战涉及计算吞吐量的 UX(如入口)和可扩展性。
去年,分散融资(DeFi)申请数量有所增加,这些申请锁定了 $1B 总价值(TVL) 。价值是透明的,我们可以看到价值是如何分布在不同的项目中的。同时,这只是当前 3000 亿美元行业总市值的一小部分。
DeFi Pulse 生态系统概述(来源)
未来的发展取决于很多不可预测的因素。和技术一样,时机很重要。某些解决思想迷宫的方法可能在今天不成功,但在 10 年后会成功。不管怎样,有一点是清楚的:随着该行业市值的增加,主流市场对其回报的兴趣也会增加。因此,在不推测真正的杀手 dApp 的情况下,探索一个明显的想法迷宫是有意义的,crypto 有多种独特的方法来解决:社会投资。
解决社会投资的想法迷宫的用例是提供一个平台,将擅长投资的人和没有资源(时间/精力/技能)来主动投资的人联系起来。这并不是说我们不能构建不基于加密技术的解决方案。 eToro 的 CopyTrader 做的。与此同时,就像互联网使信息传播民主化一样,加密可以使金融产品的创造和管理民主化。DeFi 支持创建可编程、可组合和可互操作的资产,我们已经有了这样的工作实例。在此基础上构建的 Stablecoins 和 lending 协议已经有了多种变体。社会投资也是如此。
Set Protocol 构建了替代 eToro 产品的 DeFi,并增加了许多附加功能。 Melon ,另一个 DeFi 解决方案,专注于建立分散的链上资产管理。目前,对冲基金为可能编码在智能合约中的管理任务支付大量费用,并通过软件实现成本高昂的工作流程自动化。有了 DeFi,无论在什么地方,只需花费一小部分费用,就可以在几分钟内建立一个加密基金。 ICONOMI 是另一家提供集中金融(CeFi)解决方案的提供商,该解决方案支持创建和遵循不同的加密策略。
这些是探索社会投资理念迷宫的一些例子。由于网络效应,市场经常被赢家通吃的动态所统治,这也是长期加密协议护城河的一个来源。这并不是说这里会发生这种情况。这些产品针对单独和交叉的用例。
指标
在过去的二十年里,软件业务改变了我们在许多垂直领域提供服务的方式。有了像《精益分析》这样的书和像《AARRR》这样的框架,我们现在已经建立了思考 SaaS 商业价值的模型。我们了解跟踪和改善增长漏斗的价值。我们现在知道并理解了留住人才的重要性以及单位经济的重要性。
创建初创公司的早期经验之一是,许多我们可能认为重要的指标只是虚荣指标。一个页面上的浏览量或客户总数并不能给我们很多关于业务实际表现的有价值的信息。几乎没有可操作的洞察力,只有一个错误的成功信号。
这与加密有什么关系?我们还没有建立成功的标准。加密网络复杂且相互关联。它们在不同的层上运行,构建在彼此之上。就像链条的强度由最薄弱的环节决定一样,上层协议层的安全性由下层协议层的安全性决定。我们越往上走,协议就越面向用户。
在 DeFi 中,加密协议的互联本质被描述为金钱乐高。通过分解价值链,我们可能会看到在一个特定的想法迷宫中迭代次数的增加。以此,加速寻找适合加密应用的产品市场的集体努力。
除此之外,加密协议通过其本地资产创造和获取价值是有区别的。今天所有的互联网经济都是建立在 TCP/IP 协议之上的。然而,它的创造者没有抓住在它之上创造的任何价值。某些协议建立在其他协议之上,而其他协议(目前)不能随着用户数量的大量增加而扩展。有时协议的网络无法抵御恶意攻击(攻击媒介)或者不够分散。这被称为区块链三难困境,加密网络需要在可伸缩性、安全性和去中心化之间进行权衡。
对于加密协议应该如何工作有不同的观点。一种观点认为,他们只是新类型的企业,其目标应该是优化他们的成功指标(如收入)。这意味着它们应该和股票一样接受评估:它们的商业基本面。另一种观点认为,它们只提供了逻辑系统来协调网络中不同参与者之间的关系。作为协调者,他们应该最小化他们获得的价值,而不是最大化它(不像企业)。
除此之外,加密项目还有独特的挑战需要解决。产品/市场契合度、社区参与度和充分的分权就像凳子的三条腿。它们都需要发挥作用,加密项目才能成功。
在定义有意义的加密指标方面也有很多工作要做。由于网络效应,加密协议的价值随着参与者的增加而增加。梅特卡夫定律对电信网络进行了量化,使得网络的价值与参与者的平方成比例增长。另一个引起生态系统关注的指标是来自货币经济学的交换方程 (MV = PQ)。这意味着加密资产的价值可以通过求解 M(货币基础的大小)来估计,M 随着数字资源数量(Q)及其价格§的增加而增加,随着资产速度(V)的增加而减少。其他更多的加密原生指标包括 NVT 和 INET。克里斯·伯恩斯克,这一领域的先驱思想家,就这一主题写了一篇早期文章和一本书。
慢慢地,某些习惯会变得根深蒂固,并被视为理所当然。正如今天的 web 开发人员在开发 web 应用程序时不需要考虑指针(低级编程抽象),未来的区块链开发人员也不需要考虑今天开发区块链应用程序的许多复杂性。
模拟协议行为
目的驱动的令牌的设计带来了来自其目标的挑战:让建立一个自组织系统。它表现出的行为无法通过其各部分的总和来预测。
考虑行星运动的研究。一个高中生可以用笔和纸计算出一颗行星绕太阳的运动,而三体却没有任何封闭形式的解。
布兰登·拉米雷斯
在分析加密协议时,需要考虑复杂的突发行为。 cadCAD 是一个 Python 库,通过模拟一组动作可能对系统产生的影响来实现建模。它可以回答系统设计和分析的“如果”。这篇论文对这个主题提供了很好的技术介绍。
为什么这对估值很重要?因为对于一个有效可靠的系统,我们需要了解不同的输入如何影响其输出。我们最不想要的就是使用或投资一个在不同参数下的行为对我们来说是黑盒的协议。
领域知识
现在很明显,关于加密的知识跨越了许多领域。如何跟上生态系统的进化?
与大多数行业不同,加密社区的成员经常与公众分享他们的知识和观点。
不从区块链开发商开始是不公平的。Vitalik Buterin(以太坊的创造者)是太空中最伟大的思想家之一。与此同时,他的想法可能不会直接适用于数据科学家。他的文章可能更有助于加深对协议设计的深层技术方面的了解,以及未来 5-10 年的行业趋势。
专门从事加密的风险投资公司通常也比不从事加密的公司更积极地写作。 Placeholder 、 a16z crypto 、 Outlier Ventures、和 DragonFly 写下他们如何看待 crypto 的发展,并分享他们对为什么投资某些 crypto 项目的想法(他们的投资论文)。对于一个数据科学家来说,主要的价值是更好地理解价值创造和价值获取,并结合不同的评估心智模型。
加密分析公司经常写他们的平台可以从大量可用数据中发现的见解。这些可能是与数据科学家最相关的。 IntoTheBlock 撰写不同协议的深度行为分析。
IntoTheBlock 的资金进出分析(来源
其他类似的公司还有 Santiment 、 Alethio 、 Dune Analytics 和 TokenAnalyst 。这些侧重于分析观察数据。区块链数据的开放性使其能够洞察任何其他资产类别都无法获得的信息。
Alethio 的分散交易所交易者网络分析(来源
像 Gauntlet 和block science(cadCAD 的作者)这样的公司更关注使用基于代理的模拟来模拟协议行为。前者最近发表了一份关于复合(DeFi 应用)财务风险的研究报告。
结论
作为散户投资者,与传统科技公司相比,在更早的阶段投资加密资产是可能的。项目的指标是开放的,投资是流动的(没有锁定期)。或者换句话说,加密项目使风险规模经济具有公开市场流动性的所有优势。
这使得投资者能够利用不对称风险(上升空间大,下降空间小)。这尤其适用于数据科学家,他们可以利用业务和技术知识,利用自己的数据驱动型决策技能。
随着该行业的成熟和市值的增长,这种知识将越来越货币化。我们将建立评估框架,更好地分析和模拟加密协议的突发行为。但在投资中,非共识的正确总是最重要的,因为这是回报所在。
用 Python 激活 Excel
三大集成方法以及您可以利用它们做什么
Microsoft Excel —你要么喜欢它,要么讨厌它!如果你和大多数人一样,你可能在没有听说过 Excel 的情况下经历了早期的生活。你可能已经上了大学,以优异的成绩毕业,但仍然对 Excel 知之甚少。
那是在你进入工业界并找到工作之前。然后,您发现如果 Excel 消失一个小时,整个世界都会停止运转!
现在,您可能知道 Excel 几乎没有做不到的事情!我在投资银行工作了很多年,我可以告诉你,每次我认为我已经看到了一切,我会看到别人整理的另一个电子表格!可能性真的是无穷无尽。
然而,目前 Excel 的主要局限在于大型数据集。数据集越大,在 Excel 中面临的困难就越多。在一个数据驱动、即时满足的世界里,人们希望事情立即发生;他们讨厌等待!人们还期望不断突破界限,提供不断提高的功能水平。
同时,人们讨厌改变。人们在 Excel 中很舒服,他们并不真的想远离它。因此,我们的工作是使这一过渡更加容易。提供更快的速度、更多的功能,而无需离开电子表格。
在 Excel 能够支持大数据之前,这就是 Python 的用武之地!将 Excel 与 Python 集成在一起,使我们能够通过 Excel 为用户提供更强大的功能。它允许我们的用户保持在他们熟悉的、容易理解的 Excel 世界中,同时 Python 可以处理一些繁重的工作!它为这个数据驱动的世界提供了一个中间步骤,直到 Excel 和我们技术含量较低的同事赶上来。
接下来,让我们探索一些可用的选项,用 Python 的强大功能来激活 Excel!
Excel 作为用户界面
将您的用户群从电子表格过渡到 21 世纪并不总是一件容易的事情。这是一个需要时间的旅程,但作为 It 专业人员,我们有责任帮助我们的用户群度过难关。在这个过程中,我们需要大量的指导、信任和保证。
首先,您可以考虑保持用户界面(UI)不变。换句话说,让我们不去管电子表格,但是让我们把任何后端处理从 VBA 转移到 Python。
考虑给 Excel…插上翅膀!
使用名为 xlwings 的 Python 包,可以无缝集成 Excel 和 Python。我们的用户可以继续使用 excel,但是每个表单控件按钮或用户定义的 Excel 函数都可以调用我们的 Python 脚本。
如何用 xlwings 集成 Python 和 Excel
towardsdatascience.com](/how-to-supercharge-excel-with-python-726b0f8e22c2)
该应用程序易于安装,并奇妙的使用。如果你想了解更多,我已经链接了我以前的深入教程。
寻找新的 Excel
随着技术、数据和数据科学工具的爆炸,出现了一种新的用户:超级用户!
超级用户了解技术、数据,他们可以编写代码。他们要求表达自己和解决一些问题的自由。他们非常乐意离开他们的电子表格,使用新技术。那么,如何让他们灵活地做到这一点呢?
考虑给他们… Jupyter 笔记本!
Jupyter Notebook 允许他们利用 Python 创建可共享的、交互式的、基于 web 的文档,其中可以包含实时代码、可视化和文本。至于可以利用的数据,您可以继续使用您的企业数据源和数据库。
为什么交易者和金融专业人士需要学习 Python
towardsdatascience.com](/jupyter-is-the-new-excel-a7a22f2fc13a)
同样,该应用程序易于安装,并且非常易于学习使用。如果你想了解更多,我已经链接了 Semi Koen 的博客。
Excel 作为输入
不管怎么说,人们都喜欢 Excel,数据生成很可能会继续使用电子表格。然而,随着分析所需数据的增加,人们可以立即感觉到 Excel 地狱的末日即将来临。数据操作将花费很长时间,而枢纽操作将是永恒的。前提是 Excel 没有先崩溃!
这是 Python 可以提供帮助的另一个例子。使用流行的 pandas 库,可以快速地将电子表格中的数据加载到 pandas 数据框架或 SQL 数据库中。这两种解决方案都支持快速、轻松的数据分析和探索。
我在下面链接了几篇关于这个主题的博文,如果你想了解更多的话。
了解如何使用 Python 进行快速数据分析
medium.com](https://medium.com/financeexplained/from-excel-to-databases-with-python-c6f70bdc509b) [## 从 Excel 和 Pandas 数据框架到 SQL
如何使用您的 SQL 知识来利用 Python 的熊猫
medium.com](https://medium.com/financeexplained/from-excel-and-pandas-dataframes-to-sql-f6e9c6b4a36a)
要考虑的其他库
在结束我们的讨论之前,让我们简要介绍一下其他一些流行的特定于 Excel 的 Python 库。我的观点是,我们上面提到的库将能够满足大多数用例,但是,如果您正在寻找 Excel 特定的功能(如格式、过滤器等),您可能希望尝试探索以下一些库:
openpyxl
读取和写入 Excel 2010 文件的库。您可以编写新的工作表,编辑现有的工作表,以及在 Excel 中使用鼠标进行几乎任何操作。它的超能力?它几乎支持任何 Excel 扩展!
xlrd
用于读取 Excel 文件中的数据和格式化信息的库。
xlsxwriter
可能是最完整的所有 Excel Python 库。
格式,条件格式,图表,合并单元格,过滤器,评论,与熊猫集成只是它提供的一些功能。如果您希望通过 Python 脚本使用 Excel 的全部功能,可以从这里开始!
结论
Excel 是一个在工业中广泛使用的神奇工具。如果你不熟悉,你最好开始!Excel 的主要限制是大数据,但我相信用不了多久,微软就会出手拯救世界。然而,在此之前,我们可以使用 Python 来帮助解决我们可能遇到的一些问题。
您是否使用不同的 Python 库来与 Excel 集成?让我和你的读者朋友们知道吧!
如果您喜欢这篇文章,您可能也会喜欢:
为什么大数据如此重要,为什么您也应该关注它
towardsdatascience.com](/big-data-says-everybody-lies-b7e9e28376c2) [## 了解如何用 Python 快速创建 ui
最后,你可以在 10 分钟内找到一个图书馆
towardsdatascience.com](/learn-how-to-quickly-create-uis-in-python-a97ae1394d5) [## 迪士尼英雄如何帮助我解决问题
学会使用迪士尼方法解决问题
medium.com](https://medium.com/better-programming/how-disney-heroes-help-me-solve-problems-bc4d3e230bfb)
邀请所有有抱负的强化学习实践者
感谢 AWS 和雅加达机器学习
drmakete 实验室在 Unsplash 上拍摄的照片
公开邀请所有有志于强化学习(RL)的从业者在未来 3 个月内与我一起学习 RL
不久前,我参加了由 AWS 和 Jakarta Machine Learning (JML)举办的 RL 训练营。我们这些参与者将会得到 AWS 经验丰富的代表们的悉心指导。在接下来的 3 个月里,导师们将指导和介绍我们走’正道’,学习 RL。不仅学习理论,我们还将学习如何在实际应用中应用它!
是不是很有意思??让你更感兴趣的是:
我会把我在这次训练营中学到的东西分享给大家!!
所以,深呼吸,泡一杯茶,我邀请你和我一起加入这个激动人心的 RL 之旅!
上周是第一次会议,这基本上是一个关于项目的介绍会议,参与者的概况,我们将学到什么,以及一些关于 RL 的介绍。当我听到我们在接下来的 3 个月里将要学习的内容时,我感到无比兴奋,因为我不仅仅是为了自己而学习,我还会与你们分享我的知识!
首先,我将向您介绍强化学习。尽情享受吧!
什么是强化学习?
AI 领域[图片由作者提供]
强化学习(RL)是机器学习的一个子集,它使一个代理能够在一个特定的环境中通过行动的结果进行学习,目的是最大化累积回报。
为了更好地理解,假设你有一只新的宠物狗,名叫布朗,你想教它一些技巧。怎么会?当他做对的时候你可以奖励他,当他做错的时候你什么都不给。当然,你必须这样做几次,直到他意识到他应该做什么。
安娜·杜德科娃在 Unsplash 上的照片
另一个关于 RL 如何应用于现实生活的有趣例子是 YAWScience 做的一个实验。在这个实验中,如果小鸡成功地钉住了粉红色的纸而不是其他颜色的纸,它就会得到奖励。结果是,小鸡成功地锁定了正确的一个,尽管在每次迭代中所有的纸都被打乱了!
像其他科学领域一样,我们必须准备一个强大的基础,这样我们才能轻松地学习更复杂的领域。要掌握 RL,我们必须了解它的先驱:(MDP)。在我们了解 MDP 之前,我们必须了解:
- 马尔可夫性质
- 马尔可夫过程(马尔可夫链)
- 马尔可夫奖励过程
正如我在开始所说,这个训练营提供了学习 RL 的“正确途径”。导师告诉我们,MDP 概念对于更好地理解 RL 非常重要,并鼓励我们自己学习。
我试图在训练营之外自学这个概念,我做到了!就像我一样,我也相信你可以自学!但我不会让你迷失在野外。我想确保你和我总是在同一页上。所以,我会分享一些我看过/读过的好资源给你:
- 马尔可夫决策过程(MDPs)——构建强化学习问题
- David Silver 的 RL 课程——第 2 讲:马尔可夫决策过程
- 强化学习揭秘:马尔可夫决策过程(第一部分)
- 强化学习揭秘:马尔可夫决策过程(第二部分)
RL 中的重要术语
RL 模型中涉及的元素。[图片由作者提供]
您需要了解几个重要术语:
- **代理人。**需要根据自身行为和经验接受“教育”的决策者。由策略和学习算法组成。
- **环境。**代理人的物理世界。基本上,它只不过是一个模拟。
- **状态。**代理当前所处的“情况”。这包括过去、现在和未来的状态。
- **行动。**代理人在环境内部的活动。
- **奖励。**环境的反馈。可以是正的,也可以是负的。
- **政策。**负责根据对环境的观察选择代理将采取什么行动的单元。
- **插曲。**以终止状态结束的状态序列。
- **奖励功能。**激励特定代理行为的功能,是 RL 的核心。
类似于监督机器学习设置中的偏差-方差权衡,RL 中也有权衡。这叫做探索与开发的权衡。探索是指代理人试图收集一些新信息,并期望这些信息比当前信息更有用。而利用是指代理根据已知信息做出最佳决策。
为了更好地理解,假设你和你的朋友亚当计划明天一起吃午饭。考虑这两种情况:
- “嗨,亚当,我听说这个地区新开了一家餐馆。我们为什么不试试去那家餐馆吃午饭呢?”
- “嘿,亚当,我知道我们明天应该去哪里吃午饭了。我们为什么不在上周去过的那家餐馆吃午饭呢?”
第一个场景就是我们所说的探索。你和亚当不知道它会是什么味道,它可能比你最喜欢的餐馆差,但也可能好得多。而在第二种情况下,你知道你们两个都不会对味道有问题,而且你们很有可能会喜欢明天的午餐。这个场景类似于开发阶段。
它是如何工作的?
RL 工作原理的基本概念。[图片由作者提供]
现在,我将解释 RL 在高层是如何工作的。不要担心,因为在以后的帖子中,我们将回到这个问题并了解细节!
下标 t 指的是我们当前所处的时间步长。
在第一个时间步( t=0 ),代理接收环境的状态作为输入。基于这些输入,它将决定采取什么行动。一旦作出决定,行动就转移回环境中。
然后,时间步长递增(t=1 ),环境产生新的状态。除此之外,环境还会输出一个奖励,稍后会给代理人。
最后,将当前状态和奖励都提供给代理。代理因其之前的行为而获得奖励(可以是正的或负的)。
对于未来的时间步长,重复相同的过程。
但是……当这个循环结束时?
这取决于你的任务类型。一般来说,有两种不同的类型:
- 阶段性任务是具有终结状态的任务。换句话说,这种任务是有结局的。比如下象棋。
- 继续任务是没有终止状态或永不结束的任务。例如,个人辅助机器人。
因此,如果您正在处理一个临时任务,那么循环将会重复,直到到达终端状态。如果您正在处理一个连续的任务,那么循环将永远不会结束。
最后的话
由 Ravi Pinisetti 在 Unsplash 上拍摄的照片
恭喜你坚持到了这一步!
到现在为止,你应该知道什么是强化学习,RL 中有哪些重要的术语,它在高层是如何工作的。如果你听从了我的建议,那么你也应该已经了解了马尔可夫决策过程的概念。对于那些没有读过这本书的人,我鼓励你花些时间来学习这个概念。
记住,这只是我们学习 RL 旅程的开始!我还有很多材料要和大家分享。所以,如果你喜欢这些内容,并且想在接下来的 3 个月里继续和我一起学习,请关注我的媒体账号,以获得关于我未来帖子的通知!
在下一集,我们将了解更多关于 RL 在自动驾驶赛车中的应用。来看看!
关于作者
Louis Owen 是一名数据科学爱好者,他总是渴望获得新知识。他获得了最后一年的全额奖学金,在印度尼西亚最好的大学之一Institut Teknologi Bandung攻读数学专业。最近,2020 年 7 月,他刚刚以优异的成绩从他的研究中毕业。
Louis 曾在多个行业领域担任分析/机器学习实习生,包括 OTA(Traveloka)、电子商务( Tokopedia )、fin tech(Do-it)、智慧城市 App ( Qlue 智慧城市 ),目前在 世界银行 担任数据科学顾问
查看路易斯的网站以了解更多关于他的信息!最后,如果您有任何疑问或需要讨论的话题,请通过 LinkedIn 联系 Louis。
iOS 14 是为了扰乱公司对用户的跟踪
苹果吹嘘的新 ios 14 隐私功能,用户喜欢,广告商讨厌。
丹尼尔·罗梅罗在 Unsplash 上拍摄的 BG 照片
自从 WWDC 的第一天起,科技行业的话题就一直围绕着苹果的新硅芯片以及新的 iOS 和 macOS 版本。iOS 14 与近年来的前几个版本相比,在改进的 UI 和新功能方面有了重大更新。Android 用户对很多功能一笑置之,比如他们已经拥有多年的图片模式。
但是有些东西很多人在主题演讲中忽略了,有些东西可能会影响像脸书、谷歌这样价值数十亿美元的公司,以及价值数十亿美元的广告业。广告界和苹果公司已经在 mano a mano 待了一段时间,但是这些新的变化将会改变这个行业的游戏规则。让我们来看看一些主要的隐私功能:
1.应用程序跟踪
iOS 13 已经在手机的隐私设置中加入了广告跟踪功能,而大多数用户并不知道。随着 iOS 14 的推出,苹果通过将这一功能引入应用程序,将更多控制权交给了用户。在 iOS 14 中,如果一个应用程序想要跟踪用户,他们必须明确征求用户的许可。因此,每次你安装需要追踪信息的应用程序时,你都会得到一个要求你许可的提示。用户也可以在完成后关闭此功能
跟踪权限提示
值得注意的是,这并不意味着应用程序不能完全跟踪你,苹果为开发者推出了一个新的以隐私为重点的广告框架,允许匿名检索数据,而无需掌握用户或具体信息。但这将使大多数公司用于货币化的指标过时。
2.Safari 跟踪报告
Safari 中的新跟踪功能将向用户显示网站用来收集用户信息的所有跟踪器的列表。这项功能将出现在 iPhone、iPad 和 Mac 上的 Safari 浏览器中,并向用户显示苹果通过其智能跟踪阻止功能阻止的所有跨网站跟踪器的列表。受欢迎的网站用来收集你的信息的追踪器的数量会让你大吃一惊。
追踪器在 google.com
3.本地网络跟踪
这是大多数用户没有意识到的,应用程序可以跟踪与你连接到同一个网络的设备。大多数流行的应用程序,如脸书、Youtube、MiFit 等,都使用这种权限来跟踪用户的设备,而 iOS 14 用户可以选择不允许这样跟踪的应用程序。令人惊讶的事实是,即使用户否认跟踪权限,所有这些应用程序都可以顺利运行,但它们只是由公司放在用户的其他设备上收集更多用户信息。
Mi Fit 应用程序请求本地网络跟踪权限
4.剪贴板跟踪
在许多用户发现流行的应用程序频繁访问剪贴板信息后,这一功能最近引起了很多关注。包括抖音、Chrome、LinkedIn 等在内的众多热门应用…接触到了这个新功能。在 Twitter 上迅速传播的视频中,一名用户向世界展示了抖音是如何复制剪贴板内容的,即使用户正在其他应用程序中键入一些内容。这在社区中引起了许多关注,因为剪贴板通常包含银行详细信息等敏感信息,如果一个应用程序秘密使用剪贴板来跟踪用户,他们可以访问大量敏感信息。iOS 14 已经为这种行为标记了一长串应用程序,公司正在试图为跟踪这些信息提供模糊的借口。
抖音从 Instagram 复制剪贴板信息
6.近似位置跟踪
旧版本的 iOS 已经给了用户足够的控制权来控制应用程序何时可以追踪用户的位置。自 iOS 13 以来,用户只允许一次位置访问变得更加容易,只有在使用应用程序时或总是允许,这在隐私方面受到了好评。
iOS 14 更进了一步,给了用户更多的权力,他们可以选择与应用程序共享近似位置,而不是精确位置。有了这个功能,公司永远无法知道用户的确切位置,但同时用户仍然可以获得相关的广告和签到附近的地方。考虑到位置是对用户隐私最有价值的信息之一,这也将在用户中大受欢迎。
7.专用 Mac 地址
这是一个非常简单但功能强大的功能,已经添加到 iOS 14 中。用户现在可以为单个无线网络屏蔽他们的 MAC 地址。现在,用户可以选择在 iPhone 上隐藏特定网络的 MAC 地址。这对用户有多种好处,如防止 ISP 跟踪用户的设备,绕过 MAC 地址防火墙访问被阻止的应用程序和网站等。
使用 Wifi 时屏蔽 Mac 地址的选项
8.C 摄像机和麦克风录音指示灯
应用程序使用你设备的麦克风秘密监听是历史最悠久的阴谋论之一,许多人报告了他们在谈论产品后立即看到广告的个人经历。为了结束这种恐惧,iOS 14 在手机的状态栏中有一个摄像头和麦克风录音指示器。MAC 和 MacBooks 有一个绿色 led 指示灯来显示这一点已经有一段时间了,但 iOS 14 还会在应用程序使用你的麦克风时使用橙色圆点指示灯来提醒你。此外,控制中心还会显示最近使用您的摄像头或麦克风的应用程序。
橙色圆点表示麦克风的用途
在重视用户隐私的公司中,苹果一直走在前列,他们也一直利用这一点开展营销活动。在最近的一次采访中,蒂姆·库克解释说,苹果对收集用户信息不感兴趣,他说:“你不是我们的产品,我们的产品是 iPhones 和 iPads。”虽然广告公司声称苹果的政策不公平,但全球用户都很高兴苹果正在利用他们作为世界上最受欢迎的移动操作系统的力量,带来保护用户信息的变化,而不是那些将用户出卖给公司和数字营销者的公司。
IOT 数据分析:第 2 部分:数据模型
将数据仓库建模的最佳实践应用于物联网数据,以实现最灵活高效的分析
介绍
这是上一部分的延续,上一部分描述了与健身跟踪活动示例的物联网数据分析相关的问题陈述。还描述了存储类型选择背后的原因,并推荐了两种类型的存储:
- 大数据存储用于存储时间序列类型的数据
- 关系分析数据库为数据分析提供了最大的灵活性。更多细节在这里。
这个故事的目的是描述第二种存储类型(关系分析存储)的推荐数据模型。数据仓库部分的逻辑数据模型。
建模技术
幸运的是,数据仓库概念已经在市场上存在了几十年,因此它非常成熟,许多思想领袖围绕解决方案构建和数据建模贡献了最佳实践和模式创建。
让我们使用 Ralph 的 Kimball 方法来处理特定设计决策的建模和一些模式。
从方法论的角度来看,我们将执行以下步骤:
- 选择一个描述我们健身跟踪案例的业务流程列表
- 对于我们定义的每个流程:
- 粒度 —存储数据的详细程度
- 描述业务流程上下文的维度列表,回答了谁、什么、何时、何地、为什么以及如何的问题
- 测量列表 —根据颗粒测量事实的定量数值
我们在 **Bus matrix、**中收集这些细节,Bus matrix 是由业务术语描述的模型的第一个高级版本,非常适合并建议与各种利益相关者共享和讨论。
用于创建逻辑数据模型的特定设计模式将是:
- 星型模式作为主模型布局,这赋予了最大的灵活性和效率。它还具有良好的可扩展性,这对于物联网用例非常重要。
- 定期快照事实表 —一个事实表,其中每一行都聚集了某个预定义周期内发生的测量。粮食是一个时期,而不是个人交易
- 累积快照事实表 —一个事实表,其中每一行聚集了在流程开始和结束之间的可预测步骤中发生的测量事件。
健身跟踪总线矩阵
基于问题陈述的描述,我们定义了以下业务流程列表以及粒度、维度和度量:
用于健身跟踪的总线矩阵(图片由作者提供)
总线矩阵注释
周期性快照
来自物联网设备的指标通常会定期出现,但这种规律性并不总是准确的。此外,一些 meticss 比其他 metic 出现得更频繁,因此从时间的角度来看,有一个共同的标准是非常有用和方便的。度量在一定的时间段内保持一致,以便能够关联不同的指标并更容易地可视化它们。
定期快照有两种模式:
- 健康指标快照 —以标准模式收集健康统计数据,此时不执行任何特殊的健身活动。对齐数据的周期可以选择为一分钟或接近一分钟的时间。
- 活动指标快照 —在特殊健身活动期间收集统计数据,如跑步、游泳等。在这种模式下,通常会更频繁地收集指标,大约每隔一秒钟收集一次
活动圈总结
该流程的目的是保存健身活动的所有摘要。因为每个活动可以包含动态数量的子阶段,称为 laps ,所以保持单个 laps 级别的粒度是值得的。
每个活动 lap 都有严格的开始和结束时间戳,因此我们可以将其视为工作流的简化版本,并为其创建一个累积类型的快照。
逻辑数据模型
实现总线矩阵的逻辑数据模型如下图所示:
健身跟踪物联网的逻辑数据模型(图片由作者提供)
LDM 评论
总的来说,数据模型是总线矩阵所描述的过程的非常简单的实现。
让我们强调一些要点:
- 日期维度是非常标准的,用于按日/周/月/年进行方便的分组
- 时间维度用于构建每天的活动画面,按小时分析数据
- 除了日期和时间之外,所有事实表都有时间戳,时间戳可以被视为退化的维度。对于快照事实表,它是周期的开始,对于活动圈,我们有开始和结束里程碑
- 有一个活动 ID 退化维度,可用于将活动摘要与详细信息绑定在一起
- 建议基于代理键构建维度表中的主键
- 主键(事实上的表)建议根据粒度在字段子集(主要是维度外键)上构建。
- 即使没有可用的数据,也会对每个期间执行定期快照。建议将测量值设置为空,而不是零,以便进行正确的最小/最大/平均聚合计算
数据分析覆盖面
有了这样一个模型,我们将能够涵盖博客第一部分中描述的所有分析需求
后续步骤
那些深谙 Kimball 方法论的人可能会问:事务事实表在哪里?
快照事实表通常作为主事务事实表的补充,粒度等于每个事务 1 条记录。在我们的例子中,一个测量事件,比如 HR 或 pace 测量可以扮演一个事务的角色。这是一个有道理的观点,但是我相信事务事实表(以非规范化的形式)可以被 NoSQL 键值或时间序列类型的存储很好地覆盖。
还有其他一些有趣的话题没有涉及到,值得特别关注:
- 处理设备之间的层次关系
- 如何执行时间序列和模式匹配类型的查询/分析
- 如何存储地理位置 GPS 数据点并进行基于位置的分析
- 当我们对不同类型的活动执行不同的度量时,如何处理动态的或非常大量的度量
这些话题将会在接下来的文章中涉及。敬请期待
附言
更好地理解业务领域和模型中的一些实体属性是受我的个人健身追踪器/智能手表 Garmin 菲尼克斯的启发。我不为佳明公司工作,我只是其产品的消费者:)
IoU 更好的检测评估指标
选择正确的目标检测模型意味着不仅仅要看地图
图片来自 COCO-2017 [1]验证集,检测显示在第五十一 [2]中
为您的任务选择最佳的模型架构和预训练权重可能很困难。如果你曾经研究过物体检测问题,那么在比较不同的模型时,你肯定会碰到类似下面的图表。
右图来源:YOLOv4 [3]。左图来源:EfficientDet [4]
通过这样的比较,你可以得到的主要信息是哪个模型在 COCO 数据集上的地图比其他模型高。但这对你来说到底有多重要呢?您需要停止严格地查看聚合指标,而是查看更详细的数据和模型结果,以了解哪些有效,哪些无效。
近年来,在通过更快的模型提供类似的检测结果方面取得了长足的进步,这意味着在比较两种检测器时,mAP 不是唯一要考虑的因素。 然而,无论你的模型有多快,它仍然需要提供满足你要求的高质量检测。
虽然能够容易地比较不同的模型是重要的,但是将模型的性能降低到单个数字(mAP)会掩盖模型结果中的复杂性,这可能对您的问题很重要。您还应该考虑:
- 边界框紧密度(IoU)
- 高可信度误报
- 抽查性能的单个样品
- 与你的任务最相关的课程的表现
什么是地图?
平均精度(mAP)用于确定模型中一组对象检测在与数据集的地面实况对象标注进行比较时的准确性。
我们不会在这里详细讨论,但你应该了解一些基本知识。有兴趣的话有很多帖子详细讨论地图[6,7]。
借据
计算 mAP 时使用并集交集(IoU)。它是一个从 0 到 1 的数字,用于指定预测边界框和实际边界框之间的重叠量。
- IoU 为 0 表示方框之间没有重叠
- IoU 为 1 意味着框的并集与它们的重叠相同,表明它们完全重叠
(来源)
IoU 是收集人工注释时要跟踪的一个重要的准确性度量。行业最佳实践是为他们的人工注释任务包含最低 IoU 要求,以确保交付的注释相对于该对象的“完美”注释具有 IoU >= X(其中 X = 0.95 是典型值),这由项目的注释模式确定(即,尽可能紧密地框住车辆,包括它们的所有可见部分,包括车轮)。另一方面,在 0.95 IoU 时,are 检测器的状态通常表现不佳,我们将在本文后面的实验中展示这一点。
简而言之地图
平均精度(mAP)通过首先收集一组预测对象检测和一组基本事实对象注释来计算。
- 对于每个预测,相对于图像中的每个基本事实框计算 IoU。
- 然后,这些借据被阈值化到某个值(通常在 0.5 和 0.95 之间),并且使用贪婪策略将预测与基础真值盒进行匹配(即,首先匹配最高借据)。
- 然后为每个对象类生成精度-召回率(PR)曲线,并计算平均精度(AP)。PR 曲线考虑了模型在一定置信值范围内关于真阳性、假阳性和假阴性的性能。更多详情可参见本帖【6】。
- 所有对象类的平均 AP 是地图。
- 评估 COCO 数据集时,用 0.5 至 0.95 的 10 个 IoU 阈值重复这一过程,并求平均值。
下图演示了计算 mAP 需要多少步骤,以及在试图理解基础模型预测时 mAP 作为一个概念有多抽象。
显示将地图与模型预测相关联的步骤的流程图
为什么地图这么受欢迎?
为什么 mAP 已经成为比较对象检测模型的标准,最好的答案是因为它很方便。你理论上只需要用一个数字来比较不同型号的性能。
如果你绝对需要只用一个标准来比较,地图是个不错的选择
然而,现在最先进的车型之间的性能差异小于 1%图 ,迫切需要其他方法来比较车型性能。
来源:论文,代码
评估模型在每个图像的基础上定位和分类对象的能力,特别是其故障模式,比在真空中考虑地图提供了对模型的优点和缺点的更深入的洞察。我们称之为原子评估。
可可·凯奇女士比赛
为了演示原子探测评估的过程,我在 MSCOCO [1]上比较了 3 种不同的物体探测模型(fast-RCNN[5],YOLOv4 [3],EfficientDet-D5 [4]),以查看该评估如何将它们与它们的地图进行比较。
地图
作为参考,下面是 COCO-2017 验证集上的模型图:
- 更快-RCNN+ResNet50 : 33.4%地图
- 效率检测-D5 : 41.3%地图
- 约洛夫 4 : 43.2%地图
借据
模型地图本身并不能直接显示模型的边界框有多紧,因为该信息与预测的正确性混为一谈。您必须直接评估 IoUs,以了解模型的边界框与基础事实的紧密程度。
生成不同模型 IoU 汇总统计数据的一种简单方法是绘制直方图。这是基本配方:
- 使用一组模型检测数据集中的对象
- 计算每个预测的借据
- 对于每个预测,存储它与任何地面真值对象的最高 IoU
- 用标准化计数绘制直方图
我使用我在 Voxel51 帮助开发的新计算机视觉工具fifty one【2】来存储我的模型输出并计算我随后用Matplotlib【8】绘制的借据。我后来使用51来容易地可视化和比较三个模型的检测。声明:我在 Voxel51 工作!
51 个检测模型的 IoU 分布计算和 Matplotlib 可视化
从这些结果中,我们可以看到,即使在我们的实验中,EfficientDet 的图低于 YOLOv4,IoU > 0.9 的边界框的百分比也较高。这表明,如果您的任务中边界框的紧密度很重要,EfficientDet 是比 YOLOv4 或 Faster-RCNN 更好的选择。
假阳性
决定您应该使用哪个模型的一个好方法是查看最坏的情况,并了解每个模型的性能。在这种情况下,我们将查看模型对其预测有信心,但与实际情况相差甚远的场景。具体来说,我们希望找到模型同时具备以下两项的样本:
- 高置信度得分
- 低 IoU
符合这些标准的预测通常分为两类:
- 它们产生于你试图测量的模型中的不准确性
- 它们源于模型预测正确但被标记为错误的基本事实注释中的不准确性
有证据表明,流行的对象检测数据集中的注释可能不像你想象的那样正确。这在这篇 的博文【9】看着 谷歌的开放图片数据集*【10】*中得到了证明。
我再次使用51来轻松找到这些样本和检测。一旦我将我的模型输出加载到 FiftyOne 中,我就能够使用下面的代码搜索模型的示例,例如,EfficientDet 对于任何基本事实对象都具有最大 IoU < 0.1,但也具有置信度> 0.9:
来自 COCO-2017 验证集的图像和显示在第五十一中的检测
这个例子是根据我们指定的标准弹出的。如果你使用一个模型来完成自动驾驶汽车的任务,那么你需要确保你的模型不会出现像这样严重的错误。
每个模型都有不同数量的样本,预测结果都符合我们的标准:
- 更快-RCNN: 1004 个样本
- YOLOv4: 84 个样本
- 效率检测:5 个样本
与 YOLOv4 和 EfficientDet 相比,fast-RCNN 包含了更多的高置信度、低 IoU 预测。将它们可视化显示,来自 YOLOv4 和 EfficientDet 的少数预测也由 fast-RCNN 预测。这些误报通常是注释错误,即地面真实数据集中遗漏了对象。然而,更快的 RCNN 也包含了更高比例的由模型引起的假阳性。下面是一些例子。
图片来自 COCO-2017 验证。(左)一只老鼠被三个模型都预测出很高的可信度,但是没有被注释。(右)一头大象被 Faster-RCNN 高置信度预测为“人”。
这些结果表明 YOLOv4 或 EfficientDet 对于检测未标记对象实例比 fast-RCNN 更有用。
现场检查
在您知道您可能需要哪些模型之后,花一些时间查看它们的检测结果来建立关于它们将如何执行您的任务的直觉是一个好主意。像我们实验中展示的那些例子,如果不看模型输出,是不可能被发现的。这就是第五十一条真正派上用场的地方。它允许您尽可能仔细地研究您的数据集和检测。
在我浏览的前几十个示例中,我发现了下面的例子。
图片来自 COCO-2017,在第五十一届展出。| 黄色 : Faster-RCNN | 绿色 : EfficientDet | 蓝色 : YOLOv4
令人惊讶的是,fast-RCNN 比 YOLO 捕捉到了更多的人,比 EfficientDet 多得多,尽管 fast-RCNN 的地图要低得多。这一点得到了其他样本的证实,人群也显示出同样的趋势。如果您需要能够检测人群,那么 fast-RCNN 可能是比更新、更高的 mAP 模型更好的模型选择。
获胜者是谁?
没有适合任何任务的完美模型,最适合你的模型取决于你决定的标准和你的最终用例。在我们所观察的三个模型中,每一个都以不同的方式在不同的情况下发光,这些方式并没有被它们的地图所阐明。这里真正的赢家是像 MSCOCO 这样的数据集和像 FiftyOne 、 Matplotlib 这样的工具,以及许多其他允许我们在选择模型之前快速轻松地挖掘和分析模型的工具。
关键信息是,使用适当的指标来指导基于特定操作条件的模型评估和选择,而不是简单地依赖于 mAP,这一点至关重要。在分析了模型性能的不同方面后,没有一个模型在上述三个部分中表现最佳。根据最终任务,每种模式都可能是正确的选择,下面介绍了其中的三种。
借据
如果你主要关心的是边界框的紧密度,那么你可能应该选择 EfficientDet 。当我们绘制每个模型的所有 IoU 时,EfficientDet 具有最高的 IoU 检测。
例如,如果您希望使用一个模型来执行自动预注释,以使您的人工注释工作更加高效,这将非常有用。绘制和固定边界框比图像或检测级注释要昂贵得多。您将希望您的预测框尽可能紧凑,以便注释者可以浏览它们,决定保留哪些,丢弃哪些,而不必花费时间实际更改这些框。
质量保证
我们的实验表明 YOLOv4 是一个全面的模型。它的边界框预测可能不像 EfficientDet 那样严密,在人群中可能不像 fast-RCNN 那样有效,但它在几乎所有情况下都是一个势均力敌的竞争对手。我们的第二个实验表明,当 YOLOv4 和 EfficientDet 的预测可信度较高时,它们通常是正确的。
例如,假设您正在构建一个对象检测数据集,并且需要对其进行迭代以确保您的注释是正确的并且没有遗漏任何对象。从我们的第二个实验中,我们现在知道 EfficientDet 或 YOLOv4 可以用来提供错误地未标记或错误标记的对象的建议。由于我们只对误报数量本身感兴趣,而不是检测的 IoU,YOLOv4 可能是一个更好的选择,因为它能够比 EfficientDet 运行得更快。
人群
从与我们上次实验相似的多个例子中,我们看到如果你希望检测成群的物体,那么fast-RCNN可能是你的选择。
例如,如果您试图找到一个对象检测模型来计算纽约市监控镜头中的人数,那么您不会关心这些框有多紧,甚至不会关心它们是否都是正确的,您只关心捕捉场景中的大多数人。
参考
[1] T. Lin 等,微软 COCO:情境中的公共对象 (2014),欧洲计算机视觉会议(ECCV)
[2]体素 51,五十一 (2020)
[3] A. Bochkovskiy 等人 YOLOv4:物体检测的最佳速度和精度 (2020)
[4] M. Tan 等人, EfficientDet:可扩展和高效的对象检测 (2020),计算机视觉和模式识别会议(CVPR)
[5] S. Ren 等人,更快的 R-CNN:使用区域提议网络实现实时对象检测 (2015),神经信息处理系统进展(NeurIPS)
[6] J. Hui,图(平均平均精度)用于物体检测 (2018),中等
[7] R. Tan,分解平均平均精度(mAP) (2019),迈向数据科学
[8] J .亨特, Matplotlib:一个 2D 图形环境 (2007),科学计算&工程,第 9 卷,第 3 期,第 90–95 页
[9] T. Ganter,我对谷歌的开放图像数据集进行了错误分析,现在我对数据科学产生了信任问题 (2020)
[10] A. Kuznetsova 等人,开放图像数据集 V4:统一图像分类、对象检测和大规模视觉关系检测 (2020),国际计算机视觉杂志(IJCV)
IpyLeaflet:Jupyter 笔记本中的交互式映射
IpyLeaflet 交互式地理空间数据可视化初学者指南。
交互式地图是探索性数据分析(EDA)的重要组成部分。在本教程中,我们将向您介绍 IpyLeaflet Python 库,它可以在 Jupyter Notebook 中实现交互式地理空间数据可视化。IpyLeaflet 是 Jupyter 笔记本世界和流行的传单可视化库之间的桥梁。
我们首先介绍标记、图标和底图的基础知识,然后介绍如何集成 Geopandas 和 IpyLeaflet 来可视化不同类型的地图——Choropleth 和聚类点。在最后一节中,我们将学习如何使用 IpyLeaflet 交互式控制地图——搜索栏和全屏。
正确掌握基础知识
我们导入将在本教程中使用的 Ipyleaflet 方法。
from ipyleaflet import (Map, GeoData, basemaps, WidgetControl, GeoJSON,
LayersControl, Icon, Marker,basemap_to_tiles, Choropleth,
MarkerCluster, Heatmap,SearchControl,
FullScreenControl)from ipywidgets import Text, HTML
from branca.colormap import linear
import geopandas as gpd
import json
我们还使用 Geopandas 阅读了本教程的数据。第一个数据集是世界国家(多边形)。我们还有来自武装冲突地点&事件数据项目(ACLED) 的点数据集,记录了世界各地的所有冲突。请注意,我们只阅读了数据的一个子集,非洲的冲突。
# Countries
countries = gpd.read_file(gpd.datasets.get_path(‘naturalearth_lowres’))# Conflict Dataset Points
africa_acled = gpd.read_file(
“data/acled2019.shp”,
mask = countries[countries[“continent”] == “Africa”]
)
africa_acled.head()
基础地图
底图提供了现成的图块,可在绘制地理空间数据时提供背景。您需要指定地图的中心点以及缩放级别,以获得世界上任何地方的底图。
在这里,我们调用 IpyLeaflet 中的 Map 函数,并传递基图。上面的地图使用了 Esri 世界影像。IpyLeaflet 中有很多免费的底图可用。例如,如果我们想改变基本地图,我们可以简单地重建地图提供一个不同的基本地图。或者更方便的是,我们可以通过在上面的地图上添加来更新( add_layer() )。
stamen = basemap_to_tiles(basemaps.Stamen.Toner)
m.add_layer(stamen)
在上面的代码中,我们更改了基本地图。我们现在使用的是 Stamen Toner 底图,而不是 Esri 世界影像,如下图所示。
工作草图
标记
到目前为止,底图仅是有用的。您通常希望将数据放在底图之上。我们从最简单的例子开始。假设我们想在地图的中心添加一个点标记。我们可以在 IpyLeaflet 中使用 Marke() 方法。
marker = Marker(location=center, draggable=False)
m.add_layer(marker);m
现在我们的底图里有了一个标记。
带标记的底图
核标准情报中心
您可以通过提供自定义图像作为图标来自定义标记。我们从图标档案网站中抓取了一个图标,并在我们的地图中用作标记。
icon_url = “[http://icons.iconarchive.com/icons/pelfusion/long-shadow-media/512/Maps-Pin-Place-icon.png](http://icons.iconarchive.com/icons/pelfusion/long-shadow-media/512/Maps-Pin-Place-icon.png)"icon = Icon(icon_url=icon_url)
mark = Marker(location=[57.719503, 12.008843], icon=icon, rotation_angle=0, rotation_origin=’128px 128px’)
m.add_layer(mark);
m
图标
我们现在在地图上有了第二个标记,这次标记是我们提供的一个图标。我们开始在 Jupyter 笔记本上使用真实世界的数据和 IpyLeaflet 绘制交互式地图。
地理数据和地图样式
现在我们已经完成了基础工作,我们可以使用 Geopandas 显示我们之前读取的数据。我们首先绘制一张简单的交互式非洲国家地图。我们首先将多边形限制在非洲国家。为了创建包含数据的地图,IpyLeaflet 接受 Geojson 文件或 Geopandas 数据报。在这里,我们为非洲国家构建了一个地理数据。最后,我们将地理数据添加到地图中。
center = [4.546647, 22.373178]
zoom = 2africa = countries[countries[“continent”] == “Africa”]
africaMap = Map(basemap=basemaps.CartoDB.Positron, center=center, zoom=zoom)# Create a geodata
geodata = GeoData(geo_dataframe = africa,
style={‘color’: ‘black’, ‘fillColor’: ‘#E0D071’, ‘opacity’:0.03, ‘weight’:1.9, ‘dashArray’:’2', ‘fillOpacity’:0.6},
hover_style={‘fillColor’: ‘#b08a3e’ , ‘fillOpacity’: 0.8},
name = ‘Countries’)# Add the map to the data
africaMap.add_layer(geodata)
africaMap
这是一张非洲所有国家的基本交互式地图。我们将进一步发展这一点,以包括悬停和其他互动功能,但现在,这是我们的互动地图。
使用 IpyLeaflet 的基本交互式地图
让我们补充一些背景。当我们停留在一个国家上时,我们会添加国名、人口和 GDP 估计值。这里我们使用 IpyWidgets。
html = HTML(‘’’Hover Over Countries’’’)
html.layout.margin = ‘0px 20px 20px 20px’
control = WidgetControl(widget=html, position=’topright’)
africaMap.add_control(control)def update_html(feature, **kwargs):
html.value = ‘’’
<h3><b>{}</b></h3>
<h4>GDP: {:.2e} people</h4>
<h4>Population: {}</h4>
‘’’.format(feature[‘properties’][‘name’],
feature[‘properties’][‘gdp_md_est’],
feature[‘properties’][‘pop_est’])geodata.on_hover(update_html)
现在,我们的交互式地图中有了悬停功能(见右上方的 GIF 图)。
具有悬停交互性的 IpyLeaflet 地图
等值区域图
使用 IpyLeaflet 创建 choropleth 地图需要将数据设置为 GeoJSON。尽管这是一个额外的步骤,而且我们需要将地理数据框架作为 Geojson 存储在本地。在设置 Choropleth 地图数据之前,让我们先这样做。
pop = dict(zip(africa[‘name’].tolist(), africa[‘pop_est’].tolist()))
africa[[“name”, “geometry”]].to_file(“data/africa.json”, driver=”GeoJSON”, encoding=’utf-8')
geojson_data = json.load(open(“data/africa.json”,’r’))for feature in geojson_data[‘features’]:
properties = feature[‘properties’]
feature.update(id=properties[‘name’])
#print(feature[‘id’])
现在,我们可以使用上面创建的 Geojson 数据来设置 choropleth 地图数据(注意,在绘制 choropleth 地图之前,我们还没有对数据进行标准化,我们应该已经完成了)。
choroplethData = Choropleth(
geo_data=geojson_data,
choro_data=pop,
colormap=linear.YlOrRd_04,
style={‘fillOpacity’: 0.8, ‘dashArray’: ‘5, 5’}
)
等值区域图
聚类图
我们之前阅读的冲突数据集包含许多点,如果我们按原样绘制数据,我们最终会在地图上得到许多点。避免这种情况的一种常用方法是对点进行聚类,如果您想要得到所有的点,可以缩放到特定的位置。让我们看看如何使用 IpyLeaflet 创建一个集群地图。
clusterMap = Map(center=center, zoom=zoom)
clusterMap.add_layer(MarkerCluster(
markers=[Marker(location=geolocation.coords[0][::-1]) for geolocation in africa_acled.sample(1000).geometry])
)
clusterMap
带 IpyLeaflet 的聚类图
交互式控件
在最后一部分,我们将介绍两个控制功能——搜索栏和全屏缩放。
搜索栏和全屏缩放
假设我们想通过输入一个地点的名称来放大该地点,并获得全屏地图。我们将在上面的地图中添加此功能,以放大特定区域的冲突点。
search = SearchControl(position=”topleft”,
url=
’[https://nominatim.openstreetmap.org/search?format=json&q={s}'](https://nominatim.openstreetmap.org/search?format=json&q={s}'),
zoom=5,
property_name=’display_name’,
marker=marker
)
clusterMap.add_control(search)control = FullScreenControl()
clusterMap.add_control(control)clusterMap
看看下面展示这两个功能的 GIF。
使用 IpyLeaflet 进行搜索栏和全屏缩放
结论
IpyLeaftlet 有大量的文档,你可以深入研究它的高级功能。在本教程中,我们已经介绍了使用 Jupyter 笔记本在 IpyLeaflet 中制作地图的一些基本功能。
要安装 IpyLeaflet,您可以使用 Conda 或 pip。
conda install -c conda-forge ipyleafletpip install ipyleaflet
如果您有 JupyterLab,您还需要安装 JupyterLab 扩展:
jupyter labextension install **@jupyter**-widgets/jupyterlab-manager jupyter-leaflet
本教程的代码可以在 Github 资源库中找到:
[## shakasom/IpyLeaflet-jupyter
通过在 GitHub 上创建一个帐户,为 shakasom/IpyLeaflet-jupyter 的开发做出贡献。
github.com](https://github.com/shakasom/IpyLeaflet-jupyter)
虹膜分类器烧瓶应用程序
构建一个简单的 ML 分类算法,并将其作为 Flask 应用程序运行。
嘿,伙计们,这是我第一个关于媒体的博客。这是一个 Iris 分类 ML 模型,变成了一个 flask 应用程序,用于在 Heroku 上托管。
来源——数据营
步骤 1—构建模型
在这里,我们建立了一个监督分类模型,您可以从可用的分类器模型列表中选择。这里我使用了一个 KNN 模型,并获得了 98.66%的准确率。
正如你在上面的代码中看到的,我们已经使用 joblib 保存了 ML 模型,这是转换成 API 所必需的。
步骤 2 —所需软件包列表
对于一个运行在除开发环境之外的任何环境中的模型,我们需要安装所有必需的包。我们需要创建一个包含所有必需包的 requirements.txt 文件。虽然 pip freeze 给出了所有已安装软件包的列表,但是最好在编码的时候安装软件包,这样你就可以只安装特定代码所需的软件包。
步骤 3 烧瓶应用程序创建
Flask 是一个用于在 python 中创建前端应用程序的 web 框架。我们用 Get 和 Post 方法创建了一个简单的应用程序。代码是不言自明的。我想和大家分享的一件事是,作为数据科学家/ Ml 工程师,主要精力应该放在模型构建上,而不是 UI 上。烧瓶应用程序的简单代码就足够了。
步骤— 4 个 HTML 页面
正如你在上面的代码中看到的,我们使用了 HTML 文件。index.html 文件将形成具有 4 个输入的基本模板。
上面代码创建了一个如下所示的 HTML 页面。
应用程序的 Html 页面。
步骤 5 文件结构和结果
最后,用于虹膜分类器的文件夹中的文件是这样的。
如果你想知道如何实现这种树结构,有一个包叫做**树。**使用“ **sudo 安装树”安装软件包。**在终端中输入指向 pwd 的树。
产量预测
就是这样。现在你也可以试试。确保你遵循了所有的步骤和最终结构,并且安装了 requirements.txt 中的所有文件
在下一篇博客中,我会写如何将这个应用程序上传到 Heroku,这样你就可以在世界任何地方访问它。
不敬数据和 AI!
将数据科学降低一个档次的 10 篇厚脸皮文章
随着近 100 篇文章的发表,是时候进行另一次精选了!这里是我最不敬的 10 篇文章,包括一些我让我的 snark 跑得有点太自由的地方。尽情享受吧!
#1 人工智能是一种时尚吗
人们认为人工智能只是昙花一现的三个原因
medium.com](https://medium.com/hackernoon/is-ai-a-fad-55ab24bf77b9)
#2 机器学习——皇帝穿衣服了吗?
深入了解机器学习的工作原理
medium.com](https://medium.com/hackernoon/machine-learning-is-the-emperor-wearing-clothes-59933d12a3cc)
#3 理解数据
关于信息、内存、分析和分布的思考
towardsdatascience.com](/what-is-data-8f94ae3a56b4)
#4 统计学家证明统计很无聊
统计学词汇的基础知识
towardsdatascience.com](/statistician-proves-that-statistics-are-boring-4fc22c95031b)
#5 不确定性是什么意思?
风险、不确定性和模糊性之间的细微差别
towardsdatascience.com](/what-does-uncertainty-mean-cac374bb595e)
#6 TensorFlow 已死,TensorFlow 万岁!
如果你是一个人工智能爱好者,你没有看到这个月的大新闻,你可能只是打了个盹…
hackernoon.com](https://hackernoon.com/tensorflow-is-dead-long-live-tensorflow-49d3e975cf04)
#7 人工智能的第一步可能会让你吃惊
欢迎来到 AI!欢迎来到机器学习!不知道区别有关系吗?不,因为你会开始…
hackernoon.com](https://hackernoon.com/the-first-step-in-ai-might-surprise-you-cbd17a35708a)
#8 数据科学家:22 世纪最性感的工作
在求职面试中问这三个问题,以确保你的雇主准备好让数据科学家变得高效
towardsdatascience.com](/the-sexiest-job-of-the-22nd-century-ffe753e1d155)
#9 数据科学是泡沫吗?
你会惊讶我经常被问到这个问题。我的回答?
hackernoon.com](https://hackernoon.com/is-data-science-a-bubble-c70ceac0f264)
#10 无能、授权和人口
预测你友好的统计学家的 5 大反对意见
hackernoon.com](https://hackernoon.com/incompetence-delegation-and-population-95ebeb9beb93)
【课程】和机器学习交朋友
如果你在寻找一门为初学者和专家设计的有趣的应用人工智能课程,这里有一个我为你制作的娱乐课程:
点击此处获取整个课程播放列表:【bit.ly/machinefriend
与凯西·科兹尔科夫联系
让我们做朋友吧!你可以在推特、 YouTube 和 LinkedIn 上找到我。有兴趣让我在你的活动上发言吗?使用表格取得联系。
A/B 测试是否被高估?从 A/B 测试到假设验证剧本
假设验证不仅仅是 AB 测试。学习何时使用什么
越来越多的团队依靠 A/B 测试来验证和量化假设。追求数据驱动的文化是一件伟大的事情,除非团队开始做过头了。
事实是,A/B 测试被一些团队过度使用和滥用,成为常识和清晰思维的替代品。在谷歌上搜索“A/B 测试被高估了吗”显示了这个长期的问题。
在这篇文章中,首先,我们将简要说明为什么 AB 测试不是解决所有问题的灵丹妙药。随后,我们将看看其他假设验证方法,成长项目经理必须从这些方法中获得稳健和快速的决策。
为什么我们不能只依靠 AB 测试
- 低样本量:这不仅是初创企业的局限,更是大型组织的局限。对于一个没有达到难以捉摸的 10 万 MAU(月活跃用户)的初创公司来说,这是一个挑战。在一个大的组织中,从事低“覆盖率”产品特性的团队通常会处理这些限制。
- 短期关注和局部优化:我们不能运行 AB 测试很多年,所以我们不能发现一个特性的长期和真实的影响。我们需要其他的启发法来给我们信心,我们在一个月内看到的影响将长期存在。此外,有些功能需要培训,即使有巨大的长期潜力,也可能在短期内看不到效益。因此,AB 测试将我们引向局部最大值,当只有无脑 AB 测试指导产品开发时,我们可能永远不会走向全局最大值(我们的潜力)。
- 决策挑战和速度:统计上无关紧要的数字对企业来说并不是无关紧要的数字。交易量增加 1%可能并不显著,但它可能会给大公司带来数亿美元的收入。精心设计的实验有所帮助;但是,我们偶尔会面临这些挑战,不是 stat-SIG KPI,而是仍然具有重大影响的业务影响。此外,有时由于业务限制,我们需要迅速做出决定。例如,我们的功能可能是大产品推广的先驱;或者,这可能只是我们不想陷入假日代码冻结。
关于假设验证堆栈的一句话
通常,人们从三个方面来看待假设验证堆栈:
- 定性到定量:定性方法,如焦点小组、访谈和可用性实验室研究,产生了对“为什么”和“如何”的洞察。AB 测试——一种定量的方法——给我们提供了多少和多少的数字。
- 对行为的态度:通常,我们说的和做的是不一样的。像调查和采访这样的方法可以从用户那里获得“话语”。为了理解“行动”,我们需要依靠 AB 测试和前后分析等方法。
- 产品使用的背景。无论产品是在自然环境中使用还是在脚本环境中使用,都会显著影响用户的反应。
AB 测试是所有方法中最科学的。我们开始了解真正的偏好,而不是陈述的偏好。我们了解的是确凿的数据,而不是模糊的语言;此外,我们从用户的产品使用环境中获得硬性行为,而不是从脚本设置中获得。
有了这么多 AB 测试,就不难理解为什么没有经验的团队越来越依赖 AB 测试了。他们这样做是为了避免争论、责任和令人厌倦的批判性思考。他们很少意识到,通过默认选择 AB 测试,他们正在减慢组织的速度,并且他们仍然可能陷入决策泥潭。
我们不会拔剑去杀一只苍蝇,同样,我们也不应该拿起 AB 测试来满足所有的想法验证需求。
被忽略的第四维
团队犯错是因为上面的三维框架有误导性。它确实谈到了定量、态度行为、自然脚本化的产品使用——但它忽略了至关重要的第四个维度。
第四个维度是我们的环境——公司规模、产品规模、产品成熟度、实验成熟度和业务需求。它被忽视了,因为产品管理和用户研究文献没有提到它。
具有讽刺意味的是,团队不考虑他们自己的上下文。他们忘记了自己,导致错误的选择。
高速且高质量的假设验证
对于一个拥有发达的技术堆栈、分析系统和项目管理的成熟组织来说,进行 AB 测试并不是一个错误,因为质量比速度更重要。此外,一个大型组织有资源来建立一个实验平台和一个系统来弥补一些速度损失。
对于较小的公司,重点是增长。你不能用剑来缝你的裤子,所以不要依赖 A/b 测试。你需要多和用户交流;产品意识、竞争对手产品拆解和批判性思维是你的工具,而不是 A/B 测试。
A/B 测试用速度换取精度。有了 A/B 测试,我们对我们的数字更有信心,但它会减慢我们的速度。创业公司应该优先考虑速度而不是精度,不应该为了获得 stat-sig 而运行几个月的 AB 测试。然而,随着公司的成长,每 1%的变化都很重要,因此假设验证的最佳实践也必须改变。
按公司规模划分的 A/B 测试最佳实践:
- 小公司:不要 AB 考。和用户对话。成功产品的产品拆卸。
- 中型:对于预计会影响指标的更改,进行 A/B 测试。测试一切并不是一个明智的想法。
- 大型:A/B 在最终推出之前几乎测试了所有东西。对于新产品开发,在某些情况下,表现得像一个小公司是一个好主意。然而,在推广之前,A/B 测试是一个很好的实践,因为:A .意外地丢失 1%的指标是一件大事 B .复杂的技术解决方案和未知的依赖性是大型组织的副作用。保守以最小化执行风险是一件好事。
这是按公司规模排列的假设验证堆栈,记住第四维。
在我们结束这一部分之前,我们必须认识到想法验证是一个关于决策的练习。商业大师拉姆·查兰从亚马逊的做事方式中挖掘了智慧的金块。根据 Charan 的说法,贝佐斯说有两种决策,第一种和第二种。
第一类决定是必然的,不可逆转的。一旦做了决定,门就在你身后关上了,没有回头路可走。第二类决策是可变的和可逆的;它们是双向门。次优选择可能是正确的。
按照类型 1 和类型 2 来划分想法是很重要的。对于类型 1,确保团队正在进行尽职调查,收集定性和定量数据,并测试“产品的自然使用”。但是对于类型 2 特性,教条地尝试多种验证方法会导致分析瘫痪。
结束语
- 了解你自己:了解你的业务需求和限制。选择一种对组织和手头的问题最合适的方法。产品管理大师们不知道我们的语境,所以不要照字面理解。
- 采用多模型方法:尝试用多个模型来验证想法。与客户交谈,进行 AB 测试并进行调查,如果结果一致,那么该功能对用户来说很有可能是好的,即使指标并不重要。做狐狸,不做刺猬。
- 第一类和第二类决策:对于重要的和不可逆转的决策,保持怀疑和彻底的尽职调查。但是对于第二类,可逆的决定,不要陷入分析瘫痪或追求超科学的准确性
感谢 Ricky Q 阅读草案,并提供宝贵的反馈。
参考资料和进一步阅读:
数据科学硕士值得吗?
对数据科学毕业生的偏见。
更新:嘿!感谢您花时间阅读这篇文章——但在您阅读之前,我制作了一个关于同一主题的视频,可以在这里找到,您可能会觉得有用。
我相信那些问了同样问题的人已经意识到了就业市场的现状。公司正在生成和收集比以往更多的数据。他们需要具备必要技能的人从数据中获得可操作的见解,以创造更多利润。
这一趋势促使各地大学推出了一系列新的硕士项目来满足这一需求。许多未来的学生都在问我几年前问过的同样的问题:
成为数据科学家需要硕士学位吗?值得花费时间和金钱吗?
我收到了许多潜在学生的来信,询问类似的问题。我简短而有偏见的回答是,是的,它值得花时间和金钱。它对我的事业也有很大的帮助。然而实际上,这真的取决于个人。
我自己的经历
我于 2016 年毕业,获得数学学位,没有任何数据科学知识。所以和大多数毕业生一样,我通过一家毕业生招聘机构申请了分析师的工作。
当我还是一名分析师时,我意识到数学学位教不了你很多东西,无论是技术上还是社会上。
一开始,我努力做一些基本的事情,比如查询 SQL 数据库。很难创建简单的数据可视化,然后将结果传达给利益相关者。
随着我越来越适应做分析师,我开始学习数据科学和机器学习。正是在那段时间里,我意识到我缺乏编程方面的技能和经验。对于 Python 来说尤其如此,它可以说是目前最流行的数据科学语言。
我想学习更多关于数据科学的计算机科学方面的知识,但对我来说,在做全职工作的同时保持纪律性真的很难。我决定我有三个选择:
- 辞职,休息一段时间,然后开始数据科学硕士;
- 一边做分析师一边继续学习,然后尝试申请另一家公司的数据科学家角色;或者
- 在做分析师的同时继续学习,并希望晋升为数据科学家。
最后两个选择对我来说不现实。我既缺乏经验,也缺乏技能,而且很难找到坚持自学的方法。另外,也不能保证该公司将来会提供这样的职位。
作为一名分析师,我可能还能获得所需的相关经验。我也可以通过兼职做项目来发展我的技能。这种方法的问题是缺乏严密性和结构性。这是我在短时间内完成任何有意义的事情所需要的。
因此,对我来说,最有意义的是存些钱,选择第一个。花一年时间去学习我热爱的东西。我决定,我宁愿辞职,也不愿做几年分析师,只抱着的希望在以后过渡到数据科学家的角色。
毕业后成为一名数据科学家
在英国发生封锁前几个月,我从硕士毕业。在最初的几个月里,我在找工作方面几乎没有成功,而封锁让情况变得更糟。
我决定后退一步,重新评估我必须提供的能让我脱颖而出的技能和项目。尽管缺乏工作经验,但数据科学硕士学位一直是我简历的良好起点。
尽管我的工作经验不多,但拿到硕士学位后,我觉得自己更有资格。通过最初的工作要求显然更容易,因为我从中学到了一些东西。它给了我很多可以谈论的项目,并为我自己的项目提供了一个更强大的基础。在我开始攻读硕士学位之前,处理这些项目要困难得多。
例如,在禁闭期间,我参与了一个计算机视觉项目,以提高我的数据处理和机器学习知识。当时,很难鼓起信心开始并完成这个项目。
我认为对我影响最大的是那种信心。硕士学位的结构迫使我在很短的时间内学到很多东西。
通过建立我以前缺乏的基础,我可以更快地成为一名数据科学家。
八月,我终于找到了一份数据科学家的工作。如果没有硕士学位获得的经验和资格,我很难得到这个职位。由于我建立的投资组合、改进的数据科学技能以及对公司寻找数据科学家的理解,我的求职在夏天变得更加容易。
裁决
尽管如此,我仍然不认为有人需要数据科学硕士学位。互联网最大的好处是几乎所有的东西都可以在网上找到。如果你有动力和纪律去学习并独立完成有意义的项目,你可以建立一个同样质量的投资组合。你也会节省很多钱。
此外,如果你已经工作了,那么重返校园并不容易。从财务稳定到没有收入可能是一个艰难的转变。如果你已经在一个高级职位上从事面向数据的工作,经验本身可能更有价值。你可以在工作之外做一些项目来弥补你认为自己缺乏的技能。
但它确实有可能让你的职业生涯快速晋升为数据科学家。如果你处于像我一样的情况,我仍然认为这是深入了解数据科学的最佳方式之一。如果你愿意牺牲时间和金钱,并且真正热爱数据科学,你不会后悔开始攻读这个学位。
不过,需要记住的一件重要事情是,并非所有数据科学大师都生来平等。如今硕士学位并不便宜,所以对每门课程所提供的内容进行研究是很重要的。然后,您可以决定模块(尤其是项目)的选择在将来是否真的对您有用。
那些拥有大量数据工作经验的人可能会在这方面做得更好。然而,我见过许多学生回避较难的模块,然后事后后悔。在某些情况下,他们可能最终需要在工作中再次学习(例如机器学习)。
对一年中所花的时间要明智,我相信这一投资是值得的。
直线是直线吗?
书本上的线性是什么
这个简单的问题“直线是线性的吗?”浮现在我脑海里,无法自拔。好像是显而易见的,所以应该有显而易见的答案。然而,当我深入研究并试图为这个简单的答案寻找证据时,我意识到它比我想象的更复杂,也更有趣!
线性和非线性是数据科学和数学中常用的术语。我们试图找出一个问题是否可以用线性或非线性模型来解决,或者我们的数据是否是线性可分的。如果我们广泛使用这些术语,很好地理解它们是很重要的,不是吗?那么,根据书本,某物是线性的,这意味着什么呢?
很简单…画出来!
让我们思考并试着想象 线性 。你想到了什么?对我来说,这是一条简单的直线。这种线由以下公式描述:
线性(?)函数公式(图片由作者提供)。
而且的确它被称为一个 线性函数【1】。在这个公式中,我们有一个变量 x ,以及两个参数 a 和 b 。我们假设 a = 1 , b = -2 ,并标绘出来:
线性函数 f(x) = x -2(图片由作者提供)。
在图中我们可以看到直线经过点 A (0,2) 为 f(0) = 2 和点 B (-2,0) ,因为 f(-2) = 0 。我们通常就是这么想象线性的。
我们也倾向于根据 比例【2】来考虑线性度。这意味着输入与输出成正比。这种直觉思维对我们来说是自然的,但是,我们需要记住,从形式上来说,比例是一个独立的、更广泛的术语。
根据定义,两个变量或量的比例是当这些量的比率或乘积是常数时出现的关系。有变量 x 和 y ,如果:
比例系数(图片作者提供)。
其中 k 为常数。在这种情况下,如果 x 增加, y 也增加。同样的道理,当我们减少变量时,它是成比例的。
变量是 反比 如果它们的乘积是常数:
反比系数(图片由作者提供)。
为了检验它是否符合我们的直觉,我们可以这样转换这个公式:
转换后的反比公式(图片由作者提供)。
假设 k 大于 0 ,且 y 不等于 0 ,在增加 y 的同时, x 在减少。所以一切 ok,是成反比的。
循规蹈矩
记住我们对线性的直觉想法,让我们用正式的定义来面对它。
要调用给定的关系,或者一个函数,线性它应该满足两个性质(也称为)【3】😗*
- 添加
- 同种
可加性 由以下公式描述:
加法公式(图片由作者提供)。
这意味着输入总和的函数结果应该等于每个输入的函数结果总和。
**所以我们来检查一下之前画的函数是否满足可加性。快速提醒你一下,我们的函数有参数 a = 1 , b = -2,它的公式是这样的:
示例函数(图片由作者提供)。
为了检查可加性,我们假设 x = 2 , y = 3 。现在我们需要计算加法公式左边和右边的函数值,并检查它们是否相等。让我们从左侧开始:
加法公式的左侧(图片由作者提供)。
现在让我们计算公式的右边:
加法公式的右侧(图片由作者提供)。
哎呀,3 不等于 1,说明我们的线性函数不满足可加性**,可加性是线性的一个必备性质。所以它不是真正的线性…**
也许至少是 同质【3】?但首先,函数齐次是什么意思?假设我们将输入 x 乘以因子 d 并计算函数 f(dx) 的输出。那么我们来计算这样的表达式 df(x) 的值。根据同质性,两个结果应该相等。这个简单的公式很好地表达了这一点:
同质公式(图片由作者提供)。
现在,我们将做与可加性相同的实验,并检查我们的样本函数是否满足同质性。让我们假设 d = 4 , x = 2 并计算公式的左边:
同质性公式左侧(图片由作者提供)。
然后让我们计算右边:
同质性公式的右侧(图片由作者提供)。
嗯,6 肯定不等于 0,我们的函数再次不满足线性要求,这一次是在齐次性方面。
哪个线性函数满足叠加?
如果我们的简单线性函数不满足任何一个线性要求,哪个函数满足?实际上,它是一个更简单的线性函数,参数为 b = 0 :
参数 b = 0 的线性函数(图片由作者提供)。
有什么特点,用这样的公式描述的函数经过坐标系的原点(在 2 D 系统中是 (0,0))【4】。
穿过原点的线性函数(图片由作者提供)。
我们来看看它是否真的满足线性的要求。我们假设 a=2 ,那么我们的函数就用 f(x) = 2x 来描述。
我们先讨论可加性。计算可加性公式的左边为 x = 2,y = 3 ,我们得到:
加法公式的左侧(图片由作者提供)。
对于公式的右侧,我们有:
加法公式的右侧(图片由作者提供)。
到目前为止一切顺利!10 等于 10,所以我们的函数是可加的,太棒了。那么让我们检查同质性。
假设 d = 2 , x = 4 ,我们可以计算出左边的齐次公式:
同质性公式左侧(图片由作者提供)。
好了,是 16,让我们检查一下公式的右边:
同质性公式的右侧(图片由作者提供)。
是啊!我们的函数是齐次的。它满足两个线性要求,因此我们可以说它是“真正的”线性。
那么这条直线是线性的,还是非线性的?
答案是:看情况。如您所见,并非所有的线性函数都符合严格的线性要求。当然,使用线性函数这个术语并不意味着我们所有人都犯了一个巨大的错误。我们只需要小心在什么样的环境下使用它。
数学是一个非常复杂的领域,包含许多不同的分支。我们日常使用的线性函数这个术语,从微积分的角度来说是完全正确的。在这种情况下,每条直线都是线性函数。
然而,就线性代数而言,只有线性函数的子集是真正线性的(这些函数具有 b = 0 )。这是一个更广泛的背景,我们根据线性映射和线性系统(使用线性算子的模型)来思考。在这种背景下,严格要求,直线不一定是线性的。
回答最初的问题,我们不仅了解了线性,还了解了提出非常明显的问题的价值。它们帮助我们清晰地理解我们认为已经完全理解的概念。
参考书目:
- https://en.wikipedia.org/wiki/Linear_function
- https://en . Wikipedia . org/wiki/proportional _(数学)
- https://en.wikipedia.org/wiki/Superposition_principle
- https://mathinsight.org/linear_function_one_variable
这是拖网渔船在捕鱼吗?全球渔业观察数据集的监督分类
照片由 Unsplash 上的Egle sidaravicuite拍摄
Metis 数据科学训练营现在已经过了中点,我还有一个项目。这是继我的对纽约 MTA 地铁数据集的探索性数据分析之后的第三个,随后是使用线性回归根据搜集的数据对 MyAnimeList 上的动漫用户分数建模。
第三个项目的目的是什么?简单地说,根据全球渔业观察(GFW)数据集提供的特征,使用监督分类来确定特定渔船是否在捕鱼。
TL;博士:
- 从 GFW 数据集中的约 160,000 个条目中检索并设计了 8 个特征,主要针对拖网渔船
- 重复的容器 ID意味着我必须为将来的工作留下时间序列数据
- 随机森林优于逻辑回归、高斯朴素贝叶斯和 K 近邻,并且在测试数据集和样本外拖网渔船数据上表现非常好
- 接下来的步骤是解开类似的容器 ID;将模型扩展到包含不同的齿轮类型;应用模型到确定不同的齿轮类型以及一艘船是否是渔船;和调查更多复杂模型
一.背景
根据联合国粮食及农业组织的数据,截至 2015 年,大约三分之一的全球渔场被过度捕捞。它继续解释为什么这是一件如此糟糕的事情:
过度捕捞不仅减少了粮食产量,还损害了生态系统的功能,减少了生物多样性,对经济和社会产生了负面影响。
为了跟踪过度捕捞,首先需要跟踪任何时候有哪些船只在捕鱼。这就是 GFW 的数据发挥作用的地方。
二。检索数据
GFW 的目标是“通过增加透明度来促进海洋的可持续性和管理”这种透明度的一部分包括公开相关数据,因此我能够下载带有各种类型渔具的渔船的 csv 文件。[ 1
[1]自 2020 年 5 月 20 日起,GFW 网站上不再提供 csv 文件;相反,他们的 GitHub 有一组 csv 和 numpy 文件,以几种不同的方式呈现数据。任何进一步的调查都可能会利用这些数据。
从 GFW 网站下载的 csv 文件列表,以及记录数量
从上表可以看出,有一个 lot 的记录!为了这次调查的目的,我选择将重点放在拖网渔船上,因为它们是第二大渔具类型,我的系统上仍然可以管理 440 万行数据。
GFW csv 文件具有以下功能:
GFW csv 文件中的功能列表
我删除了更多行,如下所示:
答)是 _ 钓鱼
我们的目标变量由 GFW 聘请的分析师生成,以确定船只是否在捕鱼。因此,介于 1 和 0 之间的值表示至少有一位分析师不同意其他分析师的结论。此外,三分之二以上的数据没有 is_fishing 的数据。
出于训练和测试的目的,我因此删除了捕鱼不是 1(意味着船只正在捕鱼)或 0(意味着船只没有捕鱼)的所有行。这给我留下了大约 160,000 行数据,这更易于管理。
b)缺失数据
只有 2 行数据缺失(速度和航向),因此在本次调查中被删除。
即使有 160,000 行而不是百万行,将所有内容加载到 Pandas 也会降低速度,有时还会导致内存错误。我求助于将我的数据加载到 PostgreSQL 数据库中来缓解这些内存问题,也是为了将来的可扩展性。
我还根据记录的 MMSI 将数据分为训练和测试数据集(80/20 分割)。我需要避免使用同一艘船的数据来预测其后续行为的情况。
三。准备数据
a)时间序列转换-等等,为什么会有重复的 MMSI!?
每艘船的 MMSI(海上移动服务身份)应该是唯一的。因此,每个 MMSI 和时间戳对都应该是唯一的,这似乎是合理的,因此我可以使用一些历史数据来导出其他特征,例如经度、纬度、速度和路线的先前值或移动平均值,以及花费的时间和行驶的距离。
然而,当我试图用我的数据集验证这一点时,我发现了 MMSI 和时间戳的重复配对:
等等,什么???
在 bokeh 绘制第一个 MMSI 的路径产生了以下结果:
2013 年 7 月 9 日第一次 MMSI 采取的假定路线。注意西非中部的无意义坐标。
事实证明,复制 MMSI 症实际上是一个常见的问题。GFW 是这样说的:
每个操作员都必须手动将他们的 AIS 信息(包含他们的 MMSI)输入到他们的应答器中,这给有意或无意的错误留下了很大的空间。我们已经看到了毫无意义的任意代码,以及太不完整而无法提供关于船只身份的有用信息的代码。…这意味着在整个海洋中,多艘船只同时广播同一个 MMSI 号码,如果不仔细检查,很难区分它们。
虚线表示一个特殊的 MMSI 的明显的来回传送。看看这一团糟!来源:全球渔业观察船景
为了理清数据并确定哪些记录与哪个独特的血管相关联,我需要采用无监督学习,这超出了我目前研究的范围。因此,我决定不进行时序转换。至于带有无意义坐标的数据,我让它们是为了这次调查的目的。
b)离海岸距离和离港口距离之间的高相关性
距离海岸和距离港口都是 GFW 生成的特征;前者来自从太平洋岛屿海洋观测系统到最近海岸线的距离得出的数据:0.01 度网格:海洋数据集,后者来自 GFW 的锚泊数据集。
在我最初的分析中,我发现这两个特征高度相关:
距离港口与距离海岸的散点图
甚至两个特征之间的差异(shore_vs_port)也与距离 _from_port 高度相关
因此,我从后续分析中删除了距离海岸的距离。
c)从时间戳生成特征
简而言之,我从每个时间戳中导出月、工作日和小时,其想法是可能存在一些可以被后续模型利用的模式。快速分析得出以下结果(y 轴是 is_fishing 目标的平均值):
工作日似乎没有一个明确的模式…
…但在 4 月至 7 月似乎有明显的峰值,在 11 月至 12 月有所下降…
…上午 10 点至下午 3 点之间的时间明显增加。
为了限制特性的数量,我将字段保持为数字;然而,未来的工作可能需要将这些特征转换成分组的类别(例如,几个小时的早晨、白天和晚上)。
我总结了以下 8 个特点:
- 离港口的距离
- 拉脱维亚的货币单位
- 伦
- 速度
- 课程
- 工作日
- 月
- 小时
我通过 scikit-learn 的默认随机森林分类器和相关矩阵运行这些特征,发现速度和距离港口似乎是预测拖网渔船是否正在捕鱼的两个最重要的特征,如下所示:
默认随机森林分类器中的要素重要性
相关矩阵
四:拟合和选择模型
出于本项目的目的,我考虑了 scikit-learn 的以下分类模型:
- 物流回归
- k 最近邻
- 高斯朴素贝叶斯
- 随机森林
这四个模型在训练数据集上用 5 重交叉验证进行训练;我还使用网格搜索和随机搜索执行了超参数调优(当有太多参数需要调优时使用后者)。
有一些额外的限制如下:
- 物流回归和高斯朴素贝叶斯:我用了 scikit-learn 的 StandardScaler 来归一化数据;否则,特征之间的价值差异将是压倒性的(例如,距离港口的距离可能达到数万,而这些速度最多只能达到数百)。
- K 最近邻:我不得不抽取 20%的训练数据,否则要花很长时间才能得出估计值。
- 随机森林:我不得不限制一些调整过的超参数,即最大深度和最小样本分裂,否则算法容易过拟合。
然后我用 f1 评分和 AUC 评估结果。随机森林以 0.90 的 f1 分数和 0.98 的 AUC 名列榜首,如下图所示:
训练数据的 AUC
五:意见
在测试数据集上应用随机森林,我发现 f1 分数和 AUC 完全相同。
测试数据的 AUC
测试数据的混淆矩阵进一步表明,随机森林确实表现得非常好,具有高水平的精确度和召回率:
我扔在一起的一个快速而肮脏的 Flask 应用程序也显示了我选择的模型的高性能,即使面对样本外数据(即我在训练和测试数据集外忽略的没有共识的行)。我在下面链接了一个视频,因为该应用程序所依赖的 SQL 数据库有点太大,无法放到网上;我将在这个项目的未来迭代中寻求补救。
不及物动词进一步的工作和学习要点
尽管我当前的模型性能很高,但仍有几个方面需要改进,如下所示:
- 解开共享相同 MMSI 的船只以便于时间序列分析,例如通过使用聚类算法。
- 使用除拖网渔船以外的渔具类型以及未知渔具类型处理 GFW 更大的数据集。
- **将数值数据转换为分类数据,分组或其他。**这样做很可能会提高物流回归和朴素贝叶斯模型的性能。除了本文前面提到的与时间相关的类别之外,纬度和经度也可以组合成地球上离散的区域单位。事实上,这是 GFW 用来构建其锚定数据集的方法。
- 应用附加模型确定船只使用的渔具类型,或船只是否为渔船。
对我来说,这是另一次紧张的学习经历,尤其是当它涉及到可视化和处理地理空间数据以及处理 Pandas 和 SQL 中的大规模数据集时。我敢肯定,下一个项目将会同样有趣和紧张。
AI 是医学的机会吗?
还是噩梦?这取决于医生。
TLDR
自 1958 年著名的达特茅斯会议以来,人工智能(AI)一词导致了感兴趣和不感兴趣的周期性周期,直到 20 世纪 80 年代。然后,数学进步、有效的摩尔定律以及不断增长的数字数据生成和使用,使得非常精确的人工智能模型得以出现,这些模型很有可能对医学和医疗保健产生指数级影响。
然而,似乎没有人在真实的临床世界中真正实现这些模型,以至于像医生一样使用人工智能是很常见的。事实上,成功的实施首先要通过对医生进行文化适应和去神秘化的教学程序。没有人-如果不是媒体-告诉他们人工智能的机会。他们觉得没有必要实施,而应该实施。但是盲目的信任也是不可取的:算法有弱点,在开明的使用中必须知道并牢记在心。
人工智能是一个真正的机会,可以腾出医疗时间,以重建与患者的关系。但这不会发生,除非我们解决医生适应机器学习的挑战。
AI 会取代医生吗?我不太确定。国立癌症研究所在 Unsplash 上拍摄的照片。
一切都是从他开始的。
艾伦·图灵,50 英镑面值的英国钞票的象征,于 1912 年 6 月 23 日出生于伦敦。经过多年对数学和密码学的研究,他在第二次世界大战期间以一种特殊的方式做出了贡献:由于他出色的算法技能,他在解密 Enigma(德国军队用来加密通信的机器)中发挥了重要作用。战后,他致力于一个非常特别的想法:建造一个人造大脑。那是计算机的开端。
因此,他参与了对人类智能进行数学建模以创造人工智能的可能性的新辩论。为了测试模型,他提出了著名的图灵测试。出版于 1950 年(2),它包括让一个人与计算机或另一个人进行盲目的讨论。如果它不能区分计算机和人类,计算机就通过了测试。在这篇文章发表近 70 年后的今天,计算机在这项测试中表现非常好,这项测试现在被认为是相对基础的。事实上,他们能够在大多数棋盘游戏中击败人类(3),以无与伦比的准确性描述图像(4),创作令人钦佩的艺术作品([见此处](/gangogh–creating–art–with–gans–8d087d8f74a1, 2017.)),等等。虽然和 AI 本来的意思差了很多,但这是他们的叫法。
但是这个术语是什么意思呢?很少有人能准确说出。定义不明确,最重要的是,远远没有达成共识。维基百科将人工智能定义为“机器展示的智能,与人类和动物展示的自然智能形成对比”。这也许是最接近一般观点的定义。这一定义的原因是非常历史性的。事实上,在图灵和达特茅斯会议的时代,目标是模拟和复制人类智能。然而,今天以 AI 的名义开发的工具却大不相同。他们几乎完全依赖机器学习技术。
机器学习是统计学的一个特殊分支。以一种(非常)简化的方式,ML 集合了允许创建一个数学函数来模拟某个行为的方法。回归、随机森林、提升梯度、神经网络等等,都是机器学习的一部分。
深度学习(DL)也是机器学习的组成部分之一——尽管它是一个多次辩论的主题。需要注意的是,深度学习是基于更复杂的神经网络,离基本的统计学习还很远。这伴随着对数据的更大需求和对计算能力的增加的需求(7)。
因此,我们听到/看到/读到的“人工智能”主要(但不完全)仍然是机器学习,这是一种产生具有多种用途的算法的数学方法:预测模型(如何完成时间序列)和识别工具(如何分割图像)是两个很好的例子。该算法从输入和输出数据中找到相关性。这些相关性允许算法找到与新输入相关的输出。直到今天,所提出的算法在给定的任务中是相对专门的。一般来说,算法越是特定于任务,它们的性能就越好(3)。因此,在这个模糊和不具体的术语背后,只隐藏着计算机工具,这些工具对一个给定的问题提供一个有误差区间的答案。在医学中,最终与成像工具或听诊器相关的技术工具。
然而,人工智能引起的反应比现代听诊器大得多。书籍、推文、纪录片、文章等。,从极端的铺张浪费到对大众不太有用的技术理性。不信任,恐惧,有时拒绝,或者,在另一个极端,坦率的乐观或不合理的信任。近年来,夸张的反应层出不穷。流行文化,往往非常误导,在这里扮演着不可低估的角色。无论是通过电影(终结者,黑客帝国等。)或者书籍(生活 3.0,龟壳里的幽灵等。),人工智能要么不是真的吸引人,要么就是太过了。描绘了一台希望终结(或者,充其量,奴役)人类的机器,他们强调了对人工智能资产的非常不讨好的观点。媒体,往往有偏见和/或消息不灵通,也不会更好。这已经成为人类生存的问题。如果不是,这就是一个普遍失业的问题,因为这些机器人会取代我们的工作。
这些陈述真的没有帮助。图片来自 Pixabay 的 024–657–834。
在某种程度上与工业化的连续阶段相分离的医学领域,将被这些技术彻底改变。这场革命,如果没有正确的解释和伴随,就有被误解甚至拒绝的危险。因此,有必要对这个问题感兴趣:医疗保健界如何积极地利用机器学习工具?这是这次反思的目标。
但是到底什么是机器学习呢?
谈论一项技术而不解释它是很有可能的。然而,在机器学习的情况下,最好用几行文字来解释它的基本原理。
ML 是统计、优化和算法工具的集合。为了深入理解它们,有必要深入研究作为整体基础的数学理论:从矩阵计算到局部梯度和最小值的概念,包括主要的统计原理和不同的定律。但这不是重点,除非你想成为数据工程师或者数据科学家。
作为(未来的)健康专业人士,对这个术语是什么有个直觉就够了。直觉很简单:我们正处于一个因有果的境地。在每个 x (原因),我们观察到一个 y (结果)。从一个极其简化的角度来看,机器学习的整个艺术就是找到一个将这种联系建模的函数,如此精确,以至于如果用一个新的 x 来呈现它,这个模型可以提供一个连贯的 y 。就是这样!
我们注意到模型的构建至少包括两个阶段:一个训练阶段(我们在数据上训练一个算法,我们先前收集的 x 和 y )和一个测试阶段(我们为算法提供一个 x ,我们期望一个正确的 y )。数据量的重要性很容易理解:向算法提供的训练数据越多,它将找到越多的链接,因此它将被更好地构建(8)。
因此,AI 或 ML 的含义是将一个 x 连接到一个 y 的函数。这个函数可能或多或少地复杂,或多或少地忠实反映现实。它可以对应于线性或逻辑回归——一个不太复杂的模型,几个世纪以来一直是手工操作的。它也可以基于更复杂的模型,如支持向量机(支持向量机)或随机森林。
最复杂的模型,有时复杂到我们不知道如何确切地解释结果(因此有了“黑盒”这个不好听的术语),是神经网络,例如 CNN (卷积神经网络)(递归神经网络)或甘(生成对抗网络)。
但即使在计算能力或使用的模型之前,最具决定性的成功因素是数据。基本元素,为推理服务的基本砖块。一个恰当地收集和公正的数据,良好的结构和大量,是一个巨大的资产。问题是,很难有干净和公正的数据。此外,这是很难得到足够的。
事实上,一个从零开始在图像上训练的经典深度学习模型需要超过一百万个例子(一个例子是输入和输出, x 和 y 在一起)。这是数百千兆字节的数据,很难在本地计算机上运行。
这就是为什么我们看到了云服务的出现。这些可在互联网上获得的平台,使得以可承受的价格使用大的计算能力成为可能。这些平台主要由网络巨头托管:谷歌(谷歌云)、亚马逊(亚马逊网络服务)、IBM ( IBM 云)、微软(Azure)……但这种使用也伴随着伦理问题(谁拥有数据?),信任(怎么用?)和主权(这些公司都是美国的)。
今天,所有这些创新都是由一个非常活跃的生态系统驱动的(9)。从未有过如此多的领域投资、发表论文或成立公司。然而,值得强调的是,这种生态系统可能会误导人,或者适得其反。事实上,许多论文被拒绝,因为缺乏统计和方法的严谨性。并非所有创立的企业都是相关的;他们中的大多数很快就用完了现金。所有这些公司都是投资的温床。它们是如此之大,以至于人们担心会发生金融危机。
AI 如何帮助医生?
在医学院,符号学很快就被纳入课程。临床检查是其中很大的一部分,还有听诊,今天依靠听诊器。这个强大的工具,大约在 1816 年由拉埃奈克博士创造,是临床实践的必备工具(10)。它使用了人类的一种能力——听觉——并为医生提供了一个了解心肺世界的机会。
在许多方面,人工智能并不比听诊器复杂。它的主要影响是促进任务,当然是智力,但重复,低附加值的病人护理。这些斑点可以分为三大类。
人工智能只是一个现代的、适应性强的、自主的、数字化的听诊器。Marcelo Leal 在 Unsplash 上拍摄的照片。
第一,分析功能。这是一个关于记忆的数据,这是一个非常标准化的任务。生物学、影像学、病理学是产生报告的医学行为,完整阅读这些报告需要一段时间,但这并不十分必要。
然后,进行诊断、远程监控和对处于危险中的患者的监控。大多数历史诊断方法都是基于统计的。比回归更先进的新模型可以提高灵敏度和特异性。如今,对患者的随访是有限的:电话、预约、电子邮件,都需要医生或管理人员的帮助——他们的帮助越来越少。算法不知疲倦。他们可以跟踪,交换,跟踪病人,编程后自动跟踪。与连接的对象集成,他们可以跟踪身体活动和睡眠周期,并实时控制心率、血压和氧饱和度等生命体征。所有这些数据都可以汇总并呈现给医生。实际上,这种装置已经被食品药品监督管理局(FDA)批准(11)。
最后,在成像和信号处理中的病理检测。深度学习包括各种类型的神经网络(CNN ),专门用于表征体积数据,如图像。这些神经网络,在 CT 扫描或 MRI 上训练和评估,有相当可敬的结果,有时甚至与放射科医生竞争(这是一个非常错误的评估方法)。在其他类型的成像中也是如此。此外,我们强调,这绝不是小事,他们接受的识别具体和精确案例的训练越多,他们就越好。信号处理也是如此。
无论是为了分析脑电图,检测睡眠呼吸暂停还是识别心律失常,算法都是非常有效和有趣的帮助。为什么?克服缺乏时间和专业知识的问题,或者仅仅是为一个复杂的案例带来新的观点。算法可以为需要它们的临床实践提供支持。
所有提到的任务都是医学上的。但我们不要忘记,行政时间也与医疗专业有关。这些任务会激发人们对自动化的强烈渴望。所有这些释放出来的时间都不会是自由时间。医患关系是医疗成功的一大挑战。长时间呆在病床边对修复这种对医疗实践至关重要的联系是一笔财富。因此,有必要仔细关注被释放时间的用途:所有这些都不是为了治疗更多的病人,而是一个更好地治疗他们的机会。
AI 将是医学的机会,只有医生和算法合作。
不可能有完美的算法,因为不可能在所有可以想象的环境中测试一个算法。根据这一观察,让算法和医生相互竞争似乎不合适,在科学上也不可接受。这不应该是这样的。
虽然算法在一般情况下的执行速度和精度方面非常有效,但医生在特殊情况下是无与伦比的,这些情况下,在高斯曲线的极端情况下,离开了规范。许多研究表明,在算法和医生的合作中,诊断的准确性是最好的。ML 仍然是一个工具。增强型听诊器。
然而,如果一个维护良好的听诊器总体上是可靠的,那么算法就不一定了。
一些弱点。
一个算法是它被训练的数据的反映。
当这些数据有偏差时,可能会给现实世界的实施带来问题。有着良好批判意识的人通常会认为训练数据不能完全反映真实生活。事实上,这种情况几乎从未出现过。根据定义,除非上下文状态不变,否则历史数据不能等于未来数据。除了时间偏见之外,地理和种族偏见也经常成为问题。选择偏见和社会经济偏见也可能存在。另一个问题是数据的方差。方差太大的算法将无法正常执行:结果将无法重现。
数据的质量和数量是两个基本要素。但是你还是要知道如何正确使用。构造算法的一个主要挑战是避免过拟合和欠拟合的问题。如果算法与数据匹配太多,这就是过拟合:算法用心学习数据。在训练期间,该算法将具有非常好的性能。然而,在现实生活中,它会产生非常糟糕的结果,因为它仍然过于忠实于训练数据。装配不足是相反的问题,并且在实践中导致相同的问题。这给我们带来了评估算法的挑战,这是一件非常复杂的事情(13)。为此,有许多方法,每种方法都有优点和缺点,但重要的是要记住,没有完美和整体的方法:算法永远不会完美。
那现在怎么办?
对人工智能的排斥会对医学产生短期、中期和长期的负面影响。
人工智能将在未来的病人护理中发挥重要作用,无论是在诊断阶段,治疗阶段,甚至是在管理过程中。对于医生来说,这是一个学习如何使用这种新工具为病人腾出更多时间的真正机会。但是适应这种新工具是一种强烈的无与伦比的需要。高中对算法的介绍还不够。在医学领域,揭开这些工具的神秘面纱是一个远未实现的目标。没有人告诉我们这是什么。没有人告诉我们如何使用它。
从我的角度来看,作为一名接受过数据科学培训的医学住院医师,文化适应的挑战至关重要:它的成功将取决于算法在真实临床世界中的实施。
此外,GAFA(美国数字巨头:谷歌、亚马逊、脸书和苹果)或 BATX(中国数字巨头:百度、阿里巴巴、腾讯和小米)的数据中心不应该是托管健康数据的唯一可能性。今天情况不再如此,我们必须鼓励这种情况。
医院、诊所和图书馆中的数据极其稀少,管理不善,缺乏维护,而且很大程度上没有得到充分利用。它的研究用途是无限的。不同参与者之间的互操作性是乐观者的梦想,悲观者的乌托邦。
我们不能隐瞒,每次技术革命的目标都是一样的:通过技术提高人的能力。在医学上,越早越好。
感谢
我们要感谢跨学科研究中心对我们的欢迎,以及它推动创新和批判性思考的生态系统。也要感谢组织会议带来了对这一问题的不同看法,包括与 Marie-Pauline Talabard、Simon Jégou、Cédric Villani、Henri Bourdeau、Bertrand Nordlinger 博士、Clément Goerhs 博士、Luc Julia、Romain Pommier、Stéphanie Allassonnière 和 Laurent Alexandre 博士的会议。
非常感谢 Cloé Brami 博士和 Olivier Bory 所做的一切。
当然,我没有任何利益冲突。
参考
- A.霍奇斯。艾伦图灵:谜。2012.
- 艾伦·m·图灵。计算机器和智能。头脑,49:433–460,1950 年。
- 托马斯·休伯特等人。一种通用的强化学习算法,可以掌握国际象棋、日本象棋和自我游戏。《科学》,第 1140-1144 页,2018。
- 穆罕默德·马吉德等人。使用卷积神经网络的医学图像分析:综述。医疗系统杂志,2018。
- 肯尼·琼斯。Gangogh:与 gans 一起创造艺术。走向数据科学
- 维基百科关于人工智能的页面
- 林永硕律师事务所。医学生应该对医学中的人工智能有哪些了解?J Educ 评估健康教授,2019 年 16:16–18。
- Ajibuwae & Al。垃圾邮件过滤的机器学习:综述、方法和开放研究问题。赫利永,2019 年 5 月。
- 霍尔登·佩奇。人工智能市场正在增长,但很难确定增长速度有多快。https://news . crunchbase . com/news/the-ai-market-is-growing-but-how-fast-is-tough-to-pin-down/,2019。
- 心脏听诊的前 200 年和未来展望。j 多碟健康 c,12:183–189,2019。
- 莱斯菲尔德马等人。使用 apple watch 监测心率的临床价值。Cardiol Rev .第 60–62 页,2019。
- 奎师那 KR & Al。医患关系之谜。印度精神病学杂志,(增刊 4):S776–S781,2019。
- 尼泊尔陆地卫星 8 号场景地表水提取的机器学习算法评估。传感器(巴塞尔),2019。
人工智能正在改变现代医学的面貌吗?
医疗人工智能产品是否具备取代医疗保健专业人员和扰乱医疗保健行业的条件?
在 2012 年和 2017 年之间,人工智能在医疗保健领域的投资通过股权交易筹集了 18 亿美元。这超过了人工智能在所有其他行业的投资!
几十年来,现代人工智能和医疗保健一直相互吸引。医疗保健行业正在寻找降低成本和提高效率的方法,以便为全球更大比例的人口提供高质量和可获得的医疗保健。
另一方面,人工智能研究人员正在寻找能够展示人工智能价值的定义良好的用例。还有比医疗保健更好的地方吗?在医疗保健中,决策可以拯救生命,而且(除了明显的复杂病例)在许多情况下,原因是已知的,也是明确的。
在本文中,我们将探讨人工智能在医疗保健领域的应用和局限性,以及它是否会在不远的将来改变该行业的面貌。
医学成像
医学成像是医学中拥抱人工智能最快的领域之一。考虑到计算机视觉(研究计算机对图像的理解的计算机科学领域)是机器学习最知名和最成熟的领域之一,这并不奇怪。
发表在《柳叶刀数字健康》杂志上的对 82 项不同研究的系统综述发现,深度学习模型的图像诊断性能与医疗保健专业人员相当。
深度学习是机器学习的一个领域,它使用具有人工神经网络架构的模型,受生物系统神经结构的启发(考虑到这一点,将其应用于医疗用例多少令人满意)。这些模型通过向它们提供大量图像和标签来训练,因此计算机可以学习对某些疾病和状况进行分类。
根据它们的复杂程度,训练神经网络的成本可能会很高。这既与精确筛选数据所需的时间有关,也与训练期间所需的大量计算能力有关。
然而,像大多数机器学习应用一样,一旦经过训练,这些模型比人类模型更快、更便宜,这是人工智能采用的一个明显好处。
在上述系统评估后不久,英国政府承诺为 NHS 的人工智能研究投入 2 . 5 亿英镑。这只是为医学人工智能研究提供大量资金的一个例子。
那么为什么我们在医院里看不到这些模式是司空见惯的呢?
支持人工智能
事实上,在医学成像市场上有少数几个FDA 批准的人工智能解决方案。其中之一是 ContaCT,它分析 CT 血管造影照片,寻找即将到来的中风迹象。在一项研究中,当识别大脑中动脉大血管闭塞(大脑中动脉阻塞)时,其灵敏度超过 90%。
除此之外,它还将开始治疗的时间缩短了五倍!这在中风的治疗中尤其重要,因为中风的永久性损伤量会随着治疗时间的延长而增加。
然而,FDA 将接触归类为
“一种计算机辅助分类软件,使用人工智能算法分析图像,寻找与中风相关的指标。人工智能算法是一种临床决策支持软件,可以帮助提供商为患者的疾病或状况确定最合适的治疗计划。”
注意“计算机辅助”、“支持”和“协助”这些词。人工智能在医学成像方面的接触和其他类似应用不是为独立工作而设计的。它们是用于支持医疗专业人员的工具,提高了诊断的速度和准确性。
对于接触,如果它检测到血管异常,它会向神经血管专家发送短信,然后开始治疗。在人类介入之前没有治疗。
伦理问题
很容易理解为什么一旦医疗干预开始,人工智能就被边缘化为配角。尽管虚拟人工智能应用在医疗成像等领域已经相当成熟,但对于物理应用来说却并非如此。
物理应用可能包括技术,例如在外科手术中使用自主机器人,以及为残疾人使用智能假肢。不仅对这些技术的研究不够成熟,而且它们有着更加直接和持久的后果。
如果机器人在手术过程中出错,那可能是致命的,而用于诊断医学图像的人工智能模型会在采取任何行动之前将他们的发现传递给专家。
然而,即使是将人工智能用于诊断这一虚拟应用,也有些争议。我们将简要讨论三个主要问题。
**首先是信任问题。**人工智能模型是臭名昭著的“黑匣子”,它根据难以理解的复杂参数组合做出决策。对于神经网络来说尤其如此,在神经网络中,模型学习不同数学函数中使用的权重的复杂组合来提供分类。
尽管现在有许多用于解释神经网络的技术,但这些技术仍然难以理解,并且将使医生和患者难以信任它们来提供有效的诊断。
其次,是责任问题。当一个人工智能模型犯了一个错误并造成伤害时,通常不清楚谁应该负责。这个问题经常在自动驾驶汽车导致的致命事故中被问到,但这个问题同样适用于(如果不是更适用于)医疗保健。
应该是开发模型的程序员或数据科学家,还是使用模型的医疗专业人员?在明确谁对人工智能模型造成的诊断错误负责之前,如果没有大量的人类投入和监督,它们不太可能被依赖。
**最后,人工智能会导致人类自满。**如果从业者知道他们正在使用的诊断工具和他们一样有效,他们可能不会充分完成自己的诊断分析。这意味着医疗保健专业人员可以避免检查图像,因为他们知道人工智能模型会为他们做这件事。这样做的问题是,仅仅因为模型和人类平均表现相当,并不意味着他们会在个案的基础上。
正如模型可以识别人类遗漏的病例,人类也可以识别模型遗漏的病例。如果医疗保健专业人员变得自满,不正确地检查自己的图像,这些案件可能会被错过。
结论
很明显,人工智能在图像诊断方面的发展已经导致计算机在特定的诊断任务中与人类一样有效。
然而,提出的伦理问题意味着计算机不太可能在不久的将来取代人类。相反,他们将作为医疗专业人员的额外一层,努力提高诊断的精确度和效率。
照片由 Arseny Togulev 在 Unsplash 上拍摄
在一个每个决定都可能是生死之交的行业,要改变这一点,不仅仅需要研究。人工智能在医院中的缓慢采用将建立患者的信任,对医疗保健专业人员的培训将帮助他们使用人工智能产品来改善患者的治疗。
我不指望自动机器人很快就能为你做手术,但通过适当的程序实施,我只能看到用人工智能丰富当前诊断过程的好处。
如果你喜欢这篇文章,你可能会喜欢我写的另一篇文章,“ 美术是人工智能的下一个前沿吗? 。
AI 的扩张有哪些伦理问题?
数据科学,人工智能,人工智能,观点
目前,人工智能没有能力处理抽象概念,如伦理,这意味着它不能对自己的任何行为负责
照片由 Maximalfocus 在 Unsplash 上拍摄
在这篇文章中,你可以探索 AI 伦理:
- 你对 AI 伦理有什么看法?
- 人工智能使用的核心伦理问题是什么?
- AI 有什么优势?AI 的生产是否符合伦理?
- 谁在人工智能中规划道德和伦理?
- 伦理是智力的产物吗?这种合作关系对人工智能的进步会产生什么后果?
人工智能(AI) 伦理道德与人类伦理道德并无不同。这么想吧,AI 抓不住感情也抓不住人生,至少现在是这样。然而,我们发现它有理解和决策的能力。
" AI 毁灭人类并不一定是邪恶的——如果 AI 有目标,而人类恰好挡道,它会理所当然地毁灭人类,想都不用想,没有任何恶意。"— 埃隆·马斯克
你对 AI 伦理有什么看法?
下面是关于艾的 伦理的思考 :
- 许多人声称,中国已经将人工智能作为一种跟踪个人的方法:他们的个性,他们的运动,他们的日常行为。人们被滥用匿名、民主和在社会中建立等级制度的专制政府所控制。从西方的角度来看,这似乎是一场极权主义的噩梦。人工智能被用来改善世界的专制政府,确保服从,并根除任何反对的观念。技术设计了一个无所不在的政府。
- 中国对人工智能的整合提出了一个问题,即一项技术处于什么阶段,以及对我们文明的影响。我们必须接受一个我们比人类更数字化的世界的时刻到来了吗?是的,精神食粮。它正以前所未有的速度变化着。因此,我们可能会说,机器在图灵测试的任何维度上成功只是时间问题。中国在探索人工智能融入社会的深度极限方面迈出了第一步。政府利用监控对其人民施加权威,这一强有力的策略在其他国家遭到了反对。
- 既然人工智能是一种工具和产品,它就必须遵守我们对商品的规则。也就是说,要健康,不要消极,不要种族歧视。在这些范围内的任何东西都是免费游戏。你可能认为有一个全新的道德问题需要解决,但事实上,这些问题已经被解决了。标准汽车需要一定程度的安全,AI 驾驶的汽车只需要同样程度的安全。我们是否被赋予了决定是否开车碾过棕色人种或米色人种的权利,这将是违宪的歧视?所以,首先,它们不应该被编程来做出某种选择。也有更现实的考虑集中在某些行动上,例如,转弯对任何人来说都更危险。
人工智能在拥有自由的良心之前没有道德。没有自由意志,人工智能就没有法律原则,比锤子好不了多少。
人工智能使用的核心伦理问题是什么?
刘玉英在 Unsplash 上的照片
人工智能使用的主要伦理问题:
- 人类不可能像 AI 进化到可以控制和处理它那样,马上进化。
- 众所周知,谷歌人工智能用只有程序才能理解的符号来编码语言,并表现出从其经验中以非常高的速度学习的倾向。
- 当人工智能和机器人技术以有效的方式结合时,人工智能可以有效地主导劳动力市场,推动工人要么失业,要么进入限制人类选择的人工智能制造和管理职位。
- 一些国家的人工智能进步将对发达国家的行业增长产生负面影响,特别是如果人工智能进步不再需要廉价劳动力的话。
- 当被编程用于全球活动时,当在任务执行或自然灾害中面临障碍时,AI 无法管理道德决策。例如,如果人类的道德在 AI 中没有被正面编码,它会毫不犹豫地克服阻止它完成任务的东西,但 AI 还没有进步到那个程度。
- 人工智能发展加速将在人类中引起恐惧,例如,当人类攻击特斯拉汽车时。
- 人类将变得过于依赖人工智能,即使在应该谨慎的情况下也会放弃权力,例如,当许多人在驾驶特斯拉汽车时似乎在睡觉,即使他们真的不明智,正如他们的创造者所说。
- 人工智能的发展将过早地抛弃现有的模型,因为如果以前的模型被出售给发达国家,劳动力市场将在所有地方被扰乱。
- AI 在一些公司的先进性,相对于体力劳动市场竞争,是一种非常不平等的优势。
- 人工智能可以访问所有输入的数据,例如 SIRI 和 Alexa 在未激活时会做出反应,随机发出笑声或嘲笑声。人工智能从人类数据中学习,并有可能整合人类的模式,并进一步应用它们。
- 如果人工智能被集成到高级别的政治决策中,理论上它可能会提供反对派领导人的个性数据,并预测未来所有反对派的决定都是近乎准确的。有了大数据,一旦获得,性格分析甚至可能比预期的更详细。
AI 有什么优势?AI 的生产是否符合伦理?
摄影爱好在 Unsplash 上
以下是人工智能的好处:
- 现代宇宙处于不断变化的状态,近年来呈指数级发展。扩展人工智能的能力从各个角度渗透到日常生活中;机器人助理渗透到家庭,而增强现实改变了零售业的消费者服务。技术是一座金矿,它给企业和工业带来了惊喜,吸引了众多领域的关注。
- 难怪世界各地的政策制定者,看到人工智能的普及,已经开始致力于技术。那些掌权者用它来达到不同的目的,就像他们的政府试图做的那样。从降低犯罪率到展示政府力量,不一而足;人工智能采用的值得称赞的例子,当然,反之亦然。
你怎么能说人工智能是道德的:
- 这在很大程度上取决于人工智能的使用方式。例如,在中国,最先进的技术将监控带入了一个全新的阶段。它揭示了人工智能令人不安的一面;一个我们期望在遥远的未来出现的时代,然而它却提前到来了。它揭示了一个令中国人不安的事实,即他们的一举一动都在很大程度上被跟踪。乔治·奥威尔 1984 年的格言“老大哥在看着你”是对的。
- 美国各州也禁止面部识别,加州的大城市限制将技术用于特定目的。比如旧金山已经在全市 53 个部门禁止使用旧金山。
- 丹麦政府制定了负责任地应用人工智能的基准。该政策的重点是,在该国的基础设施内建设人工智能将侧重于道德基础,远非中国的情况。这将确保对基本人权的保护,并确保公司和公共部门的公司遵守道德 AI 的限制。
谁在人工智能中规划道德和伦理?
摄影爱好在 Unsplash 上
负责任的人做这项工作,所以他们需要考虑什么是道德以及它如何工作。它被应用于损害控制数学。不幸的是,大多数涉及这一领域的专业人士对什么是道德一无所知,也没有一个地方可以让他们聚在一起理性地解决这个问题。然而,幸运的是,这些大脑永远无法创造强大的人工智能,所以它们不会对人类构成巨大威胁。
那么, 道德 是如何运作的呢?
- 好吧,想想单一付款人系统,你是唯一涉及的人。你可以做任何你想做的事情,但有些因素可能会损害你,所以你要决定任何决定的风险是否大于收益,并在此基础上采取行动,尽可能给自己最好的时间。
- 然而,在一个多人游戏系统中,你可以奢侈地剥削其他玩家,因为如果他们输了而你赢了,理论上你会以他们为代价玩得很开心。
人工智能的工作是避免这种不公正,以使其对所有人都平等,或者努力使其尽可能公平,但公正是如何计算的?
实现这一点的方法是把一个多玩家变成一个单付款人的方案,认为所有的玩家在一段时间内都是同一个人,过着相关个体(和动物)的生活。
现在对这个人来说什么是最好的?
一个人因虐待他人而在生活中获得的好处,现在被那些不再是他人的人所受到的伤害所补偿:伤害现在正由同一个人所遭受。因此,现在很容易看出行动是积极的还是糟糕的,因为好的行动带来的好处大于损失。
这就变成了一个把可能的痛苦和快乐相加的问题。个人并不天生擅长使用这种方法,因为他们通常不会假设他们将不得不过他们正在伤害的人的生活,所以他们更喜欢对自己(或者在某些情况下,对自己)产生偏见,但 AI 可以在没有任何这种偏见的情况下应用这种方法。
谁在给它编程?
你可以为你自己的系统做些什么,但我仍然希望其他人的人工智能会找到关于它的文字,并足够明智地理解它的正确性,这样,作为一条规则,它将自己来规范自己的行为,即使没有人配置任何努力来道德化它或取代其他人安装到它身上的有缺陷的计算机道德体系。
伦理是智力的产物吗?这种合作关系对人工智能的进步会产生什么后果?
有些问题:
- 人工智能很难出现,但更有可能通过试错来改善。对此,我唯一的证据是进化的承诺。
- 如果它来自某种生物启发的机制,将所有的思想纠缠在一起,那么伦理将只是认知功能的一个方面。在这种情况下,你肯定要像教孩子一样教知识。
- 更有可能的情况是,每一个人工智能系统都需要一个效用特性来决定什么值得做,什么不值得做。该框架需要对伦理问题进行编码。
- 道德证明必须由我们来判断、批准和编码,而不是决策机器。这是机器人技术即将成为自动驾驶汽车等日常生活的一部分的障碍之一。对此的解释是,我们的信仰不是科学推导出来的,也不是一致的,而是文化力量的动态组合,是有所不同的背景环境。
如果我们想创造一种对人类友好的普通智能,我们需要找到一种好的方法来开发一种我们理解并同意的道德处理器。如果我们忽视这一点,未来的人工智能很可能不会考虑我们的最佳利益。
人工智能的关键伦理问题是什么?
- AI 由谁负责?
- AI 公平吗?
- AI 正在摆脱乔布斯吗?
- 谁从 AI 中受益?
- AI 能吃亏吗?
- 谁决定如何部署到 AI?
- 人工智能的伦理观是什么?
- AI 有一天会接管人类吗?
- AI 是对人类的威胁吗?
- 人工智能趋势如何引发伦理问题?
- AI 多久会接管?
结论
基于我们现有的道德和伦理原则,这将是相当复杂的。他们在世界各地都是不同的,取决于地点、文化和信仰。我们不是作为一个单一的人类进化而来的,我们可能从我们的社会生活经验中受益。我们的世界在几个方面是分裂的,比如种族、语言、价值观、历史、政治。这使得描述法律和伦理问题变得困难。即使作为具有相同历史的人类,我们也明白这些理想各不相同。即使作为具有相同历史的人类,我们也明白这些理想各不相同。所以这将是解决它的第一步。
这个的另一部分将被加工。虽然有非常“智能”的机器存在(公众并不知道它们),它们可以自己处理和学习,并使用它们的人工智能能力,但它们都是由人类设计的,这意味着存在漏洞。如果我们对计算机有 100%的信心,这些漏洞将会产生重大影响。人工智能可以指出一些对人类不起作用的东西,并根据它所拥有的知识和经历发展自己的推理(道德和伦理)。
它没有良心,没有人脑。也没有和人一样的形象。它使用它拥有的东西,因为它听起来像是机器缺少的东西。逻辑序列也可能与人类的思维方式有些不同。事情将会集中在机器所遵循的或者已经被编程的规则上。
所以,不,它在今天的世界不会有用,但随着人类和技术发展到更高的程度,人类和计算机之间的交互可能更可行。软件科学比公众看到的要复杂得多。可惜主要用于权力和战争类游戏。
现在,把你的想法放在TwitterLinkedin,以及Github!!**
同意 还是 不同意 与绍拉夫·辛拉的观点和例子?想告诉我们你的故事吗?
他对建设性的反馈持开放态度——如果您对此分析有后续想法,请在下面的 评论 或伸出手来!!
推文@ SauravSingla _ 08,评论Saurav _ Singla,还有明星SauravSingla马上!
Alteryx 是否是您分析需求的正确选择?
什么是 Alteryx 以及我对使用它的想法
法国巴黎鸟瞰图— 来源
简介:
几周前,我的同事从我的隔间墙上偷窥说,“嘿,你要学习 Alteryx 了。”… Alteryx ?我甚至不知道那是什么词。在让他为我重复并拼写出来后,我做了一些谷歌搜索。在我的谷歌搜索中,我找不到该软件是什么以及它的最佳用途的综合分类。我不得不费力地从许多搜索中把这些信息拼凑起来。这就是我写这篇文章的原因:分享我拼凑的关于 Alteryx 的结论,并分享我自己使用它的第一手经验。
目录:
- 什么是 Alteryx
- 历史/背景
- 使用 Alteryx(基本用例)
- 总体思路
什么是 Alteryx?
Alteryx 是一个拖放软件,用于数据清理、数据挖掘、ETL、空间分析、机器学习和其他 BI 相关的活动。它的使用范围可以是相对基本的活动,如连接不同的数据源和预处理(我将马上向您展示),也可以是复杂的活动,如预测建模、时间序列和模拟。
历史/背景
Alteryx 既是制作软件 的公司名称,也是软件 的名称……它实际上有一个有趣的背景故事。该公司成立于 1997 年,以前被称为 SRC 有限责任公司。在最初的 15 年里,该公司主要专注于地理商业智能解决方案。它有从事各种有趣的数据相关地理项目的历史,包括在 2012 年与美国人口普查局合作创建一个工具,帮助客户为各自的用例战略性地挖掘/分析人口数据。这是一个突破性的项目,因为这是公众第一次能够如此细致地了解美国的人口构成。
2010 年,该公司更名为“Alteryx ”,采用他们领先的数据分析软件的名称。从这一点上,该公司开始将自己定义为一家全方位的数据科学和分析公司,而不仅仅是一个地理商业智能解决方案。他们将自己的软件设计成一个拖放式解决方案,供任何员工在没有太多编码/硬科学背景的情况下执行高级分析。
然而,由于 Alteryx 在地理空间数据分析方面数十年的背景,我相信这仍然是它的软件区别于其他软件的地方。
另一方面,Alteryx 于 2017 年 3 月 24 日首次公开募股,每股 14 美元。股价在 2020 年 2 月 14 日达到 158 美元的高点…
使用 Alteryx(基本用例)
所以,让我们来深入了解一下使用 Alteryx 是什么感觉。下图乍一看可能有点吓人,但实际上非常简单。
让我们剖析一下画布视图,这样我们就能理解它是如何工作的:
1.在顶部,红色,我们有各种数据工具我们可以在屏幕上拖放。数据工具本质上是可以以直观的方式应用于数据的功能。通常,用户会从绿皮书图标“输入数据”开始。
2.中间黑色的是画布。然后,我们将需要的任何图标(数据工具)拖到画布上,画布是占据屏幕大部分的大块空白区域。像蜘蛛网一样的连接从一个图标到另一个图标,以显示分析的进展(我们很快就会谈到这一点)
3.左边黄色部分是配置窗口。一旦我们拖动一个或多个图标,我们将使用配置窗口配置和定制每个图标的功能。
4.最后,在底部我们有结果窗口。每个数据工具的结果都可以在这里显示和交互。这个特性非常有用,因为它允许我们看到每个数据工具在每一步的输入和输出。
让我们看看画布上的作品是什么样子的:
在这里,我们对虚拟数据进行了一些基本的预处理,我将从左到右一步步介绍每个图标的功能:
1。输入数据:本例中从 excel 表中拉入数据。然而,Alteryx 可以从不同的地方以不同的格式提取数据。
**2。选择数据:**在这一步中重命名并改变了列的顺序
**3。数据清理:**更改了“性别”列的格式,该列以前包含不需要的字符
**4。公式:**通过将名字和姓氏列相加创建了一个新列
**5。过滤器:**根据 1 个特定属性过滤数据,即居住国
6。Join: 将另一个工作表加入到现有的工作表中,类似于 Excel 或 SQL join 语句中的 Vlookup
7。文本到列:根据“-”字符拆分列
8。输出:导出输出,以便在其他地方进行进一步的分析、可视化或报告
这个例子并不令人惊讶,但是它是学习使用 Alteryx 的第一步。请注意配置窗口和结果窗口(这两个窗口都显示了此图像中连接数据工具的详细信息)
总体思路
Alteryx 是在使用 Excel 和使用 SQL/Python/R 之间的一个很好的混合选择。我可以想象它是许多分析师的“黄金地带”。
- Excel 因多种原因而受到限制(缺乏集中存储、缺乏协作能力、缺乏复杂的审计跟踪、容量限制、功能限制等)。Excel 相对容易学习,是生活中非常有用的技能,但它缺乏许多真正的数据分析的关键属性。
- 从数据分析/数据科学的角度来看,SQL 结合 Python/R 几乎可以做任何事情,如果你知道如何使用它们的话。这里的问题是需要多年的训练才能真正精通。很多人没有时间/精力投入到这个上面。即使一些分析师确实学习了这些工具,他们中的大多数可能也不会利用他们在当前角色中学到的能力。
这就是 Alteryx 的用武之地!这是一个非常好的拖放解决方案,正好适合中间位置。以下是我在两周的实验中收集到的一些额外的信息。
- Alteryx 对记录大小几乎没有限制。如果你突然想到“我可以用 Excel 做这个”在学习 Alteryx 时,由于许多原因,这是不正确的,容量是其中之一。根据 Alteryx 的“一般讨论”博客,你显然可以操纵 1 万亿行没有问题。
- **地理空间情报可以说是它最好的功能。**回顾 Alteryx 的历史,作为一家地理商业智能 it 公司,它花了几十年时间来调整自己的定位。虽然现在它可能没有在这方面树立自己的品牌,但它的空间数据工具是业内最好的。它不是一个官方的地理信息系统(GIS)软件,但它可能是最接近的东西,同时仍然是一个通用的分析工具。在这些链接中了解更多信息:空间分析软件,我发现非常有用的例子。
- **挺贵的……**这一点不言自明
考虑通过我的推荐链接加入 Medium:https://andrewhershy.medium.com/membership
如果您觉得这很有帮助,请订阅。如果你喜欢我的内容,下面是我参与的一些项目:
一个 AWS 认证值得吗?
泰勒·维克在 Unsplash 上的照片
我获得 AWS 认证已经快四年了,从学校开始,这是应用数据科学项目的必修部分。从那以后,我在两年前重新认证,以保持认证,并保持我的知识新鲜。
什么是 AWS?
AWS 是亚马逊的一个分支,销售云计算解决方案。它是此类解决方案的最大供应商之一,仅次于微软 Azure 和谷歌云。
云计算的想法很简单:一家公司不再拥有自己的服务器,而是在另一家公司的数据中心租用服务器。由于该云服务供应商拥有大量的服务器,他们可以以较低的每台服务器成本实现这一点。
所有与云相关的东西目前都在 IT 界引起了轰动。许多大型迁移都集中在云上。它有真正的价值,但也改变了很多事情。
什么变化?
当服务器不再物理上位于您的旁边时,这将改变一些事情。不一定是非常根本性的 IT 变化:您仍然可以做同样的事情,底层硬件和软件通常是相同的或非常相似的,一旦一切就绪,一切都将恢复原样。
在 AWS 上,您不必再这样做了。照片由乔丹·哈里森在 Unsplash 上拍摄
不,真正改变的是您在云中设置和管理所有这些虚拟硬件和软件层的方式。
由于设置 IT 的方式发生了变化,您也需要学习如何做到这一点。这就是 AWS 培训可以帮助你学习它的地方,AWS 认证可以帮助你证明你有这方面的知识。
AWS 学习计划
可以拿到的认证有很多。
首先是云从业者,这是一个非常简单的入门级别认证。
然后在第二个层次,助理层次,你可以选择三种不同的路径:解决方案架构师(专注于根据最佳实践架构云系统)、SysOps 管理员和开发人员。
在专业层面,解决方案架构师需要后续培训,专业开发运维工程师的其他两个助理认证也需要后续培训。
专业认证略有不同,因为它们侧重于更具体的主题:这些认证没有级别。
截图来自:https://aws.amazon.com/certification/
AWS 还在他们的网站上提出了基于角色的路径,上面有你工作所需的一切:【https://aws.amazon.com/training/learning-paths/。
值得吗?
AWS 认证会直接给你找工作吗?不,绝对不是。拥有证书与拥有实践经验和实际知识之间仍有很大差距。
我老实说,入门认证挺没用的。也许它可以通过表明你对 AWS 感兴趣来帮助你,我认为这可以被许多公司看作是积极的,但这种水平并不能保证在 AWS 上有任何实际经验。
然后是关于助理认证。对我来说,这显示了一个不足以在 IT 和云上全职工作的水平,但我确实相信,显示你有足够高的水平在 AWS 上完成工作是有用的。此外,你还可以和专家交谈,质疑他们的观点。我相信认证在这里有附加值,因为通常很难证明中级技能水平:如果你在一些宠物项目等上使用 AWS,它可能很难被认真对待。
专业水平的认证表明你真正掌握了这个主题。我不认为如果你完全掌握了一种工具,认证是非常必要的:技术面试应该显示同样的结果。但由于不是每个招聘人员都能进行技术测试,我相信拥有证书在这里也有附加价值。
结论
总之,准备认证对于想要开始使用 AWS 的初学者来说非常有价值。这将迫使你学习基础知识,并有助于关注你所在领域最重要的话题。然而,除此之外,当进入需要 AWS 的工作时,在这个特定的 it 领域拥有实践经验是非常必要的。
我的建议是,在了解它们在云中的不同工作方式(或不同工作方式)之前,您需要了解它们在云之外的工作方式。为此,你需要在工作、学校或家里尝试一些东西。一旦你达到了这个水平,增加一个证书是完全值得的。
分析是你职业生涯的下一步吗?
印度尼西亚 Banyuwangi,De Djawatan(伊曼努尔·阿姆哈拉拍摄)
我希望在将职业生涯转向分析之前知道的 4 件事
两年前,我开始转向分析领域(或者大数据、商业智能——随便你怎么说)。我最初是一名 IT 项目助理。我花了很多时间收集系统需求、开发测试用例、与服务提供商合作,以获得支持业务的合适工具。仅仅接触了一个包含数据查询和可视化的报告工具,我就震惊地意识到这个领域是多么有趣。
有大量的数据可用,通过正确的组合,数据可以帮助人们做出更快、更有影响力的行动和决策。
我的头六个月充满了适应。新的工作领域,新的公司,新的工作文化(从跨国公司到本土初创企业!),以及职业转变后的其他新事物。消极的一面是,我没有对这个新的分析领域做很多研究。我经历了其中的一小部分,我喜欢它,然后我去了(那不是一个非常深思熟虑的决定,不是吗?).
我不后悔这个决定,事实上,我很感激我这样做了!但是回过头来看,仍然有一些的事情我希望在做这个转变之前就已经知道和考虑了。特别是对于非数学/统计/精算师背景的我来说。
在将职业生涯转向分析之前,我希望知道的 4 件事
1。分析是一个广泛的领域,不同的组织对此角色有不同的命名
如上所述,我转行前的数据分析曝光度非常有限。我花了 3 个月时间创建报告和仪表板,帮助利益相关者做出各种业务决策。利益相关者很高兴,我因此获得了内部奖励。我在一家初创公司寻找一个商业智能分析师的职位,我知道这个职位会让我胜任,于是我去了。
在几个月的工作中,我发现这是一个更大的领域的一部分,这个领域叫做分析,它不仅仅是创建报告。但是,在分析方面没有行业范围的能力或认证标准。从事这项工作的部门在组织中也有不同的名称,从商业智能、数据分析、大数据,甚至数据科学。
一般而言,分析涵盖以下内容:
- 数据分析 —综合原始数据并对其进行处理,以生成可操作的见解。这方面的一些项目可能包括识别影响发现难点的因素;分析营销活动绩效;或者顾客购买行为
- 简单的数据建模 —创建分组数据点的方法,以制定更明智的策略。这方面的一些项目可能包括客户细分、定义影响转换的因素等
- 数据基础 —识别可能的新数据点和特征,以丰富分析和数据模型。原始数据(取决于大小和形式)可能太难处理,临时数据基础可以帮助弥补这一点
- 报告和仪表板 —这并不新鲜,但有一些原则可以让每个报告/仪表板在一目了然的情况下变得更有价值和更具可操作性
确保你知道你想做什么样的分析,并将其与你正在探索的分析组织的工作范围相匹配。
作为一个暗示,你作为一个分析师的工作范围将根据组织如何定义分析而有所不同。但是不管那里的分析部门是什么样的,确保你有足够的产品/数据工程团队的支持,以确保你有良好的数据基础来进行分析。如果没有良好的数据基础,您会发现自己要花更多的时间来准备数据集,而不是实际操作、询问甚至呈现数据集。我告诉你——这是一个非常低效的过程。
2。需要基本的统计知识和数据处理能力
有解决问题的能力是好的,但这还不够。我有信息系统/信息技术背景,了解企业和流程,但统计数据非常有限。我对相关性、聚类或回归并不熟悉。这种情况限制了我的数据分析,因此它往往是非常探索性的——很少有决定性的或科学的见解。虽然在某些情况下,这可能不是一件坏事,但在其他情况下,这就像一个回旋镖,因为洞察力仍然是主观驱动的,不可扩展。
如果你像我一样来自非统计/数学背景,我建议首先熟悉描述性分析和一些预测性分析概念。描述性分析包括总结和描述数据集,查看它们的频率、集中趋势、分散性、与其他数据集的关系等。预测分析是利用历史数据预测潜在结果的技术。在进行这些分析时,尤其是在大型数据集上,需要某些数据操作工具。有很多工具,但我个人最喜欢的是 Python(是的,它来自我的 it 背景:P)和 r。
几个内容可以帮助您开始:
3。以正确的方式分割数据——不一定是我们期望的结果
传统上,数据被用作某些业务绩效的回顾性度量,以及下一个决策的合理性。我们作为一个分析师,决策者通常已经有了一些先发制人的假设,关于什么样的见解将从数据中产生。而且我们喜欢正确对待它。
一旦开始分析,我们就处理数据,进行一些描述性的探索,然后进行统计测试。从那里,我们得到了一些洞见,这些洞见可能导致我们的假设被拒绝,甚至可能与我们的假设相矛盾。有些情况下,我们或利益相关者对这个结果感到焦虑和好奇,导致我们再次操纵数据,以至于我们需要重新测试和证明最初的假设。
虽然对数据进行复查和进一步的分组分析有助于验证我们的分析,但我们也应该保持中立,接受数据所告诉我们的事实。
尤其是当我们确信我们已经遵循了正确的分析过程,并且质量差的数据较少时。
这可能会导致我们陷入一个循环,反复检查,反复切割数据集,花费数小时,但仍然没有获得任何额外的见解或获得偏离我们最初目标的结果。在处理这个问题时,我们可以:
- 建立一套 清晰的目标和界限用于分析中要探索的事物。每当你打算深入研究时,问问自己它将如何帮助你回答问题陈述或实现分析目标。
- 请记住, 数据是其他变量 中的一个关键输入。它并不完美,在生成见解时还有几个其他因素需要注意,如有限的样本组/数据特征,或不断变化的趋势。
查看这篇来自 HBR 的有趣的文章,了解如何在组织中使用数据作为决策基准。
4。适应快速持续改进的重要性
当提出见解或部署模型时,分析或数据建模的工作不会停止。从每个分析中,仍然会有后续问题需要解决,新的数据集需要处理,以及来自外部的额外问题。在高增长的科技初创企业中,事情变化非常快。作为一名分析师,重要的是你要为此改变你的工作方式。
一些提示…
- 更多的战术分析,而不是直接的大基础分析
- 让它具有可复制性!在接下来的几个月中,您可能会发现自己为了验证或类似的上下文而重新运行分析
- 适应并理解新产品特性或外部事件如何改变你之前分析的结果(从而使其过时或需要额外的调整)
你可能会发现你现在做的东西在未来的 12 个月甚至 6 个月内可能会过时。这就是它的美妙之处。我们需要确保的基本上是我们是否仍然产生与组织的焦点一致的分析。
最后的想法
上述事情可能会帮助你做出更明智的决定,将你的职业生涯转向分析以及随后的准备/要求。我建议和业内人士聊天,更好地了解外面的世界。
最重要的是,转行仍然需要决心、适应和对工作的奉献。随着大数据、分析、数据科学和机器学习的兴起,这一领域的机会是无限的,并且仍在不断发展。
将你的职业生涯转向这个领域在很多方面都很有趣,但是请确保你知道你报名参加的是什么,并确保你已经为成功做好了准备:)
Apache Airflow 是否足以满足当前的数据工程需求?
Apache Airflow 作为 ETL 和数据科学的工作流管理平台的利与弊,以及由此衍生的 Airflow 可能是好选择或坏选择的用例
克里斯·利维拉尼在 Unsplash 上的照片
不久前,如果你问任何数据工程师或数据科学家,他们使用什么工具来编排和调度他们的数据管道,默认的答案可能是 Apache Airflow。尽管气流可以解决许多当前的数据工程问题,但我认为对于一些 ETL &数据科学用例来说,它可能不是最佳选择。
在这篇文章中,我将讨论我在过去两年中使用气流的利弊,并从中得出气流仍然是一个很好的选择的用例。我希望在本文结束时,您将能够确定它是否适合您的 ETL &数据科学需求。
气流的优势是什么?
社区
不可否认,阿帕奇气流有一个惊人的社区。有大量的个人在使用 Airflow 并为这个开源项目做出贡献。如果您想解决一个特定的数据工程问题,那么社区中可能有人已经解决了这个问题,并在线分享了他们的解决方案,甚至将他们的实现贡献给了代码库。
对气流进行战略押注的公司
许多公司决定投资 Apache Airflow 并支持其发展,其中包括:
- 谷歌凭借其云作曲家 GCP 服务,
- 天文学家为在 Kubernetes 上部署气流提供企业支持,
- Polidea 拥有许多 PMC 成员,为代码库做出了巨大贡献
- GoDataDriven 提供阿帕奇气流训练。
来自这些公司的支持确保有人全职工作来进一步改进软件,从而保证长期的稳定性、支持和培训。
计算机编程语言
在 Python 代码中定义工作流的可能性非常有用,因为它允许您将几乎任何自定义工作流逻辑合并到您的编排系统中。
展开性
气流允许您通过以下方式扩展功能:
- 使用插件例如。要在 UI 中添加额外的菜单项,
- 添加自定义操作符或在现有操作符的基础上构建。
广泛的运营商
如果你看看 Airflow Github 库中可用的操作符的数量,你会发现 Airflow 支持广泛的到外部系统的连接器。这意味着,在许多情况下,您会发现代码模板可以用来与各种数据库、执行引擎和云提供商进行交互,而不必自己实现代码。
外部系统的连接器数量表明,气流可以用作“粘合剂”,将来自许多不同来源的数据结合在一起。
气流的弱点是什么?
从上面列出的优势列表中,您可以看到,总的来说,从将许多外部系统捆绑在一起的角度来看,Airflow 是数据工程的一个伟大产品**。社区投入了大量的工作来构建广泛的特性和连接器。然而,它有几个弱点阻止我真正喜欢使用它。其中一些问题可能会在未来的版本中得到解决,所以我在撰写本文时讨论这些问题。**
数据管道没有版本控制
如今,当我们有了版本控制系统和存储在 Docker 注册表中的不同版本的 Docker 映像时,我们认为版本化是理所当然的——这是一个应该存在的基本功能,毫无疑问。但是,气流还是没有。如果您从 DAG 代码中删除一个任务并重新部署它,您将丢失与该任务相关的元数据。
对新用户来说不直观
我用了足够长的时间来理解它的内部结构,甚至通过编写定制组件来扩展它的功能。然而,向一组以前从未使用过 Airflow 的数据工程师教授如何使用它被证明是耗时的,因为人们需要学习一种全新的“语法”。一些数据工程师认为整个体验不直观。
一个突出的例子与的调度有关:许多人(包括在内的我)发现,Airflow 在调度间隔的结束时开始调度任务,这非常令人困惑。这意味着调度间隔不会立即开始,而是仅在execution_date
达到start_date
+ schedule_interval
时开始。这似乎适用于每晚只运行一次的批处理 ETL 作业,但是对于每 10 分钟运行一次的作业,当不熟悉该工具的新用户使用它时,它会相当混乱,并且可能导致意外的错误,特别是如果没有正确使用 catchup 选项的话。
从一开始就配置过载+难以在本地使用
为了在本地计算机上开始使用 Airflow,不熟悉该工具的数据专业人员需要学习:
- 内置于产品中的调度逻辑****——比如提到的与开始日期、执行日期、调度间隔、赶上进度相关的细微差别
- 一整套概念和配置细节— 操作符与任务、执行器、Dag、默认参数、airflow.cfg、airflow 元数据 DB、部署 Dag 的主目录等等)。
另外,如果你是一个 Windows 用户,你真的不能在本地使用这个工具,除非你使用 docker-compose 文件,这些文件甚至不是官方 Airflow 库的一部分——许多人使用 puckel/docker-airflow 设置。这都是可行的,但我希望它会更直观,更容易为新用户。
我知道 Airflow 在过去的几个月里发布了一个官方的 docker 映像,但仍然缺少一个官方的docker-compose
文件,新用户(特别是 Windows 用户)可以在其中获得完整的基本设置,以及一个元数据数据库容器和一个绑定挂载,以便将他们的 Dag 复制到容器中。一个官方的docker-compose
文件对于能够在 Windows 上本地运行 Airflow 非常有帮助。
如果你使用天文学家付费版本的气流,你可以使用 astro CLI ,这在一定程度上缓解了局部测试的问题。
为生产设置气流架构并不容易
为了获得生产就绪的设置,您实际上有两种选择:
- Celery Executor: 如果您选择这个选项,您需要了解 Celery 如何工作+您需要熟悉 RabbitMQ 或 Redis 作为您的消息代理,以便设置和维护可以执行您的气流管道的工作队列。据我所知,没有直接来自 Airflow 的官方教程或部署方法来使这一扩展过程对用户来说更容易。我个人是从这篇博客文章中学到的。)。总的来说,我希望这个设置对用户来说更容易,或者至少 Airflow 会提供一些关于如何正确设置的官方文档。
- Kubernetes Executor: 与芹菜相比,这个 Executor 相对较新,但是它允许您利用 Kubernetes 的力量自动缩放您的工人(甚至减少到零!)并以健壮的方式管理所有 Python 包的依赖关系,因为所有东西都必须被容器化才能在 Kubernetes 上工作。然而,在这方面,我也没有在官方文档中找到关于如何正确设置和维护它的支持。
我在为我工作的公司在 AWS 上设置气流的经验是,你可以:
- 雇佣一些外部顾问为你做这件事
- 从谷歌( Cloud Composer )或天文学家. io 获得一个付费版本
- 或者你可以试错,交叉手指希望它不会断。
总体而言,Airflow 的架构包括许多组件,例如:
- 调度程序,
- 网络服务器,
- 元数据数据库,
- 工作节点,
- 遗嘱执行人,
- 消息经纪人+芹菜+花如果选择芹菜执行者,
- 可能是一些共享卷,例如 AWS EFS,用于工作节点之间的公共 DAGs 存储,
- 正确设置
airflow.cfg
中的值 - 配置日志存储。S3 +理想的一些生命周期策略,通常情况下,你不需要查看非常旧的日志和支付存储费用
- 为用户界面注册域
- 添加一些监控来防止您的元数据数据库和工作节点超出它们的计算能力和存储
- 为 UI +数据库用户管理添加一些 Auth 层用于访问元数据数据库。
这些是 许多组件来维护 和 以确保它们都很好地一起工作, 而且似乎开源版本的 Airflow 并没有让这个设置对用户来说很容易。
从我到目前为止的经验来看,如果你想在生产中使用 Airflow(特别是如果你使用 AWS 或 Azure 而不是 GCP ),选择天文学家似乎是最简单的选择,因为你在上面添加了许多功能,例如监控你的节点、将日志拉到一个中心位置、授权层(和与活动目录的集成)、支持、SLA 和天文学家团队将至少维护上面列出的一些组件。
任务之间缺乏数据共享鼓励了非原子任务
目前,除了使用 XComs 之外,还没有自然的“Pythonic 式”方法在 Airflow 中的任务之间共享数据,XComs 被设计为仅共享少量元数据(路线图中有计划引入功能性 Dag,因此数据共享在未来可能会以某种方式变得更好)。
任务意味着数据管道中基本的原子工作单元。因为在气流中的任务之间没有共享数据的简单方法,而不是任务是原子的,即只负责一件事情(例如。仅提取数据,人们通常倾向于使用整个脚本作为任务,例如一个脚本执行整个 ETL ( 由 BashOprator ex 触发。" python stage _ AdWords _ ETL . py "),这反过来使得维护更加困难,因为您需要调试整个脚本(完整 ETL ),而不是一个小的原子任务(例如。仅“提取”部分)。
如果你的任务是而不是原子的,当它失败时,你不能仅仅重试 ETL 的加载部分——你需要重试整个 ETL 。
调度程序成为瓶颈
如果你以前使用过 Airflow,你可能已经经历过在 UI 中点击 Trigger DAG 按钮后,你需要等待相当长的时间才能看到任务真正开始运行。
调度器通常需要几分钟才能调度任务,并由工作进程执行,至少今年早些时候我使用部署在 EC2 上的 Airflow 时是这样。Airflow 的社区正在致力于改进调度程序,所以我希望它在下一个版本中会有更高的性能,但是在撰写本文时,这个瓶颈阻止了将 Airflow 应用到延迟不可接受或不可取的用例中。
气流仍然是一个好选择的使用案例
在本文中,我多次强调,当 Airflow 只需要调度以下任务时,它就能很好地工作:
- 运行在 Spark、Hadoop、Druid 等外部系统上,或者 AWS Sagemaker、AWS ECS 或 AWS Batch 等一些外部云服务上,
- 向某个内存数据库提交 SQL 代码。
Airflow 被 设计成 不直接在 Airflow 内部执行任何工作流,而只是对它们进行调度,并让 保持在外部系统 内执行。
这意味着,如果您的任务是提交 Spark 作业并将数据存储在 Hadoop 集群上,或者在 Snowflake 中执行一些 SQL 转换,或者触发 SageMaker 培训作业,那么 Airflow 仍然是一个不错的选择。
举个例子:想象一家公司,数据工程师在 Pentaho 数据集成中创建 ETL 作业,他们使用CeleryExecutor
在 AWS EC2 实例上编排BashOperator
任务。那些任务没有被停靠,任务只是调度一个 bash 命令在一个特定的服务器上运行。气流在这个用例中运行良好。
如果您在工作流系统中需要做的只是向外部系统提交一些 bash 命令,并且您实际的数据流是在 Spark、SageMaker 中定义的,或者如上面的例子,在 Pentaho 数据集成中,Airflow 应该非常适合您,因为数据依赖关系是由那些外部系统管理的,而 Airflow 只需要管理任务之间的状态依赖关系。如果您使用一些内存数据库,如雪花、Exasol 或 SAP Hana,实际工作在这些数据库中执行,您的工作流编排系统只需向其提交查询即可。
气流不是好选择的使用案例
如果您希望您的 工作流系统 与您的 执行层 紧密合作,并且能够在 Python 代码内的任务之间传递数据,那么在这种情况下,气流可能不是最好的选择。
Airflow 只能通过 XComs 传递任务之间的状态依赖(加上可能的一些元数据),而不能传递数据依赖。这意味着,如果您主要用 Python 构建工作流,并且您有许多数据科学用例,这些用例本质上严重依赖于任务间的数据共享,那么其他工具,如 Prefect 会更适合您。
在这些使用案例中,Prefect 是比 Airflow 更好的选择:
- 如果需要在任务间共享数据
- 如果您需要对数据管道进行版本控制,那么 Airflow 不支持这一点
- 如果你想用 Dask 对你的 Python 代码进行并行化,提督支持 Dask 分布式开箱即用
- 如果需要运行动态参数化数据管道
- 如果 Airflow 的调度器延迟不为您的工作负载所接受,
- 如果您想在本地测试工作流代码时获得无缝体验
- 最后,如果你喜欢一个更容易和更灵活的执行层而不是维护前面提到的所有气流组件,你可以选择完美云。您可以在本文中找到一种可能的设置方法:
如何在几分钟内建立一个分布式云工作流程编排系统,并专注于提供价值,而不是…
towardsdatascience.com](/distributed-data-pipelines-made-easy-with-aws-eks-and-prefect-106984923b30)
结论
在本文中,我们讨论了 Apache Airflow 作为 ETL 和数据科学的工作流编排解决方案的优缺点。在分析了它的优势和劣势之后,我们可以推断,只要它用于其设计目的,即仅编排在 Apache Spark、Hadoop、Druid、云服务等外部系统上执行的工作,或者在向 Snowflake、Exasol 或 Redshift 等高性能分布式数据库提交 SQL 代码时,它就是一个不错的选择。
然而,air flow并不是为直接执行您的数据管道而设计的,所以如果您的 ETL &数据科学代码需要在任务之间传递数据,需要动态和参数化,需要并行运行,或者需要更灵活和低延迟的调度程序,那么您可能会更喜欢其他工具,如 Prefect。
感谢您的阅读!
人工智能死了吗?
先说 AI 状态的统计。
照片由 Greg Ortega 在 Unsplash 上拍摄
在过去的几十年里,对人工智能的影响和趋势的兴趣激增,导致了许多问题和评论的出现。一个最流行的观点是,人工智能及其子领域已死,其他趋势性的先进技术将取而代之。AI 死了是真的吗?让我们开始吧!
经济。
乔布斯
人工智能在招聘市场上还有需求吗?哪些国家的人工智能工作正在增长?
不仅发达经济体的就业率一直在上升,许多新兴市场也是如此。下图显示了 2019 年各国人工智能雇佣指数。
按国家分列的人工智能雇佣指数-2019 年
人工智能雇佣率是 LinkedIn 成员中拥有人工智能技能并在新工作开始的同一个月内将新雇主添加到其个人资料中的百分比,除以该国 LinkedIn 成员的总数。如果国家符合以下条件,则包括在内:
- 充足的劳动力覆盖率(大约> 40%);
- 任何一个月至少 10 个 AI 人才。
符合这些条件的国家有:美国、荷兰、爱尔兰、丹麦、澳大利亚、英国、卢森堡、加拿大、新加坡、比利时、新西兰、挪威、瑞典、阿拉伯联合酋长国、法国、葡萄牙、瑞士、智利、西班牙、意大利、香港、芬兰、以色列、哥斯达黎加、巴西
下面的图表显示了美国哪些行业的人工智能工作份额正在增长。在各行业中,技术、服务部门和制造业对人工智能技能的需求增长最为显著。
行业发布的人工智能职位份额-2019 年
投资
对人工智能初创公司的投资也在增长。2010 年至 2018 年间,资金以超过 48%的年均增长率增长。接受资助的人工智能公司数量也在增加,2018 年接受资助的人工智能公司超过 3000 家。
人工智能私人投资总额-2019 年
在美国,受资助的初创公司数量仍然很高,因为它一直是人工智能资助的领导者。但是,一些中国公司在 2018 年获得了高水平的投资,这使该国接近与美国持平。
按国家分列的人工智能私人投资总额-2019 年
人工智能相关投资规模最大、增长最快的领域是哪些?
- 自动驾驶汽车(AVs)77 亿美元(占总数的 9.9%),
- 药物、癌症和治疗(47 亿美元,超过 6.1%),
- 面部识别(47 亿美元,6.0%),
- 视频内容(36 亿美元,4.5%),
- 欺诈检测和金融(31 亿美元,3.9%)。
世界人工智能私人投资的百分比-资料来源:CAPIQ,Crunchbase,Quid,2019 年
全球哪些行业增长最快?
- 机器人过程自动化增长最快(2018 年超过 1B 美元)
- 供应链管理(2018 年超过 5 亿美元),
- 工业自动化(2018 年超过 5 亿美元)。
- 其他部门也经历了全球私人投资的增长。
人工智能私人投资的增长-来源:CAPIQ,Crunchbase,Quid,2019 年
企业活动
越来越多的公司在全球范围内采用人工智能:
- 58%的公司正在至少一个职能或业务部门#使用人工智能,高于 2018 年的 47%。
- 人工智能整合在各地区的分布似乎比 2018 年更加均匀。
- 30%的人报告称,人工智能嵌入了他们业务的多个领域,而 2018 年有 21%的人这么说。
业务部门的人工智能能力-来源:麦肯锡公司 2019 年
组织最有可能将 AI 集成到为其行业提供核心价值的功能中。例如,金融服务业的受访者比其他人更有可能说他们的公司在风险职能部门采用了人工智能。
按行业和职能划分的人工智能采用情况-来源:麦肯锡公司 2019 年
组织采用的人工智能能力因行业而异。
业务流程中的人工智能能力-来源:麦肯锡公司 2019 年
学术界。
在线学习
人工智能教育延伸到大学之外。在线学习在教育和发展全球劳动力的人工智能技能方面发挥着至关重要的作用。
大学入学人数
在美国大学,仅在斯坦福大学,人工智能导论的入学人数在 2012 年至 2018 年间就增长了五倍。
美国大学人工智能导论的总入学人数-2019 年
美国以外几所领先的计算机科学大学的人工智能和人工智能课程注册人数知道提供 2010-2019 学年数据的国际学校的相对增长。
世界其他大学人工智能导论总录取人数-2019 年
公众的看法。
中央银行
世界各地的央行都对人工智能表现出浓厚的兴趣,特别是它预测地缘政治和宏观经济状况的能力,以及更好地理解监管和政策环境的能力。
《央行通讯·全球 2019》提及人工智能
提及人工智能的中央银行通信显著增加,随着时间的推移,从其他出版物转向提及人工智能的演讲,显示出理解人工智能的巨大努力。
政府
政府越来越关注人工智能。在美国,数据显示,与前几年相比,2017-2018 年国会的活动增加了 10 倍以上。
美国国会人工智能提及-来源:彭博 2019
企业
提及 AI 的盈利电话*的份额有所增加,从 2010 年占总盈利电话的 0.01%增加到 2018 年的 0.42%。
收益电话会议是上市公司管理层、分析师、投资者和媒体之间的电话会议,讨论公司在给定报告期(如一个季度或一个财年)的财务业绩
人工智能在赚取呼叫中的总次数-来源:Prattle,2019 年
网络搜索和全球新闻
查看在线新闻报道,下面的时间轴显示,“人工智能”是明显的赢家,其次是机器学习和深度学习。
全球新闻报道的百分比-来源:GDELT,2019
2020 年及以后!
通过充当资本-劳动力混合体,人工智能提供了放大和超越当前资本和劳动力能力以推动经济增长的能力。研究揭示了前所未有的价值创造机会。
2035 年的年增长率—资料来源:埃森哲和前沿经济学
到 2035 年,人工智能(AI)在 12 个发达国家(目前占全球国内生产总值(GDP)的 50%)的经济影响将在未来几年继续增长,仅在瑞典就有超过 37%的增长。
人工智能提高劳动生产率的百分比——资料来源:埃森哲和前沿经济学。
上面提到的统计数据表明,人工智能在过去十年中有了显著的发展,并将继续在几个领域中发挥最大的作用。人工智能通过自动化任务和改善价值创造过程,已经进入学术界、企业和公众认知的核心。
**参考资料:提及的统计数据来自斯坦福大学 2019 年 HAI 年度报告和埃森哲研究。