TowardsDataScience 博客中文翻译 2016~2018(二百八十九)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

算法出错:算法的易错性和经济组织

原文:https://towardsdatascience.com/to-err-is-algorithm-algorithmic-fallibility-and-economic-organisation-dbe18bb32abc?source=collection_archive---------4-----------------------

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

A precision-recall curve in a multi-label classification machine learning problem.

算法失败

深入挖掘当今一些最大的技术争议,你可能会发现一个算法失灵:【1】

  • YouTube 广告争议:该算法将一些全球最大品牌的广告放在带有仇恨言论的视频上
  • 脸书视频争议:该算法在其用户的 feeds 中发布暴力视频。
  • 谷歌自动完成争议:该算法引导人们到新纳粹网站寻找关于大屠杀的信息

这些错误主要不是由数据中的问题引起的,这些问题会使算法具有歧视性,或者它们不能创造性地随机应变。不,它们源于更基本的东西:事实上,即使算法是基于无偏见的数据生成常规预测,它们也会出错。犯错是算法。

算法决策的成本和收益

我们不应该仅仅因为算法出错就停止使用它们。没有他们,许多受欢迎和有用的服务将无法生存。然而,我们需要认识到算法是容易出错的,它们的失败是有代价的。这指出了在更多(算法支持的)有益决策和更多(算法导致的)代价高昂的错误之间的重要权衡。平衡在哪里?

经济学是权衡的科学,为什么不像经济学家一样思考这个话题呢?这就是我在这篇博客之前所做的,创建了三个简单的经济学短文,着眼于算法决策的关键方面。这些是关键问题:

  • 风险:什么时候我们应该把决策交给算法,这些算法需要有多精确?
  • 监督:我们如何结合人类和机器的智能来达到预期的结果?
  • 什么因素使我们能够并限制我们加速算法决策的能力?

接下来的两节给出了分析的要点及其含义。最后的附录更详细地描述了这些插图(有方程式!).

建模建模

风险:随波逐流

正如美国心理学家和经济学家希尔伯特·西蒙曾经指出的‘在一个信息丰富的世界里,注意力成为一种稀缺资源’。这既适用于个人,也适用于组织。

正在进行的数据革命有可能超出我们处理信息和做出决策的能力,而算法可以帮助解决这一问题。它们是自动化决策的机器,有可能增加一个组织能够做出的好决策的数量。这解释了为什么他们首先在潜在决策的数量和频率超出人力处理能力的行业中起飞。【6】

是什么推动了这一过程?对于一个经济学家来说,主要问题是算法的决策会创造多少价值。理性的组织会采用期望值高的算法。

算法的期望值取决于两个因素:它的准确性(它做出正确决策的概率),以及正确决策的回报和错误决策的惩罚之间的平衡。【7】高风险的决策(惩罚比奖励大)应该由高度精确的算法做出。你不会想要一个运行核电站的古怪机器人,但如果它只是建议你今晚看什么电视节目,那也没问题。

监督:小心

我们可以引入人类监督员来检查算法做出的决定,并修复他们发现的任何错误。如果算法不是非常准确(主管不会花很多时间检查正确的决策),并且纠正错误决策的净收益(即额外的奖励加上避免的惩罚)很高,这就更有意义了。成本也很重要。一个理性的组织会有更多的激励去雇佣那些报酬不高,而且工作效率高的人(也就是说,只需要几个人就能完成工作)。

根据之前的例子,如果一个人类主管在一个电视网站上修复了一个愚蠢的推荐,这不太可能为所有者创造很多价值。核电站的情况完全不同。

规模:机器和现实之间的竞赛

当我们扩大算法决策的数量时会发生什么?它的增长有什么限制吗?

这取决于几个因素,包括算法在做出更多决策时是提高还是降低了准确性,以及加速算法决策的成本。在这种情况下,有两个有趣的比赛正在进行。

1.算法从其做出的决策中学习的能力与它从新决策中获得的信息量之间存在竞赛。新的机器学习技术有助于算法“从经验中学习”,使它们在做出更多决策时更加准确。然而,更多的决策也会降低算法的准确性。也许它被迫处理更奇怪的情况,或者它没有受过处理新情况的训练。【9】更糟糕的是,当一种算法变得非常流行(做出更多决策)时,人们就有更多的理由去博弈它。

我的先验知识是,降低算法准确性的“熵力”最终将胜出:无论你收集了多少数据,都不可能对复杂、动态的现实做出完美的预测。

2.第二场竞赛是在创建算法的数据科学家和检查这些算法决策的主管之间进行的。数据科学家可能会“击败”人类监管者,因为他们的生产率更高:一个单一的算法,或一个算法的改进,可以在数百万个决策中扩大规模。相比之下,主管需要单独检查每个决定。这意味着,随着决策数量的增加,该组织的大部分劳动力成本将用于监督,随着监督过程变得越来越大、越来越复杂,成本可能会螺旋上升。

最后会发生什么?

综合考虑,我刚刚描述的算法准确性下降和劳动力成本上升,可能会限制一个组织能够经济地做出的算法决策的数量。但是这是否发生以及何时发生取决于具体情况。

对组织和政策的影响

我上面讨论的过程有许多有趣的组织和政策含义。以下是其中的一些:

1.找到合适的算法-领域匹配

正如我所说,在风险很高的情况下做出决策的算法需要非常准确,以弥补出错时的高额罚款。另一方面,如果犯错误的惩罚很低,即使是不准确的算法也可能完成任务。

例如,亚马逊或网飞等平台的推荐引擎经常会给出不相关的推荐,但这并不是一个大问题,因为这些错误的惩罚相对较低——我们只是忽略它们。数据科学家希拉里·帕克(Hillary Parker)在最近一期的“不那么标准偏差”播客中提到,需要考虑模型准确性和决策环境之间的匹配性:

“大多数统计方法都已针对临床试验的实施进行了调整,在临床试验中,你谈论的是人们的生命和因错误治疗而死亡的人,而在商业环境中,权衡则完全不同”

由此得出的一个结论是,在“低风险”环境中的组织可以试验新的和未经证实的算法,包括一些早期的低精度算法。随着这些改进,它们可以转移到“高风险领域”。开发这些算法的科技公司通常将它们作为开源软件发布,供其他人下载和改进,从而使这些溢出成为可能。

2.在高风险领域,算法决策是有局限性的

在错误造成的惩罚较高的领域,如卫生或刑事司法系统,以及在处理更容易受到算法错误影响的群体时,需要更加谨慎地应用算法。【11】只有高度精确的算法才适合这些高风险的决策,除非有昂贵的能够发现并修复错误的人类监督人员作为补充。这将对算法决策产生自然的限制:你能雇佣多少人来检查更多的决策?人类的注意力仍然是更多决策的瓶颈。

如果政策制定者希望在这些领域更多、更好地使用算法,他们应该投资 R&D,以提高算法的准确性,鼓励采用其他领域的高性能算法,并尝试新的组织方式,帮助算法和它们的监管者更好地作为一个团队工作。

商业机构也不能幸免于这些问题:例如,YouTube 已经开始屏蔽浏览量少于一万的视频中的广告。在这些视频中,正确的算法广告匹配的回报可能很低(他们的收视率很低),惩罚可能很高(这些视频中有许多质量可疑)。换句话说,这些决定的期望值很低,所以 YouTube 决定停止做出这些决定。与此同时,脸书刚刚宣布,它正在招聘 3000 名人工监督员(几乎是其现有员工的五分之一),以调节其网络中的内容。你可以想象监督更多决策的需求会如何限制其无限扩大算法决策的能力。

3.众包监管的利弊

保持低监督成本和高决策覆盖率的一个方法是将监督众包给用户,例如通过给他们工具来报告错误和问题。YouTube、脸书和谷歌都这样做了,以回应他们的算法争议。唉,让用户监管在线服务会让人感到不公平和不安。正如法学教授 Sarah T Roberts 在最近一次关于脸书暴力视频争议的采访中指出的:

这种材料经常被打断的原因是因为像你我这样的人遇到了它。这意味着一大群人看到了它并标记了它,贡献了他们自己的劳动和未经同意的暴露给一些可怕的东西。我们将如何应对那些可能已经看到这一点并在今天受到创伤的社区成员?”

4.为什么你应该总是让一个人在循环中

即使错误的惩罚很低,让人类参与算法决策系统的循环仍然是有意义的。如果算法的准确性下降,他们的监督可以为性能的突然下降提供缓冲。当这种情况发生时,人类发现的错误决策的数量和修正它们的净收益都会增加。他们还可以敲响警钟,让每个人都知道算法有问题,需要修复。【十三】

这在错误造成延迟惩罚或难以衡量或隐藏的惩罚的情况下尤其重要(比如错误的建议导致自我实现的预言,或在组织外部产生的成本)。

这样的例子很多。在 YouTube 广告争议中,之前错误的巨额累积罚款只是在一段时间后才变得明显,当时品牌注意到他们的广告是针对仇恨视频发布的。美国大选后关于假新闻的争议是难以衡量成本的一个例子:算法无法区分真实新闻和恶作剧给社会带来了成本,这可能证明更强有力的监管和更多的人类监督是合理的。政客们在英国大选前呼吁脸书加大打击假新闻的力度时已经表明了这一点:

“看看到目前为止已经完成的一些工作,他们对他们可以获得的一些用户推荐的响应不够快或者根本不响应。他们能很快发现病毒传播。然后,他们应该能够检查这个故事是真是假,如果是假的,就屏蔽它,或者提醒人们这个事实是有争议的。不能只是用户提到故事的真实性。他们(脸书)必须判断一个故事是不是假的。”

5.从抽象模型到真实系统

在我们使用经济模型为行动提供信息之前,我们需要定义和衡量模型的准确性、惩罚和奖励、环境波动导致的算法性能变化、监管水平及其成本,而这仅仅是个开始。【14】

这是一项艰巨但重要的工作,可以利用现有的技术评估和评价工具,包括量化非经济成果的方法(例如在卫生领域)。人们甚至可以在实施算法决策之前,利用组织信息系统中的丰富数据来模拟算法决策及其组织的影响。我们看到了更多这类应用的例子,比如欧盟委员会正在运行的金融‘reg tech’试点,或者最近一篇关于价格歧视的经济学人文章中提到的‘共谋孵化器’。

Coda:算法时代的渐进社会工程

在去年《自然》杂志的一篇文章中,美国研究人员 Ryan Calo 和 Kate Crawford 呼吁“进行实用且广泛适用的社会系统分析,考虑人工智能系统对各方的所有可能影响[借鉴]哲学、法律、社会学、人类学和科学技术研究,以及其他学科 T11。卡洛和克劳福德没有把经济学家列入他们的名单。然而,正如这篇博客所表明的,经济学思维对这些重要的分析和辩论有很大的贡献。从收益和成本的角度思考算法决策,我们可以用来管理其负面影响的组织设计,以及更多决策对算法创造的价值的影响,可以帮助我们在何时以及如何使用它们方面做出更好的决定。

这让我想起了杰伦·拉尼尔在他 2010 年的著作《谁拥有未来》中提出的一个观点:“随着时间的推移,经济学必须越来越多地关注调节人类社会行为的机器的设计。一个网络化的信息系统比政策更直接、更详细、更直接地指导人们。换句话说,经济学必须转变为大规模、系统化的用户界面设计。

设计让算法和人类一起做出更好决策的组织,将是这一议程的重要组成部分。

承认

这篇博客得益于 Geoff Mulgan 的评论,灵感来自与约翰·戴维斯的对话。上图代表了多标签分类问题中的精确召回曲线。它显示了当一个人设置不同的规则(概率阈值)将观察结果放入一个类别时,随机森林分类算法出错的倾向。

附录:关于算法决策的三篇经济学短文

下面的三个插图是算法决策情况的非常简化的形式。我的主要灵感来自于乔·斯蒂格利茨(Joe Stiglitz)和拉吉·萨(Raj Sah)在 1985 年发表的一篇论文《人类易犯错误与经济组织》(Human fallability and economic organization),该论文作者模拟了两种组织设计——层级制和“多层级制”(扁平化组织)——如何应对人类错误。他们的分析表明,在层级较低的决策者受到上级监督的层级组织中,倾向于拒绝更多好的项目,而在代理人相互独立决策的多党制组织中,倾向于接受更多坏的项目。从他们的模型中得到的一个关键教训是,错误是不可避免的,最佳的组织设计取决于环境。

小插曲 1:算法说也许

让我们想象一下,一家在线视频公司在其目录中匹配广告和视频。这家公司拥有数百万个视频,因此依靠人工来完成这项工作在经济上是不可行的。相反,其数据科学家开发算法来自动完成这项工作。【16】公司寻找最大化匹配决策期望值的算法。这个值取决于三个因素:【17】

-算法精度(a ) :算法做出正确决策的概率(0 到 1 之间)。【18】

-决策奖励( **r** ) :这是算法做出正确决策时的奖励

-错误惩罚( **p** ) :这就是做出错误决定的代价。

我们可以结合准确性、收益和惩罚来计算决策的期望值:

*E = ar – (1-a)p [1]*

当算法决策的预期收益大于预期成本(或风险)时,此值为正:

*ar > (1-a)p [2]*

这就相当于说:

*a/(1-a) > p/r [3]*

做出正确决定的几率应该高于惩罚与收益之比。

输入人类

我们可以通过引入一名人类主管来降低出错的风险。这位人类主管可以识别并修复算法决策中的错误。这种策略对决策期望值的影响取决于两个参数:

-覆盖率( **k** ): k 是人工主管通过算法检查一个决策的概率。如果k是 1,这意味着所有的算法决策都由一个人来检查。

-监督成本( **cs(k)** ): 这是监督算法决策的成本。成本取决于覆盖率k,因为检查更多决策需要时间。

有人工监督的算法决策的期望值如下:【19】

Es = ar + (1-a)kr – (1-a)kp – cs(k) [4]

这个等式表明了这样一个事实,即一些错误被检测到并被纠正,而另一些则没有。我们从[4]中减去[3]以获得来自监管的额外期望值。经过一些代数运算,我们得到了这个。

(r+p)(1-a)k > cs(k) [5]

只有当监管的预期收益(取决于算法出错、错误被发现的概率,以及将错误转化为正确决策的净收益)大于监管成本时,监管才有经济意义。

按比例放大

在这里,我考虑当我们开始增加n时会发生什么,这是由算法做出的决策的数量。

预期值为:

E(n) = nar + n(1-a)kr – n(1-a)(1-k)p [6]

成本是C(n)

随着n的成长,这些东西是如何变化的?

我做了一些假设来简化事情:组织希望保持k不变,当 n 增加时,奖励r和惩罚p保持不变。【20】

这留给我们两个随着n增加而变化的变量:aC

  • 我假设算法的准确性随着决策数量的增加而下降,因为降低准确性的过程比提高准确性的过程更强
  • 我假设C,生产成本,只取决于数据科学家和主管的劳动。这两种职业都有工资wdsws

在此基础上,通过一些计算,我们得到了随着我们做出更多决策,预期收益的变化:

∂E(n)/∂(n) = r + (a+n(∂a/∂n))*(1-k)(r+p) - p(1-k) [7]

这意味着,随着决策的增多,总的预期收益会随着算法边际精度的变化而增加。一方面,更多的决策意味着从更正确的决策中获得更大的利益。另一方面,准确性的下降会产生越来越多的错误和损失。其中一些被人类管理者抵消。

这就是成本的情况:

∂C/∂n = (∂C/∂Lds)(∂Lds/∂n) + (∂C/dLs)(∂Ls/dn) [8]

随着决策数量的增加,成本也会增加,因为组织必须招聘更多的数据科学家和主管。

[8]等于说:

∂C/dn = wds/(∂Lds/dn) + ws/zs/(∂Ls/∂n) [9]

每种职业的劳动力成本与其工资直接相关,与其边际生产率成反比。如果我们假设数据科学家比主管更有生产力,这意味着大部分成本的增加将由主管劳动力的增加引起。

组织决策的预期价值(收益减去成本)通过决策的均衡数量 ne 最大化,其中额外决策的边际价值等于其边际成本:

r + (a+nda/dn)(1-k)(r+p) - p(1-k) = wds/(∂Lds/∂n) + ws/zs/(∂Ls/∂n) [10]

扩展ˌ扩张

上面,我通过对每个被建模的情况做一些强有力的假设来保持事情的简单。如果我们放松这些假设,会发生什么?

以下是一些想法:

**各种错误:**首先,分析没有考虑不同类型的错误(例如,假阳性和假阴性,不同确定程度的错误等。)可能会有不同的奖励和惩罚。我还假设了奖励和惩罚的确定性,而将它们建模为从概率分布中随机抽取更为现实。这种扩展将有助于将公平和偏见纳入分析。例如,如果错误更有可能影响易受攻击的人(他们遭受更高的惩罚),并且这些错误不太可能被检测到,这可能会增加错误的预期惩罚。

**人类也不是完美的:**以上所有假设算法会出错,但人类不会。事实显然并非如此。在许多领域,算法可能是带有根深蒂固的偏见和成见的人类的理想替代品。在这些情况下,人类检测和解决错误的能力受到损害,这降低了招募他们的动机(这相当于他们生产力的下降)。组织通过投资于技术(如众包平台)和质量保证系统(包括额外的人力和算法监督层)来处理所有这些问题,这些系统管理人类算法失误的风险。

**非线性奖励和惩罚:**之前,我假设随着算法决策数量的增加,边际惩罚和奖励保持不变。情况不一定如此。下表显示了这些参数随决策数量变化的情况示例:

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

获得这些过程的经验处理非常重要,因为它们可以确定一个组织在一个领域或市场中可以经济地做出的算法决策的数量是否有自然限制,这可能对其监管产生潜在影响。

尾注

【1】我在狭义上使用“算法”一词,指的是将信息转化为预测的技术(取决于接收预测、决策的系统)。有许多过程可以做到这一点,包括基于规则的系统、统计系统、机器学习系统和人工智能(AI)。这些系统在准确性、可伸缩性、可解释性和从经验中学习的能力方面各不相同,因此在分析算法权衡时应该考虑它们的具体特征。

人们甚至可以说,机器学习是一门科学,它管理因无法消除算法错误而导致的权衡取舍。著名的“偏差-方差”权衡就是一个很好的例子。

【3】有些人会说个性化是不可取的,因为它会导致歧视和“过滤泡沫”,但这是另一篇博文的问题。

【4】达尼·罗德里克的《经济学法则》为模型提供了一个令人信服的理由,认为它是复杂现实的简化但有用的形式。

在 2016 年《哈佛商业评论》的一篇文章中,Ajay Agrawal 和他的同事概述了机器学习作为一种降低预测成本的技术的经济分析。我看待算法的方式是相似的,因为预测是决策的输入。

【6】这包括电子商务和社交网站中的个性化体验和推荐,或者金融中的欺诈检测和算法交易。

【7】例如,如果 YouTube 向我展示了一个与我的兴趣高度相关的广告,我可能会购买该产品,这为广告商、视频制作者和 YouTube 带来了收入。如果它向我展示了一个完全不相关甚至是攻击性的广告,我可能会停止使用 YouTube,或者在我选择的社交网络上大吵大闹。

【8】强化学习构建使用先前行为的奖励和惩罚来做出新决策的代理。

【9】这就是谷歌 FluTrends 系统基于谷歌搜索预测流感爆发所发生的事情——人们改变了他们的搜索行为,算法崩溃了

【10】在许多情况下,惩罚可能是如此之高,以至于我们决定永远不要使用一种算法,除非它受到人类的监督。

【11】不幸的是,在高风险的情况下实现算法系统时,并不总是小心谨慎。凯茜·奥尼尔的《数学毁灭的武器》举了很多这样的例子,从刑事司法系统到大学录取。

【12】问责机制和正当程序是人为监督的另一个例子。

【13】使用 Albert Hirschmann 的退出、声音和忠诚度模型,我们可以说监督扮演了“声音”的角色,帮助组织在用户开始退出之前发现质量下降。

附录标出了我的一些关键假设,并提出了扩展建议。

这包括使用随机对照试验方法对算法决策及其组织进行严格评估,如 Nesta 的创新增长实验室提出的方法。

【16】这一决定可能是基于类似的广告在与不同类型的视频匹配时的表现,基于观看视频的人的人口统计信息,或其他因素。

【17】本博客中的分析假设算法决策的结果是相互独立的。在算法产生自我实现预言的情况下,这种假设可能会被违反(例如,从逻辑上讲,用户更有可能点击她看到的广告,而她不是)。这是一个很难解决的问题,但是研究人员正在开发基于随机算法决策的方法来解决这个问题。

【18】这并不能区分不同类型的错误(如假阳性和假阴性)。我会在最后回到这个话题。

在这里,我假设人类管理者是完全准确的。正如我们从行为经济学中所知,这是一个非常强有力的假设。我在最后考虑这个问题。

【20】我考虑最后对边际奖惩做出不同假设的含义。

为了获得未来的混合演出,自由职业者必须比人工智能机器人领先一步

原文:https://towardsdatascience.com/to-land-hybrid-gigs-of-the-future-freelancers-must-stay-one-step-ahead-of-ai-bots-2f8998910b34?source=collection_archive---------11-----------------------

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

这是 1776 年 12 月下旬的美国殖民地。革命士兵在白雪覆盖、疾病缠身的军营中挨饿、冻死、消瘦。大多数人没有鞋子继续战斗,许多人烧掉了他们的衣服,以免在特别寒冷的夜晚被冻僵。与此同时,在没有希望从资金短缺的羽翼未丰的美国国会获得拯救的情况下,完美风暴正在酝酿:由于没有几场重大胜利,士兵入伍很快将在年底到期。在那种情况下,士兵们需要做出选择:重新应征入伍,然后因为一个不太可能获胜的原因饿死,或者回家照顾家人,因为他们的家园被外国统治。

由于害怕军队开小差,乔治·华盛顿想出了拯救革命的最后一招:越过冰雪覆盖的特拉华州,在圣诞节庆祝活动分散了保守党士兵的注意力,使他们毫无防备的情况下,袭击英军营地。由于 18 世纪的战争在冬天停止了,这次袭击将是意想不到的,英国人将毫无准备地保卫关键的特伦顿要塞。

尽管如此,第一任 美国情报局长还是准备被自己的游戏打败。一名保守党间谍得到了华盛顿计划的风声,决定警告英国人。他走近英国上校拉尔,小心翼翼地塞了一张纸条在上校手里。拉尔沉迷于一场激烈的国际象棋比赛,他把纸条塞进口袋,以免注意力分散。这是第二天在上校的战场坟墓的口袋里找到的。

在被国际象棋拯救和奇迹般地击败英国之后,最后的努力取得了胜利。结果,美国的革命精神复苏了,士兵们选择延长他们的入伍时间,导致了更多的战场胜利,并最终导致了美国的独立。

啊,象棋。美国人欠这项运动很多。但是,我们的独立只是开始。快进 242 年,国际象棋现在正引领我们进入一场新的革命:讽刺地被称为“智力革命”。

人工智能与人类合作在世界舞台上获胜 随着华盛顿的胜利,今天,顶级国际象棋专家正在将一种不同类型的智能——人工智能(AI)——与国际象棋策略配对,以击败对手。半人马国际象棋模型将人类的直觉和计算机化的国际象棋引擎结合在一起,该引擎拥有国际象棋历史上数以百万计的专家棋局。自由风格的玩家咨询引擎,找到完美的下一步,带领他们走向胜利。这种现代的人加人工智能模型允许棋手制定他们的竞争优势,再一次带领美国队——像总部位于 DC 华盛顿州的数据分析师 Nelson Hernandez 的自由风格国际象棋队——在世界舞台上获胜。

通过混合团队,自由职业者组成了未来的企业团队 由于像埃尔南德斯这样的胜利,领先的品牌开始注意到人工智能的能力。将混合人类加人工智能团队融入他们的商业实践,他们正在设计类似的竞争优势,以在全球范围内竞争。

金融产品网站 elMejorTrato.com 在阿根廷、巴西、哥伦比亚、墨西哥和智利拥有 2100 多万客户,它使用混合自由职业者和人工智能(AI)团队来提高回报和削减成本。例如,他们的销售团队由人工智能机器人和自由职业者组成。首席技术官兼 elMejorTrato.com 联合创始人雷内拉·克里斯蒂安表示,他们依靠人工智能算法自动化了约 57%的销售查询,销售额提高了 24%以上,年收益增加了 370 万美元。虽然所有的销售任务都曾经由自由职业者执行,但现在承包商只教授销售机器人最佳实践,并处理让机器人困惑的异常查询。

在一个害怕工作被机器人抢走的世界里,像克里斯蒂安的人工智能应用这样的商业用例给自由职业者带来了希望。为了探索自由职业者在未来工作中的地位,Mavenlink 与领先的第三方市场研究公司 research now合作,调查了不同行业的 300 多名高管对雇佣承包商的看法。结果是:

  • 79%的商业领袖认为雇佣合同工是一种“竞争优势”而且,
  • 令人惊讶的是,4/5 的高管表示,他们雇佣合同工来担任管理和高管职位。

调查结束后,Mavenlink 的首席执行官兼创始人 Ray Grainger 评论了自由职业者在企业界的未来地位:“在重大变革中,高管们被迫重新想象他们如何组织和管理劳动力,我们越来越多地看到承包商是未来的首选模式。”

很明显,前瞻性品牌正在推动一个自由职业者非常适合的经济。但是,尽管这看起来很新奇,新的团队结构即将出现。品牌正在从国际象棋中获得启示,创造专家-自由职业者/人工智能团队的混合组合,这肯定会改变我们对商业团队的看法。

聪明的自由职业者磨练他们的专业知识,以领先人工智能一步
Mavenlink 的研究结果证实,自由职业者将继续在混合团队中发挥关键作用,即使人工智能机器人学会完成更多任务。只有 6%的公司领导预见到他们对承包商的使用会减少。这是因为,虽然领导者可能会依赖人工智能来完成重复性任务,但受访者对雇佣持有专业学位(35%)和拥有 10 年以上经验(29%)的承包商特别感兴趣。这种竞争优势使品牌能够将自由职业者置于比人工智能机器人更需要磨练技能的角色中。

因此,随着自由职业者从重复性任务的执行者转变为上层管理人员、高管和高知名度项目,他们必须不断提高自己的技能以超越 bot 能力,从而配得上混合团队的机会。WorkFusion 的营销副总裁亚当·迪瓦恩解释说:就像在国际象棋中一样,“智能机器可以帮助企业在每个类别中移动指针,但最终将企业置于首位的是人的创造力和独创性。”

elMejorTrato.com 的 Christian 以自由风格的国际象棋选手为例,为确保战略布局,为自由职业者提供了一个简单的目标:培养成为人工智能机器人教师的技能。正如国际象棋引擎掌握着历史上最好的国际象棋选手教给它们的战略步骤一样,在商业领域,人工智能机器人必须首先掌握最佳实践,然后才能提出适用于每种情况的适当策略。因此,通过磨练他们的专业知识,就像自由风格的棋手一样,自由职业者可以获得与人工智能一起工作的位置,执行超出机器人能力的任务,并教会它们如何工作。

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

按照这个建议,自由职业者可能会觉得,从长远来看,他们是在有目的地训练他们的替代者。但是,事实并非如此。随着人工智能机器人满足客户当前对即时回答和服务的需求,这些能力将成为现状。因此,消费者会期待更多的关注和忠诚。反过来,随着消费者需求的上升,自由职业者必须不断教导他们的合作机器人来满足并超越他们。最终结果是:自由职业者享有更稳定的长期职业机会,只要他们不断磨练自己的专业技能。

在混合世界中生存,成为人工智能算法教师,把杂务留给机器人 像 Hernandez 的混合团队正在创造国际象棋的世界级竞争优势。这是人工智能与国际象棋专家配对的直接结果,国际象棋专家首先教授人工智能引擎最佳实践,然后最终决定胜负。

同样,为了抓住混合团队的商业机会,Mavenlink 和 Renella Christian 让自由职业者走上自我提升的道路。为了在以人为本的未来混合团队中获得一席之地,将重复性任务留给机器,努力成为最佳实践专家,从而超越机器人。要做到这一点,建立凭证和经验投资组合。首先,抽时间定期参加课程,参加会议,阅读与您的产品相关的最新最佳实践。然后,寻求与具有前瞻性思维的品牌合作的机会,从而体验和实践你所在领域的卓越。通过实践和体验卓越,你将为成为教师做好准备,而不是技术的受害者。

小奥维·德米特里安的话说。作为 BlocksEdit.com 的创始人和 12 年的自由职业者,是时候“让机器人做家务了”

要更好的学习数据科学,用科学!

原文:https://towardsdatascience.com/to-learn-data-science-better-use-science-ffaae3d56bea?source=collection_archive---------5-----------------------

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

Learning Data Science? Make the most of your learning by using evidence-based methods! Students who take notes by hand perform better on conceptual assessments.

如果你正在学习一项新技能,想想你是如何学习的。

我的计划是再也不做学生了。我喜欢学习。我喜欢学习的过程,作为一名教师和科学家,我不断地参与这个过程。我以为我已经不再扮演学生的角色了。我错了。我回来了。然而,这一次,我在用一种新的方式思考我的学习过程——用一种科学的方式。

拥抱学习的科学

人们花了很多精力去理解我们是如何学习的。我发现,在学习数据科学时,牢记循证学习方法有助于我用 Python 编码、构建机器学习算法,以及成为学员而不是导师。以下三个想法帮助我保持专注和乐观。

(1)成长心态:

今年,我的孩子们从三年级回家,带着指引他们成长心态的讲义。他们的教室里有专门介绍这个概念的公告板,他们被教导说,固定的心态就是当你认为你的智力、技能和天赋是固定的,不会改变。相反,有一个成长的心态意味着相信特质可以发展和改变(Dweck 2006)。通过工作、研究和学习,一个人的智力、技能和才能可以得到发展。有很多关于如何在学校应用成长思维的方法,对于个人,甚至对于组织。我的孩子被教导说,发展成长思维就像说“我还不擅长长除法”一样简单。

如果你正在尝试一些新的东西,或者如果你休学了一段时间,现在又回来了,或者如果你正在一个非传统的轨道上进入一个分析领域…你可能已经有了一个成长的心态。如果你已经有了一个成长的心态,并且正在学习新的技能,我说抓住这个概念,拥抱它,培养它;它可能是帮助你攀登眼前的数据科学之山的要素之一。当我用跳板完成我的数据科学项目的第一个顶点项目的初步探索性数据分析阶段时,我引导我内心的三年级学生,并提醒自己“我还没有运行我的第一个机器学习算法。”

(2)主动学习:

简单来说,主动学习就是边做边学。在大学 STEM(科学、技术、工程&数学)课程中,主动学习方法改善了学生的学习( Freeman et al. 2014 )。一些教育工作者有意融入主动学习技巧。如果你参加了课堂辩论,在课堂讨论中发言,在讲座中被要求与邻座“思考-分享”,设计并完成了自己的研究实验,或者在课堂上做了报告,你就是一个积极的学习者。这里的对比是被动学习或“舞台上的圣人”,在传统的学术环境中,你可能通过听讲座的被动方法接收所有内容。已经进行了大量的研究来比较主动和被动学习,包括试图确定有效教学和学习的最佳循证方法( AAAS 2009Derting 等人 2016 )。

如果你真的想成为一名数据科学家,如果你加入了数据科学训练营,如果你通过交互式在线教程学习 Python 或 R,在这些教程中,你可以输入代码并运行它(例如,DataCamp、Mode Analytics、Codecademy),你将通过主动学习获得技能。你可能会遇到一些纯粹被动学习的在线讲座——这很好,并不意味着你不会学到概念和想法。但是当你学习数据科学和提高你的编码和分析技能时,你将会学习这些技能,因为你正在积极地实践它们。花点时间承认每个迷你项目、深夜代码调试、黑客成功和你的顶点项目的每一部分的重要性。

(3)手抄笔记:

最后一个学习概念很简单。研究表明,用笔和纸手工做笔记,可以增加你学习和记忆的信息量(穆勒&奥本海默 2014 )。与打字的学生相比,手写笔记的学生在概念评估中表现更好。显然,当你写下这个概念时,你与这个概念的联系比你在课堂上打笔记时更具体。当我在大学授课时,我在第一天描述这项研究,但我不要求学生手写笔记。我认为学生们可能有他们自己打笔记的原因,这是一种个人偏好。

结论:

现在我回到了学生座位上,我已经在几个笔记本上写满了凌乱而忙碌的笔记,关于支持向量机和 K 近邻分类器之间的关键差异,关于自然语言处理的方法,关于如何进行信息面试。我通过写下来来学习。我在边做边学。我正在学习所有关于数据科学的知识,因为我相信我可以发展新的技能。不管我课程的下一个大主题是什么:“我还没有掌握那种类型的分析”。

来源:

AAAS。2009.本科生物学教育的愿景与变革:行动的呼唤。华盛顿 DC:美国科学促进协会。

德廷,T.L .,埃伯特-梅,d .,汉高,T.P .,马赫尔,J.M .,阿诺德,b .,帕斯莫尔,H.A. 2016。STEM 高等教育中教师专业发展的评估:结果的可持续性。科学进展,2(3),e 1501422–e 1501422。【http://doi.org/10.1126/sciadv.1501422

德韦克,卡罗尔。2006.心态:成功的新心理学。

Freeman、Eddy、S.L .、McDonough、m . Smith、M.K .、Okoroafor、n . Jordt、h .和 Wenderoth、M.P. 2014。主动学习提高了学生在科学、工程和数学方面的表现。美国国家科学院学报,111(23),8410–8415。http://doi.org/10.1073/pnas.1319030111

穆勒私人助理奥本海默医学博士。2014.钢笔比键盘更强大:手写笔记优于笔记本笔记,《心理科学》,第 25 卷,第 6 期,第 1159-1168 页。https://doi.org/10.1177/0956797614524581

睡觉还是不睡觉——Fitbit 数据分析

原文:https://towardsdatascience.com/to-sleep-or-not-to-sleep-fitbit-data-analysis-a81d28acac8e?source=collection_archive---------13-----------------------

劳累的一天并不总是能让你晚上睡得更好!你在网上浏览的内容也会影响你的睡眠质量。

我是一个相当健康的人,喜欢踢足球、跑步,通常会努力追求更好的生活方式。不知何故,我仍然在努力管理我的夜间睡眠!

注:该分析基于有限的样本量,可能不具普遍性。这是一本有趣的读物!

通过这个博客,我把我的睡眠、健身和浏览历史结合起来,得出了一些相关性,其中一些“可能”是虚假的!

今年 5 月,我买了一个新的 Fitbit Versa,从那以后,我几乎全天候跟踪我的睡眠和锻炼情况。在那几个月里,我还做了全职实习,因此我的日程安排很好,没有太大变化。

工作日 —工作

周末——学习或旅行

虽然我是一个非常不稳定的睡眠者。有些日子我睡 9 个小时,有些日子我几乎不睡觉。要么是因为工作或不安,要么是因为温度不合适。我想找出最好的方法来保证晚上睡个好觉,这样第二天我就会精神饱满!

我从在线仪表板上提取了我的 fitbit 数据。它包含以下几列:

数据集 1(睡眠数据)

**'Start Time', 'End Time', 'Minutes Asleep', 'Minutes Awake',
       'Number of Awakenings', 'Time in Bed', 'Minutes REM Sleep',
       'Minutes Light Sleep', 'Minutes Deep Sleep'**

我对数据进行了注释,添加了一个“日期”列,对应于睡眠的夜晚。如果我在 9 月 16 日醒来,看到那行数据,我把它标注为 9 月 15 日。所以即使我在凌晨 12 点之前或之后睡觉,也会被标记为 09/15。

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

这张图片让你知道我的睡眠有多不稳定。

我的平均睡眠时间是 6.33 小时,标准差是 1.1 小时。理想情况下,我希望标准偏差低于 0.5!

是的最小已经 2 小时 5 分钟了! (谢谢佐治亚理工!😄)

在床上的时间=睡着的时间+醒着的时间

睡眠分钟=快速眼动睡眠分钟+深度睡眠分钟+浅度睡眠分钟

所有这三种睡眠类型都与睡眠时间呈正相关。

然而,当你醒来时,即使是快速眼动或深度睡眠中的微小变化也会让你变得暴躁或疲倦。

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

为了更深入地探索,我绘制了我睡觉时间和睡觉时间的直方图。虽然分布看起来只是发生了移动,但峰高还是有一些差异,这表明还有其他因素导致这两个变量之间的关系发生变化(从而导致分钟清醒)。

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

下面的醒来次数在床上的时间之间的联合图具有 0.74 的皮尔逊系数。这可能意味着,是的,在花在床上的时间和醒来的次数之间有一个强有力的正相关关系,但这不是唯一的影响因素。

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

醒来的次数可能取决于当天的压力或努力程度或其他一些因素。

数据集 2(健身活动数据)

最明显的选择是获取我的活动数据。

**['Date', 'Calories Burned', 'Steps', 'Distance', 'Floors',
 'Minutes Sedentary', 'Minutes Lightly Active', 'Minutes Fairly Active', 'Minutes Very Active', 'Activity Calories']**

我添加了一周中的天的变量和一个周末标志,后跟时移变量,以获取前一天消耗的卡路里、步数、距离、楼层和所有活动特征的值。

fitbit 将活跃分钟数大致分为:

分钟久坐,分钟轻度活动,分钟相当活跃分钟非常活跃

与睡眠数据不同,这四个类别之间没有直观的关系,你可以非常活跃,而不必花很多时间在相当活跃的类别中。

然而,如果你仔细观察,会发现在某些情况下,非常活跃的图形(粉色)落后于相当活跃的图形(棕色)。

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

不出所料,周末标志活动分钟数有相当高的相关性**。它也和分钟久坐**高度负相关,暗示我不只是在沙发上度过周末。(抱歉网飞)

我很高兴的一个观察是,我的活动(消耗的卡路里或活动卡路里)与我前一天的活动 没有“高度”相关(负相关),这意味着我不会因为前一天跑步或锻炼就休息。

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

在结合**数据集 1(睡眠)数据集 2(健康)**时,我得到了一些有趣的假设。

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

我不得不深入挖掘,从数据中找出一些规律。是的,这不是分析应该做的,但我真的想了解我的活动和睡眠模式之间的关系。

  1. 轻度活动分钟清醒分钟数卧床时间负相关**。这意味着,当我那天稍微活跃的时候,我会获得更好的睡眠质量。此外,第二天晚上的睡眠也更好。这一切显然是在控制其他参数**
  2. 分钟非常活跃分钟睡眠、醒来次数和在床上的时间轻微正相关当前睡眠下一个**。这是因为高强度的体力消耗(足球/橄榄球和我的 5 公里跑步)会导致更高的肌肉恢复,这通常会将你踢出睡眠阶段,因此你会睡得更久。这也蔓延到第二天晚上!**

数据集 3(网络使用数据)

我一直喜欢在 chrome 上跟踪自己的使用模式,并在 chrome 上安装了一个“Webtime tracker”插件。它追踪了我在每个网站上花费的时间(以秒为单位),并在我空闲 45 秒或离开页面或切换应用程序时停止计数。

所以是时候把这个也放进去了!

我把所有的网站分成 7 类;

通用、佐治亚理工学院、新闻、社交媒体、体育、视频流和工作

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

  1. 乔治亚理工学院的相关浏览在工作日进行,这很令人惊讶,因为我本想在周末处理学校的事情。我想应该改变这一点!
  2. 社交媒体在一周内要少得多。(是的,我是一名勤奋的实习生)
  3. 周末视频流和体育活动非常多。这一周的体育价值有所上升,这可以归因于“世界杯”!
  4. 最后,我再也没有把我的工作带回家,数据不会说谎(也许在周末做了一点)。我猜是启动和关闭 AWS 集群吧?)

我终于把 3 个数据集全部组合起来了!

我不知道为什么,但我很喜欢相关图。由此我想指出体育浏览和睡眠之间的关系。

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

  1. 体育浏览负相关深睡同一天晚上正相关浅睡

深度睡眠促进身体恢复以及记忆学习方面。这个阶段也被证明可以支持你的免疫系统。

浅睡促进精神身体恢复

这是 Fitbit 网站提到的。那么,看更多的体育比赛是否会导致更多的浅睡眠,从而有助于精神恢复以克服压力?我非常喜欢足球比赛(即使阿森纳没有比赛),这很可能是真的。不过话说回来 相关性并不意味着因果关系!

  1. 工作期间少视频流!是的,我是一名好员工!(迭代次数:P)
  2. 所以在我的案例中,社交媒体与睡眠时间有直接关系。但社交媒体浏览和深度睡眠之间存在反比关系。这有什么意义?

更多社交媒体= >更多睡眠= >深度睡眠减少但浅度睡眠增加(精神恢复?有趣的…)

结论

  1. 分钟相当活跃起着很好的作用,决定了我那天晚上睡着的分钟睡眠。所以,是的,你必须参加一些公平的活动来获得一个好的睡眠时间!
  2. 此外,当天之前分钟轻度活动在确定夜间睡眠时起到良好的作用。如果你一天的光照活动较少,你的睡眠时间就会减少!但是根据你前一天的活动,你仍然有深度睡眠时间
  3. 在我跑步去皮埃蒙特和/或踢足球的日子里,距离很远。这通常会导致大量消耗(增加相当活跃和非常活跃的时间)。此外,在工作日,距离更长,因为我上下班要走很长一段路。 前一天走过的距离也会影响当天的睡眠。因此,一夜的睡眠并不能完全克服体力消耗!
  4. 非常活跃的时间对睡眠质量有相反的影响,这意味着过度劳累是不好的。过度劳累通常会导致睡眠期间身体恢复不一致,而且你往往会在晚上醒来更多。深度睡眠可能会增加,但这是以快速眼动为代价的。当快速眼动不一致时,你会醒来。通常情况下,当晚的深度睡眠会减少,第二天早上你会感到昏昏沉沉。然而,第二天晚上的睡眠更重要,这是你身体恢复的地方
  5. 令人惊讶的是(或者不是),乔治亚理工学院在这份名单上得分很高,这意味着如果我有学校作业,我会睡得更少,晚上醒来更多(相关图表证实了这一点)。我不知道为什么。可能读研压力大吧!

我希望通过这个我至少能够减少我晚上睡眠时间的标准偏差,并且有一个更好更稳定的睡眠时间表!

[## jehlokhande93/FitbitAnalysis

分析从我的可穿戴设备收集的 fitbit 数据- jehlokhande93/FitbitAnalysis

github.com](https://github.com/jehlokhande93/FitbitAnalysis) [## Jeh Lokhande -数据科学家实习生- Cox Communications | LinkedIn

查看全球最大的职业社区 LinkedIn 上 Jeh Lokhande 的个人资料。Jeh 列出了 6 项工作…

www.linkedin.com](https://www.linkedin.com/in/jehlokhande/)

要理解某些东西,请将其可视化:探索 2018 年平昌冬季奥运会的奖牌结果

原文:https://towardsdatascience.com/to-understand-something-visualise-it-exploring-the-medal-results-of-the-pyeongchang-winter-9cfab4bf0c21?source=collection_archive---------7-----------------------

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

我不太喜欢运动。但每隔两年,我突然发现自己对世界上最伟大的运动员的体育统计数据和比赛结果着迷了。奥运会激发了我潜在的体育爱好者,在这辉煌的两周里,我对体育运动百无聊赖。

今年,单调乏味的生活打破了我对冬季奥运会的兴趣。因此,当奥运会于 2 月 25 日结束时,我发现自己非常不了解各国在整个奥运会期间的表现。

很自然地,我浏览了标题,寻找谁赢得了什么的亮点。很快,奖牌榜就填满了我的浏览器窗口。

奥运会官方网站信息量很大,给了我每天的奖牌获得者,这太棒了。

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

但这并没有真正给我一个我一直在寻找的广泛的概览,所以我继续寻找。

时间以熟悉的格式提供了标准的最终奖牌数,所以越来越近了。但我仍然觉得我错过了过去两周发生的很多事情。

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

我一直在寻找一些更微妙的东西,最终导致这个来自彭博的奖牌追踪器。通过将奖牌与国家 GDP 和人口等有趣的变量结合起来,这一项脱颖而出。我喜欢能够在奖牌榜旁边的表格中看到这种情况。

但即便如此,我还是有疑问:是不是有一个国家自始至终主宰着奥运会?就奖牌数而言,有没有最后一分钟的逆转?顶级国家之间的奖牌分布有什么不同?

这些都是旧数据表无法回答的问题。

要理解某事,想象它

今年的冬奥会有很多精彩的视觉报道(特别是: NYT卫报彭博)。但是一眼看去,我很难找到任何好的奖牌结果的可视化数据。所以我开始做我自己的。

这里应该注意的是,从技术上讲,表格是数据可视化。事实上,这是赋予数字视觉结构的最古老的记录形式之一。但是有些问题不能用表格来回答(或者即使可以,与其他形式的数据可视化相比,也要花费不合理的长时间)。

所以首先:谁赢得了平昌 2018?他们赢得的金牌总数也是最多的吗?谁是失败者?

当然,一个表格可以显示这一点。但是我想要能快速直观地告诉我这些信息的东西。

平昌 2018 谁赢了,怎么赢的?

我首先使用数据抓取器扩展从时间的奖牌结果表中抓取数据。如果你没听说过 Data Scraper,它很牛逼(TL;dr 这是一种不用写代码就能从网上抓取数据的快捷方式)。

除了奖牌类型的分类之外,我还想看到奖牌总数的可视化结果。我最近还受到了一些更抽象的体育数据的启发,即视觉运动员制作的海报。在 Adobe Illustrator 中修修补补了一段时间后,下面是我最终得到的结果。

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

对我来说,一系列被想象成小倍数的饼图是有意义的。圆圈的总大小代表获得的奖牌数(也是按照信息图中从多到少的顺序排列)。颜色分类显示金、银和铜。我还认为,在页面底部加入破纪录的事实,作为挪威今年在奥运会上如何占据主导地位的一点背景,是有意义的。

话虽如此,我的一位同事指出(相当正确),从信息设计的角度来看,这是一个有争议的选择。在不太专业的情况下,使用每个饼图的半径大小和百分比分解开始混淆视觉隐喻,打破了信息设计中的可访问性和准确性规则。出于这个目的,我认为规则有时是要被打破的。我的目标是一个更抽象的概览;更准确的图形应该包括标签和/或悬停功能,以便于访问。

Illustrator 通常不是我的首选数据工具,但我很难找到可以将多个小饼状图作为模板的工具。我也没有时间从头开始编码,所以这似乎是一个合理的(虽然有点乏味)解决方案。我回答了我的第一组问题:现在我可以以表格之外的格式看到最终结果。

奥运会每天的奖牌总数是如何变化的?

太好了!现在我有一个漂亮的信息图表,总结了奖牌的结果。但它并没有真正重温每天是如何颁发奖牌的。它只显示总数。冬奥会激动人心的一部分是看着个别运动员为他们的国家取得成功,以及这将如何影响这个国家的奖牌总数。

这个有点棘手。首先,尽管我知道在哪里可以找到这些数据(olympics.org ),但这绝不是人们所说的“整洁”的数据。它存在于多个页面上。

获取这些数据的聪明、有效的方法是使用 urllib、requests 和 BeautifulSoup 的某种组合编写一些 Python 来创建一个 web scraper 并下载数据进行清理。不幸的是,这一天我感觉特别顽固,只是不停地点击使用 DataScraper(比使用 Python 花费的时间要长得多)。自我提醒:有一天我会更加自律,并看到用 Python 写脚本的长期好处,以备后用。

最终,我有一个非常混乱的数据集要开始清理。经过一番争论,我整理了所有的东西,以显示每一天,哪些国家获得了奖牌(以及他们获得了什么类型的奖牌)。

我使用了一个数据透视表来计算奥运会每天颁发的奖牌总数。因为开放数据很酷,你可以查看和使用我从谷歌电子表格中整理出来的任何数据。详细信息和注释在自述文件中。

最终,我终于能够开始想象。我一直想尝试新的 data viz 工具,所以我决定这将是我的首选工具。此外,他们有一个可视化选举竞赛的漂亮模板。我不会可视化选举数据,但通过对设置进行足够的修改,我能够重新标记和格式化,以匹配我的冬季奥运会数据。

我喜欢这种形式,因为它让你看到在两周内游戏是如何进行的。另外,我可以添加图像链接,包括国旗,而不是纯色泡沫。全交互版本允许你悬停在气泡上并重放图形。现在,这里有一个漂亮的 GIF 版本作为预览。

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

View the full interactive here

更大、更富有的国家更有可能获胜吗?

从历史上看,大国似乎在全球体育比赛中表现强劲。但是冬奥会也是这样吗?

这就是彭博桌开始派上用场的地方。我做了一个快速的抓取,把它放入一个电子表格中(查看这里的)。我知道,可视化这种可能的相关性的最佳图表可能是散点图/气泡图之类的东西,所以可视化的选项几乎是无限的。但是最近我发现 DataWrapper 已经成为我创建易于发布的快速图表的首选资源。

来自彭博的简单表格给了我一个问题的提示:美国排在第四位,但是像中国和英国这样的大城市不在前十位。但同样,可视化数据让一切变得更加清晰。虽然 GDP 和人口在某些情况下可能有所帮助,但它似乎不会在很大程度上影响冬奥会的成功。(免责声明:就 GDP 而言,中国和美国是两个相对较大的异常值,这不可避免地会影响相关性。话虽如此,挪威和荷兰与其他国家相比,都处于国内生产总值的中等水平,而且都在奥运会上表现出色,因此这似乎强化了一个事实,即较小的国家实际上可以取得成功。)

Full chart

滑雪板是兴奋剂。halfpipe 是怎么倒下的?

单板滑雪是冬奥会期间我最喜欢的项目。虽然我能够观看一些单板滑雪项目(slopestyle 很吸引人),但我没有赶上所有的半管滑雪。这是一个大败笔。

奥运会官方成绩页面友好地提供了几乎每个项目的每次跑步的分数。所以在取下一些之后,我把它扔进了 DataWrapper,看看我能找到什么。

虽然每个滑雪者都有三次跑步,但我选择只包括前两次跑步,这样我就可以使用这个距离图。我感兴趣的是想象哪些滑雪板运动员是稳定的,哪些在压力下表现良好。不出所料,肖恩·怀特似乎是两者兼而有之。

然后,我把每个滑雪运动员按照他们的国家分组,以了解哪些国家培养出了最有天赋的滑雪运动员。将这张图表与奥运网站给你的视图类型进行比较。桌子不公平。

Full chart + link to data

外卖

桌子很棒。它们信息丰富、直观,是一种组织数字的通用方式。但是如果你想探索像奖牌成绩或比赛分数这样的信息,你必须将它们可视化。

我错过的冬奥会项目比我希望的要多。但以我自己有点书呆子气的方式,我觉得我可以通过钻研数据以不同的方式体验它们。

有问题吗?评论?很酷的数据集?在下面留言或者在 Twitter 上找到我

今天我在和 Keras 午休的时候建立了一个神经网络

原文:https://towardsdatascience.com/today-i-built-a-neural-network-during-my-lunch-break-with-keras-65dae2c5d690?source=collection_archive---------3-----------------------

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

能够以尽可能少的延迟从想法到结果是做好研究的关键。

  • Keras.io

所以昨天有人告诉我,你可以在 15 分钟内在 Keras 建立一个(深度)神经网络。当然,我根本不相信。上一次尝试(可能是 2 年前?)这仍然是相当多的工作,涉及编程和数学的综合知识。那是非常严肃的手艺。

所以晚上我花了一些时间研究了 Keras 文档,我必须说这看起来很简单。但是当我尝试的时候,我肯定会发现一些困难,对吗?习惯这些软件包有时需要几个月的时间。

第二天早上

于是第二天我就着手用自己的数据玩 Keras。首先,我开始在我们自己的内部包中重构一些代码,将数据转换成表格形式。这让我沮丧了一段时间。最后,回复邮件和问题占据了我一上午的时间。完成之后,我可以很容易地将我的一些数据导出到 csv 文件,用 Pandas 读取,转换成 Numpy 数组,我们就可以开始了。

午休时间

由于这是一个业余爱好项目,我部分牺牲了午休时间来做模型。Keras 和 Tensorflow 很快就安装好了,自从我上次尝试在 Windows 笔记本电脑上安装 Tensorflow 以来,非常容易。然后我实际上复制粘贴了 Keras 文档中的代码。我甚至不打算启动一个 github 库,这就是我所做的一切:

from keras.models import Sequential
from keras.layers import Dense
import numpy as npmodel = Sequential()
model.add(Dense(units=64, activation=’relu’, input_dim=1424))
model.add(Dense(units=2696))
model.compile(loss='mse', optimizer='adam')model.fit(predictors[0:80,], estimator[0:80,], 
     validation_data=(predictors[81:,],estimator[81:,]), 
     epochs=80, batch_size=32)
np.savetxt("keras_fit.csv", model.predict(data), delimiter=",")

这是什么?我正在建立一个模型,在一些密集的层上打耳光,完成它,拟合数据,并做预测。所有这些只用了不到 10 行代码。我今天不做任何超参数优化或智能层架构。但我必须说;呸,那太简单了!

下午

现在很好奇实际表现。所以我必须用一些基准来测试它。但是不要告诉我的经理我在这上面花了时间!(开个玩笑,他们鼓励一些探索和学习。)所以我将数据加载回我自己的测试框架,并运行一些其他算法。这是我的最终绩效指标的结果。

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

对于不到一个小时的模型制作来说,这是令人尴尬的好。我们研究了 1.5 年的超级秘密模型仍然胜过它(谢天谢地)。最重要的是,任何神经网络的一个大缺点当然是,对于它实际学到的东西,它是一个完全的黑匣子。而我们的秘密模型使用模式识别,我们可以在以后作为人类进行诊断。

结论

所以这也是我有史以来写得最快的文章,完全是在一种狂热的心态下写的。现在,我正在用一天中的最后几分钟写这篇文章,为制作 Keras 的人热烈鼓掌。以下是我的结论:

  • Keras API:牛逼!
  • Keras 文档:太棒了!
  • Keras 成绩:牛逼!

任何想做一些深度/机器学习的人,我当然会建议从 Keras 开始。跑步是一件非常有趣的事情,你可以在以后学习和调整细节。

ToneNet:音乐风格的转变

原文:https://towardsdatascience.com/tonenet-a-musical-style-transfer-c0a18903c910?source=collection_archive---------2-----------------------

作者:南加州大学 Vesta 团队。

CSCI:599 深度学习及其应用

suraj Jayakumar(sjayakum @ USC . edu)、拉凯什·拉梅什(rakeshr@usc.edu)、(thalasta@usc.edu 帕拉德普·塔拉斯塔

简介:

最近,生成对抗网络在视觉领域的成功,如风格转换,启发我们在音乐领域尝试这些技术。音乐一代主要钻研两个最重要的东西:作曲和演奏。作曲侧重于宋立科的积木符号、音调、音高和和弦。而演奏则侧重于演奏者如何演奏音符。这种独特性定义了音乐的风格。

数据集和预处理:

我们有大约 200 首钢琴专用歌曲(MIDI 文件),分类为爵士乐和古典音乐,训练数据的平均长度约为 4 分钟。

首先,我们量化每一个 MIDI 文件,以符合特定的时间间隔,从而消除表演者的不精确性。其次,我们将输入的 MIDI 文件编码到一个 T ×P 矩阵中,其中 T 是歌曲中的时间步长数,P 是乐器中的音高数(例如,对于有 88 个键的钢琴,我们有 88 个音高)。此外,在矩阵的每个值中,我们使用 2-D 向量对关于音符的信息进行编码,即,[1-1]音符发音,[0-1]音符持续而[0-0]音符关闭。

类似地,我们生成 T ×P 形状的输出矩阵,但这里我们对歌曲的力度进行编码,即播放的下一个键的音量(1-127 ),而不是音符信息。

数据集链接:钢琴数据集【注:钢琴数据集配有 CC-BY 4.0 许可证。如果使用这个数据集,请参考这篇论文 :]

数据集链接(SeqGAN) : 诺丁汉数据库

建筑设计

序列间

序列到序列模型在过去被证明在各种领域对于风格转换非常有效,特别是在语言(机器翻译)中

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

基线— seq2seq

注意:基线架构在很大程度上借用了本文的内容。请参考同。还可以查看 Iman Malik 的 StyleNet,了解更多关于基线音乐风格转换的信息

歌曲的预处理 MIDI 文件被传递到具有动态 RNN 展开的编码器 LSTM,以处理不同歌曲中的不同时间步长并保持一致性。来自编码器的中间输出被传递到对应于其风格的 LSTM,其学习音乐流派的内部动态。

输入歌曲被反馈给相反流派的 LSTM。在风格转换过程中,输出被解码回一个 MIDI 文件,该文件代表风格转换后的 MIDI 文件。

基于注意力的 seq2seq

这个架构被进一步调整,以利用注意力机制,这样我们就可以对歌曲中我们希望网络更加重视的部分进行加权,尤其是中间的即兴部分。

来自编码器 LSTM 的输出通过注意机制传递(Luong 的版本)。这个包装器的输出被传递到解码器单元。

注意力计算发生在每个解码器时间步骤,其中我们计算与每个上下文向量相关联的注意力权重,该权重用于计算注意力向量,该注意力向量然后最终用于计算分数。

加工和后处理

要进行风格转换的歌曲(比如爵士歌曲)通过编码器传递到相反的风格(古典),我们收集输出(古典输出)并使用此信息叠加到原始歌曲上,但使用 ToneNet 生成的古典速度。

车型评测

为了评估 ToneNet 的整体性能,我们将一首输入样本爵士乐歌曲传递到 ToneNet 上,并获得风格转换的古典歌曲。这种输出被反馈到网络中,我们试图将输入的歌曲重新生成为爵士乐类型,并与原始歌曲进行比较。原始歌曲和再生歌曲之间的这种数值 MSE 比较将决定 ToneNet 的性能。

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

VAE-甘

架构:

提出的架构是 VAE-甘(变分自动编码器生成对抗网络)的架构。通过将变分自动编码器与生成对抗网络相结合,我们可以在 GAN 鉴别器中使用学习到的特征表示作为 VAE 重建目标的基础。这使得训练过程明显更加稳定,因为生成器具有关于它试图生成的真实世界实体的信息,而不是在每次迭代中猜测真实世界实体应该是什么。此外,编码器学习图像到潜在空间的映射,这非常有用。

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

变型自动编码器

VAE 由两个网络组成,将数据样本 x 编码为潜在表示 z,并将潜在表示解码回数据样本。

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

VAE 损失减去预期对数似然(重建误差)和先前正则化项的总和

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

生成对抗网络

GAN 由两个网络组成:生成器网络 Gen(z)将潜伏期 z 映射到数据空间,而鉴别器网络分配 x 是实际训练样本的概率 y = Dis(x) ∈ [0,1]以及 x 由我们的模型通过 x = Gen(z)与 z∞p(z)生成的概率 1y。

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

在我们的设计中,我们用多个 88(时间步长数)X 88(音符数)图像来表示 midi 文件(钢琴轨道),其中每个像素值都是一个时间步长内给定音符的相应音量。

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

为什么是干的?

这是作为问题陈述的一个分支实现的,其中我们想要创建对应于不同类型的封面。这要求我们有能力从头开始创作完整的歌曲。对此的进一步扩展将是实现循环 GAN,其中该架构可以用作导致音乐风格转换的构建块。简单的 GAN 对于训练来说是不稳定的,并且我们丢失了潜在空间和生成的歌曲之间的映射。因此,我们使用 VAE 氮化镓架构。Midi 文件被转换成图像,以便更容易处理,因为基于卷积神经网络的 GAN 明显更稳定,更容易训练。

后处理

这里,输出包含 88×88 的图像,这些图像对应于生成的音乐的量化时间步长、音符和音量。我们需要将图像转换成相应的歌曲表示。我们正在构建一个新的 midi 文件,其量化间隔与我们在预处理过程中设置的相同,音符和音量与从生成的图像中获得的信息相对应。

结果

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

VAE-重建

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

利用噪声生成

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

想法

为什么建筑不起作用:- 我们认为它不起作用的原因是因为我们做了一个简单的假设,即只用时间步长、音符和音量来表达歌曲。还缺少其他关键部分,如音符开始和结束时间。由于量化,每个音符在输入中都表示为一个单独的笔画。这会给生成的音乐带来刺耳的声音。从结果可以明显看出,模型正在学习如何以相对较好的方式重建输入,并且生成的音乐在结构上与输入歌曲表示非常相似。例如,大多数音符被设定为 0 音量,平均每次有 2-3 个音符活跃,这表示正常的钢琴音乐。彼此靠近的音符通常一起演奏,重复的模式信息被采集。这表明模型运行良好,这里的错误在于世界假设,而不是用于完成这项任务的架构。

调查结果

VAE-GAN 明显比 GAN 更稳定。我们的许多简单的 GAN 实现导致生成器收敛到这样的模式

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

无论我们训练多少个纪元,发电机都不会改进。当使用 VAE-甘时,这种情况从未发生。

在训练模型时,动态调整学习速率非常有帮助。这是用来重新调整学习速度的确切代码。这确保了生成器和鉴别器都以稳定的速度改进,并且都不会超过对方。这里,learning_rate 是一个恒定值,它从 4e-4 开始,每个时期衰减 0.99。

generator _ learning _ rate = max(learning _ rate,min(learning _ rate (training _ loss _ gan _ g _ loss/training _ loss _ gan _ d _ loss),gen_learning_rate20))

discriminator _ learning _ rate = min(learning _ rate,learning _ rate *(training _ loss _ gan _ d _ loss/training _ loss _ gan _ g _ loss))

未来前景

更好的输入和输出表示,更大的潜在空间,更多的训练样本,运行更多的时期。我们仍然相信这种架构可以用于进行音乐生成,但是存在某些限制,例如关于扩展序列的信息没有被保留,不像我们使用基于 LSTM 的模型那样。把这个扩展到 CycleGAN。

序列-GAN

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

这里使用的架构是 SeqGAN。以下步骤用于实现 SeqGAN 以生成音乐:

  1. 建立一个递归发电机模型,在每个时间步从其 softmax 输出中取样。
  2. 将采样序列传递给递归鉴别器模型,该模型区分采样序列和真实数据序列。
  3. 在标准 GAN 损耗下训练鉴频器。
  4. 用一个强化(政策梯度)目标训练生成器,其中每个轨迹被分配一个单独的情节奖励:由鉴别器分配给生成序列的分数。

生成式模型

基于 LSTM 的 RNN 模型被用于对映射输入嵌入表示 x1,.。。序列 x1,.。。,xT 转化为隐藏状态 h1,…,hT 的序列。

ht = g(ht1,xt)

softmax 输出层 z 将隐藏状态映射到输出令牌分布中。

p(yt|x1,.。。,xt) = z(ht) = softmax(c + V ht),(10)

其中参数是偏置向量 c 和权重矩阵 v

判别模型

我们使用基于 CNN 的鉴别器,因为 CNN 最近在更准确地分类令牌序列方面非常有效。

我们首先将输入序列 x1,…,xT 表示为:

E[1:T] =x1 ⊕x2 ⊕…⊕xT

其中 xt ∈ Rk 是 k 维令牌嵌入,而⊕是构建矩阵 E[1:T] ∈ T×k 的串联算子。然后,核 w ∈ l×k 对 l 个令牌的窗口大小应用卷积运算,以产生新的特征图:

ci =ρ(w⊗e[I:I+L1]+b),

其中,⊗算子是元素乘积的总和,b 是偏差项,ρ是非线性函数。我们在鉴别器的模型中使用 relu 作为非线性函数,并且 CNN 具有以下配置步长=[1,1,1,1],padding =“VALID”。

最后,我们在特征图上应用最大时间池操作

c ̃=最大值{c1,…,CTL+1 }

最后,我们应用基于汇集特征映射的高速公路架构,以在完全连接层之前增强性能,其中 sigmoid 激活给出了所生成的序列是真实的概率。

鉴别器交叉熵损失函数:

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

为什么 Seq-GAN

由于同样的原因,作为使用 VAE 干,我们尝试序列干创造相应的不同流派的封面。这要求我们有能力从头开始创作完整的歌曲。对此的进一步扩展将是实现循环 GAN,其中该架构可以用作导致音乐风格转换的构建块。简单的 GAN 对于训练来说是不稳定的,并且我们丢失了潜在空间和生成的歌曲之间的映射。因此,我们使用 Seq-GAN 架构,它可以像 RNNs 一样提供反馈。

预处理:

给定的音乐流被分成音符和和弦。音符按照我们用于其他模型的标准预处理进行处理

后处理:

生成的轨道被映射回它们各自的乐谱形式,并且 80 的恒定速度被用于再生。

思想:

SeqGANs 工作良好,这是因为从鉴别器到发生器中的 LSTMs 使用了反馈机制。这有助于序列生成,让它看过去生成的序列。尽管序列生成对于随机的新音乐输出工作良好,但是它不能用于控制风格转换的输出生成,因为编码器使用的潜在向量表示不能按照我们的输入音乐来指导生成。

模型评估:

我们使用 BLEU 作为评估度量来模拟离散钢琴键模式和连续音高数据模式的均方误差。

培训和设置

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

结果

序列对序列

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

INPUT JAZZ PIANO SONG FOR TONE-NET

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

OUTPUT CLASSICAL SONG (STYLE TRANSFERED)

正如你可以很容易地认为,有一个明确的风格转换输入歌曲(爵士乐)到一个新的流派(古典)。可以观察到,网络已经理解了古典流派的动态。该网络剪切了爵士音乐的高音,使得在古典形式的输出中听起来非常流畅和愉快。

序列-GAN

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

SEQUENCE-GAN OUTPUT

正如我们可以从上面的音频中发现的,对于给定的潜在输入,存在很多随机性。因此,我们必须控制这种随机性来生成音频,并在风格转换中使用 SeqGAN。

VAE 甘

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

VAE-GAN SONG OUTPUT

参考

  1. [1] JazzML,https://github.com/evancchow/jazzml
  2. [2]https://github.com/jisungk/deepjazz.deep jazz
  3. [3] Magenta,Melody RNN(基于谷歌大脑的 LSTM 音乐生成)。
  4. [4] WaveNet,【https://arxiv.org/abs/1609.03499】T4(wave net:原始音频的生成模型)。
  5. [5]米迪特,https://arxiv.org/abs/1703.10847.
  6. 【6】音乐风格的神经翻译,imanmalik.com/cs/2017/06/05/neural-style.html
  7. [7] SeqGAN:具有策略梯度的序列生成对抗网,https://arxiv.org/pdf/1609.05473.pdf
  8. [8]使用学习的相似性度量自动编码像素以外的内容,https://arxiv.org/pdf/1512.09300.pdf

GITHUB 链接:https://github.com/sjayakum/csci599-final-project

就业可达性分析工具综述

原文:https://towardsdatascience.com/tools-for-analyzing-employment-accessibility-a-review-6f6466402224?source=collection_archive---------10-----------------------

我们实际上是如何进行这种分析的?

在我工作的俄勒冈州本德市,我们正处于制定 20 年交通计划的早期阶段。我们知道我们想要使用可达性指标来分析和比较未来的场景和潜在的交通项目,但是我们不确定具体如何去做。

随着这么多关于可达性映射的文章的出现,本德不可能是唯一一个环顾四周并想知道如何为自己测量的城市。这篇文章分享了我们学到的东西,希望能给其他有类似经历的城市一个好的开始。

或汽车或公共汽车或自行车。#悠悠悠悠

外面有很多闪亮的工具。当它们出现在我的电子邮件订阅源中时,看起来都很棒(我肯定它们都有好看的网站),但是什么方法才真正符合我们的需求呢?尤其是对于像西雅图或纽约这样没有大都市资源的小城市来说。我调查了几种不同的工具和工作流程,看看它们是如何工作的,以及对 Bend 有什么意义。

从用户的角度来看,以下是我对以下内容的评论:

  • 城市足迹
  • 运输分析
  • t 测试
  • 自行车网络分析,由人供自行车
  • 锤子方法:QGIS 和 Postgres
  • Python 的乐趣:OSMnx(即将推出)
  • 更贵的锤法:ArcGIS(即将推出?)

其中一些是开箱即用的解决方案,不需要 GIS 技能。其他的是原始代码或者需要一些使用来自 OpenStreetMap 的数据的经验,OpenStreetMap 是一个免费的、可编辑的、主要由用户贡献的地图。我注意到了所需的技能。我相信还有其他方法——使用评论部分添加一个链接到用户友好的解释或写一个简短的广告。

要求

我在模拟 2040 年的交通场景。我们的目标是使用就业可及性来比较交通基础设施和服务中不同投资的影响,能够回答如下问题:“如果有新的道路、新的自行车设施和缩短发车间隔的公交线路,我们未来的人口获得未来工作的难易程度如何?”。这意味着我需要一个可以接受大量自定义数据输入的工具(但是这篇文章应该是相关的,即使你没有这些需求)。

我想要一个能够回答以下问题“是”的工具:

  • 它能模拟多种模式吗?
    我想计算行人、自行车、汽车和公共交通可达性的单独指标。
  • 我能输入自定义的人口和就业数据吗?
    我正在为 2040 年的未来状态建模,所以我不想使用当前的人口普查数据。如果这些输入不必针对特定地理区域进行汇总/分解,则加分(例如,我希望能够向其提供我所获得的最佳数据,无论是在税收地段、人口普查区块还是 TAZ 级别)
  • 我可以输入定制运输信息吗?
    我希望能够模拟新的道路,特别是自行车/ped 链接,以及对运输路线和头道的修改。对于自行车,我想限制网络,这样我就只在交通压力低的连接上安排人们的路线(LTS)。对于行人,我们有一个不完整的人行道网络,所以我想限制网络,这样我们就不会在没有人行道的繁忙道路上安排行人。

额外的奖励点是那些易于使用、便宜或免费、运行速度快、支持友好的工具。

城市足迹

它是什么:SIM-city——像规划软件一样运行土地使用方案,计算可达性,并使规划者能够回答“如果……会怎样”的问题,而不必向顾问支付大笔费用并等待其他人运行模型。自由!

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

30-min accessibility by transit, Bend. The menu bar illustrates all the things this can do, and also the fact that it can be a bit clicky

运作方式: Urban Footprint 收取年费。这相当实惠(大约 6k 美元/年),对于你所得到的成本来说,低得惊人。我不知道这些家伙是怎么赚钱的,tbh。如果你把数据贡献给城市足迹,费用会更低。你还需要为佛罗里达大学的工作人员支付一次性费用,让他们准备好你的“画布”,这样它就能与准确的土地利用数据保持同步。或者你可以直接用他们的底图数据,不用付定制费。Bend 正在经历一场增长热潮,因此这幅画布对我们来说似乎并不完全准确;我们本想对它进行定制,以适应大量的新开发。您的里程可能会有所不同。

**书呆子因子:**零。对于没有 GIS 背景的人来说,这是直观和用户友好的。对于那些希望能够查看、共享和摆弄数据分析而不需要专业软件的员工来说,这将是一个很好的工具。支持团队友好且乐于助人。准备输入数据发送到 UF 的人需要一些 GIS 经验。

**它的优点:**我觉得这是一个非常强大的工具,在一个平台上结合了土地利用和交通分析。这里有大量不同的特性和功能。用友目前可以计算行人、公交和汽车的可达性。除了就业可达性,它还可以计算到学校和公园等其他目的地的可达性。有 30 天的演示可以加分,这样你就可以看看它是否符合你的需要。

**它没有做的事情(目前)😗*用友的用户界面目前不能运行自定义路网*的场景。它使用当前的 OpenStreetMap (OSM)道路数据和公共可用的交通数据(以 GTFS 格式)。我无法定制这些输入,以便输入我自己的道路数据或将自行车分析限制在低压力设施上。开发团队告诉我们,通过一些定制($?),这些功能将来可能会提供。如果您只是运行当前道路网的方案,应该没问题,但您应该确保您所在区域的 OSM 数据看起来完整。在这一页的底部有注释。

用友的界面有点点击,但我很乐意接受,以换取一堆功能。

*在幕后,有大量的附加功能,它们只是没有出现在用户界面中(还没有?).本演示文稿提供了更多信息。

**其他评论:**我们对数据定制过程有些琐碎的担忧。从法律上讲,我们不能将我们最详细的就业数据交给第三方,所以我们需要在发送数据之前汇总这些数据。路由引擎让行人跳过一个狭窄的峡谷,并在城镇的一部分涉水而过,但这种类型的问题只发生在非常特殊的地理环境下,并且对于许多路由引擎来说是常见的;这似乎是更详细分析的一个缺点。我们可以只手动调整输出数据中的结果。

**总体来说:**我真的很喜欢这个。它没有满足我们对这个特定项目的需求,因为我们需要如此多的定制基础设施输入,但它对其他应用程序可能非常有用。

输送分析

是什么:优雅的软件工具,旨在帮助规划者使用无障碍指标评估公共交通系统的变化。

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

Point-based accessibility: Drag-and-drop interface, easy to select the mode choice, nice results window

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

Regional accessibility results: Intuitive, interactive interface. (This is preliminary test data so don’t get too excited, fellow Bendites.)

**工作原理:**convetal 在该工具的托管版本中设置您的数据,并指导您如何使用它。联系他们定价(我没有,所以不能在里面称重)。

**书呆子因素:**使用该工具的托管版本,书呆子因素为零:非常直观,不需要特殊知识或经验。我没有在网络浏览器中登录这个工具的托管版本,而是在我的笔记本电脑上使用 Conveyal 发布的开源软件代码安装了整个系统,所以书呆子因素非常高。我建议采用前门方式。使用此工具后,如果您想要分析自定义道路网络,则需要一些使用 OSM 数据和 GIS 的经验。

**它做得好:**这是为了模拟公共交通的变化而设计的,天哪,它做得真好。分析采用 GTFS 公交数据,并使用它来可视化您的本地路线;该界面允许您与它们进行交互,以修改您的网络。真的很优雅。此外,分析允许您输入自己的道路网络数据(以 OpenStreetMap 的 PBF 格式),这意味着我可以输入未来的交通网络来模拟未来的道路或限制自行车使用低压力设施。准备这些数据输入需要一些时间和精力。输入自定义的未来土地使用和人口数据非常简单,它将为您获取 2014 年的人口普查数据。计算运行得非常非常快。

这个工具还为我提供了各种输出:等时线、网格文件、图表和总体指标(例如,在 X 分钟内,Y%的 Bend 居民可以完成#####个工作)。它不仅仅返回我要求的结果,它还包括滑块,这样我就可以上下调整 X 或 Y。结果可以作为栅格下载。

**它没有做什么(目前)😗*这是一个比用友更专业的工具,所以它不是一个寻找通用土地使用和交通分析工具的地方(对我来说很好——那不是我现在正在寻找的)。我不确定如何计算公园或医院等土地使用地块的使用权,但我打赌这是 Conveyal 可以讨论的事情。有一些工作正在进行中,以适应这种分析低应力自行车设施,但这还不可用。

**其他评论:**convetal 有篇很棒的博客文章总结了他们关于可访问性的想法。准备输入数据让我想到将 OSM 数据与城市形状文件融合在一起有多难,以及对此工具的需求。

**总的来说:**这是我最终使用的——它完成了工作,比开发我们自己的分析方法更快更容易。这对运输机构来说尤其有利(毕竟这是它的设计初衷)。

t 测试

什么是 : TBEST(公交登机估计和模拟工具)是一种基于 ArcGIS 的交通工具,目前由俄勒冈州交通部开发。TBEST 具有许多详细的公共交通分析功能,它可以分析公共交通的可达性。

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

TBEST interface and Bend example

**工作原理:**该软件可以下载(免费)并与 ArcGIS 配合使用。它使用用户提供的输入道路网络、人口统计信息和 GTFS 数据。

**书呆子因素:**低,假设对 ArcGIS 有些熟悉。他们的网站上有培训材料,详细介绍了 TBEST 的功能和使用方法。

**擅长领域:**促进交通规划,提供非常详细的分析。TBEST 可以开发和运行未来的交通场景,预测未来的乘客量,充当 GTFS 编辑器,并促进人口统计、土地使用等的分析。离公交站很近。基于路线、停靠点和时间表来评估公交沿线的可达性分析。TBEST 还可以计算更详细的指标,比如基于所需传输次数的基于点的可访问性。

其他功能:TBEST 允许集成和编辑本地社会经济数据集(例如:MPO TAZ 文件,其中包含基本和未来一年的社会经济分布、来自区域交通需求模型的数据集、地块级别的土地使用数据以及为每个地块计算的一天中的人员交通活动级别。宗地数据由宗地编辑器补充,该编辑器允许规划者修改基准年的宗地分布,以代表未来一年的发展。)g

**它没有做什么:**其他模式的可访问性。行人进出公交系统的可达性是基于距离缓冲区而不是沿着道路/行人网络进行分析的。换句话说,该工具目前会告诉您附近的是什么,而不一定会告诉您从某个中转站可以到达的是什么。TBEST 中目前不支持汽车和自行车可达性分析。

**总的来说:**这不符合我的要求,因为它没有解决所有的模式。对于希望更好地了解和模拟其过境网络和潜在未来状态的过境机构来说,这可能是一个强有力的工具。

自行车网络分析,由人换自行车

*是什么:对美国数百个城市道路网络的交通压力水平(LTS)进行的基于基础设施的评估。想将此作为自行车分析的一部分,但没有 LTS 的数据?这可能是一个有用的估计。这也计算了各种各样的可访问性指标 ,但它们的准确性取决于您的 OSM 便利设施和景点数据的完整性 ***

**工作原理:**自行车爱好者利用 OSM 的数据,根据特定的 OSM 标签来推断道路网络的交通压力水平,并将其应用于美国各地的城市。分析是由 TooleAzavea 完成的,他们对记录他们的方法学的检查结果感到惊讶,他们还公布了他们的权重和源代码。如果你更喜欢视频/音频,这里有一个关于他们流程的会议讨论。

你可以从网站下载计算的 LTS 网络。

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

Bicycle Network Analysis for Bend

**它的作用:**如果你很幸运,你所在的城市在列表中,你可以导出自行车网络数据以供使用。它还计算了一大堆可访问性指标,但是请阅读下面的注意事项。

**它没有做什么:**可达性指标基于 OSM 目前的便利设施等。对于像本德这样的城市来说,它并没有绘制出所有的便利设施,这可能会产生误导。对于一个已经绘制了详细地图的城市来说,这可以为您节省大量时间并为您进行计算。快乐中介:使用网络,对照你自己的工作/娱乐数据来运行。

总的来说: Bend 从以前的咨询合同和员工输入中获得了自己的、特定于城市的 LTS 数据。我们没有使用这个,但是它可能对其他人有价值。

锤子方法(QGIS 和 Postgres)

**它是什么:**一种使用免费工具的黑客方法,不需要特殊的用户界面、供应商费用或任何涉及合同的东西。这将使用与上述专用工具相同的方法——计算基于点的可达性,迭代“分析区域”网格,按人口对结果进行加权。区别?你可以自己完成计算的每一步,然后等待它运行一段时间。

工作原理: 克里斯·科勒写了这篇 QGIS 星球客座博文。它得到了安妮塔·格拉泽(QGIS 的守护神)的祝福,所以看起来是一个很好的开始。这将生成行驶时间等时线,并可适用于自行车和 ped 应用。这需要在分析网格上运行,并按人口进行加权,以便计算 X%人口的就业可达性。

**书呆子因子:**非常高。这需要 GIS 知识和使用开源软件包的经验——这不仅仅是运行 QGIS 的问题,还需要处理 Postgres 和命令行工具。

**优势:**避免专业软件和供应商合同。免费。强迫你理解分析过程。允许输入的无限定制。

**它没有做什么:**克里斯的博文没有提到公交。这是一个更难的问题,因为运输中涉及到路线、站点和时间表。我很有信心,如果你花些时间深入研究,会有某种 QGIS 插件来处理这个问题,但我不能保证。

**总体而言:**这是我们的备用方法,我真的很高兴我们不必使用它。步骤越多,出错的机会就越多……但你越能真正定制分析。你喜欢呆在一个只有电脑显示器灯光的黑暗房间里吗?厉害!这个可能是给你的(不是评判)。

Python 的乐趣: OSMnx (更多内容将陆续推出)

这个工具值得一提,它看起来真的很有用,但是我还没有时间去测试。

**工作原理:**这是一个基于 python 的工具,有很好的文档。它可以用于可访问性分析和许多其他应用程序。

**书呆子因子:**非常高。这比在 QGIS 中计算等时线更直接/自动化。但是它有一堆依赖关系。可能花更多的时间做准备,花更少的时间做分析。

擅长领域:避开专业软件和供应商合同。免费。强迫你理解分析过程。允许输入的无限定制。比 QGIS 方法更自动化。

**它没有做什么:**它没有解决中转问题。同样,我很有信心,如果你挖掘其他工具,会有办法解决这个问题。

总的来说:这是另一个我不必使用的备份,但这是我的一种愿望,并计划回来使用。

更昂贵的锤子方法:ArcGIS(更多内容即将推出)

**是什么:**如果我们使用基于 ESRI 的解决方案,我们的 it 部门会更高兴。如果你在市政府工作,那么你的 IT 部门可能也有类似的感受。网络分析功能不是 ArcGIS 许可的标准配置,由于某些原因,我们没有获得扩展模块。我们为此提交了一份内部申请。几个月后再来检查…

警告:我们的城市道路数据不是作为可路由网络构建的,因此可能需要额外的工作、开源工具或 OSM 数据来使该解决方案工作。

**其他评论:**OSM/开放数据社区和公共机构(比如我的)之间有时似乎有一条巨大的鸿沟,这条鸿沟实际上是在 ESRI 的道路上设置的。我了解到,无论一个工具有多好,除非它能以某种方式与 ArcGIS 兼容,否则许多机构都无法使用它。一些工具通过将结果作为栅格数据下载来实现这一点。如果在 ArcGIS 中有一种明确的使用方法(不需要命令行工具),其他工具(如 Python 方法)会更有用。

注意:这些观点完全是我自己的,不代表本德市的观点。感谢 Seth Fitzsimmons 帮助我安装并运行了这些工具。

贸易工具

原文:https://towardsdatascience.com/tools-of-the-trade-f258362b44ec?source=collection_archive---------4-----------------------

视觉传达不一定要贵!这些是我最喜欢的——也是最实惠的——面向非营利组织和科学家的 dataviz 工具。

名称以粗体显示的工具是我经常使用的工具。其余的我已经看到了行动,并听说了他们的可用性的伟大的事情。

我错过了什么吗?请在评论中阐述你的观点!

静态可视化和设计

数据争论

  • 微软 Excel——这个在技术上并不免费(或便宜),但大多数组织已经有了。
  • Google Sheets—Excel 的免费替代品。
  • Python —行业使用较多的编程语言,有很棒的数据分析和 dataviz 包。
  • R —学术界更多使用的编程语言,非常面向分析和统计,有很好的 dataviz 包。

装帧设计艺术

  • Gimp—Photoshop 的免费替代品(仅限 Windows)。
  • Pixlr 编辑器—Photoshop 的免费替代品(基于网络)。
  • 亲和照片——Photoshop 的合理价格替代品。
  • Inkscape—Illustrator 的免费替代品。
  • 亲和力设计师——价格合理的插画师替代品。
  • Adobe Creative Suite—可以使用 Illustrator、InDesign 和 Photoshop 来创建和修改 dataviz。Adobe 在网上和通过 TechSoup 为非营利组织提供折扣。

交互式数据可视化

对于程序员来说

  • D3 . js—JavaScript 库,被认为是在线交互 dataviz 的行业标准之一。
  • DC.js — DC 是 D3 的一个 JavaScript 便利库,帮助你更轻松地编写交互式仪表盘。
  • 谷歌图表——谷歌的 dataviz 包有很多种图表类型,但是是为程序员设计的。

无代码的

  • Tableau Public — Tableau 的免费产品。所有在免费帐户上完成的数据和可视化必须是公开可见的(没有私人数据)。
  • Infogr.am —用于网站嵌入的拖放式图表创建。建立独奏和多图表创作。
  • Datawrapper —快速简单的基于 web 的可视化创建器,但提供有限的图表选项。
  • ChartBlocks —设计嵌入式交互式数据可视化的在线工具,有免费和付费两种方案。

其他交互式可视化

基于地图的工具

  • 骑士实验室 StoryMapJS—StoryMapJS 引导用户通过一个空间故事。你选择站点并添加图片/视频,剩下的就交给它了。[ 阅读我的评论
  • 谷歌我的地图——用感兴趣的点和区域创建一个可嵌入的地图。所有地图必须与谷歌帐户相关联。
  • Google Earth Pro —从电子表格文件和 GIS 数据构建导游和解说地图。代码为 GEPFREE 的非营利组织免费。
  • 地图盒子——谷歌产品的开源替代品。可定制性极强,但你会想要有一些 GIS /代码经验。

其他讲故事工具

  • 如果你能使用 Google Sheets 并遵循指示,你也可以在你的网站上嵌入一个响应多媒体时间线。[ 阅读我的评论
  • Knight Lab juxtapoejs—juxtapoejs 用一个滑块将两幅图像叠加在一起,来回切换。非常适合前后对比。

信息图表

  • 【坎瓦】——拖放式图形设计,带有社交媒体模板。dataviz 有点弱,但它确实有风格。
  • Piktochart —部分功能免费;更高级的功能需要适度的年费(可获得非营利折扣)。

书本学习

  • 莎拉·达勒姆的《品牌提升》涵盖了为你的非营利组织建立凝聚力的来龙去脉
  • ——由保罗·贾维斯教授,基本上是一个帮助 Hypsypops 起步的在线自由职业者 101 课程(附属链接)

自由职业者和商业工具

  • Asana —项目管理 app,最多 15 个用户免费。
  • Toggl —带浏览器扩展的灵活时间跟踪器。
  • Teamweek —可视化任务规划器,我用它来制定工作计划和跟踪客户预定。
  • —近乎免费的开票、付款处理、费用跟踪。****

原载于hypsypops.com*。*

利用大数据分析的十大行业

原文:https://towardsdatascience.com/top-10-sectors-making-use-of-big-data-analytics-be79d2301e79?source=collection_archive---------0-----------------------

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

大数据每天都在增长,并成为科技界一个非常流行的词。我们周围的许多人一直在谈论它,但他们知道它实际上意味着什么吗?

大数据不过是非结构化数据的集合。这些数据没有特定的格式,因此其数据集的大小通常很大,达到数十 TB,有时甚至超过数 Pb。术语“大数据”之前是使用数据库管理系统(DBMS)管理的超大型数据库(VLDBs)。

拥有如此多的业务相关数据为任何公司增加销售额或利润提供了一种非常合适的方式。但是为了做到这一点,我们需要利用大数据分析。那么什么是大数据分析?

大数据分析是检查大量不同数据集(即大数据)的过程,以发现隐藏的模式、未知的相关性、市场趋势、客户偏好和其他有用信息,从而帮助组织做出更明智的业务决策。在专业分析系统和软件的推动下,大数据分析可以为各种商业利益指明方向,包括新的收入机会、更有效的营销、更好的客户服务、更高的运营效率以及超越竞争对手的竞争优势。

此外,借助 Elasticsearch ,理解大数据变得更加容易。它用于网络搜索、日志分析和大数据分析。有许多其他工具,但 Elasticsearch 更受欢迎,因为它易于安装,无需额外软件即可扩展到数百个节点,并且由于其内置的 REST API 而易于使用。

如果利用大数据分析,以下是受益最大的 10 大行业:

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

  1. 银行和证券:通过网络活动监视器和自然语言处理器监控金融市场,减少欺诈交易。交易所委员会或交易委员会正在使用大数据分析,通过监控股票市场来确保没有非法交易发生。
  2. 通信和媒体:在多个平台(手机、网络和电视)上同时对全球事件进行实时报道。作为媒体的一部分,音乐行业正在使用大数据来关注最新趋势,这些趋势最终被自动调谐软件用来生成朗朗上口的歌曲。
  3. **体育:**了解特定地区不同赛事的收视模式,并通过分析监控单个球员和球队的表现。板球世界杯、国际足联世界杯和温布尔登等体育赛事特别使用大数据分析。
  4. 医疗保健:收集公共卫生数据,以便更快地应对个人健康问题,并确定埃博拉等新病毒株的全球传播。不同国家的卫生部整合了大数据分析工具,以适当利用普查和调查后收集的数据。
  5. 教育:为各种快速发展的领域更新和升级规定的文献。世界各地的大学都在使用它来监控和跟踪学生和教师的表现,并通过出勤率来反映学生对不同科目的兴趣。
  6. 制造业:利用大数据提升供应链管理,提高生产力。制造企业使用这些分析工具来确保以最佳方式分配生产资源,从而获得最大收益。
  7. 保险:从开发新产品到通过预测分析处理索赔,无所不包。保险公司使用业务大数据来跟踪需求最大、收入最高的保单方案。
  8. 消费贸易:预测和管理人员配备和库存需求。消费者贸易公司通过提供积分卡和跟踪积分卡来发展他们的贸易。
  9. 运输:为了更好的路线规划、交通监控和管理以及物流。这主要是由政府纳入,以避免交通拥挤在一个地方。
  10. 能源:通过引入智能电表减少漏电,帮助用户管理能源使用。负荷调度中心正在使用大数据分析来监控负荷模式,并根据不同的参数辨别能耗趋势之间的差异,并以此作为一种纳入夏令时的方式。

早期的大数据系统大多部署在内部,特别是在收集、组织和分析大量数据的大型组织中。但是云平台供应商,如亚马逊网络服务( AWS )和微软,已经使得在云中建立和管理 Hadoop 集群变得更加容易。

慢慢地,许多公司开始转向大数据分析,以利用他们已经拥有的大量数据,但未能从中获得意义。

前 10 名 USAPL 原始国家总数

原文:https://towardsdatascience.com/top-10-usapl-raw-national-totals-4a80ee754be1?source=collection_archive---------16-----------------------

随着 2018 年 USAPL 全国锦标赛明天开始,让我们回顾一下以前的全国比赛,看看我们现在的运动员面临着什么。随着举重运动的日益发展,新的记录不断被创造,登上领奖台的竞争空前激烈。鉴于美国队这些年在 IPF 世锦赛上的表现,特别是今年比赛的成绩,可以有把握地说美国是世界上最强的举重国家。

操纵来自 OpenPowerlifting (使用 Python)的数据,我放大了在全国运动会上获得的 USAPL/IPF 原始总数( USAPL 承认以下国家记录:大学、高中、宪兵/消防、仅坐凳、仅深蹲、男子全国、女子全国和全国硕士)。我不包括阿诺德体育节的数字。

我保留除法运算,并考虑以下体重级别的男性和女性数据:

  • 男子:59 公斤,66 公斤,74 公斤,83 公斤,93 公斤,105 公斤,120 公斤,120 公斤以上
  • 女子:47 公斤,52 公斤,57 公斤,63 公斤,72 公斤,84 公斤,84 公斤以上

每个重量级的前 10 个总数如下所示。

前 10 名 USAPL 男士的原始总数

59 公斤

在 59 公斤级中,有四个最高纪录是由青少年创造的。就像我们将在下面的所有表格中看到的一样,去年在奥兰多举行的 Raw Nationals 在 USAPL 这个级别上取得了最高的总成绩。

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

66 公斤级

基思·麦克霍尼在 66 公斤级中获得最多的总成绩,连续 4 年在公开级别中名列第一。世界冠军查尔斯·奥克波科(总杆数 688 杆)今年会在华盛顿州斯波坎市取代他成为美国第一吗?

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

74 公斤

世界冠军泰勒·阿特伍德在 74 公斤级中获得最多的总成绩。他在去年全国赛上的成绩仅比今年世界纪录低 8 公斤。

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

83 公斤

在全国比赛中,83 公斤的最高纪录是由约翰·哈克保持的。由于他没有参加今年的全国赛,Russel Orhii 会再次获得第一名吗?肖恩·诺列加在今年的马萨诸塞州和罗德岛州锦标赛中总共获得 785 分,高于奥尔希在世界锦标赛中的 783.5 分。

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

93 公斤

世界冠军 LS McClain 将在今年的黄金时段与 Ashton Rouska 正面交锋。两人去年总共赚了 840 公斤,这将是一场值得观看的表演。

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

105 公斤

105kg 是我个人最喜欢看的。布莱斯·刘易斯和加勒特·布莱文斯在这个班里各有 3 个最高分。由于刘易斯今年没有参赛,让我们看看布莱文斯是否会获得第一名,他已经连续三年获得第二名。

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

120 公斤

丹尼斯·科尼利厄斯会回来拿第一吗?

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

120 公斤以上

除了说雷·威廉姆斯是全美最强的男人还能说什么?是赚钱的时候了。

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

十大 USAPL 女性原始总数

47 公斤级

希瑟·康纳是一个值得关注的人,他今年 3 月在阿诺德斯完成了 4 倍体重的硬拉,确保了 558 威尔克斯。

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

52 公斤级

三位女选手在 52 公斤级比赛中独领风骚——玛丽莎·英达、蒂娜·达内什曼德和苏珊娜·哈特维格-加里。这三位女性将在黄金时段进行正面交锋。

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

57 公斤级

世界冠军詹妮弗·米利肯今年将升级到 63 公斤级。在今年的全国比赛中,谁将取代她成为最强的 57 公斤级选手?

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

63 公斤

世界冠军珍妮·汤普森是 USAPL 运动员中总数最多的,为 6 人。她今年将再次面临激烈的竞争,詹妮弗·米利肯也加入了这个行列,对手是萨曼莎·卡尔霍恩,她今年以 221.5 公斤的成绩创造了新的硬拉世界纪录

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

72 公斤级

金伯利·沃尔福德拥有 4 项全国最高记录。虽然很不幸,她不再参加 USAPL/IPF 的比赛(因此,今年不会出现),但我预计她将与克洛伊·道布林和克里斯汀·邓斯莫尔(首次以 72 公斤级的身份参赛)进行一场激动人心的对决。

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

84 公斤

世界冠军丹妮拉·梅洛在全国比赛中保持着最高的总成绩。她在今年的阿诺德斯继续以 572.5 分打破这一纪录,并保持着 571 分的世界纪录。

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

84 公斤以上

世界冠军博尼斯·布朗(前 Lough)会连续第五年重返榜首吗?

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

前 10 名 USAPL M/F 原始合计中最高合计数最多

如前所述,在 USAPL M/F 原始总额的前 10 名中,珍妮·汤普森拥有最多的最高总额,为 6。雷·威廉姆斯和金伯利·沃尔福德排名第二,各得 5 英镑;博尼卡·洛、苏珊娜·哈特维格-加里、基思·麦克霍尼、泰勒·阿特伍德和玛丽莎·英达各有 4 个孩子;丹尼斯·科尼利厄斯、布莱斯·刘易斯、李安·休伊特、加勒特·布莱文斯、迈克尔·图切勒、艾丽西娅·韦伯和大卫·里克斯各有 3 个。

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

美国一年比一年强大。像举重社区的许多人一样,我很兴奋地看到今年的比赛将如何改变我上面介绍的数字。这个项目的完整 Jupyter 笔记本将会出版…最终。

GitHub 上 100 个最常用的 R 函数

原文:https://towardsdatascience.com/top-100-most-used-r-functions-on-github-9caf2b81b314?source=collection_archive---------2-----------------------

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

Photo by Luca Bravo on Unsplash

互联网提供了大量可供分析的数据。有时,它甚至已经是易于使用的形式,例如,Google BigQuery 数据集中所有 GitHub 存储库的集合。我曾经想过 R 中哪些最常用的函数会影响 GitHub 的使用。

所有公共 Github 存储库的 BigQuery 数据集包含超过 3 TB 的数据。希望我们不需要所有东西,只需要 R 文件。我们将首先提取 big query-public-data:github _ repos . files 中 R 文件的 id,然后使用这些 id 从 big query-public-data:github _ repos . contents 中提取文件的内容。

选择所有 R 文件的 id:

SELECT *
FROM [bigquery-public-data:github_repos.files]
WHERE lower(RIGHT(path, 2)) = '.r'

选择 R 文件的内容:

SELECT *
FROM [bigquery-public-data:github_repos.contents]
WHERE id IN (select id from [bigquery-github-1383:Github.r_files])

内容摆在那里!当然,我们可以在这里继续,但是记住 Google BigQuery 不是免费的,我已经使用了大约 2 TB 的数据处理。1 TB 目前是 5 美元,但是如果你第一次注册 Google cloud 并获得 1 年 300 美元,你就可以省钱。您还可以限制处理的最大数据量,这样就不会在出现错误函数的情况下遇到问题。

由于我们也需要从 R 中提取数据,并且我稍后将使用它进行可视化,所以我将切换到 R,而不是在 BigQuery 和 R 之间来回运行。

最终文件的数据量为 1.2 TB。我可以下载它,但是它们将首先被放在 Google 云存储上,只有到那时才可供下载,所以我将使用 R 中的 bigrquery 包建立一个从 R 到 BigQuery 的连接。

big_query_data <- "certain-torus-206419"sql <- "SELECT content FROM [certain-torus-206419:Github.content_copy]"destination_table <- "certain-torus-206419:Github.r_2"content_r <- query_exec(sql, project = big_query_data, useLegacySql = FALSE, destination_table = destination_table, max_pages = Inf)

该软件包将自行处理授权,下载和处理数据只需 2 分钟。

最常用的 R 包及其功能

一旦我们得到了内容,我们就可以开始寻找功能。有两种方法——直接在 GitHub 文件中找到函数,或者在其他地方找到它们,并检查它们在 GitHub 代码中的外观。

第一种方法有一个问题——在不同的包中,不同的函数有时会使用相同的名称,之后我们可能很难区分它们。所以我会先找到所有函数及其包,然后检查它们在 GitHub 文件中的外观。

我想到的第一个想法是简单地运行 apropos(" ")来列出所有函数。然而,这个函数将只列出您环境中的函数,这可能是不完整的。所以,我决定从包装开始。我去看了所有的克兰套餐。我使用 Google Sheets 和这个公式(=ImportHtml( URL ,【表格】, num )从网页导入数据,列出所有包:

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

r 有 12 000 多个包!对 R 来说很好,但对我来说不是。当然,我们可以尝试列出所有函数,但我会从这一点出发进行优化。我们不太可能在很少使用的包中找到 100 个最流行的函数。所以,我会限制他们。我们先找一下排名前 100 的 R 包,以及其中的函数。希望这是之前由 Kan Nishida 在这里完成的。然而,我将使用类似的方法,用更多的原生 R 函数代替探索性的包。我还使用了稍微不同的语法来查找包,以包含括号后有空格的情况。这有助于在代码中增加大约 1500 个包的外观。

我找到了前 100 个函数。这真的很有意思,在过去的两年里这是如何改变的。

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

没有那么多,top4 一点都没变,我也没看到其他包有大的变化。

一旦我们知道了包,是时候获取这些包中的所有函数了。在此之前,我需要确保在我的环境中安装并上传了这些包。

安装是一个棘手的部分,我想控制我要安装什么,所以我一个接一个地安装,而不是用一个函数一次全部加载。不幸的是,手动步骤完成后,我将使用以下命令将它们上传到环境中:

 lapply(packages_100$value, require, character.only = TRUE)

然后通过以下方式获取所有已安装的软件包和功能:

functions <- sapply(search(), ls)

我必须说,我没有设法安装所有的 100 个软件包。唯一的原因是有些包不是 CRAN 包或运行 R 第二版(我用的是 3。).希望所有的前 50 名软件包都在那里,所以我认为忽略一些其他的不是问题。此外,当一个包因为某些原因(比如 limma )从 CRAN 中被删除时,我会有点怀疑。

总之,在清除了全球环境和数据集之后,我们有 99 个包,产生了超过 12000 个函数。挺好的!我可以过滤包含 R 文件内容的原始数据集,只包含这些包。

识别功能

现在我有两个选择。我可以尝试检测所有看起来像函数的单词(在 R 函数中可以包含大写/小写字母 _。和数字,我将排除运算符),然后在列表中搜索相同的函数,或者尝试提取后跟“(”的函数。第一种方法将导致与英语中的单词相似的函数的更高外观。然而,第二种方法会忽略其他函数中函数的使用,比如 apply(),其中包含不带括号的函数。这两种方法都可能有失偏颇。因此,我将在更小的子集上运行这两种方法,看看是否有更好的方法。

我在 10000 行的子集上运行了 2 个方法,然后得到了计数差异高于 20%的结果:

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

结果有利于第二种方法——第一种方法排名较高的大多数函数要么是单字母函数,“a”文章、常用词,要么与软件包同名(这意味着它们将至少被计算两倍)。唯一出现的问题是 h2o 包装。这很奇怪,因为大多数函数都是标准形式,后面有一个括号。但是,让我们对接下来的 10000 行运行相同的脚本:

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

现在一切都很好,所以 h2o 包的问题只是一个非代表性子集的偏差。因此,第二种方法得到更准确的结果。

查找最常用的功能

另一件事是基础包和其他包之间的区别:当使用基础函数时,通常不会显式加载基础包。所以我将分别运行它们。

还有一个性能问题,我们的数据集相当大,大约 1.2 GB。检查所有的功能是一个更广泛的过程,会减慢这个过程。单独检查包将导致更少的处理。

要处理的过程如下:

-从字符串中提取所有可能的函数,

-取消包含功能的色谱柱,

-按封装和功能分组,

-计算每个实例的出现次数,

-对出现在所有函数列表中的实例进行过滤(对包和函数名使用内部连接)。

前 50 个函数的结果如下:

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

惊喜?不完全是,我们已经检查过 ggplot2 是最常见的包。

我将对基本函数重复这个过程。

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

这里也没有太多惊喜。

假设

我需要提到几个我没有考虑到的问题:

-自制函数内部的函数只计算一次。这是有疑问的,但我相信不会造成大的不同。但是,如果我愿意的话,我需要计算 function(x){},并列出内部使用的函数,计算文件中新函数的使用次数,然后计算新函数的使用次数减 1,并添加到原始函数的总数中。在这里我相信这种复杂性不会获得更好的结果。此外,人们可以认为只计数一次更符合逻辑,因为函数实际上只使用一次。

-我没有计算是否有人重写了函数的行为。通常情况下,你不应该这样做,我希望真的很少有人这样做。

-我依赖的假设是,如果有人使用非基础包中的函数,她会显式地将该包添加到环境中。然而,情况并非总是如此。在没有对包名进行过滤的情况下,对 test 10000 行运行另一个脚本,比较对包的过滤和派生差异,我们发现,例如,ggplot2 包在多达 70%的文件中没有被加载。

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

嗯,不是最好的做法。我也相信非加载包的分布可能倾向于最常用的包。因此,结果可能有偏差,但是它有助于调出不太有名的包。

此外,它表明我们幸运地避免了分配在许多包中使用的常用函数的问题:

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

结果

所以我们来了!所有软件包中 GitHub R 上最常用的 100 个函数是:

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

它们中的绝大多数是基本函数,这是意料之中的,只有一些来自其他包的函数。

我还在GitHub(top _ 2000 _ functions . CSV)上传了一个包含 2000 个最常用函数的文件,所以你不需要运行所有代码来探索它们。

所有代码都在 GitHub 上。

印度黑客机器学习挑战赛前 15 名

原文:https://towardsdatascience.com/top-15-finish-in-indiahacks-machine-learning-challenge-a234d5fb4087?source=collection_archive---------6-----------------------

在几场艰苦的 Kaggle 比赛之后,Indiahacks ML challenge 看起来像是免费的!我对几千行代码记忆犹新,经过几周的努力,我在 800 多名参与者中排名第 14:)

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

出现的问题

  • 市场细分(由 Hotstar 主持):基于每个用户之前的观看历史、观看的类型、每个节目的观看时间以及其他时间因素,我们必须预测特定的人群细分(auc 是误差度量)。现在这个细分市场的人口统计数据还不可用,我们所有的想法是观看特定类型/节目的人包含在这个细分市场中
  • 路标预测(由 Here 主持):Here 的汽车在道路上行驶,捕捉各种路标的图像,顶部装有一个四向摄像头。给定这些图像周围的元数据,如每个凸轮与道路标志的角度、标志的纵横比,我们预测每个道路标志实际指向的位置(后、左、前或右),m-logloss 是误差度量

我的方法 —我从几个启动脚本开始,以可理解的格式获取 jsons。像往常一样,用一个基本的随机森林提交获得了运行基础,它给出了一个相当高的准确性,只是用了给定的试探法。

这是为数不多的比赛之一,我真正关注的是可视化和理解问题陈述。通过比较不同类型的平均时间(热图),我发现板球显然不是我们细分市场的首选类型。

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

上图:所有工程特性相对于“细分市场”的热图

对于 roadsign 问题,我查阅了许多直方图,以了解哪些摄像机和各自的宽高比具有良好的预测能力。

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

上图:检测到左侧摄像头的 aspect_ratio 直方图,但路标指向前方。

市场细分—特征工程

  • 特征整理:我通过观察它们与我们的目标变量的相关性来整理相似的特征。例如,“流派田径”、“流派羽毛球”、“流派拳击”、“流派板球”、“流派足球”、“流派方程式 1”、“流派方程式”、“流派曲棍球”、“流派印地亚夫萨”、“流派卡巴迪”、“流派体育”、“流派游泳”、“流派乒乓球”、“流派网球”、“流派排球”被组合成流派体育
  • 一天中的时间:一天中的时间特征被分成正 _tod、超 _ 正 _tod 和剩余 _tod,同样基于它们与“段”的相关性
  • 工作日/周末:我注意到周日是一个非常重要的特性,因为在 segment=0 行中,day_7 与其他日期的百分比更高。
  • 流派:原 watch_time 考虑。此外,还考虑了一个类型的观看时间与总观看时间的比率。
  • 节目标题分析 —取每个标题观看时间的均值、中值、总和。segment=1 行与 segment=0 行的比率。这些基于平均值/中值的特性很有意义。还比较了个人观看时间——与细分市场或总体人口的中位数相比,该节目的观看时间有多长
  • 城市 —我试着开发一些基于城市的功能,但是没有得到太多的改进。

市场细分—洞察

热图对于判断某些功能的有效性非常有帮助。此外,具有 xgboost 功能重要性的验证管道帮助我缩小了我的假设——该细分市场的人口统计数据是中年全职妈妈。支持这一观点的数据:

  • 几乎没人看板球,很多戏剧/家庭/爱情片都有人看。
  • 一天中的高峰时间是下午(大约 14:00)和晚上(大约 22:00)。
  • 周日对观看时间的贡献不如对其他人的贡献大。
  • 顶级标题和观看次数,讲述了一个清晰的故事:)

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

路标预测—特征工程:

  • 由于大部分特征是在纵横比和 detected_camera 中捕获的,所以我只使用了给定特征的一些变体:
  • angle on right cam = angle on right cam - 50
  • angle on rear cam = angle on rear cam - 180
  • angle on left cam = angle on left cam - 220
  • 生成了一些集合特征(基于检测到的 _cam 和目标的组合的平均角度)。也用了角度的不同 w.r.t 这些共同的方式。
  • 截断的 ID —我认为截断的 ID(没有最后一个字符的 ID)可能会有一些影响,所以包括了具有相同 truncated_ID 的行的计数(可能表示同一辆汽车具有快速连续的快照)。

路标预测—洞察:

基本上,只要从前摄像头捕捉到图像,路标就很有可能显示“前方”。除了在汽车可能急转弯的情况下长宽比高度倾斜的情况,以及前置摄像头从一个奇怪的角度捕捉到的图像。长宽比本质上是,路标的视在高度除以路标的视在宽度,当汽车急转弯时,路标的视在宽度大部分是倾斜的。

模特— XGBoost 是爱情,XGBoost 是生活

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

对于这两个问题,我运行了一个优化的(但是普通的)xgboost,不管是好是坏。我尝试了我的常规 go-to,随机森林,GBM,和非常低效的 keras 网,也尝试了失败的堆叠。

如果我花更多的时间在堆积,糟糕的计划和管理上,我本可以获得一些名次。这个问题在过去的两场比赛中都出现过,显然不是一个理想的情况。

反正我在 Hotstar 问题上得了 0.9990232 的 AUC,在 roadsign 问题上得了 0.18053 的 logloss,对自己的表现还算满意。期待下个月的 zonals 舞台,激动!

所以是的,就是这样。一场比赛结束,另一场比赛开始。ML 会上瘾!

领导成功的数据分析计划的三大关键

原文:https://towardsdatascience.com/top-3-keys-to-leading-a-successful-data-analytics-initiative-cb6c4661d6fc?source=collection_archive---------9-----------------------

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

数据分析被称为 21 世纪最强大的决策工具。尽管它在过去的二十年里才逐渐成熟,但成千上万的企业、政府机构和非营利组织已经使用它来大幅提高生产率、减少浪费和欺诈、提高质量、改善客户服务、增加收入、优化战略、打击犯罪和恐怖主义,以及解决许多其他棘手的挑战。Elder Research 首席执行官 Gerhard Pilcher 和运营副总裁 Jeff Deal 合著了Mining Your Own Business,为希望更多了解这些强大工具并在其组织中发展分析能力的组织领导提供了一个易于阅读的数据挖掘和预测分析概述。

本博客摘自本书第三章,回顾了领导成功的数据科学计划的三个最重要的关键。

选择正确的项目

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

分析的第一步是决定要解决什么问题。首先确定一个在组织内被广泛认为是棘手问题的狭义问题。任何规模的组织都有许多数据分析可以帮助解决的问题。在选择最初的项目时,考虑一下哪些问题让你夜不能寐。如果没有紧迫的问题让你的组织中的人夜不能寐,如果没有人要求你创造的结果,这个项目很可能是浪费时间和金钱。思考哪些因素正在影响您的组织,您需要更好地了解这些因素?你非常想解决什么问题?为了确保成功,领导者应该将该计划视为实现组织总体目标的重要一步。参与项目的所有人都应该相信它的成功,他们应该愿意根据分析揭示的见解采取行动。该项目应该切实可行,有足够的资金和数据。

一些对我们的客户很有效的开始项目是减少欺诈减少客户流失、预测成本和提高生产质量。限制你努力的焦点。例如,如果你的问题是欺诈,从识别和减少一种特定类型的欺诈开始,而不是一次跟踪每一种形式。最初项目的主要目的应该是证明数据分析的价值,并让人们了解其潜在的好处。获得认同是关键,因为分析最终将改变组织中人们的决策方式。

将这个初始数据分析项目主要视为未来全面计划的销售工具。使用它向各级管理层证明,数据分析的好处值得投入必要的时间、金钱和精力。

从小处着手

一些刚接触数据分析的公司试图推进得太快。他们没有在一个普通的初始项目上投资 75,000 美元左右,而是冲出去雇佣两三个有一些分析经验的人,花 500,000 美元购买软件,并宣布公司现在是“数据驱动的”。然而,在没有适当规划和组织认同的情况下推行数据分析计划,就像在没有足够承诺的情况下购买一件昂贵的家庭锻炼设备。这种设备起初看起来令人兴奋,但如果没有专门的养生方法,它很快就会闲置在地下室或作为卧室角落的衣架。

几年前,一家非常大的公司的经理要求我们帮助他们实现他们的愿景,将数据分析作为改造整个医疗保健行业的工具。在我们的四人团队与他们的十二人团队会面两天后,很明显,该组织的分析战略过于宏大,无法启动。这就好像他们试图用业余爱好者的模型火箭到达月球。经过两天的会议,这个潜在的项目在其不切实际的目标的重压下崩溃了。

相比之下,我们的另一个客户,美国最大的保险公司之一,做的一切都很正确。当我们参加最初的动员会时,项目负责人已经召集了主要的中小企业、高管、IT 人员和其他利益相关者。该公司向我们展示的项目涉及一个被广泛认可的、定义明确的痛点,该痛点与特定的保险业务相关。其明确的重点和狭窄的范围导致了高效的会议和大量的买进。

虽然让所有这些人参加一天半的会议费用很高,但投资是值得的。最初的项目非常成功,从那以后,该公司将数据分析应用于与这种相同类型的保险相关的其他问题。未来,他们计划将数据分析扩展到其他业务领域。

这个客户给我们留下了深刻的印象。我们很高兴地发现,负责数据安全的人非常有远见。她决心在法律允许的范围内尽一切可能提供我们倡议所需的信息。根据我们的经验,太多的数据安全人员害怕分享任何包含顾客或客户个人数据的信息。幸运的是,这个人付出了额外的努力来获取我们需要的数据,没有违反客户保密或法律。

领导力是关键

我们公司对自 1995 年成立以来的第一个十年中完成的项目进行的一项研究表明,90%以上是技术上的成功,但其中只有 65%得到了实施;也就是说,只有三分之二是商业上的成功。[1]导致业务成功率较低的原因有很多,但最大的一个原因是缺乏组织对实施的承诺。不幸的是,许多组织根本不愿意实施分析工作提供的建议,即使这些建议显然会带来重大改进。

为什么如此多的组织在数据分析项目上投入了大量的时间和金钱,却未能实施由此产生的建议?到这个阶段,他们已经支付了所有的成本,并且他们已经证明了样本外数据的回报。然而,如果不实施,他们将一无所获。

我们认为两个主要原因是缺乏强有力的领导和缺乏关键决策者的认同。(一个次要原因是未能理解结果,这是分析师和客户双方的失败。)为了实施数据分析建议,组织通常必须制定新的政策和程序,改变长期存在的流程,重新培训人员,甚至转变企业文化。

从一开始就让关键利益相关者参与进来,增加成功的可能性。如果你在没有利益相关者参与的情况下进行数据分析项目,然后在完成后告诉他们,“这是数据显示的结果,那么这个项目很可能会失败。现在好好利用吧。”

改变企业文化从来都不容易。这就是为什么成功的预测分析计划需要一个或多个“冠军”的强有力领导,他们热情地致力于分析,并在组织内赢得足够的尊重,以争取其他人的承诺。

因为数据分析项目的结果可能需要相当长的时间才能显现,坚持到底可能需要相当大的耐心和毅力。随着一个组织继续投入时间和金钱到计划中,一些领导者可能会变得焦虑甚至害怕。"如果这个项目不成功怎么办?"他们可能会开始思考。"我们只是把钱倒进下水道吗?"有时,其他人会建议其他解决问题的技术,领导者可能会试图将资金从数据分析计划转移到可能看起来更快、更便宜的替代方法。领导者应该不断提醒自己和所有参与者,快速解决方案很少能为复杂的问题提供有效的长期解决方案。勇敢、积极的领导是必要的,以确保数据分析计划坚持下去,直到成功开始显现。与此同时,分析师需要用早期发现的报告来鼓励那些从事这项工作的人。

摘要

一场管理革命正在商界和政界展开。未来几年,最成功的组织将具备分析能力。分析计划的领导者需要获得知识、愿景和激情,才能站在这场变革的前沿。如果您正在启动或领导一项分析计划,请牢记这些因素以确保成功:

  • 选择一个支持组织整体目标的项目,并确保关键利益相关者的认同。
  • 你最初项目的目标应该是证明分析的价值,并让人们了解它的潜在好处。
  • 确保项目有足够的资金和数据。
  • 从小处着手,利用结果为具有更大潜力的后续项目建立动力和领导支持。
  • 积极的领导是必要的,以确保数据分析计划坚持下去,直到成功开始显现。
  • 指派一名有领导支持的项目倡导者来指导结果的实施和采用。

Elder Research 可以帮助制定分析战略、评估能力、构建和部署解决方案,并指导您的分析团队。 请求咨询 与经验丰富的大数据分析顾问交流,了解更多信息。

[1]研究我们的过去——数据挖掘我们的数据挖掘——证明非常富有成效。通过确定将新模型和流程投入生产的主要非技术障碍,我们能够在未来避开大多数障碍,并在接下来的十年中大幅提高生产率。

有关系的

了解更多关于如何开始开创自己的事业

阅读博客打造高效的数据科学团队

阅读博客分析 101:评估项目价值

原载于www.elderresearch.com

4 大被忽视的技术

原文:https://towardsdatascience.com/top-4-overlooked-technologies-aefa6590aff1?source=collection_archive---------2-----------------------

大约一年前,我“走出”了平时的工作,去旅行,自由写作,写作。这是一个阅读新技术和实验项目的机会,我一直试图继续跟踪。

在我读到的所有东西中,有四项技术对我来说很重要,或者至少是“大的,如果是真的”,尽管它们大多不为人知。

1.机器学习中的对抗模型

机器学习在科技媒体、GitHub 和教程中无处不在,但我发现了一个特别感兴趣的例子,它违背了对抗性机器学习的原则。自 2014 年以来,这些方法被用于分析和混淆分类器。在这里,正确识别熊猫的人工智能被骗(更有信心)说它正在看另一种动物:

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

更奇怪的是,去年 11 月,一个演示被打印出来:

Yen-Chen Lin 的令人敬畏的对抗性机器学习 repo 有一个论文和资源列表。

OpenAI 有一个 CleverHans repo 来衡量他们的模型相对于敌对模型的有效性。其思想是,在训练机器学习模型时,我们应该有目的地引入敌对图像,以提高模型的可靠性。

2.同态加密

同态加密一开始很难相信。您可以将加密的数据发送到服务器进行分析或算术运算,而无需给服务器实际数据的密钥。

我做了一个地理围栏项目,在这个项目中,你不用向服务器透露你的坐标就可以知道你是否在一个目标区域。我使用了 Paillier 密码系统,这是一个部分同态系统,在 GitHub 上有许多语言的开源实现。
目前其他实际例子很少,但最终您可以在云端搜索您的加密电子邮件和文档,或者在不暴露它们的情况下分析医疗记录(解决 HIPAA 问题)。

QuarkLabs 有一篇出色的文章,解释了你想知道的关于全同态加密的任何事情,全同态加密于 2009 年首次实现。

还有一个来自 IBM Research 和加州大学伯克利分校的演示:

使用同态加密的电子投票

3.智能合同

人们写了很多关于智能合约、以太坊和区块链的废话,所以我不会在这上面漫谈太多。这符合我的“未知”标准,即在野外很少能看到智能合约。

学术界、技术社区的某些领域和风险投资肯定会有兴趣。聪明的契约理论家提出了有趣的建议,从游戏到难民身份证到基本收入再到伊斯兰金融。但只有少数例子变得突出,然后被扑灭。预期结果和实际结果的不匹配有几个原因:

  • 关于智能合约能做什么和不能做什么的误解(见我之前的帖子:在以太坊不能工作的应用)。可以将这些应用程序编写为通过区块链进行通信的程序,但是考虑到您需要一个可下载应用程序的网站,这些应用程序可以很容易地通过常规互联网或另一种 P2P 协议进行通信。
    在这个领域,重要的是创建一个可信的分布式契约。
  • bug,比如清空 DAO 的 bug,以及最近在无效地址丢失以太网的一个交换 bug(上下文:潜在的 1200-1300 万美元被有效删除)。
  • 理解以太坊、区块链、智能合约和有新闻价值的 bug。写入一个契约的错误不会使其他契约变得脆弱。
  • 开发人员缺乏工具,因此将合同编译并发布到以太坊区块链要比想象中困难得多。看一个’ hello world '的例子。
    我在 Solidity 中写了一个简单的“单词搜索”游戏,但我的代码什么也做不了。我试着运行我的电脑几天来下载以太坊区块链(这是不断受到攻击,这意味着你必须停止和升级 geth),我从来没有达到一个点,我可以看到我的以太令牌或提交合同。

一些链接:

  • Ether Studio 据报道是智能合约的 IDE,但它不再加载(?)
  • OpenZeppelin 是一个在 Solidity(基于 JS 的语言)中构建契约的框架。

4.可验证编程

如果我们能在运行代码之前知道代码所有可能的结果,那会怎么样?在任务关键型系统中,工程师使用规范语言为他们的代码建立一个抽象模型。它帮助 AWS 发现了新的、意想不到的错误。这听起来很有趣,但是从像这样的帖子中,我还不能得到一个头脑中的画面,并确定我是否可以将它应用到我自己的代码中。

一个最近在 TLA+上的帖子提醒我再调查一下。这是一个很好的介绍,这些由图灵奖获得者莱斯利·兰波特的视频讲座也是如此。黑客新闻更多讨论

如果像 TDD 和复杂层(比如 Elm,一种编译成 JavaScript 的函数式语言)这样耗时的实践能够成为 web 开发行业受尊敬的部分,那么一种对开发人员更加友好的可验证编程方法可能会成为一件事情。Rust 是一种有点新的语言,它有保证的内存安全赢得了开发人员的支持,并使它在一些领域超越了 C++。TLA+或类似的语言能鼓励他们的思维方式在普通开发者世界中获得牵引力吗?最近有这个铁锈和 TLA+ 的交叉。

从这个列表中毕业:量子的东西

一年前,我得到了一本关于后量子加密的书,因为它经常被忽视。现在我看到人们对量子计算机越来越感兴趣,许多 Arxiv 论文在 Twitter 和 Reddit 上流传。上个月,ri getti Computing(YC 的一家初创公司)召开了第一次湾区量子计算会议。

本月,我将在开源桥发表一篇关于量子计算的演讲,而我对 Revolution Conf 的类似提议输给了另一篇量子计算演讲。我现在可以相信我们已经升级到主流意识了!

不要错过下一个!

这些想法中的每一个都可以成为创业公司,有些已经是了!我知道开发者工具创业公司通常很难起步和盈利。但是看看这个帖子的建议:

为不具备构建所需工具技能的特定开发人员构建工具。例如,瞄准新的开发人员或只为他们工作的一部分编码的人。

构建一个模块网络,这些模块的相互依赖创造了非凡的价值,远远超出了平台之外单独开发的价值。

鉴于机器学习、智能合约开发和加密仍然超出大多数开发人员的经验,并且需要大量的设置(GPU 硬件或活跃的以太坊节点),我认为新的创业公司可以在这些技术中获得坚实的立足点。

可验证的编程是一件更棘手的事情,但或许亚马逊会赞助 TLA+或一种新语言(考虑到 Mozilla 对 Rust 的支持,或来自苹果和谷歌的新语言,这并不太难想象)。

总的来说,我认为这些是值得开发并保存在你的开发者工具箱中的有趣技能。

每个数据科学家都应该阅读的五大业务相关书籍

原文:https://towardsdatascience.com/top-5-business-related-books-every-data-scientist-should-read-6e252a3f2713?source=collection_archive---------3-----------------------

这份改变思维方式的书籍精选清单将帮助你成为一名更好的数据科学家

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

根据 Drew Conway 的说法,数据科学独角兽是统计、编程和商业方面的专家。虽然已经说了很多并做了很多来帮助数据科学家变得更擅长数学和编码,但这篇文章帮助数据科学家提高了他们的商业思维。下面列出了一些关于商业和决策的书籍,最终将帮助你更好地理解和驾驭这个世界。

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

https://goo.gl/T3zjv7

这些书不是理论性的。相反,这些书读起来很有趣,因为它们有科学依据,并且传达了重要的教训。

让我们开始阅读。🤓 📚

精益创业 —埃里克·里斯(2011)

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

《哈佛商业评论》称精益创业改变了一切。他们是对的,这本书应该改变你所做的一切。它的主要信息是省略所有不必要的工作,专注于测试你论文中最危险的假设。关注构建-测量-学习循环。

首先,你创造一个最小可行的产品,尽可能快和便宜地测试你最危险的假设。第二,你衡量客户的反应。你获得了多少付费客户?第三,你从指标中学习并改进产品或转向另一个想法。

作为一名数据科学家,精益创业方法可以很容易地应用到您的工作中。尽快创建一个模型。根据预定义的指标评估模型。这种方法行得通吗?需要更多数据吗?然后,您改进模型,直到它满足您的需求,您转向另一个用例,或者您完全废除这个项目。

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

请记住,你在一个项目上投入了多少努力并不重要。如果你发现现在的方法行不通,你之前的努力从来没有白费。你创造了知识,这将有助于你未来的进步。

吴恩达实际上创建了一门课程来改进你的算法,并坚持精益原则。点击查看本课程的总结。

从零到一 —彼得·泰尔(2014)

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

经验丰富的硅谷企业家和投资者彼得·泰尔在这本即时经典中解释了他对商业的反直觉观点。本书最重要的观点是,你需要大胆创造全新的产品,并最终维持垄断。

泰尔认为,竞争最终会摧毁利润。提供类似产品的公司越多,你的利润空间就越小。考虑一下利润率,它描述了你每赚一美元实际能得到多少钱。根据 NYU 研究的数据,竞争激烈的建筑行业平均盈利 2c,而软件公司每 1 美元盈利 24c。作为一家企业,你需要不惜一切代价避免竞争。

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

Health tech was very profitable in 2015, while competitive distribution services were less profitable. Source: https://goo.gl/R3Xjb1

在你通过创造一种没有补充的产品从零到一之后,你需要创造一种垄断。垄断是保持健康利润的最有效的结构。谷歌或脸书永远不会承认他们拥有垄断地位,因为他们将面临更严格的监管审查,但他们是垄断者,他们从这一市场地位中受益。

这对您作为数据科学家的工作意味着什么?通过创造竞争对手无法提供的服务来支持你的公司!然后,通过拥有产品背后的技术或者创造网络效应,试图垄断产品。这可能意味着任何事情,从申请专利或提供最佳推荐服务,因为大多数用户使用你的服务。阅读泰尔关于如何创造和维持垄断的额外建议的书。

思考,快与慢 —丹尼尔·卡内曼(2011)

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

在这本广受好评的书中,诺贝尔经济学奖获得者丹尼尔·卡内曼总结了几十年来关于人类行为的开创性研究。这本书解释了为什么我们的大脑有时会让我们失望。你从阅读本书中获得的见解将帮助你避免自己推理中的陷阱,并影响他人的决策,使之对你有利。

这本书的关键是,我们有两个层次的思维,称为直觉,或第一层次,和理性思维,称为第二层次。这两个层次都很重要,但服务于不同的目的。

一级思维是低能耗的,并且是持续不断的。它会观察你的环境并迅速做出决定。一个实质性的威胁即将来临。我应该因为刚刚听到的故事而改变对某个话题的看法吗?我如何理解环境?这些都是一级回答的问题。

一旦出现更难的问题,二级思维就开始发挥作用。二级思维是缓慢、努力和可靠的,涉及数学运算或复杂的逻辑推理。每当你需要理性而不是直觉的时候,激活第二层思维。

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

Source: https://goo.gl/teTu5P

作为一名数据科学家,这意味着你应该意识到思维的两个层面。警惕通过 1 级寻找简单的答案。理解当一级思维试图在不关注必要的统计数据和事实的情况下快速得出结论。承认密集使用二级思维会耗尽你的能量,并及时补充健康碳水化合物。

《黑天鹅》 —纳西姆·塔勒布(2007)

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

哲学家/交易者/统计学家纳西姆·塔勒布在本书中解决了我们对不确定性机会的视而不见。黑天鹅轶事是一个不可预见事件的隐喻。例如,人们相信所有的天鹅都是白色的,因为他们见过的所有天鹅都是白色的。但是当探险家第一次在澳大利亚发现黑天鹅时,这打破了他们对天鹅的先入为主的观念。

根据这个故事,塔勒布指出了我们思维中的各种陷阱,以及它如何影响我们的决策。作为人类,我们喜欢创造故事来解释过去,并低估机会在未来影响中的重要性。

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

Picture of a black swan. Source: https://goo.gl/65dbcK

对于数据科学家来说,这本书教你意识到不确定性并拥抱它。业务在高度不确定的环境中工作,这可能迫使公司改变策略或转向另一个产品用例。去尝试不同的方法和模型,也许,甚至是偶然,你会发现正确的解决方案。你永远不知道未来会有什么惊喜。

好战略/坏战略 —理查德·鲁梅尔特(2011)

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

商业战略定义了一家公司做什么和不做什么**。战略的目标是在市场上比竞争对手拥有优势。**

鲁梅尔特深入解释了好策略和坏策略的基石。一个好的战略体现在深入的诊断、指导性政策和一套连贯的行动。糟糕的战略是通过关注花费以达到目标,从问题的细节中吓跑,以及关注战略、使命和愿景模板来识别的。

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

Good strategy beats bad strategy. Source: https://goo.gl/M6Tgdb

然而,鲁梅尔特这本书的关键观点是,公司应该利用所有可用的资源来执行战略。这意味着,作为一名数据科学家,你需要首先挑战和理解公司战略。第二,你需要把你建议的项目和公司战略结合起来。了解公司战略将有助于您 A)确定可通过数据科学实现的价值驱动因素,B)帮助您推进项目,以及 C)了解公司未来的发展方向。

关键要点

  • 应用构建-测量-学习的精益方法
  • 努力创造一种全新的产品,创造垄断
  • 意识到直觉和理性思维
  • 不要低估不确定性
  • 理解商业战略并通过你的工作支持它

这些书将为你的思维增加另一个维度,并帮助你理解商业战略的某些方面。我鼓励你自己去探索和阅读这些书,它们包含了更多的智慧,读起来很有趣。

作为一名数据科学家,你想知道你的公司正在朝什么方向发展,为什么要实施某些措施,或者说服某人相信你的项目。我希望这些书能帮助你做到这一点。

如果你认为这篇文章是有帮助的,不要忘记展示你的💛穿过👏 👏 👏请在这里和 LinkedIn 上关注我,了解更多关于深度学习、在线课程、自动驾驶汽车和生活的信息。还有,你可能喜欢 这些 帖子。如果你知道另一本对数据科学家有帮助的商业书籍,请评论!干杯!🙇

说明性分析的 5 大问题以及如何克服它们

原文:https://towardsdatascience.com/top-5-issues-with-prescriptive-analytics-and-how-to-overcome-them-6f5cada83aa4?source=collection_archive---------20-----------------------

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

Stopwatch Gears by geralt, CC0

规定分析有点像类固醇的预测分析。正如在关于这个主题的早期文章中所指出的,规定性分析是对你通常的预测分析的有力补充。你不仅要预测未来的事件,还要利用这种预测来优化你的决策。
当你一头扎进机器学习和优化技术的熔炉,以理解和实施先进技术时,规定性分析提出了独特的挑战。向最终用户传达这一点也是一个挑战。
以下是您在实施此类系统时遇到的 5 大问题,以及解决这些问题的方法:

I .定义适应度函数

说明性分析要求您定义一个适应度函数。这个适应度函数应该奖励好的优化结果。要定义这个适应度函数,你需要对业务有很好的理解。
得到这个等式有时会很困难,因为它需要从一开始就与企业密切合作。根据我的经验,首先建立准备、建模和说明性分析的完整管道是有益的。这条管道在开始时可能过于简单。整个原型可以快速部署到 BI 系统或 Excel 中。从那里你可以有一个更好的方式与你的终端用户对话,因为他们已经可以体验结果。

二。无导数优化

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

Nelder-Mead optimization on the Himmelblau function. Depending on the start value you get different results. Image by Nicoguaro. CC BY 4.0

依赖于预测模型的适应度函数通常是不可微的。例外当然是像 GLMs 这样的简单模型。因此,您通常必须使用不需要梯度或 Hesse 矩阵的算法来优化您的适应度函数。这不包括神经网络中常用的优化器。

一般来说,可行的解决方案分为两大类。首先是进化优化家族,它总是一个伟大的竞争者。进化优化总是有支持者和反对者。所有优化问题的主要问题是收敛到一个最优值。虽然找到局部最优相对简单,但进化方法试图克服局部最优,并在完整的解空间中找到好的解。这种可能性的代价是,它们有更多的起始参数,这在很大程度上影响了结果的质量。这就是为什么运行时会成为进化方法的一个问题。第二类涉及近似梯度法。这些方法在内部计算梯度的数值近似值。之后,他们使用了通常的梯度下降思想的变体。众所周知的方法是单纯形法或鲍威尔法,但是当然还有更多的方法。

三。复杂约束

在许多情况下,您的参数会受到约束。当你的解决方案无法实现时,就会出现这种情况。这种情况的一个例子是负长度。限制的另一个原因可能是业务规则—可能不想提供低于 10 美元的价格。您可以用两种方式处理这些约束——您可以显式命名它们并让优化器知道它们,或者您可以将它们编码到您的适应度函数中。

有明确约束的问题

一些算法可以在它们的方法中加入约束。这方面的例子有 BYOBA 或进化优化。其他人不行。
如果你想要的算法支持约束,通常最好使用这个。在某些情况下,这样做是非常困难的。例如,您的约束取决于预测。在这种情况下,您很难在普通的优化器中使用它。在这种情况下,您很难在普通优化器中使用它。

适应度函数解决方案的问题

另一种方法是为你不想要的解决方案建立一个惩罚因子。您应该避免使用基于阈值的惩罚,例如:

#Fitness should be maximized.
def my_fitness(y_pred):
    fitness = y_pred
    if (y_pred > threshold):
  fitness-=1e6
 return fitness

如果你这样做,你的适应度函数就会不连续。如果您在基于梯度的方法中使用它,这可能会非常糟糕。

或者,你也可以像这样对适应度使用惩罚:

def my_fitness(y_pred):
 fitness = y_pred
 if (y_pred - threshold > kickin):
  fitness-= factor*abs(y_pred - threshold)
 return fitness

不好的一面是,这个适应度值已经不可理解了。在此之前,这是一个带有惩罚的阈值的绝对差值。现在它是一个适应度和惩罚函数的组合。
这里的缺点是你失去了可解释性。以前你可以把你的健康理解为收获。现在歪了。

四。全局约束

到目前为止,我们只讨论了可以逐行导出的约束。这些约束是根据机器运行或每个客户定义的约束。您可能会遇到需要使用来自其他示例的信息的约束。这方面的例子有:

找到最大利润的价格,同时确保你一个月有 1000 个客户。

这可能意味着您需要寻找无利可图的客户来满足这个业务约束。制造业的另一个例子:

为机器的这次运行找到最佳设置,但是设置不允许与上次运行的设置相差太多

在上面的场景中,即使其他解决方案具有更高的适应性,您也可以在最后一次运行的解决方案旁边取一个局部最小值。

解决方案 I —全局优化

实现全局优化的一种方法是同时优化所有客户,而不是单个客户或单独运行的机器。这允许您定义一个全局惩罚,您可以将它包含在适应度中。这样,您可以同时优化局部和全局约束。一个障碍是你需要同时改变所有的参数。如果你一个月有 10000 个客户,一个简单的二维优化问题可以变成一个 20000 维的问题。这使得数值优化更加困难。
另一个问题是实时部署。想想预测定价。您无法实时运行此优化。然而,你能做的是通过优化以前的数据来克服这一点,并将其作为另一轮机器学习的输入。

解决方案二—后处理

在某些用例中,进行后处理来满足全局约束也是可行的。这样做的一种方法是不仅导出最佳适应度,还导出其他次优数据点。然后,您尝试用这些候选点中的一个来替换您的最优值,以满足全局约束。

第五-稀疏输入数据

说明性分析在制造业中有一些重要的用例。一个常见的用例是控制机器或工厂的参数以获得最佳质量。这里的一个常见问题是,您只有“受控情况”的数据。
如果你对这些数据进行规范性分析,你会遇到一些问题,比如进入数据点数量很少的超空间区域——这使得你的预测不可靠。

解决方案 I —异常检测

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

Illustration of the LOF outlier detection algorithm. Points with high distances compared to their neighbors have a high outlier score. It’s not clear if that also means that they are hard to predict. From Wikipedia, Public Domain.

用有限的输入数据来克服这个问题的一个想法是使用异常检测方法来计算这个特定数据点的超空间有多密集。如果选择的数据点位于您没有足够的预测点的区域,您应该拒绝该数据点。这些方法的例子是局部离群因子(LOF),一类 SVM 或高斯混合模型。

虽然乍一看去除这些“异常值”听起来很合理,但要证明这一点并不容易。您的预测性能可能不依赖于这种“稀疏性”。不举这些例子可能会导致不必要的拒绝,从而导致更差的表现。这也可能增加另一种对“通常”的偏见,因此可能是老式的解决方案。

解决方案二——数字双胞胎

一些植物有一个数字双胞胎。数字双胞胎的概念理应有自己的博客。这个概念是你有一个完整的整个工厂的数值模拟。这个孪生可以用来为超空间中的稀疏区域生成数据点。然后你可以用它来填充更多的例子,并且仍然可以可靠地预测。

Python 中排名前五的机器学习库

原文:https://towardsdatascience.com/top-5-machine-learning-libraries-in-python-e36e3e0e02af?source=collection_archive---------9-----------------------

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

copyright: https://unsplash.com/photos/_xhO_g8k1-w

在这篇文章中,我们将了解被 ML 专家广泛使用的 python 中排名前 5 的机器学习库。

所以,我们要学的是:

Numpy

NumPy 是用 Python 进行科学计算的基础包。它主要用于解决矩阵问题。

创建一个 Numpy 数组:

创建一维数组:

创建一个由个零组成的数组:

创建编号的序列:

重塑一个数组:

有关数字的更多示例,请访问本笔记本

熊猫

Pandas 是用 python 编写的最流行的机器学习库,用于数据操作和分析。

创建一个系列:

系列是一个一维标记的数组状对象。

创建数据帧:

数据帧 是一种二维标记数据结构。

数据帧的头部和尾部:

数据帧的统计描述:

访问单个和多个属性或列:

数据框架的一些基本任务:

数据帧上的条件搜索:

关于熊猫的更多例子,你可以访问笔记本。

Matplotlib

Matplotlib ,一个很棒的数据可视化库。

使用 Matplotlib 进行单属性分布:

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

results distribution

条形图:

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

Bar Chart

修改不同的参数:

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

Modified Bar Chart

饼图:

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

pie chart

关于 matplotlib 的更多例子,你可以访问这个笔记本

sci kit-学习

一个提供了一系列 有监督无监督 学习算法的库。这个图书馆主要集中在模型的建造上。

使用 Sci-kit Learn 的端到端模型:

在本例中,我们将使用这个简单的 学生成绩 数据集。数据集包含两个可能的结果01

0表示学生未通过的考试,1表示通过

我们的数据集包含标签,它只有两种可能的结果,这意味着它是一个监督分类学习问题。

  • 第一步:导入必要的库

  • 第二步:加载数据集

  • 步骤 3:将数据集分成训练和测试子集

  • 第四步:模型训练

  • 第五步:模型评估

完整的笔记本可以在这个链接中找到。

NLTK

自然语言工具包(【NLTK】)NLP(自然语言处理)的库。****

符号化:

根据 techopedia 的说法,记号化是将一系列字符串分解成单词、关键词、短语、符号和其他称为记号的元素的行为。

把一个句子标记成单词:

把一段文字分成句子:

使用 NLTK 进行词干分析:

词干是从词尾去除词缀的过程。

完整的笔记本可以在这个链接中找到。

今天就到这里:d。

完整的 GitHub 回购可以在这个 链接 中找到。

绿角数据科学家的 5 大错误

原文:https://towardsdatascience.com/top-5-mistakes-of-greenhorn-data-scientists-90fa26201d51?source=collection_archive---------0-----------------------

你参加了在线课程,并获得了第一份数据科学工作。避免这些错误,马上就能成功。

你为最终成为一名数据科学家做了充分的准备。你参加了 Kaggle 比赛,你狂看 Coursera 的讲座。你觉得自己已经准备好了,但是作为一名现实生活中的数据科学家,工作将会与你的预期大相径庭。

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

本文考察了早期数据科学家的 5 个常见错误。这份名单是与sébastien fou caud博士汇集在一起的,他在指导和领导学术界和工业界的年轻数据科学家方面拥有> 20 年的经验。这篇文章旨在帮助你更好地为现实生活中的工作做准备。

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

让我们开始吧。👩‍🏫👼🦄🐣

1.输入“一代卡格尔”

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

Source: kaggle.com on June 30 18.

您参加了 Kaggle 挑战赛,并锻炼了您的数据科学技能。你能把决策树和神经网络堆叠起来,这很好。说实话,你不会像数据科学家那样做太多的模型堆叠工作。请记住,一般来说,您将花费 80%的时间预处理数据,20%的剩余时间构建您的模型。

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

成为“卡格尔一代”的一员在很多方面都有帮助。数据通常是非常干净的,这样你就可以花时间调整你的模型。但是在现实工作中很少出现这种情况,在现实工作中,您必须从具有不同格式和命名约定的不同来源收集数据。

做艰苦的工作,练习你将使用 80%时间的技能,数据预处理。抓取图像或者从 API 中收集。收集天才的歌词。准备好解决特定问题所需的数据,然后摄取到笔记本中,实践机器学习生命周期。精通数据预处理无疑会让你成为一名数据科学家,对你的公司产生立竿见影的影响。

2.神经网络是治疗一切的良药

在计算机视觉或自然语言处理领域,深度学习模型优于其他机器学习模型。但是它们也有明显的缺点。

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

神经网络非常渴求数据。样本越少,决策树或逻辑回归模型往往越好。神经网络也是一个黑匣子。众所周知,它们很难解释和说明。如果产品所有者或经理开始质疑模型的输出,你必须能够解释模型。这对于传统模型来说要容易得多。

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

正如詹姆斯·勒的这篇博文中所解释的,有很多很棒的统计学习模型。对他们进行自我教育。了解它们的优缺点,并根据您的用例的约束应用模型。除非你在计算机视觉或自然语音识别的专业领域工作,否则最成功的模型很可能是传统的机器学习算法。你很快就会发现,通常最简单的模型,如逻辑回归,是最好的模型。

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

Source: Algorithm cheat-sheet from scikit-learn.org.

3.机器学习是产品

在过去的十年里,机器学习既享受又遭受了巨大的炒作。太多的初创公司承诺,机器学习是解决任何问题的良药。

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

Source: Google Trends for Machine Learning of the past 5 years

机器学习本身永远不应该是产品。机器学习是创造满足客户需求的产品的强大工具。如果客户受益于收到准确的商品推荐,机器学习可以提供帮助。如果客户需要准确识别图像中的对象,机器学习可以提供帮助。如果企业从向用户展示有价值的广告中受益,机器学习可以提供帮助。

作为一名数据科学家,您需要以客户目标为主要优先事项来规划项目。只有这样,你才能评估机器学习是否有帮助。

4.混淆因果关系和相关性

大约 90%的数据是在过去的中产生的。随着大数据的出现,机器学习从业者可以大量获得数据。有如此多的数据需要评估,学习模型发现随机相关性的机会增加了。

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

Source: http://www.tylervigen.com/spurious-correlations

上面的图像显示了美国小姐的年龄和被蒸汽、热蒸汽和热物体谋杀的总数。给定这些数据,学习算法将学习美国小姐的年龄影响特定对象谋杀数量的模式,反之亦然。然而,两个数据点实际上是不相关的,两个变量对另一个变量绝对没有预测能力。

当发现数据中的模式时,应用你的领域知识。这可能是一种关联还是因果关系?回答这个问题是从数据中得出行动的关键。

5.优化错误的指标

开发机器学习模型遵循敏捷生命周期。首先,您定义想法和关键指标。第二,你原型化一个结果。第三,你不断改进,直到满足关键指标。

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

在建立机器学习模型的时候,记得做人工误差分析。虽然这个过程是乏味的,并且需要努力,但是它将帮助您在接下来的迭代中有效地改进模型。参考下面的文章,从吴恩达的深度学习专业化中获得改善你的模型的额外技巧。

[## 构建你的机器学习项目的 22 个智慧金块

完成一个机器学习项目很难。此摘要帮助您构建您的机器学习项目,以…

towardsdatascience.com](/structuring-your-machine-learning-project-course-summary-in-1-picture-and-22-nuggets-of-wisdom-95b051a6c9dd)

年轻的数据科学家为公司提供了巨大的价值。他们刚刚参加完在线课程,可以立即提供帮助。他们通常是自学的,因为很少有大学提供数据科学学位,因此表现出巨大的承诺和好奇心。他们对自己选择的领域充满热情,渴望学习更多。要想在你的第一份数据科学工作中取得成功,就要小心上面提到的陷阱。

关键要点:

  • 实践数据管理
  • 研究不同模式的利弊
  • 让模型尽可能简单
  • 对照因果关系和相关性检查你的结论
  • 优化最有前途的指标

如果你认为这篇文章是有帮助的,不要忘记展示你的💛穿过👏 👏 👏在 MediumLinkedIn 上关注我,了解更多关于深度学习、在线课程、自动驾驶汽车和生活的信息。还有, 这些 帖子查出来。请评论分享你的看法。干杯!🙇

2019 年值得关注的 6 大数字营销趋势

原文:https://towardsdatascience.com/top-6-digital-marketing-trends-to-look-out-for-in-2019-b5cdf7dcfe6?source=collection_archive---------2-----------------------

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

Photo by Scott Webb on Unsplash

毫无疑问,数字营销革命就在眼前,而且发展迅速。但是,随着新技术每天都在涌现,数字广告技术也在实时变化,仅仅跟上步伐已经不够了。保持领先地位需要展望未来,然后采取正确的措施让你的企业达到目标。

获得并保持领先优势

以下是 2019 年肯定会影响数字营销世界的六项重要发展。

**1。世界正迅速转向虚拟和增强现实。**还记得几年前围绕 Pokémon Go 的歇斯底里吗?各个年龄段的人走进汽车,在街上撞上另一个人,因为他们沉浸在这个令人兴奋的新现实中。游戏可能是大众解释和理解增强和虚拟现实(AR 和 VR)的方式,但品牌也有巨大的机会使用这些技术来改善客户体验。

自 2016 年以来,宜家一直在尝试虚拟现实游戏技术,当时这个知名家具品牌宣布推出虚拟现实厨房,宜家虚拟现实体验——这是一款购物应用程序,旨在让顾客在购买之前尝试不同的宜家解决方案。用户可以体验定制厨房的外观和感觉,例如,只需点击一下,在测试不同的饰面或橱柜解决方案时,可以轻松地在空间中移动。

最近, Nickelodeon 进入了 VR 和 AR 领域,为其移动应用程序添加了 AR 模式,并推出了 SlimeZone,“它的第一个多人社交 VR 体验。”儿童频道希望这些新的高科技附加物将“让孩子们在面对其他地方的干扰时保持在船上。”

2019 年,我们可能会看到更多品牌采取这样的大胆举措,以增加消费者体验价值的方式重新审视 VR 和 AR。

2。语音正在成为最终的搜索营销工具。ComScore 估计,到 2020 年,一半的搜索查询将是基于语音的——这一预测引起了精明的品牌营销人员的注意。语音识别技术只望做大做好,消费者张开双臂迎接智能语音搜索的便利。

为了走在这个趋势的前面,想想文本和语音搜索之间的区别。更具体地说,在询价时,考虑你的客户可能会说什么样的话,而不是 T2 语。用更具对话性的语气开始写作,以开发更符合语音搜索的内容,也是有意义的。最后,如果你还没有这样做,为移动优化你的网站——就像昨天一样。

目前,大多数语音搜索的使用都是基于实用性——人们在忙着或者开车的时候最常用它。但随着明年单词准确率的提高,以及消费者越来越习惯于满足自己的需求,预计会看到品牌在另一个平台上竞争,因为他们很难理解如何在语音搜索中被找到。

**3。从小型企业到大型企业,人工智能解决方案无处不在。**如果 2018 年是品牌开始尝试人工智能(AI)和机器学习(ML)应用的一年,那么 2019 年将是他们做对的一年。从聊天机器人到机器人流程自动化,提高效率、生产率和客户满意度的价值越来越明显。

2019 年,人工智能技术将把以客户为中心的营销提升到一个新的水平。巨大的差异,期望更好的趋势分析,增强的客户档案,甚至更复杂的个性化策略

McAfee 内容营销副总裁 Lisa Matherly 表示:“营销人员应该考虑如何使用人工智能来了解潜在客户正在消费的内容,无论是营销生成的内容、支持或技术文档,还是用户生成的内容,这将带来更个性化的客户体验和更高的客户满意度。

当你开始挖掘你收集和存储的数据时,部署智能人工智能应用程序将帮助你精确地到达目标受众,提高效率,为非凡的客户体验铺平道路。

数字工作流程也将变得更容易,因为易于部署的人工智能解决方案可供更多寻求最大限度利用该技术的企业使用。例如,媒体机构可以通过使用智能算法来分析活动的表现,从而为他们的客户优化付费广告活动。借助自动 A/B 测试和实时自我更新的算法,可以即时进行必要的改进,以提高营销投资回报率。

在企业层面,软件即服务公司提供人工智能驱动的自动化和工作流解决方案,显著改善医疗保健、银行、保险等行业的数字化运营。

4。视频浏览量引领互联网流量。视频正在吞噬网络——我们几年前就认识到了这一现象,当时华盛顿邮报预测,到 2019 年,视频将占所有互联网流量的 80%。这是有道理的,因为平均注意力持续时间很短,大多数人宁愿看视频也不愿看博客。

意识到这一点,品牌们热情地发布现场活动和幕后瞬间的视频。他们创造视频技巧和窍门,以及任何他们能在两三分钟的短小精悍的片段中拼凑起来的东西。然而,视频营销只有在提供消费者想要的东西、他们想要的时间和方式时才会成功。

做得好,视频营销产生惊人的效果。根据 HubSpot 的说法,简单地在电子邮件中添加一个视频,点击率就会惊人地提高 200 %- 300 %,在登陆页面上添加一个视频,转化率会提高 80%。

明年,直播视频将继续爆发,但真正的区别将是原创性。鼓励用户参与的互动视频和富有想象力的视频营销将很快超越视频,成为电影。消费者很快就会感到厌倦——利用视频吸引和激发用户的品牌将会胜出。

**5。本土广告的冲击正在推动营销变得更有创意。**如今的消费者对广告有抵触情绪,广告拦截器的突然增多让营销人员越来越难以发出信息。

如果公司想在 2019 年接触新的消费者,他们必须努力让广告更自然地融入内容。

进入原生广告。

原生广告提供了一个急需的突破,打破了横幅广告等直白的技巧。然而,随着品牌拼命努力变得不那么令人讨厌,他们已经成功地模糊了原生广告和传统广告之间的界限。

“很难知道你在 Mashable 上看到的文章是真实的还是受赞助的本地文章,”National Positions 首席执行官伯纳德·梅(Bernard May)说。在未来,“平台可能会遇到这样一种情况,客户可能会要求更清晰地区分各种类型的内容……推动营销更具创造性,更少干扰,并在对话中占据更大的份额。”

Asian Absolute 的数字营销专家 Nedelina Payaneva 说,尽管消费者变得更加明智,但原生广告正在成为几个主要品牌营销组合的重要组成部分,包括 Airbnb、Lexus 和 Visa。

在未来几年,Payaneva 认为企业将通过 Instagram Stories 等社交媒体利用原生广告策略,展示用户很难识别(或意识到)为广告的内容。

**6。程序化广告正在成为主流。**2018 年,我们看到了程序化广告的增长。这项曾经只为媒体购买保留的技术正在火起来,预计到 2019 年将占全球数字显示广告的三分之二。买家和卖家都在自动广告购买上投入了大量资金——而且他们会继续这样做。

数字显示器正朝着 100%程序化的方向发展。但真正有趣的是传统媒体是如何跟风的。你可以期待看到这种从程序化到传统媒体的转变在 2019 年开始形成。

包装完毕

数字营销的前景是光明的。随着虚拟和增强现实激发新的参与,以及营销人员挖掘更大的创造力,品牌将更容易做到真实和响应客户的需求。

随着企业越来越熟悉人工智能和机器学习能力,它们将提供更好、更复杂、更个性化的体验。随着获得更多的数据、更好的见解和新的机会,未来将不会留下任何聪明的企业。

这篇文章的一个版本出现在business 2 community*。*

保持竞争力的 9 大客户体验趋势

原文:https://towardsdatascience.com/top-9-customer-experience-trends-to-stay-competitive-cd765280601a?source=collection_archive---------8-----------------------

在现代场景中,企业通过更加以客户为中心,努力为买家创造最佳体验。那些成功提供最佳客户体验的品牌比其他品牌更频繁地尝到成功的滋味。

超过 82%的公司认为客户体验是一项重要的竞争优势和衡量绩效的重要标准。因为留住客户是任何以客户为中心的公司的目标,这里有一些顶级的客户体验趋势来帮助他们保持竞争力。

数据和分析的重要工具

以客户为中心的公司需要随着最终用户期望的变化而发展。最好的方法之一是采用新的业务技术,如数据分析工具,来跟踪不断发展的最终用户体验。

在未来 5 年,客户服务行业预计将发生多种变化,数据和分析工具将影响他们的一举一动。基于对客户要求和购买偏好的数据分析,公司正在努力实现服务的个性化。

Forbes Insights 称,“数据提升客户体验”,42%的企业领导者认为数据分析有助于他们提供卓越的体验。

数据分析还有助于他们更快地做出决策,并见证销售收入的大幅增长。

此前,只有少数企业能够使用数据和分析工具来改善客户体验。现在,随着技术的进步,客户关系管理工具甚至可以帮助中小企业与客户建立长期的关系。在分析工具的帮助下,他们可以个性化客户解决方案服务,并确保基于个人需求的定制客户服务体验。

语音识别技术

交互式语音应答技术可以改变解决客户问题的方式。语音识别软件可以通过高效的呼叫路由和自动化的自助服务,帮助客户连接设计良好的 IVR 系统。借助先进的语音识别和呼叫者的个性化数据,公司可以找出引发客户投诉的问题类型,以及快速跟踪客户查询解决流程的方法。

聊天机器人会要求客户尊重

如今,客户希望公司的代表能够 24 小时待命,即时解决他们的疑问。为了在一致的基础上向客户提供及时的支持,公司推出了聊天机器人这一重要工具。聊天机器人可以满足客户的期望,而没有任何倦怠的机会。聊天机器人的高级功能与人工智能和语音识别技术相结合,与用户进行交互,并为他们提供合适的解决方案。聊天机器人是由企业开发的,用于响应简短直接的查询,并提供自动回复。

热门阅读:如何在 Google 搜索中为网站和博客做更快的索引?

增强客户自助服务的能力

让客户自己解决问题是另一个流行的客户体验趋势。正因为如此,非语音交互被公司认为非常重要。他们允许客户通过电子邮件和网络聊天提出问题,并获得客户服务代表的实时响应,甚至无需浪费大量时间连接代理或浏览复杂的 IVR。通过自助渠道的客户服务,大量的查询可以在较短的时间内得到解决。客户可以通过任何媒介将他们的疑问上报给客户服务代表,并期望得到快速答复。此外,拥有自助服务计划的公司可以获得更高的客户保留率,因为实时查询解决方案可以确保更高的满意度。

迎合移动友好型客户的偏好

2017 年,移动搜索可能会比桌面搜索多产生 278 亿个查询。消费者在做出最终购买选择之前,使用移动设备来访问关于品牌及其产品的信息。为了留住更多的客户并保持市场竞争力,大多数公司现在都在适应移动友好一代的需求。不同品牌的移动应用程序允许客户向某个品牌的实时代理提出问题,并发布他们的请求。

方向清晰的渠道

虽然企业正在采用非语言渠道和直接电话来帮助客户通过他们选择的任何媒介与销售代表联系,但他们不能否认决策疲劳的可能性,因为太多的渠道没有什么方向。当客户采用一种渠道与客户代表沟通时,他们希望得到快速响应。销售代表的短暂延迟响应可能会导致完全放弃联系。因此,各公司都在关注提升渠道内对话和缩短响应时间的机会。对于全渠道客户体验,公司已经提出了像聊天到语音这样的高级功能。

热门阅读:印度动态快递业的角色

处理在线分享的客户体验

随着社交网络受众的指数增长,企业现在不得不处理在线分享的客户的好体验和坏体验。根据 Zendesk 的报告,大约 45%的顾客在社交媒体上分享负面评价,而只有 30%的顾客分享正面评价。任何企业的重点都应该是通过让客户在社交媒体平台上轻松分享经验,增加客户的积极回应。此外,通过考虑差评并立即采取纠正措施,公司可以对其现有和潜在客户产生积极的印象。

不再让客户等待

客户愿意等待高质量产品的日子已经一去不复返了。今天,企业提供产品或服务的速度足以保持竞争力。消费者希望品牌不仅在交付产品或服务时,而且在解决他们的疑问时做出快速反应。一个重视客户时间并在尽可能短的时间内倾听他们的要求和询问的公司很可能会成长。为了留住忠诚的客户,公司正在采用常见问题解答和自助服务支持的手段。除此之外,品牌还需要通过在所有可能的渠道(无论是聊天、网络还是手机)提供回电来降低放弃率。

授权代理改善人与人之间的体验

尽管企业正在向自动化自助服务支持过渡,但他们不能忽视现场代理在提供优质客户服务方面的关键作用。当自助服务支持和技术失败时,人类可以充当救星,即时解决客户查询。客户服务代理现在越来越有能力解决渠道内的用户问题,并为集成数字渠道提供最佳支持。当客户服务代理与技术一起使用时,公司可以向实现客户卓越迈出重要的一步。

在“客户时代”,企业只有通过不同的客户服务渠道提供一致的体验,才能繁荣发展。它需要一个复杂的方法,在这个方法中,多个部门共同努力实现客户满意的更大目标。

卡尔帕娜·艾莉亚

Kalpana Arya 是 Techpillar 的内容和营销专家

数据科学的秘密—业务视角是您所需要的一切

原文:https://towardsdatascience.com/top-advice-for-a-data-scientists-eadaedbe7576?source=collection_archive---------4-----------------------

概述了许多新手犯的错误

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

一个数据科学家需要有批判性,并且总是注意一些其他人忽略的东西。因此,这里有一些建议,人们可以将其纳入日常的数据科学工作中,以便更好地开展工作:

1.当心干净数据综合症

即使在开始处理数据之前,你也需要问自己一些问题。**这个数据有意义吗?**错误地假设数据是干净的可能会导致错误的假设。除此之外,通过观察数据中的差异,您可以辨别出许多重要的模式。例如,如果您注意到某个特定的列缺少 50%以上的值,您可能会考虑不使用该列。或者你可能认为一些数据收集仪器有一些误差。

或者说,在一家女性化妆品公司,男女比例为 90:10。你可以假设干净的数据并显示结果,或者你可以用常识询问标签是否被调换。

2.明智地管理异常值

离群值可以帮助你更多地了解那些一天 24 小时都在使用你的网站/产品的人。但是在构建模型时包含它们会使模型产生很大的偏差。

3.留意异常情况

上寻找一些不明显的东西。如果你发现了什么,你可能已经找到了金子。

例如, Flickr 一开始是一个多人游戏。只有当创始人注意到人们把它作为照片上传服务时,他们才转向。

另一个例子是:fab.com 最初名为 fabulis.com,是一个帮助同性恋者交友的网站。该网站最受欢迎的特色之一是“当日同性恋交易”。有一天,交易是汉堡包——一半的购买者是女性。这让团队意识到向女性出售商品是有市场的。因此 Fabulis 转向 fab,作为设计师产品的快闪销售网站。

4.开始关注正确的指标

  • **小心虚荣指标:**例如,活跃用户数量本身并不会泄露很多信息。我宁愿说“活跃用户增长 5% MoM”,也不愿说“10000 活跃用户”。即便如此,这也只是一个虚荣心指标,因为活跃用户总是会增加。我宁愿跟踪活跃用户的百分比,以了解我的产品性能如何。
  • 尝试找出与业务目标相关的指标。例如,特定月份的平均销售额/用户。

5.统计数据也可能会说谎

对引用给你的每件事都要持批评态度。过去,统计数据曾被用于广告、工作场所和许多其他营销场合。人们会不择手段来获得销售或促销。

例如:你还记得高露洁声称 80%的牙医推荐他们的品牌吗?

这个统计数字初看起来相当不错。原来,在调查牙医的时候,他们可以选择几个品牌——而不是一个。所以其他品牌也可能像高露洁一样受欢迎。

另一个例子:“百分之九十九的准确率”并不意味着狗屎。让我创建一个癌症预测模型,我可以用一行代码给你一个 99%准确的模型。怎么会?只需对每一个预测“没有癌症”。因为癌症是一种非常罕见的疾病,所以 99%以上的情况下我都是准确的。然而我却一事无成。

6.理解概率是如何工作的

事情发生在 1913 年夏天,在摩纳哥的一个赌场里。赌徒们惊奇地看着赌场的轮盘连续 26 次落在黑色上。由于红色对黑色的概率正好是一半,他们确定红色是“应该的”。这是赌场的大日子。一个赌徒谬误的完美例子,又名蒙特卡洛谬误。

这在现实生活中也会发生。人们倾向于避免一长串相同的答案。有时为了得到一个看起来更公平或可能的决策模式而牺牲判断的准确性。

例如,如果招生官员已经连续批准了三份申请,他可能会拒绝下一份申请,即使该申请本应根据成绩被接受。

7.相关性不等于因果关系

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

数据科学家工具箱的圣杯。看清事物的本来面目。仅仅因为两个变量一前一后一起移动并不一定意味着一个导致另一个。过去有过这种令人捧腹的例子。我最喜欢的一些是:

  • 查看消防部门的数据,你可以推断出派往火灾现场的消防员越多,造成的损失就越大。
  • 在调查 80 年代纽约市的犯罪原因时,一位学者发现严重犯罪的数量与街头小贩出售的冰淇淋数量之间有很强的相关性!显然,有一个未被观察到的变量导致了这两者。夏天是犯罪最严重的时候,也是冰淇淋卖得最多的时候。所以卖冰淇淋不会导致犯罪。这两种犯罪都没有增加冰淇淋的销量。

8.更多的数据可能会有所帮助

有时候获得额外的数据可能会创造奇迹。通过从各个角度看问题,你也许能更接近真实世界。寻找额外的数据源。

例如,一个城市的犯罪数据可能有助于银行向居住在问题社区的人提供更好的信贷额度,从而提高底线。

原载于【mlwhiz.com】

你真正需要知道的顶级算法和数据结构

原文:https://towardsdatascience.com/top-algorithms-and-data-structures-you-really-need-to-know-ab9a2a91c7b5?source=collection_archive---------0-----------------------

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

source: geekrescue.com

如果你想成为一名软件工程师,但不知道从何入手,那就给你省点悬念:是算法和数据结构

一旦你掌握了这些编程支柱的要点,你就会发现它们无处不在。你学习的算法和数据结构越多,它们就越有助于你成为软件工程师。

为了让你开始,让我们先深入研究一下搜索和排序,这是你离不开的两类算法。然后让我们快速浏览一下其余的景观,包括树、图表、动态编程等等。

搜索

粗略地说,有两类搜索算法你需要马上了解:线性和二进制。深度优先搜索(DFS)和广度优先搜索(BFS)也非常重要,但是我们将把它们留到下面的图形遍历部分。

线性搜索

线性和二进制算法如此命名是为了描述基于被搜索的输入大小的搜索将花费多长时间(时间复杂度)。

例如,使用线性搜索算法,如果您有 100 个项目要搜索,那么最糟糕的情况是,在遇到您想要的值之前,您需要查看输入中的每个项目。之所以称之为线性,是因为搜索所需的时间与搜索中的项目数量完全相关(100 个项目/输入=100 次检查/复杂性)

简而言之,线性=简单(算法没什么高明之处)。例如:假设你正在一排没有特定顺序的人中寻找你的朋友林。你已经知道林的长相,所以你只需要一个接一个地看着每个人,直到你认出或者认不出林。就是这样。这样做时,您将遵循线性搜索算法

二进位检索

二分搜索法之所以得名,是因为单词 Binary 的意思是“两个事物的或与之相关的”,算法的工作原理是将输入分成两部分,直到找到要搜索的项目。一半包含搜索项,另一半不包含。该过程继续进行,直到输入被拆分的点成为被搜索的项目。二分搜索法基本上只是一个高度自律的消除过程。它比线性搜索更快,,但它只适用于有序序列。

举个例子应该能更清楚地说明这一点。假设你想在一排人中间找到你的朋友宾(身高 5 英尺 5 英寸),这些人的身高从左到右从矮到高排列。这真的是一条很长的线,你没有时间一个一个地看完整件事,把每个人的身高和宾的进行比较。你能做什么?

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

进入二分搜索法。你选择在队伍中间的人,测量他们的身高。他们身高 5 英尺 7 英寸。所以你马上就知道这个人,以及他们右边的人,不是宾。现在你已经把你的问题减半了,你把注意力转向线的剩余部分,再次选择中间的人。他们身高 5 英尺 4 英寸。所以你可以排除那个人和他们左边的任何人,再次把问题分成两半。诸如此类。经过五六次这样的分裂,你很快就找到了斌,而你找到林的时间只是他的几分之一。这样做,你就遵循了二分搜索法算法。

整理

作为开发人员,对项目列表进行排序是最常见的编程任务之一。这里我们来看两个最有用的排序算法:合并排序和快速排序。

合并排序

让我们假设,你需要从一个无序的群体中创建一个有序的人群,而不是遇到上面例子中有序的人群。你没有太多时间,所以你想出了一个加快速度的策略。

你先把挤在一起的一群人分成两部分。然后,你让两个组中的每一个再分成两个,如此类推,直到你完全与个人打交道。然后你开始将两个人配对,让每对中较高的一个站在另一个的右边。很快每个人都被组织成左右有序的一对。

接下来,您开始将有序对合并成有序的四个一组;然后将四个有序组合并成八个有序组;诸如此类。最后,你发现你有了一个完整的、按身高排序的人群,就像你上面遇到的那个人一样。不知不觉中,您已经按照 MergeSort 算法完成了您的壮举。

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

快速排序

QuickSort 有点太复杂了,不容易与人联系起来,所以让我们更接近代码。首先,让我们假设您有一个无序列表或数组,其中包含您想要排序的八个数字。

4    2    13   6    15    12    7    9

您可以使用合并排序,但是您听说快速排序通常更快,所以您决定尝试一下。您的第一步是在列表中选择一个称为轴心的数字。选择正确的枢轴数将决定快速排序的执行速度,选择好的枢轴有现成的公式可以遵循。但是现在,让我们保持简单,只使用数组中的最后一个数字作为我们的枢纽数字:9。

4    2    13   6    15    12    7    ***9***

为了便于下一步,我们将在数组的开头创建一个分隔符,并用井号表示。

#    4    2    13   6    15    12    7    ***9***

在我们的数组中,从左到右,我们的目标是将任何小于枢轴(9)的数字放在分隔符的左边,将任何大于(或等于)枢轴的数字放在分隔符的右边。我们从数组中的第一个数字开始:4。要将其移动到分隔符的左侧,我们只需将分隔符向上移动一个元素:

4    #    2    13   6    15    12    7    ***9***

我们对下一个数字做同样的事情:2。

4    2    #    13   6    15    12    7    ***9***

但是我们到了 13,它比枢轴数 9 大,并且已经在分隔符的右侧。所以我们不去管它。接下来我们来到 6,它需要到分隔符的左边。首先,我们把它和 13 交换位置:

4    2    #    6    13    15    12    7    ***9***

然后我们移动分隔符传递给它:

4    2    6    #    13    15    12    7    ***9***

接下来是 15,它已经在分隔符的右边,所以我们不去管它。那么我们有 12 个。同样的事情。但是 7,我们到达支点前的最后一个数字,需要和 6 一样的帮助才能移动。所以我们把 7 和 13 互换位置:

4    2    6    #    7    15    12    13    ***9***

然后,我们再一次移动分隔符传递给它:

4    2    6    7    #    15    12    13    ***9***

最后,我们来到我们的枢纽数字:9。按照与上面相同的逻辑,我们将 15 与 9 交换,以获得需要的枢纽数:

4    2    6    7   #    9    12    13    15

因为 9 左边的所有数字现在都小于 9,而 9 右边的所有数字都大于 9,所以我们完成了第一轮快速排序。接下来,我们将把分隔符两边的每一组四个数字作为一个新数组来应用快速排序。我们就不告诉你细节了,但是下一轮会给我们四对数字,让我们可以轻松地进行最后一轮的快速排序。最终结果将是下面的有序列表,它比简单的 MergeSort 花费更少的时间来生成:

2    4    6    7    9    12    13    15

排序算法备忘单

这些是最常见的排序算法,以及一些何时使用它们的建议。内化这些!到处都在用!

堆排序 : 当您不需要稳定排序,并且您更关心最坏情况性能而不是一般情况性能时。它保证为 O(N log N),并使用 O(1)辅助空间,这意味着在非常大的输入上不会意外地耗尽堆或堆栈空间。

intro sort**😗*这是一种快速排序,在达到一定的递归深度后切换到堆排序,以避开快速排序的 O(N)最坏情况。它几乎总是比普通的老式快速排序好,因为你得到了快速排序的一般情况,并保证了 O(N log N)性能。使用堆排序的唯一原因可能是在内存严重受限的系统中,O(log N)堆栈空间实际上非常重要。

插入排序 :当 N 保证很小时,包括作为快速排序或合并排序的基础情况。虽然这是 O(N),但它有一个非常小的常数,是一个稳定的排序。

冒泡排序 选择排序 :当你在做一些快速而肮脏的事情,由于某种原因,你不能只使用标准库的排序算法。与插入排序相比,它们唯一的优势是实现起来稍微容易一些。

快速排序 : 当您不需要稳定排序并且平均情况性能比最差情况性能更重要时。快速排序平均为 O(N log N),最坏的情况下为 O(N)。一个好的实现使用 O(log N)辅助存储,以堆栈空间的形式进行递归。

归并排序 : 当你需要一个稳定的,O(N log N)排序时,这大概是你唯一的选择。它唯一的缺点是使用 O(N)辅助空间,并且常数比快速排序稍大。有一些就地归并排序,但是它们要么不稳定,要么比 O(N log N)差。即使是 O(N log N)就地排序也有比普通的合并排序大得多的常数,因此它们更多的是理论上的好奇,而不是有用的算法。

非比较排序:在一些相当有限的条件下有可能突破 O(N log N)障碍,按 O(N)排序!这里有一些值得一试的例子:

计数排序 : 在对有限范围内的整数进行排序时。

基数排序 : 当 log(N)显著大于 K 时,其中 K 为基数位数。

桶排序 : 当你能保证你的输入近似均匀分布时。

更多必备算法和数据结构

尽管搜索和排序是进入算法和数据结构世界时最受信任、最常用的两种方法,但如果不谈论以下几个最受欢迎的方法,对这一领域的任何调查都是不完整的:

你将会看到很多树,因为它们是最常见的数据结构之一。它们也是最容易描绘和理解的数据结构之一。几乎所有关于树的术语都来自于家谱的概念。根据节点(即家族成员)相对于树中其他节点的位置,该节点被称为父节点、子节点、兄弟节点、祖先节点、后代节点等。

如果树具有某些属性,那么在树中存储项目允许我们以更有效的方式找到项目。(参见下面的二叉查找树

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

图表

如果你想得到技术,树最终只是图的一个特例。所以在日常生活和计算机科学中,图无处不在也就不足为奇了。特别是,图的遍历是一件大事,有两种算法您可能想快速掌握:广度优先搜索(BFS)和深度优先搜索(DFS)。为了了解这两个基本算法需要什么,想象一下你在一座金字塔形状的摩天大楼的顶部,你需要搜索整个建筑来找到你的朋友 Fiz。然后你意识到金字塔大致相当于一个图,每个房间都是一个节点。

【广度优先搜索】

如果你从金字塔的顶端开始,一层一层地遍历金字塔,你将大致执行对你的朋友 Fiz 的广度优先搜索。查看下面的可视化,对这种类型的搜索及其行为有更好的直觉。

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

【深度优先搜索】

如果你一个电梯一个电梯地走,在垂直切片中遍历金字塔时,检查每一站最近的房间,而不是一层一层地走,你将大致执行深度优先搜索你的朋友 Fiz。同样,下面的可视化应该有助于使这一点更清楚。

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

source: geeksforgeeks.com

动态编程

如果你正面临一个巨大的、重量级的编程问题,你无法想象自己能解决,那么动态编程(DP)可能会帮助你。DP 会帮你把大问题变成小的子问题。每当 DP 解决一个子问题时,它保存结果,并最终将所有保存的结果放在一起,以便处理大问题。

哈希

近年来,我们查找数据的方式发生了巨大变化。虽然主要方法曾经是二分搜索法,但现在越来越多地成为散列查找。尽管我们在这里不做时间复杂度的比较,但可以说,当搜索包含数百万个条目的列表时,散列法通常要快得多。

字符串模式匹配

如果您听说过正则表达式(又名 regex),那么您一定听说过字符串模式匹配。这里的想法是,你搜索的不是一个项目,而是许多项目共有的模式。例如,假设您正在一本书中搜索所有以问号结尾的句子:这是字符串模式匹配的工作。

还有更多…

我们已经走过了很多地方。但是我们仍然几乎没有暗示算法和数据结构世界的宏大范围。这里还有一些值得你深入研究的东西:

数据结构:数组
链表

队列

**算法:**素性测试
快速傅立叶变换
二进制取幂
平方取幂

软件成功的道路是由算法铺就的

如果没有别的,以上所有的都应该让你明白,如果你想成为一名软件工程师,算法和数据结构将会为你铺平道路(甚至可能会支付报酬)。对于坚如磐石的基础,你可能想从搜索(线性和二进制)和排序(SortMerge 和 QuickSort)开始。一旦你掌握了这些编程支柱的要点,是时候学习关于树、图遍历(BFS 和 DFS)、动态编程和字符串模式匹配的一切了。但真正的目标是开始体验算法和数据结构:思考现实世界问题的逐步解决方案,并根据简单的数据结构描绘复杂的场景。如果你能掌握这一点,那么编码就会自然而然。

如果你喜欢这篇文章,我的个人博客(jasonroell.com)上有更多类似的内容。看看吧,祝你有美好的一天!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值