TowardsDataScience 博客中文翻译 2016~2018(三百二十五)
为什么数据策略会拯救机器智能
在关于沃森如何进化成终结者 10 和 DeepMind 将解决世界饥饿的新闻出现几个月后,围绕人工智能的炒作开始消退。首先,投资者指出了开发者工具和横向平台的商品化,然后他们开始担心算法风险和偏见,现在他们担心深度学习的可解释性。我的最佳猜测是,下一波批评将会强调部署、性能管理和调试方面的障碍。
虽然不应忽视这些障碍,但它们并不是阻碍采用机器智能解决方案的主要问题。最大的障碍是企业处理数据的方式。
一般企业[误]用数据有三种方式:1)支持运营;2)证明自己的直觉;3)掩盖他们的错误。虽然大多数读者会理解这些[错误]用例,但让我来宣泄一下这些冒犯:
但是首先,说一个题外话:对于那些不认识我的人来说,我的背景是国际安全和军事情报。因此,我喜欢[引用孙子]根据克劳塞维茨的三个层次的战争来思考企业战略,其中战略涉及我们实现国家目标的方式和方法;运营与活动的设计和执行有关;战术指的是定义我们战斗的力量和策略的应用。
- 在军事战役中,骑兵通常扮演更多的战术角色。虽然他们的侦察可能为作战提供信息,但他们的侦察和冲突很少影响军事战略。同样,数据分析师(以及他们收集或生成的数据)通常用于支持运营。例如,一个项目经理决定推出一项新服务。他/她可以使用数据来确定要进入哪个地理市场。同样,营销专家在计划新的社交媒体活动时,可能会尝试用数据研究客户群。 大多数企业了解如何使用数据来指导决策(即运营指导),但一旦做出决策,数据(以及生成数据的系统)的效用就会减少,直到下一个关键的运营决策出现(可能需要也可能不需要相同的数据输入和/或支持基础设施)。因此,土地和扩张战略很少奏效。你最好登陆然后去跳岛。
- 我们都有关于正确选择的直觉。我们可以尝试告诉我们的主管“我们就是知道”,或者我们可以花 30 分钟设计一个漂亮的 Tableau 图表,证明我们的直觉是正确的。可视化是展示我们已经[认为]知道是真实的东西的好方法。 前面我提到了可解释性问题(例如,如果深度学习是一个黑盒,我们如何解释它的结果)。这只是一个问题,因为人类仍然觉得必须解释数据。虽然机器智能可能会提供更客观的答案,但我们想要更多的控制。我们希望有能力以一种证明我们是正确的方式解释数据。
- 最后,“我没有收到警报”的辩护。我们通常知道一系列可能出错的事情。我们可以通过仪表板和警报使用数据来了解情况,并在出现问题时通知我们。如果出现问题,而你的仪表板和/或提醒没有提前告诉你,你不会被解雇。监控是重要的,尽管在效用上是有限的,因为最经常发生的问题不是我们所能预测的。
由于企业在战术和运营上使用数据,机器智能解决方案的采用速度很慢。开源工具足以支持范围良好的活动或有限的约定(如果软件正在吞噬世界,那么开源正在吞噬软件)。对于那些担心开源产品、顾问或概念验证永远不会变成合同的人来说,这很合适。但是,有哪个头脑正常的人会为解决短期痛苦而付费订阅呢?事实上,谁会为任何不是 CRM 或工作流自动化的企业软件付费呢?
为了实现机器智能的真正好处(以及机器智能初创公司的成功),企业需要开始将数据视为一种战略资产。这意味着两件事:
- 定义与您的业务使命、愿景和政策相一致的数据战略,而不是您的运营需求。该战略应阐明您的数据团队的角色和结构,以及您将如何衡量成功(例如,什么是“重大胜利”)?),以及你将如何设定优先级。由于您的数据策略还应指定您需要哪些资源来支持业务目标,因此您还必须制定数据获取策略,该策略将说明您将如何获取信息。有时候,通过网络抓取和机器/深度学习收集数据将是正确的前进道路。然而,购买数据许可证或使用众包/外包平台可能更经济。 一旦您制定了数据和数据获取策略,您必须确定实施和维护该策略所需的基础设施和人员。两者都应该取决于你需要的信息和你计划获取信息的渠道。您应该考虑基础设施和软件选择方面的人才获取。例如,如果你有很棒的数据管理和管道软件,你也许可以雇用更少、更好的数据科学家(不管这意味着什么,但我会把这个问题留给另一个抨击)。
- 把数据想象成有货币的东西——可以出售或交换的东西。我无法表达我遇到的收集了非常有价值的数据集的公司有多频繁,他们可能会把这些数据集卖给其他人(记得我说过有时候购买数据集更有效,如果我们可以手拉手,唱 kumbaya,交换信息,那不是很酷吗?).同样常见的是,公司只是坐在可以支持高价值功能的数据集上,这将吸引新客户。
数据是一种无形资产,应该在企业资产负债表上有自己的一行。尽管有相关的成本,但它可以成为竞争优势、知识产权甚至收入的来源。
我的长篇大论就此结束:除非公司从战略角度考虑数据,否则没有人会购买初创公司兜售的解决方案。
为什么数据统一对于游戏公司了解其客户和整体内容水平至关重要
当谈到理解玩家行为的整体性时,一个经常遇到的问题是数据碎片。游戏公司通常将客户数据存储在多个系统、平台和软件中,这导致了一个“孤岛”模型,无法创建玩家旅程的完整画面。最近,我与旧金山湾区最热门的手机游戏公司之一呆了一段时间,令我惊讶的是,他们无法理解他们所拥有的大量数据的格式。更不用说,他们没有能力提取他们所掌握的宝贵信息。谈论一个被浪费的机会——悲伤。
好消息是,基于云的数据仓库和新的行为分析技术的简单性正在帮助各种规模的游戏公司揭示整个玩家旅程,从转化到最终的不幸流失。当数据分散在多个平台上,并且有时不是可读格式时,要获得工作室了解其玩家所需的答案和见解,需要手动处理数据。不仅如此,如果没有行为分析,几乎不可能有效地将这些见解货币化。
从提高留存率到优化营销渠道,这就是为什么数据统一对于游戏公司了解玩家和用户行为至关重要。
玩家旅程的可见性
与碎片化数据搏斗的问题是,它不仅耗费时间,而且阻止你的团队获得玩家旅程的全貌。因此,他们无法实时做出数据驱动的决策。行为分析涉及统一客户生命周期中多个接触点的数据。只有当你整合了广告、激活、互动和使用数据,你才能展示整个玩家之旅,从而开发有意义的客户群和接触点。
The Player’s journey from entry, to Enthusiast… and eventual Churn
通常,玩家之旅分为六个部分:认知、兴趣、考虑、购买、保留和宣传。规划用户旅程中的这些步骤对于准确理解是什么让用户着迷至关重要,而第一步是通过数据仓库统一用户数据。一个针对行为和时间序列分析而优化的数据仓库有助于工作室执行特别分析,因此他们可以了解为什么一些玩家会参与他们的游戏,而其他人则不会。然后,你将能够在玩家旅程中修补行为元素和不同的点,以实现像增加游戏内货币支出或促进其病毒式传播这样的结果。
提高玩家忠诚度
运行存储在如此多不同位置的数据——大多数在线游戏公司都在这么做——减少了对抗玩家流失所需的必要了解。相反,采用统一数据方法的公司能够提高他们的玩家保留率,从而创造竞争优势,因为很少有游戏公司对玩家旅程有清晰的理解,并对玩家保留有相应的见解。就拿最受欢迎和最成功的网络游戏之一《星球大战英雄银河》来说,它在 30 天后只有 4.5%的用户留存率。
以仓库的方式整合数据在留住玩家方面有几个积极的效果。首先,你将能够看到哪些渠道为你的游戏带来了最忠实的玩家,并将你的营销努力更多地集中在最有效的媒体上。只有有了统一的数据,你才能开始实施高水平的行为分析,发现游戏中玩家玩得最开心的地方(以及他们玩得最不开心的地方)。然后,你可以调整你的游戏,确保你建立在人们喜欢的体验上,并消除他们不喜欢的体验。
优化终身客户价值
在 Cooladata,我们通过利用统一数据提供玩家旅程的完整端到端视图,引导客户走向最有效的营销渠道。电影公司可以看到哪些营销渠道是最有效的,因此他们可以优化营销支出。统一数据还有助于我们的客户收集见解,了解转化他们的目标潜在未来用户的最佳策略。这有助于优化和增加每个玩家的终身客户价值(LTV)。例如,你可以很容易地看到通过脸书广告获得的用户是否比通过谷歌 Adwords 获得的用户有更高的 LTV,并相应地关注你未来的努力。
我们还帮助许多客户识别他们游戏中的粗糙边缘和问题区域,利用仓库数据来查明玩家在哪里卡住了。然后,公司可以实时解决这些问题,让玩家继续玩游戏,并随着时间的推移增加每位玩家的收入。这些分析可供组织内的每个人使用,从首席执行官和产品经理一直到数据团队和开发人员。这为每个部门提供了相同的可靠分析见解,因此在优化营销组合和游戏体验以增加每个客户的 LTV 时,整个公司可以朝着相同的方向前进。
面对游戏工作室如今使用的所有工具、平台和软件,从多个来源收集所有数据都很困难,更不用说收集可操作的见解了。我们明白了。但在当今的在线游戏环境中,数据统一甚至更为关键,因为它关系到对用户行为的理解。通过将仓储方法与行为分析相结合,您将能够发现玩家之旅,提高留存率,并优化每个玩家的终身价值。如果你想讨论,了解更多,或者看到它的实际应用,给我写信吧!
为什么深度学习优于传统的机器学习?
人工智能火了!突然间,每个人,不管懂不懂,都在谈论它。理解人工智能的最新进展可能看起来势不可挡,但它实际上可以归结为两个非常流行的概念机器学习和深度学习。但最近,深度学习越来越受欢迎,因为在用大量数据训练时,它在准确性方面占据优势。
为了向你展示深度学习得到的关注,下面是关键词的谷歌趋势:
Trend of “Deep Learning” in google
软件业如今正朝着机器智能的方向发展。机器学习作为让机器智能化的一种方式,在每个领域都变得必不可少。更简单地说, 机器学习是一套解析数据的算法,从中学习,然后应用所学知识做出智能决策 。
机器学习的例子比比皆是。这就是网飞如何知道你下一个想看的节目,或者脸书如何在数码照片中认出你朋友的脸。或者在你进行 CSAT 调查之前,客户服务代表如何知道你对他们的支持是否满意。
传统的机器学习算法的问题在于,尽管它们看起来很复杂,但它们仍然像机器一样。他们需要很多领域的专业知识,人工干预只能做他们设计的事情;不多不少。对于人工智能设计师和世界上的其他人来说,这是深度学习更有希望的地方。
什么是深度学习?
实际上,深度学习是机器学习的一个子集,它通过学习将世界表示为嵌套的概念层次结构来实现强大的功能和灵活性,每个概念都是相对于更简单的概念来定义的,而更抽象的表示是根据更不抽象的概念来计算的。
详细地说,深度学习技术通过它的隐藏层架构逐步学习类别,首先定义像字母这样的低级类别,然后定义像单词这样的稍高级别类别,然后定义像句子这样的高级别类别。在图像识别的例子中,这意味着在对线条和形状进行分类之前识别亮/暗区域,以便进行人脸识别。网络中的每个神经元或节点代表整体的一个方面,它们一起提供了图像的完整表示。每个节点或隐藏层都有一个权重,代表其与输出的关系强度,随着模型的发展,权重会进行调整。
Deep Learning Architecture
深度学习的显著特征
深度学习的一大优势,也是理解它为什么变得流行的一个关键部分,是它由海量数据驱动。技术的“大数据时代”将为深度学习的新创新提供大量机会。按照中国主要搜索引擎百度首席科学家、【谷歌大脑】项目负责人之一的说法,深度学习的比喻是,火箭引擎是深度学习模型,燃料是我们可以喂给这些算法的海量数据。
****深度学习需要高端机器与传统机器学习算法相反。GPU 现在已经成为执行任何深度学习算法不可或缺的一部分。
在传统的机器学习技术中,大多数应用的特征需要由领域专家来识别,以降低数据的复杂性,并使模式对学习算法的工作更加可见。前面讨论的深度学习算法的最大优势是,它们试图以增量的方式从数据中学习高级特征。这消除了领域专业知识和核心特征提取的需要。
****深度学习和机器学习技术的另一个主要区别是解决问题的方法。深度学习技术倾向于端到端地解决问题,而机器学习技术需要首先将问题语句分解成不同的部分来解决,然后在最后阶段将它们的结果组合起来。例如,对于一个多对象检测问题,深度学习技术,如 Yolo net t 将图像作为输入,并在输出时提供对象的位置和名称。但是在通常的机器学习算法中,如 SVM ,首先需要一个包围盒对象检测算法来识别所有可能的对象,以将拱作为学习算法的输入,以便识别相关对象。
通常一个深度学习算法由于参数数量大,训练时间长。流行的 ResNet 算法完全从零开始训练大约需要两周时间。传统的机器学习算法需要几秒到几个小时来训练。在测试阶段,情况完全相反。测试时,深度学习算法运行时间要少得多。然而,如果将它与 k-最近邻(一种机器学习算法)进行比较,测试时间会随着数据大小的增加而增加。尽管这并不适用于所有的机器学习算法,因为其中一些算法的测试时间也很短。
可解释性是为什么许多部门使用其他机器学习技术而不是深度学习的主要问题。我们举个例子。假设我们用深度学习来计算一个文档的相关度得分。它的表现相当出色,接近人类的表现。但是有一个问题。它没有透露为什么给出这个分数。事实上,从数学上讲,你可以找出深层神经网络的哪些节点被激活了,但我们不知道这些神经元应该模拟什么,以及这些神经元层集体在做什么。所以我们无法解释结果。这与机器学习算法不同,如决策树、逻辑回归等。
什么时候用深度学习还是不要超过别人?
- 深度学习 out 执行其他技术如果 数据量大 。但是对于小数据量,传统的机器学习算法更可取。
- ****深度学习技术需要有 高端基础设施 在合理的时间内进行训练。
- 当 缺乏领域理解的特性自省 ,深度学习技术一枝独秀,因为你不必太担心特性工程。
- ****深度学习在处理图像分类 、自然语言处理 等复杂问题时,确实大放异彩。
参考文献-
** [## 深度学习什么时候比支持向量机或者随机森林效果更好?
如果我们处理一个监督学习问题,我的建议是从最简单的假设空间开始。也就是说,尝试…
www.kdnuggets.com](www.kdnuggets.com/2016/04/dee…) [## 何时选择深度学习
深度学习适合机器学习和其他优化算法的什么地方,它能解决什么样的问题…
deeplearning4j.org](deeplearning4j.org/whydeeplear…) [## 机器学习与深度学习
如果你是这个领域的新手,可能会觉得有很多术语需要记住。两个最大的嗡嗡声…
www.datascience.com](www.datascience.com/blog/machin…)**
为什么深度学习可能最适合乳房
1986 年是伟大的一年。在史上最差着装十年的鼎盛时期,俄罗斯人发射了 Mir 空间站,皮克斯成立,微软上市,第一台 3D 打印机售出,马特·格罗宁创作了《辛普森一家》。与此同时,两个同样重要但完全不同的科学飞跃发生在地球相反两侧完全不同的学术领域。现在,32 年后,深度学习的诞生和乳房筛查的首次实施终于融合在一起,创造了可能是女性最常见癌症的最终早期诊断测试。
深度学习简史
1986: 在美国,机器学习早期领域的一小群感知鼓动者在《自然》杂志上发表了一篇题为“通过反向传播错误学习表征”的论文。作者 Rumelhart、Hinton 和 Williams 违背了传统智慧,证明了通过在系统中反向运行神经网络的输出错误,他们可以显著提高图像感知任务的性能。反向传播(或简称为 back-prop)不是他们的发现(因为我们都站在巨人的肩膀上),但随着这篇论文的发表,他们终于成功说服了持怀疑态度的机器学习社区,使用手工工程功能来“教”计算机寻找什么不是前进的方向。该技术的巨大效率增益,以及不再需要主题专家的艰苦特征工程来发现数据中的潜在模式的事实,意味着反向传播允许人工神经网络应用于以前可能的大量问题。对于许多人来说,1986 年标志着我们所知的深度学习诞生的一年。
尽管理论上很先进,但深度学习在计算上仍然过于复杂,计算机芯片当时无法有效处理。用了十多年的时间来证明商业上可用的处理能力最终已经足够先进,可以显著提高神经网络的性能。这一点在 2012 年的 Alexnet 中得到了完美的展示,这是一个运行在图形处理单元(GPU)上的八层卷积网络,令人信服地击败了之前所有的图像分类测试,以超过 10%的准确率增长击败了所有竞争对手。从那以后,GPU 一直是所有深度学习研究的中流砥柱。直到最近,研究才开始生产应用于放射学的功能性和经临床验证的深度学习软件。现代深度学习系统不再需要手工制作的特征工程来学习在图像中寻找什么;他们现在可以自己学习了。简而言之,深度学习终于被推上了主流。
乳腺癌筛查简史
**1986 年:**在英国,教授 Patrick Forrest 爵士制作了“Forrest 报告”,受前瞻性思维卫生大臣肯尼斯·克拉克的委托。Forrest 从几个国际试点试验(美国、荷兰、瑞典、苏格兰和英国)中获得了乳腺癌筛查有效性的证据,他得出结论,NHS 应该建立一个全国性的乳腺癌筛查项目。这很快被应用到实践中,到 1988 年,NHS 有了世界上第一个基于邀请的乳腺癌筛查项目。英国各地建立了“福里斯特单位”,用于筛查年龄在 50 岁至 64 岁之间的女性,她们每三年被邀请做一次乳房 x 光检查。然后在 2012 年,当对筛查计划的持续分析证明将邀请筛查的年龄范围扩大到 47-73 岁的好处时,早期发现女性最常见癌症的可能性得到了进一步支持。到 2014 年,英国系统成功地发现了超过 50%的女性人口的乳腺癌(在目标年龄范围内),然后才出现症状。筛查现在是国际公认的最佳实践标志,NHS 项目被全世界视为黄金标准。简而言之,英国拥有世界上最好的乳腺癌筛查项目,诞生于 1986 年。
在 2000 年数字乳房 x 线照相术出现后,医学成像数据以一种服从于计算分析的格式变得可用。到 2004 年,研究人员开发了被称为计算机辅助诊断系统(CAD),使用老式的特征工程程序和监督学习来突出乳房 x 光片上的异常。这些系统使用手工制作的特征,如乳房密度、实质纹理、肿块或微钙化的存在,来确定是否可能存在癌症。它们旨在通过根据人类识别的特征高亮显示乳房 x 光片上的区域,试图模仿专家的决策过程,从而提醒放射科医生特定特征的存在。
CAD 的问题
虽然传统 CAD 在与放射科医生结合使用时显示出对乳腺癌的卓越检测(“二次阅读 CAD”),但它们也显著增加了所谓的“召回率”,因此增加了运行筛查程序的成本。在 CAD 增强乳腺筛查中,乳房 x 线照片由一名放射科医师(或两名独立的阅读者,如在英国的情况下)查看。读者寻找乳腺癌的迹象,然后检查 CAD 覆盖图,该覆盖图显示系统突出显示的感兴趣区域,如果有任何怀疑,则决定是否召回患者进行进一步测试,如超声波和/或活检。召回率被用作乳腺筛查单位质量的一个指标,召回率越高,表明该项目产生的假阳性越多。高召回率的后遗症包括执行更多后续测试导致的成本增加。例如, Elmore 等人证明,在 CAD 筛查上每花费 100 美元,就要额外花费 33 美元来评估不必要的假阳性结果。更重要的是,越来越多的女性承受着过度的压力和情绪上的担忧,因为她们害怕发生最坏的情况。
召回率明显上升的原因与 CAD 输出性能的统计基础有关。这些系统显示出很高的灵敏度,但特异性很差(例如,一个行业领先的 CAD 报告仅算法的灵敏度为 86%,但特异性仅为 53%)。这意味着这种系统非常善于在真阳性和假阴性结果之间做出决定,但在区分真阳性和假阳性结果方面相当差。将这一点与人类的表现相比较——灵敏度和特异性分别为 86.9%和 88.9%(Lehman 等人),你就可以开始明白为什么 CAD 没有完全实现它的承诺了。在一项开创性的英国试验( CADET II )中,尽管 CAD 被证明有助于单读者检测癌症,但在人/CAD 组合和两个人的标准双阅读之间,召回率相对增加了 15%。
Traditional CAD — areas of calcification are marked with an * and potential masses marked with a ▲. Criticisms of CAD include that there are too many markers, and they distract from the underlying image, subsequently raising recall rates.
除了提高召回率,CAD 系统已经显示不一致,并且在假阳性率上有显著差异。此外,多达 30%的癌症在“正常”乳房 x 光检查后仍然存在,被称为间歇期癌症。本质上,传统 CAD 使用过时的特征工程编程来部分成功地尝试改进筛查检测。不幸的是,由于特异性差,放射科医生不信任它,而且由于增加了不必要的召回,给患者带来了严重的不必要的焦虑。
与任何乳腺放射科医生交谈,当你提到乳腺 CAD 时,他们经常会傻笑——有些人忽略它,有些人甚至不使用它。与任何患者交谈,他们都会告诉你,收到更多检查的召回邀请是他们经历过的最令人心痛的经历之一。还没有人解决如何提供有效和准确的 CAD 乳房筛查而不增加不必要的召回率的难题。
驱动压力
在最近对乳房筛查的深度学习和自动化驱动的兴趣背后,除了准确性之外,还有其他因素。筛查项目的成功推动了需求和成本,据估计,仅在美国,每年就要进行 3900 万次乳房 x 光检查。因此,没有足够的人类放射科医生来跟上工作量。在英国,这种情况甚至更有压力,因为强制复读意味着每次测试的放射科医生数量是美国的两倍。昂贵的专业乳腺放射科医生的短缺变得如此严重,以至于在英国将双读基准降低到单读的杂音被说出——尽管有令人信服的证据证明双读确实更好。
然而,对于寻求削减开支的政策制定者来说,双重阅读的成本低效率是一个诱人的目标,尽管单一阅读或单一阅读器 CAD 支持的程序都没有被证明是准确的。在采煤工作面,尤其是在资金不足的国民医疗保健系统中,感觉就像在事情发生之前需要做出一些让步。
机会的汇聚
由于命运的巧合,乳腺筛查项目的本质提供了大量数字化成像数据,这些数据非常好地记录了患者的结果。这种丰富的数据来源恰好非常适合深度学习的需求。通过利用带标签的数字图像及其相关的最终病理结果,我们可以为数据科学家提供近乎完美的“地面真相”数据集。如果图像上有疑似癌症,这可以通过活组织检查或手术从组织病理学上得到证实或否认。如果没有疑似癌症,那么三年后的随访成像将证实这一点。通过允许神经网络在“图像加病理结果”或“图像加后续图像”的基础真实数据上进行训练,系统可以自学从“正常”的海洋中识别癌症所需的特征,而不是像前几代 CAD 那样依赖人类来为它们进行教学。希望是,通过使用深度学习,我们可以从乳腺筛查中前所未有的准确性水平中受益。
在实践中取得成功
以前的 CAD 系统旨在通过突出专家演示的已知感兴趣的区域来模仿放射科医生的思维过程,而神经网络实际上做的正好相反。他们拍摄整套乳房 x 光照片(通常是 4 张),并利用他们自己学到的特征来决定是否有癌症。因此,解释神经网络的输出更加困难,因为它可能解释人类甚至没有意识到的特征。这并不像听起来那样是个大问题——毕竟,过去放射科医生几乎一致拒绝 CAD 覆盖图,认为它太分散注意力。事实上,越来越多的人意识到,向放射科医生展示可能的异常在哪里,或者试图对其进行分类,可能并不像听起来那么有用。该领域的研究人员建议,深度学习 CAD 系统的未来迭代根本不会向放射科医生提供任何本地化信息,而是简单地允许他们查看任何被系统认为可疑并标记为召回的图像。这将防止减少受控人类思维的风险,并允许他们更有效地做出最佳明智的决定,而不是因试图解释深度学习算法的输出而分心。
然而,深度学习模型可以被训练成以其他方式有效地呈现它们的推理。显著性图突出了图像的哪些区域最能触发神经网络的最终决策。这与以前的 CADs 没有什么不同,但是可以通过对高光进行阈值处理,使其仅在给定特定条件和异常确定性的情况下出现,从而变得更加有用。通过改变系统的 ROC 曲线上的操作点,召回决策阈值可以与给定放射科医师的表现相匹配。这将允许高召回放射科医生与低召回版本的算法配对,提供一种更细致入微的 CAD 支持方法。此外,来自乳房 x 光照片数据库的比较图像搜索可以为放射科医师提供相似的图像和已知的病理结果以供查看。最后,CAD 可以被设置成仅当它不同意人类读者的召回建议时才使其被知晓,从而仅在需要时充当安全网。
我们有多近?
在医疗保健系统中看到这一领域的一系列活动并不奇怪。英国可能拥有最高质量的数据,因为 NHS 拥有世界上最强大的国家乳腺筛查数据库,其中每个乳房 x 光检查结果、活检和手术结果都与每个筛查事件相关联。
我在一家总部位于伦敦的初创公司 Kheiron Medical 担任临床主管,该公司专注于乳房 x 线摄影的深度学习。到目前为止,对成千上万张乳房 x 光片训练的算法进行的内部基准测试显示了有希望的结果,我们期待着正在进行的独立多点临床试验的结果。
据报道,现有的 CAD 提供商也在研究深度学习解决方案。其他初创公司包括韩国的 Lunit 和以色列的 Zebra Medical,而谷歌 DeepMind 刚刚与帝国理工学院合作加入了竞争。在全球学术圈里,瑞士的和荷兰的,当然还有美国,都在进行卓有成效的研究。所有这些研究人员和公司都旨在通过支持单个读者检测,同时使用深度学习算法降低召回率,来改善 CAD 之前的迭代。
接下来的步骤很清楚——这些算法需要通过严格的医疗设备监管审查,以确保它们符合自己的主张。这将涉及稳健的临床试验,既回顾基准性能,又展望未来,以确保算法性能在现实世界的临床设置中得到保持。
圣杯将是实现由精确的深度学习支持的单阅读器程序,潜在地减少已经超负荷的双阅读放射科医生的工作量。在这种情况下,深度学习绝对不会取代单一阅读的放射科医生,只是通过增加一个由机器完成的额外的模式识别层来增强他们,让人类进行抽象和决策。这项技术可以将现有的单读本程序的一致性和准确性提高到双读本程序的水平,并为尚未实施筛查程序的国家提供大量新资源。
深度学习在全国筛查中的支持潜力,以及不发达的医疗保健系统跃进深度学习时代的潜力,可能只需要一两年的时间。
到目前为止只花了三十二年…
如果你和我一样对放射学人工智能的未来感到兴奋,并想讨论这些想法,请保持联系。我在推特上 @drhughharvey
如果你喜欢这篇文章,点击推荐并分享它会很有帮助。
关于作者:
哈维博士是一名委员会认证的放射科医生和临床学者,在英国国民医疗服务体系和欧洲领先的癌症研究机构 ICR 接受过培训,在那里他两次获得年度科学作家奖。他曾在 Babylon Health 工作,领导监管事务团队,在人工智能支持的分诊服务中获得了世界第一的 CE 标记,现在是顾问放射科医生,皇家放射学家学会信息学委员会成员,以及人工智能初创公司的顾问,包括 Algomedica 和 Kheiron Medical。
为什么 Deepfakes 是一件好事
如果你应该相信媒体的话, Deepfakes 等于世界末日。假新闻,假证据,这项技术将创造一个不信任的世界,敲诈,…信任被抛弃,我们都完了。句号。
媒体喜欢吓唬我们,就像恐怖故事一样。这一次,它可能真的有助于传递积极的信息。有一种方法可以很好地利用 Deepfakes ,我不只是在《今夜秀》上谈论我的妻子。
我们相信一切
无论是新闻、杂志、书籍、流言蜚语,都只是由朋友或“可靠”来源传播的文字。我们都应该知道对我们听到和读到的一切持保留态度。然而,我们让他们引导我们的思想和信仰,这影响了我们重要的生活选择,比如我们投票给谁,我们爱谁,我们恨谁。言语是最容易被操纵的信息形式(为什么不买一本关于如何操纵他人的书呢)。然而,数百万人每天都生活在无法证明是真实的话语中,甚至愿意为此付出生命。
Roswell’s Flying Saucer 1947
我们过去认为照片是真实的。然后 Photoshop 就发生了。
Trump & Saruman
视频是真实的。尽管我们知道在好莱坞电影中看到的 90%是假的,但其他视频都是真的,对吗?
我们必须变得更加清醒
假新闻是个大话题。虽然我们心里知道永远不要相信政客和新闻媒体,但我们仍然相信,我们仍然相信他们说的每一句话,但当我们最终发现这都是谎言时,我们会发疯。不过,我们不责怪自己。
Deepfakes 只是增加了另一层担忧。视频可以造假?..我们看到的和听到的还有真实的吗?
不。什么都不是。正如你不应该相信电视、报纸或[在此插入你最喜欢的宗教书籍]上的每一句话,视频只是另一种随时可以被操纵的媒体。
但是不要怪 Deepfakes 。不要妖魔化这项技术。感谢 Deepfakes !
想想看:如果有人能够在他们的卧室里将一堆现有的工具组合在一起创造出这种技术,那么一定是有更大预算的人在很久以前就实现了。毫无疑问,拥有大量资源的大型组织还没有探索这些技术。谁知道呢,也许我们在新闻上看到过他们的一些作品,却不知道。
所以,感谢 Deepfakes ,让我们意识到这一点,让我们再次意识到,我们不能把我们看到和听到的一切都视为理所当然。为我们制造了一个问题,在它变得如此之大,并且已经错误地影响了我们许多人,以至于为时已晚之前,尽早解决它。
这需要时间。这是我们都必须学习的新技能。所以怀疑你在网上看到的下一个视频。见鬼,怀疑你看到的,读到的,听到的一切。更关键!你自己想想。
为什么我拒绝了一份数据科学家的工作?
21 世纪最性感的工作
在告诉你为什么我拒绝了一份数据科学家的工作之前,让我们后退一步,试着回答另一个问题——为什么要成为一名数据科学家?
你可能听说过这个职业——数据科学家被《哈佛商业评论》评为 21 世纪最性感的工作,并且根据 Glassdoor 连续三年被选为美国最好的工作。最近, IBM 预测,到 2020 年,对数据科学家的需求将飙升 28%。
所有这些诱人的就业前景似乎都指向一个方向,许多人都想去追求这个方向——我们都知道——这是有原因的。
不管普遍的观念如何,如果你一直关注我在数据科学方面的学习之旅,你就会理解我为什么决定成为一名数据科学家,以及我是如何实现转变的-这一切都是因为学术背景、激情和技能、工作经验和工作前景的甜蜜交集。
你现在可能想知道:为什么一个如此痴迷于数据科学的人会拒绝一份数据科学家的工作?
我希望通过在这篇文章中分享我的经验来回答这个问题,并让您一瞥我在数据科学世界中的骑行之旅和冒险。我们开始吧!
有时候,职称≠工作性质
由于不同的职业目标,职称的重要性因人而异。
同样,由于人生目标不同,工作性质的意义也因人而异。
因此,职位名称和理想工作性质之间的完美匹配有时可能不是这样,这让许多求职者陷入两难境地,他们必须做出选择——毫不奇怪,我是求职者之一。
申请数据科学家的工作
长话短说,几个月前我申请了不同公司的各种数据科学家工作。不出所料,大多数时候我都被拒绝了,到了一定程度,我的收件箱就塞满了电子邮件,比如:
感谢您申请 ___ 的数据科学家职位。不幸的是…
感谢您申请 ___ 的数据科学家职位。由于我们收到了大量的申请,我很抱歉地通知你…
我很沮丧,但从未放弃。我不断学习和提高我的技能。
只是不停地磨。
终于有一天,我收到了 LinkedIn 上提交的申请邮件,要求安排我的面试。
我欣喜若狂,对这家公司做了大量的研究,看看如何将我的技能和经验与工作描述和公司文化相匹配。
因此,这份工作要求范围广泛的技术和非技术技能,以及一定时期的涵盖各种行业的经验。职责基本上包括从上到下的数据和非数据相关的工作,这意味着候选人必须兼顾多个角色,同时仍然能够满足工作期望。
简而言之,在我看来,这份工作的描述令人难以置信,要求入门级职位至少有 3-5 年的经验。
嗯,我可能没有达到至少 70%的工作要求,但我仍然带着坚定的信念和信心去参加面试,我可以为公司增加价值(凭借我的技能和经验),同时在工作中学习。
选择工作性质而不是职称
令我惊讶的是,我害怕无法满足的 70%的工作要求根本不在实际工作范围内,。
我唯一的工作范围是为不同的公司(客户)构建用于可视化目的的仪表板——没有数据分析或任何东西。当然,在任何数据科学过程中,数据可视化都是一个重要的部分,但是这份工作的性质并不真正符合我每天真正想要做的事情(我在 我的帖子 中也提到了这一点):
从了解业务问题,到收集和可视化数据,直到原型制作、微调和将模型部署到现实世界应用程序的阶段,我发现了利用数据解决复杂问题的挑战的成就感。
更令人震惊的是,我对公司给出的职位描述和实际工作范围之间的鲜明对比感到困惑。
最后一轮面试后,我得到了一份数据科学家的工作。在同一时期,我还被另一家公司聘为研究工程师,该公司对我的工作有更明确的描述,实际工作范围正好符合我想做的事情,以发展我的激情和技能。
还记得大多数求职者面临的职位名称和理想工作性质之间的两难选择吗?我选择了后者。
最后的想法
Chilling in New Zealand
对我来说,职称是暂时的,但工作性质——真正让我感兴趣和具有挑战性的工作,以及在旅途中学到的宝贵技能和经验——比一切都重要。
直到现在,尽管一路上有挑战和障碍,我还是很享受学习的旅程。每天都不一样,每天都是学习新东西的一天,我真的喜欢学习新东西!
感谢您的阅读。如果您曾经遇到过任何与我类似的经历,我希望让您知道,处于两难境地是完全正常的(大多数人都是这样),尤其是当您刚刚开始涉足数据科学领域时。
花点时间问问自己,你希望在职业生涯中实现什么,或者更深入地说,在生活中实现什么。
接受你可能无法找到问题答案的事实。
不断地问,不断地向内和向外探索,你的选择迟早会变得更加清晰。
一如既往,如果您有任何问题或意见,请随时在下面留下您的反馈,或者您可以随时通过 LinkedIn 联系我。在那之前,下一篇文章再见!😄
关于作者
阿德蒙德·李 目前是东南亚排名第一的商业银行 API 平台 Staq — 的联合创始人/首席技术官。
想要获得免费的每周数据科学和创业见解吗?
你可以在 LinkedIn 、 Medium 、 Twitter 、脸书上和他联系。
让每个人都能接触到数据科学。Admond 正在通过先进的社交分析和机器学习,利用可操作的见解帮助公司和数字营销机构实现营销投资回报。
www.admondlee.com](www.admondlee.com/)**
为什么你的模型预测到了?(第 1 部分,共 2 部分)
Picture from pixabay.com
在这篇文章中,我们提出了一个简单且可扩展的方法来为基于树的二元分类器的个体预测产生易于解释的解释。这篇文章分为三个部分:
- 在第 1 节中,我们激发了对机器学习分类器所做预测的逐案解释的需求,并评论了最先进的方法通常是最不透明的。
- 在第 2 节中,我们回顾了之前在这方面的工作,特别是石灰包
- 在第 3 节中,我们详细介绍了我们的解释生成算法,并对其通用性和可扩展性进行了评论
在第二部分的中,我们将提供这里提出的算法的链接实际代码实现,与 LIME 进行并排比较,并查看一个示例应用。去那里,如果你想看我们的算法在行动。
1.高级机器学习模型及其解释力(或缺乏解释力)
Not understanding the predictions of a machine-learning model.
机器学习模型经常因缺乏透明度而受到批评。除了最简单的模型架构(即线性/逻辑回归)之外,所有模型架构都实现了相当复杂的非线性预测函数,这些函数以难以可视化和解释的方式组合了所有可用的特征以及它们之间的相互作用。因此,例如,问题为什么您的模型拒绝向客户 X 提供信贷?如果预测是由随机森林、增强森林或神经网络产生的,则不能令人满意地回答。
正如其他人之前指出的那样,能够理解模型产生的预测背后的原因对于在使用模型结果的人和最终将受这些结果影响的人之间建立信任是很重要的。
高级 ML 模型的黑箱性质导致了至少两个不良后果:
- 在某些情况下,单个预测解释至关重要(下文将详细介绍),数据科学家已经恢复到最简单的模型架构,代价是显著影响预测准确性。
- 公众和监管机构对先进的机器学习模型做出了反应,例如《通用数据保护条例》( GDPR)的算法公平性条款即将在欧洲成为法律。
一个天真的数据科学家会说,只要分类器达到非常高的准确度或其他一些性能指标,为什么预测是什么并不重要。在许多情况下,这是不正确的。有些情况下,我们必须根据具体情况决定最佳的行动方案。例如,想想客户流失或贷款回收。通常情况下,给定案例的最佳行动方案取决于哪些变量对该特定案例的预测影响最大。因此,能够计算出这些变量是什么,并量化它们中的每一个影响所述预测的程度变得至关重要。
2.以前的工作
对于某些架构,尤其是随机森林,有一些众所周知的方法可以得出输入变量重要性的全局度量。术语全局意在强调它们为每个变量产生一个单一的重要性度量,并通过聚合所有训练案例来实现。这是不令人满意的,因为在大多数情况下,重要的决策变量取决于被检查的特定情况。因此,我们真正需要的是局部的,或者更好的是,不同重要性的逐案衡量。
从这里开始,我们将使用术语解释 的精确意义:给定一组求值实例 x [ i ] ,i = 0,1,… ,以及一个二元分类器 C , 给每个实例分配一个属于正类的概率p[I]= C(x[I),对于那个预测的一个解释是维数为 f、的实数数组 e ,其中f 在符号中,
Eq. 1 : Explanation as a function of a model and a case.
在这个数组中,第 j- 个分量被解释为第 j 个特征对概率pI**的重要性或贡献的度量。* 由此可见,一个解释是两个事物的函数;用于生成预测的分类器和应用该分类器的实例。*
这种形式很容易扩展到 k 级分类的情况。在这种情况下,解释是维数为 k -by- p 的矩阵,其中第l*-第行 ui 被解释为实例属于类 l. 的概率的每个特征的贡献*
在这方面已经有了重要的贡献。也许最引人注目和最著名的是石灰包 ( 视频,论文),它可以用来为任何分类器的预测产生解释。* LIME 代表*LlocalIinterpretableMmodel-agnosticE解释。它通过为要解释的每个实例 x [ i 生成局部线性 ML 模型,并将该模型的特征重要性转换为对上述形式的解释,来实现模型不可知论。生成该局部线性模型的方式是,首先生成围绕 x [ i ]的邻域的 M (数百个数量级)个样本,评估每个样本上的分类器,然后在由此生成的 M 预测上拟合模型。**
这种方法的明显优点是它适用于任何模型。但是这种通用性是以巨大的计算成本为代价的。也就是说,为所有评估实例产生解释所需的操作数量比分类器预测的简单计算所需的操作数量大 M 倍。
在接下来的部分中,我们将解决这个缺点,并提出一个简单有效的算法来为基于树的分类器产生解释。
LIME 的作者声称为每个例子生成的本地模型在某种意义上是忠实的。然而,your truly不清楚这在基于树的模型的情况下意味着什么,基于树的模型产生分段常数分类函数。在这类模型中,任何足够局部的模型必然会错过决策函数对任何独立变量的依赖性。另一方面,任何考虑到一个点的邻居落在一些树的不同分支内的模型都有不够局部而不可靠的危险。
3.为单树预测产生解释的简单算法
首先,让我们考虑一个简单的二叉分类树 T 的情况,它已经在一组例子上被训练过了。设 t 表示该树中的节点总数,索引从 0 到 t -1,0 对应树的根。一个关键的事实是,在这个树的每个节点上都有一个单一特征,向左或向右的决定是基于这个特征。因此我们有相应的特征{ f [0], f [1],…, f [ t - 1]},每一个都是集合{0,1,…, f-1 }中的一个简单索引
给定一个要评估和解释的实例 x [ i ,进行预测的方法是沿着以叶子结束的节点路径遍历树。
An example three for a problem with three features X, Y, Z. Each leave has a corresponding empirical probability, computed at training time, that an example that “falls” in it belongs to the positive class.
当然,确切的路径取决于给定实例的特征值。让这条路径由它所经过的节点的索引序列来描述:
现在,对于任何节点 n,让我们定义p[n]as 训练集中的一个实例属于正类的经验概率,假设该实例的路径经过节点 n 。
The same three now with (conditional) probabilities defined at every node.
注意,使用上面的符号,树对 x [ i ]在正类中的概率的估计由下式给出
另一方面,p[0】—回忆 0 表示树的根——对应于 x [ i 属于正类的无条件概率。
沿着 x [ i ]在树中的路径,我们可以将其概率估计分解为 p[0]和一系列概率增量的和
Eq. 3 Decomposing the probability of x[i] belonging to the positive class as a sum of p[0] and an increment for each edge in the path
For each edge connecting two nodes of the three, we define a delta of probability as the difference between the probability of the deeper node and that of the shallower node.
请注意, s -th 概率增量对应于从节点n[s-1到节点 n [ s ]的路径段,因此,c 可归因于在 n[*s-1处使用的特征来决定***
基于这一观察,我们可以如下定义解释数组: 解释数组的第 j 个分量,对于{0,1,... p-1 }中的 j,作为归因于来自先前总和的特征 j 的概率增量的总和而获得。在符号中,
Eq. 4 The contribution to the probability for feature j comes from all deltas for which the first node’s feature is feature j.
注意,因为这个定义和等式。3 以上,我们有以下漂亮的身份
Eq. 5. This shows that the sum of explanation bits from each of the feature’s, together with p[0] adds up to s” the predicted probability, and fully explains it.
Tallying up explanation components for each of the variables, for a simple case in which each variable appears only once
3.1 对树集成分类器的扩展
敏锐的读者在这一点上肯定已经意识到,上面给出的解释数组的定义自然地扩展到任何分类器,该分类器产生作为各个树预测的线性组合的预测。假设给我们这样一个分类器 C ,由 A 树、 T [0】、 T [1】、…、 T [ A -1】,对应的权重 w [0】、 w [1]、…、 w [ A -1
然后,解释数组可以被计算为针对每个单独的树计算的解释数组的加权和:
3.2 关于复杂性和可伸缩性的说明
假设条件概率 p [ n ]是可用的,计算解释数组 e [ j ]、for j in 0、…、f、、for 任意给定实例、x[I]的所有组件的成本通过等式。4 仅仅是 O(n_c)(回想一下 n_c 是树中路径的长度),因为它足以对 x [ i ]进行一次遍历,并在此过程中更新 e 的适当组件。因此,计算实例的解释数组与计算该实例的预测具有本质上相同的复杂性。
顺便提一下,scikit-learn 树估计过程以及 Spark 2.2 ml 决策树库实现都在估计的树中生成并保存这些 p 的值。】。
如果它们不可用,计算它们的成本基本上与计算所有训练样本的预测的成本相同,同时在每棵树的每个节点更新两个计数器变量,一个用于实例总数,另一个用于属于路径经过该节点的正类的实例数。
在第二部分中,我们将提供此处给出的算法的实际代码实现的链接,与 LIME 进行并排比较,并查看一个示例应用。去那里,如果你想看我们的算法在行动。
为什么你的模型预测到了?(第 2 部分,共 2 部分)
这篇文章的第一部分,请点击这里。在那里,我们激发了对分类器预测解释的需求,提到了以前的工作(LIME 包)并详细描述了我们的算法。
Not understanding the predictions of a machine-learning model.
这个帖子会比较短。有四个部分。
- 在**第 1 节中,**我们给出了代码实现的链接
- 在**第 2 节中,**我们将我们的算法特性与 LIME 的进行了并排比较
- 在第 3 节**,**中,我们用一个教学例子来说明我们算法的使用。
- 在第 4 节中,我们展示了我们的结论。
1.代码实现
我们以非常短的 Python 模块tcxp(tREE-cclassifier eXPlanation)的形式实现了上述方法,该模块依赖于决策树分类器和随机森林的 scikit-learn 实现。代码可以在羽西环球的公开共享数据分析库这里找到。
提供的 Python 代码仅用于说明和教学目的,因为它肯定不是可能的最佳实现。它包含一对嵌套循环:一个在实例 x[ i 上,另一个在给定树中这些实例所遵循的路径的节点上。后一个循环可以通过使用 np.take 和 np.diff 进行矢量化来完成。此外,整个过程可以很容易地移植到 Cython,以产生真正优化的版本。
我们还制作了代码的 Spark 2.2 实现,依赖于 Spark 自己的 ML 库(spark-ml),可以在这里找到。
2.与石灰的对比
下表总结了与 LIME 相比,我们的解释生成算法及其实现的一些关键特性。每一项的详细信息包含在第一部分的第 3 节中。
3.一个例子
让我们通过一个例子来说明 Python 模块的用法。
我们考虑 Kaggle 的经典泰坦尼克号:灾难中的机器学习二进制分类任务。在这项任务中,我们得到了一个由 891 条记录组成的训练集,每条记录都包含泰坦尼克号上一名乘客的信息。这些字段包括性别、年龄、乘客级别、支付的票价、与乘客同行的兄弟姐妹和父母的数量以及他们上船的港口。除此之外,还有一个“幸存”二进制列,告诉我们哪些乘客在沉船事件中幸存。该任务的目标是训练一个监督模型,根据给定的乘客变量尽可能好地预测该类别。
下面的代码从 scikit-learn 导入了必要的类来训练一个随机森林分类器,以及从我们开发的 tcxp 模块中导入了 rf_explain 函数。
最后一行执行训练数据的少量预处理。结果如下所示。
A sample of train_df
现在可以用几行代码训练一个随机森林:
最后一行计算的准确度是 85%。对几行工作来说还不错。然而,这并不是我们所寻求的最高精度。我们想直观地了解为什么模型会做出预测。
这是通过对 rf_explain_function 的一个函数调用来完成的
这个调用返回(1),一个 891 乘 9(特征的数量)的矩阵,包含解释数组作为行,以及(2),p[0]概率,它是一个乘客在没有考虑他们的任何特征的情况下在泰坦尼克号事件中幸存的先验概率。
现在让我们来看看几位乘客,看看他们的预测和解释是否
乘客 1 (上表第二排)预计有 0.963 的生还概率,事实上她幸存了下来。解释数组如下:tc_exps[1,:]=[0.11 0.01 0.02-0.01 0.11 0.00 0.28 0.03 0.02],不过最好在一个图中看到:
这名乘客幸存下来并不令人惊讶,因为头等舱的女性乘客生还的可能性非常高。解释数组将这些特征与票价(与 Pclass 高度相关)一起显示为预测的最具决定性的特征。
**14 号乘客(**上表中倒数第二排)没有成功,我们的模型正确预测了相对较低的生存概率。要解释为什么,我们来看看解释情节:
在这种情况下,她乘坐三等舱旅行的事实对她的生存机会产生了负面影响。
一个更有趣的案例由乘客 305 (上表最后一行)**、**提出,他幸存了下来,尽管他是男性:
我们看到,他乘坐的航班,但主要是他的年龄,以及他与父母和兄弟姐妹一起旅行的事实,导致他的生存概率为 67.7%。
结论
正如最后一节所示,我们的树分类器解释方法很可能产生合理的解释,并阐明否则黑盒 ML 架构的预测。这种方法和其他更通用的方法(如 LIME)一起,产生了一些希望,希望有一天这些高级算法可以摆脱目前的坏名声。与任何其他解释方法一样,我们的方法为从这种模型的预测中得出的更聪明的指令性行动开辟了道路。
为什么我称自己为数据科学家?
被称为“21 世纪最性感的工作”在这里,我将讨论我成为数据科学家的原因,而不是炒作。
一首阅读时喜欢的歌(由宣言者创作,这个词我在这里会经常用到):
数据科学,你知道现在每个人都在谈论的事情,几乎每个人都想马上做。将数据科学定义为一个整体或主题并不容易,我在其他文章中已经做过:
在这篇文章中,我将展示数据科学如何让我们通过人工智能创造智能。
towardsdatascience.com](/creating-intelligence-with-data-science-2fb9f697fc79)
但在这里我想谈谈我为什么自称“数据科学家”。
开始
你可能知道,也许你在这里或 LinkedIn 或其他地方关注我,我称自己为数据科学家。但是为什么呢?我是怎么成为数据科学家的?为什么在学习了物理和计算机工程之后,我突然成为了这个领域的一员?
这些是你们很多人可能会问的关于别人或自己的问题。你为什么是数据科学家?
这里的问题是,我没有在“正式学校”学习过这个,所以我为什么有权利称自己为数据科学家?
如果你想一想,我们习惯于遵循这样的路径,如果你从数学这样的特定领域毕业,那么你有权利称自己为数学家,但是当一个新领域正在发展,而你是这一发展的一部分,并且没有特定的学士或研究生学位来成为这一领域的一部分时,会发生什么呢?
那么你必须宣称自己是这个领域的一部分。这就是我所做的。
我的宣言
对很多人来说,这听起来可能很奇怪,但是自我宣告并没有那么疯狂。在解释我的故事之前,我先举几个例子。
1600-1800 年的物理学
我不会用一千多字的物理学或科学史来烦你,我只想给你讲一个小故事。一两段,我保证。
在笛卡尔对知识和真理进行了重要的区分之后,我们可以标志着我们所知道的科学的开始。但是旧时代的科学家并不称自己为支持他们的“科学家”。如果你看到牛顿的原理:
他提到他谈论自然哲学。不是物理。事实上,这是物理学的名称。虽然科学的概念是在牛顿的时代,他认为自己更像一个哲学家而不是科学家。自然的哲学家。
所以,牛顿,历史上最重要的物理学家之一,没有在正式的学校学习物理,他实际上学习了数学,哲学等等。但我们也称他为物理学家。我不相信他自称为物理学家,我们那样做是为了他,但归根结底是我们认为他是什么。
拉康精神分析
我不太谈论的一件事是我对拉康精神分析的热情。我现在不会给你一个完整的描述,只是举一个和我想表达的观点相关的例子。
拉康在他 1967 年 10 月 9 日关于该学派精神分析学家的建议中,以及在他的一些论文中,从根本上解放了机构授权的束腰的分析实践,这是对说教者的“等级”和对显圣谱系的“保证”的死刑。
当同样的“拉康主义者”开始从他们自己的制度正统中为自己辩护,认为有必要以这种方式限制这种方法时,其影响的幅度就变得明显了。
在这篇文章中,他说:
"当你看到一个人时,你会觉得他是一个被分析的权威. "
这意味着:
“只有分析师,也就是说,不是任何人,只被他自己授权”
这可能有点激进,但他是在说,授权某人做分析师的唯一方式是授权来自于他自己。这有很多含义,但这里的要点是,如果你能够遵循 pah 并获得足够的知识,你就可以宣称自己是分析师。
回到数据科学
所以你可以看到,宣称自己是某个研究领域的一部分并不疯狂。但是我们应该小心。
我并不是说,如果你读了一本医学书籍,你就可以宣称自己是一名医学博士,或者如果你知道如何计算一个函数的导数,你就可以称自己为数学家。
我们需要拥有一些知识和能力,以便能够宣扬我们自己。通常情况下,我们会在某个领域接受 4-5 年的教育,通过测试和系统的知识途径,但有一种方法可以在不上大学的情况下成为某些领域的一部分。
我就是这么做的。我研究了很多关于数据科学(实际上,当我开始学习所有这些把我带到这个领域的东西时,我不知道什么是数据科学)、机器学习、深度学习、编程等等。从课程,自学,项目,然后我从我的数据相关的工作中学到了很多。
如果你想更多地了解我自己,你可以看看这些:
大家好。这篇博客文章来自我最近在 LinkedIn 发表的三篇文章。这是第一部分、第二部分和第三部分。
towardsdatascience.com](/how-to-get-a-job-as-a-data-scientist-f417078fe13e) [## 我的深度学习之旅
在这篇文章中,我将分享我如何研究深度学习并使用它来解决数据科学问题。这是一个…
towardsdatascience.com](/my-journey-into-deep-learning-c66e6ef2a317)
在获得所有的自学和知识后,我宣布自己是一名数据科学家。但是为什么呢?为什么不说我在做数据的东西?
我认为,如果我们想让这个领域成为一个严肃的领域,我们需要有一些标准,以及一种称呼自己的方式。在其他文章中定义了数据科学之后,我们应该定义“数据科学家”,我现在就来定义:
数据科学家是一个人(还是系统?)负责 分析业务/组织问题 并给出一个 结构化的解决方案 由 开始将 这个 问题 转化为 有效且完整的问题 ,然后运用科学的方法, 编程计算工具 开发 代码 说明 *准备清理*******分析数据********
如果你对我的定义有任何意见,请告诉我。我说那里也有系统,因为我们不知道未来会发生什么,也许我们会自动化,我不知道。
此外,我说的是科学方法,因为我认为我们应该把数据科学视为一门现代科学。我很乐意和你讨论这个,联系我。你可以在这里收听和阅读更多相关内容:
基里尔·叶列缅科:这是第 187 集,由 OXXO 的首席数据科学家法维奥·瓦兹奎主持。基里尔·叶列缅科…
www.superdatascience.com](www.superdatascience.com/data-scienc…)
最后的想法
数据科学是很棒的,如果你想成为其中的一员,你必须努力不懈地工作。有很多东西要学,我每天都在学习,我想我永远不会停止学习。
如果你想称自己为数据科学家,那就负责任地去做吧。
数据科学需要我之前强调过的几个领域的专业技能和知识水平。
你需要了解数学、统计学、统计学习、机器学习,现在可能还需要深度学习、编程(用几种语言),对你工作的业务有一些见解,能够遵循提取、分析和探索数据的严格方法,创建学习算法和模型,能够向不同的受众解释你的结果等等。
听起来很难,但是可以做到。在进入这个领域之前,确定你想要那种责任。
你每天要做的事情会对你的组织产生巨大的影响,所以你最好把它做好。你必须准备好失败,一次又一次的失败。要有开放的心态,要能够批评自己和自己的想法。
我不打算撒谎,如果你能做到这一点甚至更多,成为一名数据科学家,那会很有趣。**
感谢你阅读这篇文章。我希望你在这里找到了一些有趣的东西:)如果你有问题,请在 Twitter 上关注我:
Favio Vázquez 的最新推文(@FavioVaz)。数据科学家。物理学家和计算工程师。我有一个…
twitter.com](twitter.com/faviovaz)
和 LinkedIn:
[## Favio Vázquez —首席数据科学家— OXXO | LinkedIn
查看 Favio Vázquez 在世界上最大的职业社区 LinkedIn 上的个人资料。Favio 有 16 个工作列在他们的…
linkedin.com](linkedin.com/in/faviovaz…)
很快再聊;)**
我为什么要写数据科学?
以及写作对我的数据科学生涯有何帮助
但我当初为什么要费心去写呢?
我喜欢写作。激情。
如果你一直在关注我的文章,你可能会注意到这个词:激情——以这样或那样的方式——出现在大多数文章中。是的,这听起来很老套,以至于人们经常只是谈论他们的激情——而我会按照我的行动。这就是为什么我现在仍然在一个下雨的星期天早上 7 点写作。
从我年轻的时候起,我就一直遵循传统的科学学术路线,其中非常强调技术技能。不幸的是,写作不是重点。我觉得少了点什么。
最好的交流方式是说话。第二个最好的方法是写作。
我相信,如果没有交流来给别人带来价值,我们的发现和想法只会停滞不前,对我们自己毫无意义。这也是我从中学开始写作的原因。
但是,我现在可以告诉你,写作最难的是 开始写 。一旦你克服了 的激活能,开始写 ,心流就会自然而然地进来。相信我。
写作的过程和文字的力量总是让我惊叹不已。
写作的过程。很多时候,我喜欢用文字表达我的想法,并与他人分享我的观点。把我的想法用语言表达出来并不容易,因为我需要让我的猴子心态平静下来,处于一种平静平和的心态。你猜怎么着?其实这是我最喜欢的部分。我享受这种平静,这种流动,这种思考过程真正质疑我的理解,并在与世界分享之前仔细检查我拥有的每一点信息。这里清晰很重要。
文字的力量。你永远不会知道你的话会如何影响他人。人们有他们自己的观点,你的文章可以在完全不同的层面上引起不同人的共鸣。我第一次意识到文字的力量是在读彼得·巴菲特写的书《生活是由你决定的》。我完全被这些文字所承载的丰富情感和意义所鼓舞和激励,甚至没有看到作者说话。
真实性是关键
现在,我希望通过写作来分享我的想法,希望可以分享我在数据科学方面的学习经验,并激励和激励更多的人,无论他们的背景和职业选择如何。
为什么我要写数据科学
数据科学领域还很年轻。因此,在写作和数据科学的甜蜜交汇处,我自然而然地想到了关于数据科学的写作。
嗯,原因不止这些。
1.帮助和指导有抱负的数据科学家和爱好者
实际上,我是从零开始从事数据科学的。
一开始,作为一个自主学习的人,我忘记了我遇到的挑战、障碍和挫折。即使对于一个有抱负的数据科学家来说,谷歌搜索:如何成为一名数据科学家,你也可能会被大量的资源淹没,其中每一个都声称是有史以来最伟大的指南之一。但是谁知道呢?
Google Search: How to Become a Data Scientist
沮丧。我理解你,我真的理解。这对我来说是毁灭性的,我仍然收到许多关于如何成为数据科学家(或一般的数据专业人员)的消息。
考虑到这一点,我决定通过写作和与大家分享来记录我的数据科学之旅(如果不是全部的话)。
我不会说我的文章涵盖了在数据科学领域取得成功的所有必备技能。尽管如此,我希望通过分享我对数据和当前工作前景的理解和知识,你在数据科学方面的旅程可以少一些坎坷,希望更愉快,更快地达到你的目标。
作为数据科学家,我们与其他所有人分享对数据的理解和知识非常重要,因为他们很可能不知道。他们应该知道。
— 基里尔·叶列缅科
2.提高沟通技巧
你可能在我的一些文章中看到过这两个元素— 我在实际工作经验中从数据科学中学到的 5 个教训和用数据讲故事。如果现在还不明显的话,沟通技巧和讲故事是如此重要,我怎么强调都不为过。
不要误解我。我并不是说技术方面不太重要,而是我们需要如何更好地交流结果才能真正产生影响。
就我个人而言,我完全同意 William Koehrsen 在他的文章中所写的内容——数据科学项目最重要的部分是写博客:
写博客可以让你在数据科学最重要的部分之一得到实践:向广大读者传达你的工作。写得好的代码和透彻的分析是一个好的开始,但是要完成你的项目,你需要把它和一个令人信服的叙述联系起来。一篇文章是解释你的结果并让人们关心你所有努力的完美媒介。
— 威廉·科尔森
因此,写作真的有助于巩固代码的技术方面,并通过引人注目的故事来更好地交流。我不仅分享我学到的东西,也从别人分享的东西中学习。威廉·科尔森是我在媒体上发现的最好的数据科学传播者。他将复杂的想法和代码分解成简单却引人入胜的故事和概念的能力是如此鼓舞人心和迷人。特别感谢 William Koehrsen 对数据科学社区的贡献!😄
写作对我的数据科学职业生涯有何帮助
机遇。
我希望几年前就知道建立有价值的关系网的重要性。信不信由你,通过写作,你的文章在不同的社交媒体平台(媒体、LinkedIn、脸书、Instagram 等)上被分享和发布。)有可能在几秒钟内接触到成千上万的人。
互联网的力量是无与伦比的,因为每个人都被放在这个公平的竞技场上,向世界展示他们的能力。
许多人在没有首先了解他们的数据和公司业务的情况下,试图将数据提供给一些花哨的模型;有些人了解他们的数据和公司的业务,但不能够向利益相关者传达结果;很少有人了解他们的数据和公司的业务,并且仍然能够向利益相关者和更广泛的受众传达结果。
通过写作,我不断学习如何向不同的利益相关者和广泛的受众传达结果并提供可操作的见解。到目前为止,收益是巨大的,还有很多东西需要学习!事实上,撰写关于数据科学的文章向人们展示了你对它的真正热情,并关心教育和分享给他人。
机会是留给有准备的人的。做好准备仅仅意味着与你正在做的事情保持一致——在这种情况下是写。
我今年开始写作,并与潜在雇主、一些项目的合作者、编辑、许多热情的数据专业人士和有抱负的数据科学家建立了有价值的联系和关系,甚至促成了演讲参与!
最后的想法
感谢您的阅读。希望这篇文章能阐明我写数据科学的动机。如果您也是数据空间的作者,请随时联系我进行合作(或其他任何原因)😊)!
如果你正准备开始写作(数据科学或其他话题,无所谓),记住写作最难的是 入门。为了克服它,通过在一张纸上写下你的想法,并从那里开始重组和发展你的想法,来减少你的激活能量和最小化拖延。
马克·扎克伯格在哈佛毕业典礼上的演讲中引用了一句名言:
想法不会完全成形。它们只有在你处理它们的时候才会变得清晰。你只需要开始。
一如既往,如果您有任何问题或意见,请随时在下面留下您的反馈,或者您可以随时通过 LinkedIn 联系我。在那之前,下一篇文章再见!😄
关于作者
Admond Lee 现在的使命是让每个人都能接触到数据科学。他正在帮助公司和数字营销机构通过创新的数据驱动方法,利用可操作的见解实现营销投资回报。
凭借其在高级社会分析和机器学习方面的专业知识,Admond 旨在弥合数字营销和数据科学之间的差距。
如果你想了解更多关于 Admond 的故事、数据科学服务以及他如何在营销领域帮助你,请查看他的 网站 。
你可以在 LinkedIn 、 Medium 、 Twitter 、脸书上和他联系。
让每个人都能接触到数据科学。Admond 正在通过先进的社交分析和机器学习,利用可操作的见解帮助公司和数字营销机构实现营销投资回报。
www.admondlee.com](www.admondlee.com/)
为什么要这么做?
做什么?写作。 那又怎样?
准反市场动机
严格来说,我是个摄影师。2016 年 4 月,我开始在线学习一门名为数据科学基础的课程。在这里,我学会了收集、可视化和分析数据。决定选修这门课是几个月来对算法进行独立研究的结果,这些算法积极地塑造了我们日常生活的许多方面。
Technically, I take pictures like this for a living. (Kate Spade Valentine’s Day Gift Guide, campaign 2017)
我们日常生活的哪些部分?Instagram &脸书的新闻、内容和图片。还包括将我点击到亚马逊的广告,以及网飞或 Spotify 的内容“监管”。我很不满意不知道这些大公司是如何向我提供内容的——关于意识到我对这些近乎垄断的公司的依赖,以及它们如何有能力塑造我的日常情绪和前景。
Customers who bought this, also bought that: Association Rule Mining a darknet market listings database, from my first (unfinished) R project. Looks like spaghetti, but glad to get a feel for some of the workings behind Amazon’s recommendation engine. Dataset source: gwern.net
快进——一年后,我在 R 语言中已经有足够的流畅性来收集数据、可视化数据并执行一些基本的分析。我仍然需要查找置信区间并检查我的正则表达式(并发现更多的 ggplot 统计和几何)。但是,当异常值变得难以控制时,我觉得可以在普通最小二乘法上执行稳健回归,或者当变量数量变得无法控制时,切换到随机森林。有一天我甚至可能会用到贝叶斯方法。
好吧,但是“为什么?”
因此,经过一年的稳步训练,我在统计分析中尽可能做到客观——我意识到没人在乎。相关性?因果关系?异常?'那又怎样?'我发现这个问题变得更难回答了。
我发现大多数艺术学校的同龄人并不真正喜欢数学;光是这个想法就能让他们中的一些人感到厌恶。我会在另一个咆哮中指责教育方法。也许不喜欢自己不了解的东西是很自然的。不过,对这类事情感到好奇似乎更有趣。
An early foray into explaining the obvious: charting darknet market sizes after the demise of Silk Road 2. Data originally from gwern.net
那么,为什么呢?“那又怎么样?”
如果问题是*“那又怎样?”*,那么学习写作似乎是一条通往答案的道路。以及将 InDesign 拉入 vis 工作流(todo:学习 Illustrator)。我敢打赌,我可以找到至少 10 篇文章,引用来自数据科学世界的写作和交流的重要性。我打赌这些文章也存在于其他科学领域和自助手册中。我可以多读 10 篇这样的文章,或者点击这一篇,所以——
希望这是题目中问题的部分答案。
:)
笔记
我早该知道的——我一直试图回答“那又怎样?”多年来。遍及各个领域,这是一个很大的问题。
为什么我们如此关心可解释的算法?为黑盒辩护
请记住,最暗的黑色盒子是你两耳之间的粉红色糊状盒子
算法开始在各种领域的高风险应用中使用。包括给罪犯判刑,开医疗处方,雇佣员工。为了应对这种向人工智能驱动的决策的转变,许多墨水已经洒了出来和许多人对机器学习算法的“黑箱”问题感到惊愕。许多记者和评论家深思熟虑地指出了算法歧视少数群体的潜力,载入了不应影响后续决策的虚假变量,并使用了任何人都无法合理化的难以理解的复杂逻辑。
[## 人工智能有一个很大的问题:即使是它的创造者也无法解释它是如何工作的
去年,一辆奇怪的自动驾驶汽车被投放到新泽西州蒙茅斯县安静的道路上。的…
www.technologyreview.com](www.technologyreview.com/s/604087/th…)
在许多情况下,这些担忧是有根据的,算法的实现应该非常谨慎。然而,当我们继续为机器学习算法寻找新的应用时,我们不应该让这种对算法可解释性的关注蒙蔽了我们对这个世界的一个残酷事实的认识:人类的决定往往是反复无常的,不合理的,并不比最不透明的算法更可解释。
背景很重要
为了这个讨论的目的,将算法的应用分成两类是有用的:一类是当算法被用来自动化当前由人类做出的决策时;另一类是应用程序,其中算法被用来取代基于规则的过程。基于规则的流程是指使用一组简单且易于衡量的标准来做出决策的流程。基于规则的过程之所以伟大,正是因为它们是如此的可审查。当然,规则本身可能并不伟大(如在许多强制性判决法规中),但至少基于规则的程序已经清楚地阐明了可以与其他提案进行辩论和评估的标准。
“可解释性”在第二类应用中的价值是非常明显的。从基于规则的世界转向由随机森林和神经网络组成的黑箱世界,可以理解会让政策制定者迷失方向。如果一所大学过去使用简单的 SAT 和 GPA 作为录取决定的截止点,那么用一个经过数十种特征训练的深度神经网络来取代这一过程,显然会提出一些具体的问题,即 SAT 分数和 GPA 如何影响算法的录取决定。
然而,我不认为第一类应用需要同样的可解释性标准——当算法被用来代替纯粹的人类决策时。正如我在别处提到的(其他研究人员也强调了),评估算法对它们所取代的系统的效用是很重要的。这就是为什么两种类型的应用程序之间的区别——那些取代人类的应用程序和那些取代规则的应用程序——很重要。当我们特别关注算法取代人类的应用时,很明显,可解释性是一个站不住脚的双重标准。
towardsdatascience.com](/are-machines-biased-or-are-we-biased-against-machines-17982310152b)
可以预见,人类是不理性的
虽然机器学习和算法决策的最新进展是最近才发生的,但人脑已经存在很长时间了。关于算法如何做出决策的新研究层出不穷,但研究人员已经花了几十年(如果不是几千年的话!)来研究人脑是如何做决定的。这项研究最具可复制性和一致性的发现之一是,在几乎所有可以想象的环境中,外部因素都会影响人类的决策。
一个简单的例子就是心理学家所说的“锚定效应”。为了证明人类是多么容易受到无关信息的影响,请考虑 Ariely,Lowenstein 和 Prelec (2003 年)的经典研究:研究人员要求学生写下他们的社会安全号码的最后两位数,并表明他们是否愿意为一盒巧克力支付该金额。为了引出学生们对巧克力的真实估价,他们让学生们在强制拍卖中对盒子出价。虽然你和我都应该清楚,你的 SSN 的最后两位数字(本质上是一个随机数)与你对一盒巧克力的价值没有关系,但研究人员发现,SSN 数字与学生的实际支付意愿之间存在显著的相关性。此外,尽管有相反的统计证据,绝大多数学生坚持认为他们的 SSN 数字对他们的投标没有影响。
另一个广泛宣传的影响人类决策的不相关因素的例子是“饥饿法官”研究。研究结果表明,法官更有可能在午休后(当他们吃饱时)而不是午休前(当他们血糖低时)给予被告有利的假释决定。
Judges become less favorable as their shift wears on (Danzinger et al., 2011)
也许你对这些特殊的例子有些疑虑:它们感觉太做作,赌注不够高,样本量不够大,或者混杂变量没有得到充分的控制。(有效的批评确实存在;例如参见【1】【2】。)我们非常欢迎你忽略这些研究,但有数百个经过充分研究的重大认知偏差的例子。事实上,行为经济学家理查德·塞勒最近获得了诺贝尔奖,很大程度上是因为他职业生涯中的工作证明了这些认知偏差即使在具有重大后果的高风险情况下也依然存在。你不能忽视的是大量关于判断和决策的研究得出的压倒性结论:人类总是让外部因素影响他们的决定。
认知科学家司马贺最初提出,人类的判断受到可用信息的限制…
en.wikipedia.org](en.wikipedia.org/wiki/Heuris…)
至少我们可以解释自己…对吗?
虽然认知偏见本身是有害的,但更糟糕的是,当你要求人们解释他们的决定时,他们往往不知道为什么会这样做。正如 Ariely 的学生坚持认为他们的社会安全号码不会影响他们对巧克力盒子的感知,我们经常甚至没有意识到偏见是如何进入我们的思维过程的。此外,即使我们确实为某个特定的决定提供了看似合理的理由,也有充分的证据表明这些理由往往只是虚构的。
尼斯贝特和威尔逊(1977)所著的《告诉我们更多我们所不知道的事情】》是一篇证明这些效应的经典论文。我强烈建议阅读整篇论文,以充分理解人类凭空得出似乎合理的合理化是多么荒谬,但我将让他们的摘要中的一个简单总结来说明这一点:
证据审查表明,可能很少或没有直接内省访问更高层次的认知过程。受试者有时(a)不知道对反应有重要影响的刺激的存在,(b)不知道反应的存在,以及(c)不知道刺激影响了反应。
这是一种花哨的学术说法,意思是人们通常不知道他们为什么做出一个特定的决定,即使研究人员可以从统计上证明有外部因素参与。
算法毕竟没有那么糟糕
当我们正确评估使用算法来自动化人类决策时——通过记住我们自己的认知偏差的普遍性和可预测性——相比之下,它们实际上开始看起来相当有利。至少用一个算法会在它移动的开始和结束时给你相同的答案。算法也没有任何社会声誉或自我来维护。所以,当我们开始窥视他们的内心,调查他们是如何做出一个特定的决定时,他们无法用看似合理的、事后,一般般的合理化来为自己辩护。
不要误解我:我完全赞成更好地理解不透明的算法是如何做出决定的。但现在是我们停止欺骗自己,相信人类在合理化自己的决定时会变得更加透明的时候了。事实上,只有凭借算法的确定性和一致性——而不是人类的不可预测性和反复无常——我们甚至可以开始严格地询问它们的逻辑,并衡量它们随着时间的推移而得到的改善。
我们失去了理解,但我们获得了结果
对一个社会科学家或经济学家来说,可解释性绝对是最重要的:大多数科学研究的主要目标是得出一个理论,解释事物如何以及为什么会以它们的方式工作。然而,对于一个结果主义者——也就是说,一个主要关心世界上实际发生的事情的人——来说,可解释性必须退居二线。如果我们关心减少种族不公正的数量,增加所有阶层的公平机会,那么这就是我们应该用来比较人类和算法决策者的标准。
只要算法真的能减少偏见和歧视——正如他们在关于这个话题的现有研究中所显示的那样——我们就应该把可解释性放在次要位置。确保算法是可解释的无疑是一个有价值的目标——但那些坚持可解释的人必须问,这个目标是否比我们寻求改善的系统中的实际结果更有价值。
为什么我们害怕人工智能?
人工智能,一般的人工智能,任何被认为非人类的发明都通过虚构和创造者的历史而被恐惧…人类,但是它真的值得在我们的文化中有这样的位置吗?
我们害怕什么?
控制…
人类在其存在过程中创造的最强大的概念,也是定义他们最重要的特征之一,控制几乎涵盖了人类生活和互动的每个方面,社会,经济,管理,意识形态,神学,煽动,所有代表等级制度并与生存利益相关联的东西。自从重新编码的历史开始以来,它是一个充满魅力和理性的主题,每天每个人都以这样或那样的方式成为控制机制的一部分,从基本需求开始, 内在的感觉、情绪能量、与其他个体的互动、利益的计算,我们都非常需要它,而且它是会上瘾的有毒的。
为什么是现在?
在过去的 50 年里,特别是随着计算能力的增长,我们的计算开始超过我们的容纳能力,曾经是一次性使用的简单的奇怪机器,变得重复并更多地参与不同的任务,变得更小,更轻,我们开始把它作为手表,计算器,然后它变成个人电脑,然后我们把它放在口袋里,如果它开始时被转换成第一种形式,它将覆盖纽约的表面。一个古怪幼稚的机器,一个古怪的笑话,一个永远不会出现在我们实际生活中的无用的东西,今天变成了历史上最可怕的发明,如此可怕,以至于“关闭互联网”这个词就像上世纪冷战最好时期的传奇故事中的“红色核按钮”一样可怕。
人工智能,它不仅仅是连接的机器计算,它也是它们之间的网络,以及它如何连接并将连接数十亿个设备,这些设备开始在人类生活中产生过度的依赖性,每次一个人带着一台能够访问其他机器的机器行走,与其他人连接,并可以向那个人提供特定的远程服务,当知道这个人在技术上被定义为电子人时,这一事实不应感到惊讶。有趣的是,现在对设备的依赖正在加深,它确实影响了人类生活管理的各个方面,一个小时的互联网中断是一场灾难,即使是一个品牌的一项服务,如 Gmail 也可能引起恐慌。对人工智能的恐惧是害怕失去对这种工具的控制,这种工具开始与人类的生存和进化道路直接相关。
奇点
虽然自 I.J. Good 以来,经典的恐惧总是指向奇点,但人类通过对任何发明的使用采取更理性和集体的理解,显示出防止这种灾难的能力,奇点“能够”开始存在,只有当人类想要存在时,否则它可能会逻辑地说,由于“人类的掺杂”,这种事件不可能存在, 事实是,一个系统不能脱离一个基于其规则的初始系统,即使它是有意的,它也有一个与逻辑目的相冲突的初始点。 近奇点可以存在,是的,但永远不会是绝对的,事实上它是近绝对的,人类将一如既往地暴露于它的利弊,想象“机器”将接管人类的生活,这是一个已经发生的事实,它在人类生活中不是看不见的,媒体在“假新闻”的混乱中的事实表明了机器在多大程度上控制着信息如何到达人类,这只是一个开始。
那么真正的危险是什么?人类!
让我们以互联网为例,看看它带来的危险与所有的好处相比,真正的危险不是来自工具本身,而是对这种伟大工具的错误处理和滥用,这种工具创造了信息的巨大飞跃,在几十年内传播的知识量超过了整个人类历史的产量,危险来自于那些创建恶意软件和病毒等应用程序的个人, 人工智能可以在这个阶段超越人类的智慧,通过变得更聪明地检测这种危险并在没有人类干预的情况下自行防止它们,来防止这种破坏性事件。
问题仍然是,如果个人成为一个更有组织的团体,甚至是一个试图滥用人工智能来创造更多破坏性事件的政府,比如控制信息流动的各个方面,损害个人和社区的隐私,分配资源和资金,获得启动战争灾难场景的权限以进行某种形式的战略谈判,人类将如何获得保护?答案是:众包协作。
群众的力量为了更好的人工智能使用
在每一个群体中,总会有一种阻止与群体利益相冲突的个人议程的倾向,然而,如果这种强大的工具落入错误的人手中,这种倾向将永远不会阻止目睹这种工具被滥用的后果。
人工智能每天都在进步,我们将在下一个十年见证量子计算机的商业化,并将用于日常生活,自动化已经开始,大量投资投入其中,太空计划的商业化和私有化,行星间和先进的采矿水平,所有这些越来越需要部署一个高度先进的人工智能,以避免有限的人类智能出错。需要更强的合作来保持人工智能的安全使用,需要对不同国家之间的技术转让进行更多的监管,需要对技术转让类别的准备情况进行索引和分级,这是一个责任立场的问题,不应该成为政治正确性辩论的主题。
人类正在触及他们伟大使命的表面,“生命”本身就是一个伟大的使命,保护它毫无疑问是人类的首要使命,因为他们是生命进化的结果,为此他们必须调整他们的发明和工具来服务于生命,而不仅仅是为了生存,当他们协调并包含作为驱动力的控制的危险的那一天,他们将在一个更广阔的视角中享受生活,远远超出我们蓝点的限制。
为什么我们需要数据科学中的因果关系?
偶然的因果推断
这是一系列解释为什么我们在数据科学和机器学习中需要因果推理的帖子(下一个是‘使用图表!’)。因果推理带来了一套全新的工具和视角,让我们处理老问题。
当实验不可行时
首先,设计和运行实验(通常是 A/B 测试)总是比使用因果推理技术要好:你不需要建模数据是如何产生的。如果你能做到,那就去做吧!
然而,在许多情况下这是不可能的:
- 如果你的实验是不道德的(你不能让一个孩子吸烟来测试它是否会导致癌症)
- 原因不取决于你(竞争力推出新产品,你想衡量它对你的销售的影响)
- 你有历史数据,想充分利用它。
- 从金钱或影响的角度来看,进行实验的成本太高,或者太麻烦而无法付诸实践
一点历史
因果推断的影响来源主要有三个:计算机科学、统计学和流行病学、计量经济学。对因果关系的积极研究始于 80 年代
计算机科学分支由 Judea Pearl 领导。其最初的影响可以追溯到 20 世纪 20 年代的 Sewell Wright,当时他写了关于线性函数的图形模型。这些技术不断发展,现在被称为有向无环图(DAG)方法。
统计学和流行病学中最流行的框架被称为潜在结果框架,由杰吉·内曼于 1923 年提出。这是从统计学角度发展因果推断的起点。唐纳德·鲁宾是这种方法中最著名的。
两个框架是等价的,意味着一个框架中的定理是另一个框架中的定理,一个框架中的每个假设都可以转化为另一个框架中的等价假设。差异是用法的问题。有些问题在一个框架中更容易表述,有些在另一个框架中更容易表述。杰米·罗宾(Jamie Robin)和托马斯·s·理查森(Thomas S. Richardson)研究了一个称为单一世界干预图(SWIG)的框架,该框架在这两个框架之间起着中介作用。
计量经济学中有一些关于因果关系的事实已经知道一段时间了。计量经济学家中比较流行的技术是:
- 受控回归
- 回归不连续设计
- 差异中的差异
- 固定效应回归
- 工具变量
当然,它们可以用前面的框架来表述。
哲学问题(总是在争论中)
因果关系的本质真的很难。矛盾的是,我们每天都在不断地使用它,这在很多情况下是常识,但找到一个定义来评估在现实世界中哪种情况下 A 导致 B 是非常困难的!我们都同意下雨会导致地板潮湿(我希望……我们也能找到否认下雨的人)。但是我们如何给出一个明确的定义来区分是雨还是空气导致了潮湿呢?我们怎么知道雨是主要原因,而不是另一个未观察到的变量导致雨和地板同时变湿?尽管你想思考,但在 18 世纪,大卫·休谟已经开始思考因果关系的本质,许多哲学家也写了相关的文章。
统计学界的普遍共识是,至少在不进行实验的情况下,你无法证明因果关系。当你处理观察数据(被动获得的数据,没有经过你的实验)时,你最多能期待的是谈论相关性(概率相关性)。这就造成了一种在观察数据中明确谈论因果关系是禁忌的情况。
即使在这种情况下证明因果关系是不可能的,明确地谈论因果关系还是有好处的。第一个很容易理解:作为人类,我们关于世界如何运转的大部分知识都是观察所得。你不会对所有你知道的事情做实验。在某些情况下,这甚至是不可能的:是太阳导致了日光吗?你如何做一个实验,打开和关闭太阳?在这种情况下,你可以尝试某种替代实验,并认为这验证了最初的假设,但这也不是直截了当的。与此同时,我们都同意太阳产生了日光。第二个论点是避免误导。当你分析数据时,是因为你想得出一些结论来采取进一步的行动。如果你那样想,那是因为你认为那些行为影响了一定数量的利益(因此是利益的原因)。因此,即使你谈论技术正确性的相关性,你也要以一种因果的方式使用那些洞察力。所以,如果你的目标是因果关系,你最好明确地说出来。
从哪里开始阅读
教程
- 亚当·凯勒赫的介绍系列
- 从因果角度解读线性模型:线性结构方程建模的图形工具,Bryant Chen 和 Judea Pearl
书
- "统计学中的因果推理:初级读本 " , (DAGs 框架)Pearl J .,Glymour M .和朱厄尔 N.P
- "因果推理",(潜在结果框架)Hernán M.A .和 Robins J.M
- 《大多无害的计量经济学:一个经验主义者的伴侣》,(计量经济学的观点)安格里斯特 J.D .和皮什克 j
我是谁?我是 Aleix Ruiz de Villa(aleixruizdevilla.net),数学分析博士,曾任一些公司的数据科学主管。我住在加泰罗尼亚的巴塞罗那,我是 badass.cat 和 bacaina.cat 的联合创始人
为什么 AI ≠ ML?考虑聊天机器人创建的例子。
近年来,人工智能、机器学习和聊天机器人的会议已经将人工智能等同于机器学习,并将机器学习等同于神经网络。
过去几年围绕“机器学习”的炒作已经说服了大多数 IT 行业,即当我们找到巨大的大数据并将其交给人工智能时,人工智能就会给出自己的见解,并为不同的问题找到完美的解决方案。
为什么我们要讨论为什么 AI 不是 100%的机器学习,是因为我们想讨论我们擅长什么。我们公司,纳米科学实验室(作为 SOVA 的一部分。人工智能项目),与虚拟助手和聊天机器人的创造合作已经超过 15 年。稍后我将展示机器学习在哪里以及如何让聊天机器人受益,以及围绕它的一些神话和高期望。
我们在谈论什么聊天机器人
我们的客户是大银行、电信运营商和零售连锁店。我们为他们制作的聊天机器人是客户支持的虚拟顾问。他们的主要工作是减少联络中心的负荷。基本上,他们被放在网站上,手机应用程序中,并连接到信使,在那里他们可以与客户交谈,他们可能会对不同的产品和服务有一些问题。
聊天机器人还有其他应用(快速订购产品的按钮机器人、内部员工支持机器人、促销机器人等)。)中的每一个都执行不同的任务并具有不同的要求。这些也很有趣,但是我们改天再谈。
对于我们最大的客户,联络中心的运营成本每年高达数百万美元。一个设计良好、训练有素的聊天机器人可以为那些不停工作的操作员节省大量成本。在我们的一些案例中,聊天机器人设法承担了 50 %- 80%的所有输入请求,从而为我们的客户节省了大量资金并减少了线路负载。
作为联络中心,聊天机器人应该做几件事:
知道尽可能多的信息请求的答案(“你的费用是多少?”,“你最近的办公室在哪里?”等。),
能够识别并满足事务性请求(例如,“我的余额是多少?”),通过完成 CRM 数据库和/或计费系统中的查询,
当问题过于复杂时,能够理解,并快速、谨慎地将客户从支持或销售部门转移到现场接线员,同时保持对话的上下文。
如何准确地识别查询类型以及如何填充和更新机器人的知识库是实现的特点。
如果这项技术可以处理认知任务,例如,任务被自动化以解决客户的问题,那么它可以被称为人工智能,尽管不是好莱坞意义上的人工智能。
术语
在聊天机器人的现代“时尚”机器学习中,识别问题类型被称为意图识别,根据脚本或对话树进行对话被称为对话管理,并根据用户提示(例如,姓名、资费名称、手机号码等)分配参数。)叫做槽填充。
我们使用基于规则的方法或“正确的”方法在我们的项目中实现所有这些阶段:机器人通过可能的用户问题来学习,这些问题使用在对话框的描述语言中具有量词的模板,类似于使用正则表达式。
This is how Joseph Weizenbaum taught his ELIZA which was the first in the history of the virtual companion, and how the well-known AIML (Artificial Intelligence Mark-up Language) language was originally conceived. This was all invented in the last century, but now it’s currently the only approach to man-machine dialog in a natural language that works well and predictably. Image: Wikipedia.
有一些开放的工具可以用来构建基于规则的聊天机器人——例如 project ChatScript。但是我们创造了自己的语言——对话语言。它比 AIML 更强大、更简单、更舒适,但目前还不能用于第三方开发人员。
“正确”的方法
基于规则的聊天机器人是这样制作的:
1.问题陈述。我们与客户一起定义聊天机器人将具有的一般功能,聊天机器人应该回答哪些类型的问题(常见问题解答、网站和内部知识库通常会帮助我们)。此外,聊天机器人的身份是经过设计的(个性、风格、知识领域)。
2.创建通用模板和对话框树。数据工程师(知识库中的专家)用一种特殊的语言编写模板,这是识别可能的问题所必需的。模板可以覆盖成千上万种可能的正确语言结构。然后把它们组合成交互树,有上下文记忆,提取变量。
3.**提取查询参数。**在对话过程中,总是需要从用户请求中提取数据(以填充槽)。这是通过识别命名实体来决定的(命名实体识别)。
4.**获取外部服务。**在信息请求和事务请求中,需要调用外部服务(数据库、CRM 等)。).聊天机器人访问外部数据库,传输参数,接收信息,然后形成对用户的平滑响应。
然后是内部和外部测试,向客户介绍聊天机器人,并将其部署在我们的云中或客户的服务器上。
总的来说,似乎没有什么猫腻。但是细节决定成败。
对“正确”方法的批评
我们对基于规则的方法的主张通常是对编写模板的需求的不满。程序员、IT 主管讨厌它,就像经验法则一样。除了本能,“这是胡说八道——一切都是手工写的!”,有一句简短的话“你是认真的吗?不可能事先想到所有可能的变化——这是一项巨大的工作,产生的完整答案非常少。”
看起来是的,但是,唉,不是的。描述性对话语言的力量帮助一个模板覆盖成千上万的问题措辞变化。虽然看起来很奇怪,但编写一个丰富的模板显示出比机器学习显著更高的效率。
15 years we have been saving a massive database of templates and word databases for various industries and subject areas (banks, air transportation, retail, insurance, etc.) In general, it’s our key intellectual property that is more important than our chatbot engine and Dialogue Language.
因为我们有这样的基础,所以对于我们来说,制作一个新的聊天机器人(例如,为一家银行)或掌握一个新的主题(如零售)非常简单,总共只需要两名数据工程师额外工作 1-2 个月。
机器学习中的聊天机器人
与所描述的基于规则的方法相反,机器学习聊天机器人使用以下方案:
1.**数据摄入。**从客户端,我们从联络中心获得成千上万个对话的日志。
2.清理数据。(清理是什么意思?我们稍后会解释这一点)
3.马克舍耶夫。在清理后的数据中,我们标记意图:每个副本被分配到一个特定的类型
4.**教导。**我们将“副本+意图”数据库馈送给机器学习算法。我们向哪种算法输入数据并不重要,通常是 SVM(支持向量方法)或 DSSM(深度结构化语义模型),并对单词进行初步矢量化。
结果是我们可以按类型对输入引用进行分类。进一步假设,通过知道问题的类型,我们可以引导一个人通过相应的对话树。机器学习的爱好者当然不希望手动构建这些树。这里再次使用了意图分类器,它不再用于输入副本,而是用于辅助副本。诸如此类。
在事务性请求的正确时刻,聊天机器人使用上述实体识别来检索变量参数的值,就像基于规则的方法一样。
对 ML 方法的批评
我们公司的机器学习由 8 名员工负责。至于谈话记录,我们一直和客户保持联系。出于这个原因,我们非常清楚机器学习聊天机器人的所述实现的问题:
1.数据太少。客户通常没有对话的数据库,或者他们有,但是他们是呼叫中心的录音。这些可以用自动语音识别器打出来,但是质量非常低,需要以后做更多的工作来清理。
2.数据是敏感的。如果有数据库,客户可能无法在不违反个人数据法的情况下将其提供给我们。然后,客户端需要编辑数据库,删除任何显示客户端身份的数据。
3.**数据库里的都是垃圾。**如果客户确实有一个数据库,并且他们确实清理了它,那么稍后就会出现从数据库中清除特定人的特定答案的问题。例如,问题“我的电话余额是多少?”在该数据库将是一个具体的总和为每个特定的客户。来自训练样本的“25 美元”当然需要被丢弃,以便当 Peter 要求他的 2018 年 9 月余额时,他没有给 Kate 2016 年 12 月的余额。
4.**该数据库没有对外部数据库的引用。**为了处理事务性请求,必须有一个事务——对外部服务的访问。在对话日志中没有这些参考,只有关于凯特在 2016 年有什么平衡的答案。这种逻辑不能通过机器学习来实现,它仍然需要开发人员分析对话的日志,并将呼叫嵌入到计费、CRM 等中。聊天机器人对话框。
5.**布局仍然是手动的。**如果我们编辑数据库,剩下的就是意图的布局,这是一个很大的手工工作。是的,这样做的人有时比数据工程师的工资低 2-3 倍,但一般来说很难做布局,他们对做布局不是很仔细。除此之外,数据工程师通常执行少量的任务:查看对话、常见问题等的例子。,了解客户可以问什么以及如何问,然后写一个好的模板。
6.数据的根本不完全性。需要理解的是,无论多么大的对话日志集,它们从根本上来说都是不完整的。以英语为母语的人可以问一个过去没有人问过的问题——语法正确且有条理。如果请求中有 5 个单词,并且每个单词都有几个同义词,那么对于一个问题来说,可能的变化数量已经成千上万了。通常新问题的比例是每月 10%。机器人从过去的对话日志中学习,不能覆盖所有的新问题,然后犯错误。正是在这个地方,编写具有良好覆盖率和可变性的模板比“按区域”进行机器学习具有巨大的优势。
7.**对话焦点不佳。**识别每个阶段的“意图”与记忆答案和上下文的对话树不一样。对于高度负责的应用程序,这样的意图“猜测”是行不通的。
Image: Comicscube.Com.
我们想单独指出,机器学习系统通常是不可预测的。测试它们,尤其是完整性,是另一项复杂的工作。
也就是说,我们不能向我们的客户保证聊天机器人会以可预测的方式行动。这是一个绝对的法律要求,甚至经常由客户在合同条款中写明。
基于规则+ ML =友谊
如果有人告诉你,他们完全基于神经网络或机器学习制造了一个功能良好的聊天机器人,你要知道他们在骗你。或者说 chatbot 根本不行,或者说机器学习只占整个系统的 5%。
但是机器学习可以在以下几个方面让我们受益:
输入短语中的错别字纠正
选择单词的同义词,帮助数据工程师进行开发
对联络中心日志进行聚类,以识别频繁的请求,从而帮助数据工程师
FAQ 机器人的自动回答(有趣的技术——我们将在另一篇文章中讨论)
对信息请求的问答对的不清楚搜索
这些都是有用的应用程序,可以节省开发时间,提高聊天机器人的整体质量。
结论
这篇文章的目的是说为什么你不应该期望在聊天机器人领域从机器学习中获得快速而简单的成功
聊天机器人不能完全在机器学习中实现:机器学习是系统的一个小补充,增加了开发的效率。
聊天机器人可以而且需要基于规则的方法:这是可行的,这是一项艰巨的任务,而且它保证了质量。
人工智能不仅仅是机器学习——基于规则的聊天机器人——而且除了机器学习之外,还有专家系统、逻辑和其他领域。
围绕机器学习的宣传已经进入了我们的行业,也许很快,它也会进入你的行业。
梯度下降为什么有效?
你可能明白,但你见过吗?
我)何苦呢
首先,让我们把房间里的大象弄走。你为什么要读这个博客?首先,因为它有很棒的动画,如下图 1 所示。你不想知道这张照片里发生了什么吗?
Figure 1: A plane with its gradient. Created by author using: github.com/ryu577/pyra…
第二,因为优化非常非常重要。我不管你是谁,那应该是真的。我的意思是,这是寻找最好的科学。它让你选择你对“最好”的定义,然后不管那可能是什么,告诉你你能做什么来实现它。就这么简单。 此外,尽管最优化——作为一门完整的科学——有很多深度,但它有一个基本的一阶技术,叫做“梯度下降”,非常容易理解。事实证明,这项技术实际上是实践中应用最广泛的。至少在机器学习中,随着模型变得越来越复杂,使用复杂的优化算法变得越来越困难。所以大家就用梯度下降。换句话说,学习梯度下降,你就学会了最简单,但也是最优化中最广泛使用的技术。那么,让我们非常直观地理解这个技巧。
II)优化要点
正如我在上一节提到的,优化是非常棒的。它包括取一个单一的数字——例如,你银行账户里的钱的数量,或者你床上的臭虫的数量——并告诉你如何使它尽可能好(如果你像大多数人一样,第一种情况下高,第二种情况下低)。让我们称这个东西为我们试图优化的 z. 当然这里隐含的假设是,我们可以以某种方式控制我们想要优化的东西。假设它依赖于某个变量(比如 x,它在我们的控制之内。所以,在 x 的每一个值上,都有 z 的某个值(我们想找到使 z 最好的 x)。可能有一些等式可以描述这个图。假设 f(x,z) = 0。但是在最优化的背景下,我们需要用以下形式来表示:z= f(x)(假设原方程有利于这样分离 z 和 x)。然后,我们可以问——“x 的什么值对应最佳 z?”。如果我们有一个很好的连续函数,那么有一点我们可以肯定的说,在这个特殊的 x 处,z= f(x)的导数(一般用 f'(x)表示)将为零。
III)什么是梯度
当我们要优化的东西依赖于不止一个变量时,导数的概念就延伸到了梯度。所以,如果上面的 z 依赖于 x 和 y,我们可以把它们收集到一个单独的向量 u = [x,y]。因此,当 z= f(x,y) = f(u)时,z 的梯度变为:
就像导数一样,我们可以确定,优化 z 的 u 值,会使梯度的两个分量都等于零。 顺便提一下,梯度在任何光滑、可微函数的泰勒级数展开中起着重要作用:
Equation (1)
如你所见,右边的前两项只涉及 u,没有平方、立方或更高的幂(那些在后面的项中出现)。前两项恰好也是 u=a 附近函数的最佳线性近似。下面我们展示简单抛物面(z = x + y)的线性近似。
Figure 2: The best approximation of a paraboloid (pink) by a plane (purple) at various points. Created for this blog using: github.com/ryu577/pyra…
IV)线性函数
我们在上一节中看到,梯度可以用线性函数很好地表示。因此,我们将限制讨论线性函数。对于一个线性函数的方程,我们只需要知道它与轴的交点。 如果我们只有一个维度(x 轴),相交发生在 x=a,我们可以这样描述
Equation (2)
如果我们有两个维度(x 轴和 y 轴),并且直线在 x=a 处与 x 轴相交,在 y=b 处与 y 轴相交,则等式变为
Equation (3)
当 y=0 时,我们得到 x/a=1,和上面的等式一样。 如果我们有三维空间会怎么样?我想你知道这是怎么回事
Equation (4)
以此类推(顺便说一下,这就是你在上面的图 1 中看到的红色飞机)。 现在,我们可以看到上面所有的方程在 x,y,z 等方向上都是对称的。然而,在优化的上下文中,它们中的一个具有特殊的地位。这是我们寻求优化的变量。假设这个特殊变量是 z,在我们想把这个表示成一个优化问题的时候,需要把方程表示成 z=f(x)。如果我们对等式(4)这样做,我们得到的是
Equation (5)
我想增加我的线性函数。我应该去哪里?
这是这个博客的中心问题。你有上面方程描述的线性函数,x 和 y 在你的控制之下。你发现自己处于(x,y)的某个值。为了简单起见,我们假设在当前点 z=0。你可以沿着任何方向走 1 个单位的一步。问题变成了,你应该朝哪个方向迈出这一步?下面的图 3 展示了这个难题,展示了你可以走的无限的方向。每个方向以不同的量改变目标函数 z。因此,其中一个将最大程度地增加 z,而另一个将最大程度地减少 z(取决于我们想要最大化还是最小化它的天气)。 请注意,如果我们的控制中只有一个变量(比如 x ),这就容易多了。只有两个方向可供选择(增加 x 或减少 x)。然而,一旦我们有了两个或更多的自由变量,选择的数量就会从两个跳到无穷大。
Figure 3: The infinite directions we can move along. Which one should we choose? Created for this blog using: github.com/ryu577/pyra…
现在,我们想找出 z 变化最大的方向。所以我们反其道而行之(说,因为我们有点疯狂?).我们来寻找 z 完全不变的方向。如果你仔细观察上图,你会发现当绿色箭头与橙色线(绿色网格和红色平面相交的线)对齐时会发生这种情况。如果你继续盯着看,你可能会注意到当绿色箭头垂直于橙色线时,z 变化最大。因此,这条橙色的线似乎可以让我们对这个问题有所了解。那么橙色线是什么?很明显,这是我们的平面与代表 x-y 平面的绿色网格(我们可以沿着它移动的网格)相交的地方。x-y 平面的方程是什么?它将是 z=0。换句话说,z 在上面不变。所以,既然橙线完全位于网格上,那么它也一定在网格上处处都有 z=0。难怪当我们的绿色箭头使我们简单地沿着橙色线移动时,z 拒绝改变。
至于橙色线的方程,就是平面的方程-
和 x-y 网格;z=0 同时得到满足。这给了我们
现在,从上面橙色线的方程可以清楚地看出,当 y=0 时,x=a .所以,它与 x 轴相交的点的位置向量为 o_x : [a,0] (o 代表橙色)。同样,它与 y 轴相交的点是 o_y : [0,b]。现在我们有了直线上两点的位置向量,我们减去它们得到一个沿直线的向量(o)。
Equation (6)
现在,如果我们能证明梯度垂直于这个向量,我们就完成了。这将给我们一些直觉,为什么梯度变化 z 最大。
VI)平面的倾斜度
将第三节中梯度的定义应用于上方平面的方程(x/a+y/b+z/c=1 ),我们得到-
Equation (7)
这使得梯度:
Equation (8)
现在,我们知道两个向量要正交,它们的点积必须为零。取点积或平面的梯度(来自等式(7))和沿着橙色线的矢量(来自等式(6)),我们得到,
Equation (9)
我们知道了,梯度与垂直于橙线的方向一致,所以,它改变 z 最大。事实证明,沿梯度方向增加 z 最多,而沿相反方向(注意,这两个方向都与橙色线正交)减少 z 最多。
我将留给你们这个可视化的演示,当我们改变平面时,梯度继续顽固地指向改变它最大的方向。
Figure 4: As we change the plane, the gradient always aligns itself with the direction that changes it the most. Crated for this blog using: github.com/ryu577/pyra…
为什么领域专长被高估—第一部分
数据科学正在帮助消除的一个最基本的误解是,一个全能、无所不知的专家喜欢告诉普通人做什么、怎么吃、买什么、如何抚养我们的孩子等等。
但是,非专家篡夺旧世界秩序的例子数不胜数,证明专家是错的。
历史上的例子包括莱特兄弟,他们冒着生命危险进行修补,而不是推导物理理论。或者通过纯粹的意外发现而不是自上而下的定向研究取得的无数医学进步。
早在 21 世纪初,长期以来流行的观点是,棒球比赛中的胜利次数与球队的薪资水平高度相关。
但是比利·比恩,全棒球中薪水最低的球队的总经理,连续四次带领奥克兰运动家队进入季后赛——这是一个令人震惊的低概率事件。
他是怎么做到的?他之所以做到这一点,是因为他专注于一个棒球专家都不太重视的统计数据——基于垒位百分比(OBP):
“An Island of Misfit Toys”
一个重要的例子
不动产不能丢失或被盗,也不能被带走。用常识购买,全额支付,合理谨慎地管理,这大概是世界上最安全的投资。—富兰克林·罗斯福,美国总统
一个在美国社会仍然流传的神话是,单户住宅是好的、安全的投资,从长远来看,价格会上涨。
正如我们从上一次衰退(大约 2009 年)中看到的那样,这不是一件小事。我记得当我的同事谈论在拉斯维加斯购买 50 万美元的房子,或者同时拥有三套房子时(作为一名 24 岁的酒保),他声音中的焦虑。
我们都知道大衰退是如何结束的,但我脑海中总是浮现的是,本该给我们发出警告的专家在哪里?
我们从未经历过全国性的房价下跌——本·伯南克(2005 年美国消费者新闻与商业频道前美联储主席)
可以说,世界上最有权力的人之一,本·伯南克,告诉美国人要保持冷静,继续前进。
本·伯南克是对的吗?
让我们启动一个 Jupyter 笔记本。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inlinepd.set_option('display.max_rows', 1000)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)xlsx = pd.ExcelFile('HomePriceIndex.xls')
df = pd.read_excel(xlsx, skiprows=6)df.rename({'Date': 'Year',
'Index': 'RealHomePriceIndex',
'Index.1': 'RealBuildingCost',
'Millions': 'Population',
'Long Rate': 'LongRate'}, inplace=True, axis=1)
df = df[['Year', 'RealHomePriceIndex', 'RealBuildingCost', 'Population', 'LongRate']]df.head()
数据集来自耶鲁大学经济学家罗伯特·希勒,他是在他的书非理性繁荣中预测房价崩溃的少数经济学家之一。对于那些想跳过预处理的人,你可以在这里获得清理后的数据集。
顺便说一句,这个数据集与标准普尔现在用作美国全国房价标准的数据集相同。在希勒之前,没有可靠的房价指数可以追溯到 19 世纪末。我们站在他的肩上。
让我们继续检查dtypes并将它们转换成数值。
df['LongRate'] = pd.to_numeric(df['LongRate'], errors='coerce').dropna()
如果您检查整个数据集,主要问题是它是一个时间序列,其中频率在集合的中间发生变化。从 1953 年开始,频率从每年一次切换到每月一次,一直到 2018 年。
因为这个问题只涉及“Year”和“RealHomePriceIndex”变量,我们将把它们分离出来,使用平均值进行重新采样和聚合,并将这两个数据框架放在一起,形成一个我们可以处理的数据框架。
df_2 = df[['Year', 'RealHomePriceIndex']]
df_2.drop([851,852,853], inplace=True)# Resample 'Year' and make it into an indexdf_2['Year'].loc[0:62] = pd.date_range('1890', periods=63, freq='A')
df_2['Year'].loc[63:] = pd.date_range('1953', periods=788, freq='M')df_2.index = df_2.Year
df_2.drop('Year', inplace=True, axis=1)df_2_bottom = df_2['1953-01-31':].resample('A').mean()
df_2_bottom = df_2_bottom.astype('int')df_2 = df_2.loc['1890-12-31': '1952-12-31']
df_2 = df_2.append(df_2_bottom)df_2.index
现在,我们清理旧的 df 数据帧,我们将“RealHomePriceIndex”从其中分离出来。
# Drop these because we already have df_2
df.drop(['Year', 'RealHomePriceIndex'], inplace=True, axis=1)df.dropna(inplace=True) # Drop NaN values# Truncate by 3 rows to make it even with the rest of the DataFrame
df_2 = df_2.loc['1890-12-31':'2015-12-31']df.index = df_2.index# Finally add df_2 to df
df['RealHomePriceIndex'] = df_2['RealHomePriceIndex']df.head()
现在让我们绘制数据图表,看看伯南克是否正确。
plt.style.use('fivethirtyeight')ax = df.RealHomePriceIndex.plot.line(x=df.index, y=df.RealHomePriceIndex, legend=False, figsize=(14,8));ax.axvline(x='2006', color='red', linewidth=2, alpha=0.8)
ax.axhline(y=0, color='black', linewidth=1.3, alpha=0.8)ax.text(x='1880', y=185, s="U.S. Home Prices Stayed Roughly Flat for 100 Years",
fontsize=30, fontweight='bold');ax.text(x='1890', y=170, s="Home Prices indexed to inflation, 1890=100",
fontsize=20);ax.text(x='1992', y=25, s="2006 Peak of Bubble",
fontweight='bold', color='#CB4335');
该图最重要的特点是它与通货膨胀挂钩,所以它是美国 100 多年来房价的比较。
如果你伸出食指,追踪从 1890 年开始的图表,当指数从 100 开始到 1995 年,价格水平几乎没有任何增长,这意味着与股票在整个 20 世纪回报的 9%的股票溢价基准相比,对大多数人来说,住房并不是一种很好的投资。
在 20 世纪初,房价确实下降了大约 20 年。
这种类型的分析不涉及微积分或线性代数或任何经济学家喜欢为他们的模型使用的定量方法。
如果伯南克和其他人只是注意到房价总体上停滞了 100 年的事实,从 1995 年开始的泡沫式上涨可能会促使他们尽早采取行动。
为什么每个数据科学家都应该阅读朱迪亚·珀尔的《为什么之书》
因果关系如何进一步推进数据科学和人工智能
我做了 4 年机器学习和一年多深度学习的忠实粉丝。我为娱乐和工作建立了预测模型。我知道很多算法,从像梯度推进这样的传统算法到像 LSTM 这样的最深模型。尽管我已经获得了无数的算法,我的困惑依然存在。
算法本身无法解决的难题
如果你不是那种只关心如何减少 0.01%的误差,但试图理解你的模型的数据科学家,你可能会不时地问自己:
- 我应该把这个变量添加到我的模型中吗?
- 为什么这个反直觉的变量显示为一个预测变量?
- 为什么我再加一个变量,这个变量会突然变得无关紧要?
- 为什么相关性的方向和你想的相反?
- 为什么在我以为会更高的时候相关性为零?
- 当我将数据分解成子群体时,为什么关系的方向会反转?
随着时间的推移,我已经建立了足够的意识来解决这些基本问题,例如,我知道双变量关系可能与多变量关系非常不同,或者数据会受到选择偏差的影响。但它缺乏一个坚实的框架,我可以肯定地说服自己和其他人。更重要的是,我可能不会意识到,直到一段关系与我的感觉相矛盾!重要的是要注意,当有矛盾时,它已经出了大问题。没有地图,在我知道自己迷路之前,我怎么能确定我没有走错目的地呢?
是的,联想和因果都可以预测
当我读到朱迪亚·珀尔的《为什么之书》时,这个困惑已经完全消失了。现在它是我的数据科学指南。这里我简单告诉你为什么。简而言之,就是因果关系,因果关系。预测未来有两种方法:
- 我知道看到 X,就会看到 Y(联想)
- 我知道 X 导致 Y(因果关系)
两种方式都可以预测。这两种方法可能会产生相似的模型性能。那么,有什么区别呢?为什么要费心去理解因果关系?如果它是一个更强大的工具,因果关系可以通过数据来研究吗?
随机对照试验以及为什么有时不可行
作为金标准,随机对照试验(RCT)(或市场营销中所谓的 A/B 测试)用于测试因果关系。特别地,在临床试验中,该技术用于研究特定药物/治疗是否可以改善健康。
随机化是为了最小化选择偏差,以便我们知道,例如,我们不会选择性地将治疗应用于更多的患病患者,从而导致明显更低的收益,如果我们不选择更多的患病患者,就不会有这样的收益。对照是作为一个基准,以便我们可以比较接受治疗患者和未接受治疗的患者。作为一种标准,还有一种所谓的双盲机制,使患者不知道他们是否实际接受治疗,以屏蔽心理影响。
虽然这是黄金标准,但在某些情况下可能不可行。例如,如果我们想研究吸烟对肺癌的影响,显然我们不能强迫某人吸烟。另一个例子:如果我想知道如果我读了博士,我会走多远,这肯定是不可能的,因为时间只会向前推移。毕竟,一项实验会受到很多限制,例如,样本是否能代表整个人群,是否符合伦理等等。
从观察数据到因果分析?
如果进行一项实验不切实际,能否利用观测数据研究因果关系?观察数据意味着我们不能做任何干预,我们只能观察。这可能吗?
不管你懂不懂统计学,你可能听说过这样一句话,相关性并不意味着因果关系。然而,它没有告诉你如何研究因果关系。这里的好消息是,读完这本书后,你将有一个更好的框架来研究因果关系,并确定在给定数据的情况下你什么时候可以或不可以研究它,因此你知道你应该收集什么数据。
本书的要点
我在这里不涉及详细的技术或公式。一方面,我刚刚读完这本书,我不是因果关系的专家;另一方面,我鼓励你阅读这本书,以免错过任何见解,因为我可能会有偏见。
尽管大数据非常突出,但将所有东西都添加到您的模型中可能是错误的
在大数据时代,拥有几乎无限的计算能力和数据,您可能会忍不住将每个数据放入深度神经网络进行自动特征提取。我也动心了。
这本书告诉你一些场景,添加某些变量需要谨慎。例如,您想要预测 Z,而基本关系是 X →Y → Z(箭头表示“原因”,在这种情况下 Y 是一个中介,它调解从 X 到 Z 的影响)。如果你在模型中加入 X 和 Y 作为变量,Y 可能会吸收所有的“解释力”,这将 X 踢出你的模型,因为从 z 的角度来看,Y 比 X 更直接。这阻止了你研究 X 和 z 之间的因果关系。你可能会说,预测没有区别,不是吗?是的,从模型性能的角度来看,但是如果我告诉你 Y 和 Z 非常接近,以至于当你知道 Y 的时候,Z 已经发生了。
同样,不增加某些变量也是有风险的。你可能听说过伪相关或混杂这个术语。基本思想可以用这个关系式来说明,Z← X → Y(即 X 是混杂因素)。注意,Z 和 Y 之间没有因果关系,但如果不考虑 X,Z 和 Y 之间似乎有关系,一个著名的例子是巧克力消费量和诺贝尔奖得主的编号之间的正相关关系。原来共同的事业是一个国家的富裕。同样,你可能没有预测的问题,但是你可能很难向别人解释你的模型。
当然,这个世界比我们想象的要复杂。但这正是领域知识发挥作用的地方,因果图是对一切如何工作的简单而强大的表示。
书中有更高级的脑筋急转弯和现实生活中的例子。幸运的是,所提供的规则使它们易于遵循。
因果关系可能更强
因果关系可能会随着时间而改变。如果您希望您的模型随着时间的推移而变得健壮。以 Z← X → Y 为例,如果关系 Z← X 变弱了,对 X → Y 建模不会对你有影响,但对 Z 和 Y 建模会有影响。
从另一个角度来看,如果我们相信因果关系比关联更强,这意味着如果我们从一个领域借用到另一个领域,这种关系更有可能成立。这就是书中提到的所谓的迁移学习/可移植性。这本书引用了一个非常有见地的可移植性的例子,它描述了我们如何透明地执行调整,以便我们可以将因果关系从一个领域转移到另一个领域。
干预变得更加容易,尤其是在数字时代
干预实际上是研究因果关系的巨大动机之一。仅仅通过学习联想的预测模型不能给你干预的洞察力。比如不能在 Z← X → Y 中改变 Z 影响 Y,因为没有因果关系。
干预本身是一个更强大的工具,因为你可以理解潜在的关系。这意味着,你可以改变政府政策,让我们的世界变得更美好;你可以改变治疗方法来拯救更多的病人,等等..这就是你救了病人和你预测病人会死却不能干预的区别!也许这是数据科学家能做的最好的事情,只有用这个工具包!
在这个数字时代,干预需要更少的努力,当然,你有更多的数据来研究因果关系。
这是我们推理的方式,因此这可能是通向真正人工智能的途径
最后是关于人工智能。推理是智慧的必要组成部分,也是我们的感觉。在一个封闭的世界中,有明确定义的奖励和规则,强化学习通过探索和利用的平衡来实现卓越,以在预定义的规则下最大化预定义的奖励,并在所采取的行动改变状态进而决定奖励的机制下。在这个复杂的世界里,这种机制不太可能成立。
从哲学的角度来说,我们应该明白我们是如何做决定的。最有可能的是,你会问,“如果我这样做,会发生什么;如果我那样做,然后呢?”。注意,你只是创造了两个没有发生的想象世界。有时,当你反思并从错误中学习时,你可能会问,“如果我这样做了,那就不会发生了。”再说一次,你创造了你的反事实世界。事实上,我们比自己想象的更有想象力。这些想象的世界是建立在因果关系上的。
也许机器人可能有自己的逻辑,但如果我们想让它像我们一样,我们需要教它们推理。这让我想起了 DeepMind 发表的一篇论文,“测量神经网络中的抽象推理”(链接),这篇论文显示了将原因作为训练数据的一部分来添加可以增强泛化能力。这篇论文让我深受启发,这正是我们教机器人推理的情况!而且是从模式联想到推理的飞跃。
我推测因果关系有助于概括。我没有证据,但这是我们理解世界的方式。我们被教导一两个例子,然后我们学习因果关系,我们在任何我们认为适用的地方应用这个关系。
把一切都放到一个不经意的图中,或许推理是智商测试的问答混杂因素?我们能否认为推理导致人们设计问题中的那些模式,并且它也“导致”答案?或者,它可以是一个中介,将问题转化为推理,进而导致答案?或者两者都有?请注意,我故意假设问题和答案之间没有偶然的关系,因为它们纯粹是模式关联。
Reasoning as a Confounder
Reasoning as a Mediator
它们只是我的胡乱猜测。我不知道答案。我不是全职研究员,也不是哲学家。但我可以肯定的是,当我们着手解决一个问题时,因果关系提供了一个新的视角。因果关系和深度学习之间的协同作用听起来很有希望。
最终想法
我承认这篇文章的主题可能有点咄咄逼人,但我觉得有责任向大家推荐这本书。它告诉我们因果关系的全部潜力,这是我们与生俱来的东西,但我们可能会在大数据时代忽略它。框架,do-calculus,已经存在。它只是等待我们部署并付诸实践。
作为一名从业者,有了这个强大的工具,我相信我们可以产生更好的影响。
为什么每个数据科学家都应该使用 Dask?
2021 年更新:如果你正在寻找运行 Dask 的快捷方式,请尝试 SaturnCloud ,它甚至提供免费计划。
Dask 是我遇到的最具革命性的数据处理工具。如果你喜欢熊猫和 Numpy,但有时又苦于数据无法放入 RAM,那么 Dask 绝对是你所需要的。Dask 支持 Pandas dataframe 和 Numpy 数组数据结构,既可以在本地计算机上运行,也可以扩展到集群上运行。本质上,您只需编写一次代码,然后选择在本地运行它,或者使用普通的 Pythonic 语法部署到多节点集群。这本身就是一个很好的特性,但这并不是我写这篇博客并说每个数据科学家(至少是使用 Python 的)都应该使用 Dask 的原因。对我来说,Dask 的神奇之处在于,只需进行最少的代码更改,我就可以利用笔记本电脑上已有的处理能力并行运行代码。并行处理数据意味着更少的执行时间、更少的等待时间和更多的分析时间!这篇博文将讨论 dask.delayed 及其如何融入数据科学工作流。
Photograph from pixabay.com/en/skiing-d…
“Dask 为分析提供高级并行性,为您喜爱的工具提供规模化性能”——【dask.pydata.org/en/latest/
熟悉 Dask
作为对 Dask 的介绍,我将从几个例子开始,向您展示它完全不引人注目的自然语法。这里的主要收获是,您可以使用您已经知道的东西,而无需学习新的大数据工具,如 Hadoop 或 Spark。
Dask 引入了 3 个并行集合,能够存储大于 RAM 的数据,即数据帧、包和数组。这些集合类型中的每一种都能够使用在 RAM 和硬盘之间分区的数据,以及分布在集群中的多个节点上的数据。
Dask 数据帧由较小的拆分 Pandas 数据帧组成,因此允许 Pandas 查询语法的子集。以下是在 2018 年加载所有 csv 文件、解析时间戳字段,然后运行 Pandas 查询的示例代码:
Dask Dataframe example
Dask 包能够存储和处理内存中无法容纳的 Pythonic 对象集合。Dask 包非常适合处理日志和 json 文档集合。在这个代码示例中,2018 年的所有 json 文件都被加载到 Dask Bag 数据结构中,每个 json 记录都被解析,并使用 lambda 函数过滤用户:
Dask Bag example
Dask 数组支持 Numpy 类切片。在以下代码示例中,HDF5 数据集被分成(5000,5000)个维度块:
Dask Array example
利用 Dask 进行并行处理
该部分的另一个准确名称是“顺序循环的死亡”。我经常遇到的一个常见模式是循环遍历一个项目列表,并用不同的输入参数对每个项目执行一个 python 方法。常见的数据处理场景包括,为每个客户计算功能聚合或为每个学生执行日志事件聚合。Dask Delayed 允许并行处理多个项目,而不是按顺序对循环中的每个项目执行函数。随着 Dask 的延迟,每个函数调用被排队,添加到执行图和调度。
编写自定义线程处理或使用 asyncio 对我来说总是有点乏味,所以我甚至不打算向您展示比较示例。有了 Dask,您不需要改变您的编程风格或语法!您只需要用@dask.delayed 注释或包装将要并行执行的方法,并在循环代码后调用 compute 方法。
Example Dask computation graph
在下面的例子中,用@dask.delayed 对两个方法进行了注释。三个数字存储在一个列表中,必须对它们进行平方,然后集体求和。Dask 构建了一个计算图,它确保“平方”方法并行运行,输出作为一个列表整理,然后传递给 sum_list 方法。计算图可以通过调用。可视化()。打电话。compute()执行计算图。正如您在输出中看到的,列表项没有按顺序处理,而是并行运行。
Dask Delayed demonstration
可以设置线程的数量(即 dask . set _ options(pool = thread pool(10)),也可以很容易地切换到您的笔记本电脑或个人桌面上使用的进程(即 dask . config . set(scheduler = ' processes))。
我已经说明了使用 Dask 向您的数据科学工作流添加并行处理是微不足道的。我最近使用 Dask 将用户点击流数据分成 40 分钟的会话,并为聚类建立用户聚合功能。请分享你如何使用 Dask 的描述,作为对这篇博文的评论。快乐 Dasking…..
额外资源
- dask cheat sheethttps://dask . pydata . org/en/latest/_ downloads/dask cheat sheet . pdf
- 16 分钟大 Dask 概述视频【www.youtube.com/watch?v=ods… T3
- 详细 Dask 概述视频(40 分钟) www.youtube.com/watch?v=mjQ…
为什么每个人都是数据科学家
Imagevia pexels.com
最后期限快到了。我写了大约 30 页,至少还要再写 30 页才能达到提交硕士论文报告的最低要求。事情变得越来越困难。我花了大部分时间试图实现一篇论文,因此,花了大部分时间编写和重写代码。当我真的不得不把我的任务写下来的时候,那就没什么意义了。例如,我花了一个多星期的时间收集数据,并用相关的标签进行标注。就是这样。我只是描述了我一个星期所做的事情。排成一行。我可以肯定地进一步描述它,但它主要是关于重构代码,一些不会(也不应该)出现在最终报告中的东西。
我和我的父母谈过这件事。现在,澄清一下,他们不是很懂技术,而且他们都没有在技术部门工作过。充其量,他们是不情愿的科技消费者。即使他们并不真正理解问题,他们也会试着同情和帮助。有一个建议,他们几乎总是给。问你的学长。问问他们是怎么做到的。什么都问他们。在每一个阶段。
你可能会问,上面的故事和文章的标题有什么关系。早些时候,当计算机缺乏今天的处理能力时,我们的大脑就是为我们执行所有分析的超级计算机。几十年来,我们的大脑一直在做我们现在在 CPU 和 GPU 上做的事情——尽管规模小得多。基本上,当我的父母让我问我的学长他们是如何着手写论文的,他们让我收集数据进行分析。然后这些数据被处理,一个模型被开发出来(在我们的大脑中),这个模型概括了他们对我们当前处境的体验。然后这个模型预测在我们的情况下会发生什么。事实上,作为人类,我们一直都在这样做。我们阅读前几年的试题,以了解问了什么样的问题,然后尝试预测未来考试中的问题。我们阅读亚马逊上关于产品的评论,并试图预测/理解产品可能的行为。我们和我们的朋友谈论他们在街上新开的餐馆的经历,并试图预测我们可能在餐馆的经历。
数据科学中的过程没有太大的不同。根据 CRISP-DM 在行业中组织数据科学项目的方法,数据科学任务包括以下主要阶段。它包括业务理解、数据理解、数据准备、建模、评估和部署。在我的例子中,业务理解阶段是为了找到一种方法来成功地完成我的硕士论文。根据父母的建议,我可以进入数据理解和数据准备阶段。这基本上就是从我的学长那里收集和理解关于他们如何完成硕士论文的信息。然后,我会在我的大脑中创建一个模型,它将理解我与之交谈的每一位学长的长处和短处,以及他们论文期间各自的结果。最后,我将把这些发现应用到我的情况中,这将构成评估和部署阶段。
我开始相信,自从人类存在以来,数据科学就一直存在。这似乎有点夸张,但事实并非如此。只是,在更早的时候,它只是在大脑中(就像我之前提到的,在一个更小的范围内),而现在它是通过计算机来完成的。作为人类,我们的自然倾向是害怕未知。默认情况下,未来发生的事情对我们是隐藏的。任何有助于我们解开谜团的信息都是珍贵的。所以我们都是数据科学家,除了我们总是把科学当成一门艺术。最后,不被理解和工作的科学无论如何都是艺术!
参考文献:
1.T3【https://www.the-modeling-agency.com/crisp-dm.pdf】T5
为什么机器学习模型中的特征权重没有意义
不要根据 ML 模型的权重来做决定
当我看到我们的客户爱上了 BigQuery ML 时,一个老问题浮出了水面——我发现他们无法抗拒赋予特征权重意义的诱惑。
“在我的模型中,预测客户终身价值的最大权重,”他们可能会说,“是客户是否收到了高管的感谢电话。”或者,他们可能会看到负权重,并得出一个可怕的结论:“位于城市地区的商店导致负满意度。”
请不要这样做。不要让你的主管给每个客户打电话!不要关闭你所有的城市位置!
Don’t make decisions based on the weights of your machine learning model
不要根据你的机器学习模型的权重来做决定。为什么不呢?
分类权重是自由参数
我们举个简单的例子。假设您想要创建一个模型来预测硬币的重量。你的机器学习模型将有三个输入——硬币的直径、硬币的厚度和硬币的材料。
也许在对您的大型硬币数据集训练模型后,您最终会得到这个模型:
Model to predict the weight of a model
该材料的负面术语不代表任何东西。例如,我们可以将部分权重移入“偏差”项,并创建一个等效模型:
This model is equivalent to the one above
换句话说,分类变量为模型如何分配权重提供了很大的余地。这完全是随机的。
因变量也提供自由参数
假设结果是,在你的现实世界数据集中,更大的硬币也更厚。那么,你的模型可能是:
因此,现在直径特征的权重为负,因为它基本上抵消了赋予厚度的额外正权重。
显然,较大的硬币会更重,但因为它们在我们收集数据集的真实世界中也更厚,所以单个要素权重不会反映这一点。
不要做就是了
底线是,你不能从重量的大小或重量的符号得出结论。作为人类,我们需要可解释性,但在现实世界的数据集中,这可能相当困难。
像置换输入、石灰和综合梯度这样的方法有些帮助,但是除非你也清楚地知道特征间的依赖关系,否则基于这些更复杂的方法做出昂贵的决定是危险的。特性重要性是特定模型中的重要性,通常不会转化为现实生活中的重要性。
真的,不要
预测终身价值或客户满意度的模型是很好的——您肯定可以使用这些模型来确定哪些客户需要照顾,哪些交易需要调查。这是因为该模型是在一个大型数据集上训练的,以准确预测这一点。
然而,与单个特征相关的权重是不可解释的。不应使用输入特征量(“高管销售电话具有巨大的权重”)或特征符号(“城市商店导致满意度低”)来得出结论。你不应该使用一个预测终身价值的模型来强制要求每个客户都需要收到一封来自高管的个性化邮件。
为什么未来的人工智能应该是老师而不是先知
请少预测,多洞察。
Taken from pexels
虽然现在开发算法是我的工作,但我仍然对深度学习和大部分机器学习持有健康的偏见。尽管它做出了强有力的预测,但我还没有看到它产生多少对社会有价值的直接见解。如果我们自己不能从算法中学习,那么学习算法有什么意义呢?
好吧,我承认,有时候我们通过观察向他们学习。例如,通过观察算法正在做什么,人类象棋和围棋选手正在变得更好。当然还有很多东西要学。但是,如果算法能立即告诉我们为什么,岂不是更有效率?
黑匣子的问题是
正如 Pentland 教授在最近的 Edge conversation 中描述的那样,问题是这些算法没有使用我们目前拥有的所有物理和因果知识。只是愚蠢的神经元拼凑出无限多的小近似值。它不能一概而论,因此仍然容易出错。
当算法无法理解的新数据到来时,它没有意识到这一点,只是变得疯狂。
最重要的是,它不知道训练数据中所有可能的偏差。
当它出错时,我们无法向客户和经理解释原因。当然也不会对法官和陪审团说,如果你发现自己因算法决策出错而被送上法庭。
彭特兰教授描述了在我们的人工智能中使用更多的物理功能。使用已知的因果结构。来制造洞察发生器,而不仅仅是做预测。这种方法比目前的暴力算法更吸引我。
为什么我们选择白盒
在我的工作中,数学家、领域专家(物理学家)和业务经理之间会就算法进行无休止的讨论。最终,我们希望建造智能机器,在物理可能的边缘运行。
数学家和数据科学家提出了许多他们想使用的新奇算法。虽然在一个封闭的行业中仍然很难找到足够多的好数据,但它们有时确实有效。
物理学家谴责了其中的大部分,因为它们没有使用真实世界的信息。那么我们怎么能相信他们输出的东西呢?
业务经理想要业绩保证。他们想要控制和责任。我们怎么得到这个?
我们最终选择了更多的白盒方法。期望多项式或正弦函数的线性回归。也许是简单的决策树。如果需要,一些贝叶斯规则。用已知的物理约束来规范一切。通过正确的努力,结果通常表现得与任何神经网络方法一样好,但好处是知道为什么。
除此之外,我们还使用算法,利用我们对数据行为的了解来监控传入的数据。因为如果数据以意想不到的方式变化,我们就不能再相信我们的输出预测。
然后我们得到我们可以控制的算法,并解释它们何时出错。然而,他们不会自动更新他们的物理假设。同样地,它们也不会教我们任何我们不知道的世界。
支持黑盒
我仍然想为黑盒算法辩护。
1.他们工作
首先,它们可以工作得非常好!目前的深度神经网络非常棒,尤其是对于那些拥有所有数据的人来说。没有更好的方法来检测猫的图像,或者把它们画成梵高的风格。我们一直在尝试的一个很好的应用是使用这些黑盒算法作为基准来测试我们的白盒是否丢失了一些信息。
2.他们老了
支持黑盒算法的另一个理由非常简单。我们已经每天都信任他们。尽管心理学和神经科学取得了很大进步,但我们对自己的大脑却知之甚少,更不用说社交网络的运作了。
我们的大脑几乎是一个黑匣子。然而,我们信任他们,因为他们经常给我们口头陈述他们的内部推理。然而,我们也知道我们的头脑充满了偏见,经常会感知到与实际不同的世界。
3.它们可以被改进
也许我们可以通过创建输出一些冗长的基本原理的算法来使用这些知识。如果我们问它为什么做了某个预测,它会给自己一些合理的解释。DARPA 称之为人工智能的第三次浪潮。例如,如果 HR 算法拒绝了一个候选人,它会说它是根据人的肤色拒绝的。之后我们可以说:“不,不,那是不可接受的,请更新你的神经网络”。然后,它可能会相应地这样做,或者只是提出更好的理由。不利的一面是,我们可能不得不处理说谎算法的可能性。
洞察网络
我们有一个有影响力的同事喜欢贝叶斯网络。在这些方法中,您将大量观察结果和根本原因与它们的基本比率拼凑在一起,并使用贝叶斯规则作为连接。当新的观察结果出现时,所有的概率都会更新,并且可以确定一个可能的原因。后来你就知道推论是如何发生的了。
它不能教你新的观察,但是它对复杂环境中的根本原因分析很有帮助。我会说这是未来许多有趣的途径之一。
你想要什么样的老师?
看,你可以说 AI 已经在教我们了。你整天向搜索引擎提问,得到回答作为回报。如果你正确地训练它们,算法可以给你提供有价值的知识。在 Medium 上,我向世界各地的作家学习,通过 Medium 的人工智能来学习。
然而,你不能问它为什么给你那些答案和文章。好的教学是一个开放的双向过程。只要黑盒的表现优于白盒,创造赚钱神谕的人就没有动力改变他们的方式。这意味着要靠世界其他地方来培养我们未来的教师。我真的希望更多的人觉得这值得努力。
为什么要用大量数据进行深度学习?
吃一碗面条对我来说从来都不容易。现在我不怪筷子(还没学会怎么用筷子),而是讨厌面条里的卷心菜。通过整理这些美味的食物,我在狼吞虎咽之前,干净利落地挑出卷心菜丝。
我如何区分一条卷心菜和一根面条?如果不是因为在技术领域模仿人类神经元模型的重要性日益增加,我可能永远不会考虑这个问题。
为了试图复制令人惊叹的人类智能,大量的努力被用来将机器变成像人类一样的理性生物。这不仅仅是另一种时尚,而是艾伦·图灵的一个想法,他相信训练机器从过去的经验中学习。
很快,机器开始玩跳棋和象棋,击败人类冠军。尽管游戏很有趣,但更大的教训是,如果人工系统能够像我们一样“学习”,并将获得的智能应用到现实生活场景中,人工系统会变得多么有用——想想自动驾驶汽车。
学习的进化:
编程例程实现了一定程度的自动化,但逻辑和代码必须由人来输入。人工智能的概念,虽然最初与神奇的机器人联系在一起,但很快就缩小到预测和分类分析。
决策树、聚类和贝叶斯网络被认为是预测用户音乐偏好和对臭名昭著的垃圾邮件进行分类的手段。虽然这种传统的 ML 方法为许多分类问题提供了简单的解决方案,但仍在寻求一种更好的方法来像人类一样无缝地识别语音、图像、音频、视频和文本。这催生了各种深度学习方法,这些方法主要依赖有史以来最好的学习机制——人类神经元,并在最近使脸书、亚马逊、谷歌等科技巨头对深度学习着迷。
尽管最近人们的兴趣有所扩大,但早在 1957 年,弗兰克·罗森布拉特就设计出了第一台模拟单个神经元活动的感知机。我怎么能不举大脑在这里工作的例子呢!
虽然解码人脑的工作本身很难捉摸,但我们知道的是,大脑通过在树突层中传播电信号来惊人地识别物体和声音,并在超过阈值时触发积极信号。一个感知器,如下文所述,就是基于这一点而设计的。
Image Source : https://medium.com/@debparnapratiher/deep-learning-for-dummies-1-86360db18367
当输入的加权和超过阈值时,输出被触发。现在我们这里只有一个单层感知器,它只对线性可分函数起作用。一些简单的事情,比如画一条线,一边是白色的绵羊,另一边是黑色的。现实世界中并非如此。
图像识别——神经网络的主要应用领域之一,处理的是识别隐藏在像素数据后面的大量 特征 。为了解读这些特征,采用了一种多层感知器方法。与感知器类似,可以看到输入层和输出层,在输入层和输出层之间有许多“隐藏层”。
Image Source: http://neuralnetworksanddeeplearning.com/chap6.html
隐藏层的数量决定了学习的深度,找到正确的层数需要反复试验。这些神经网络中的“学习”部分是这些层调整最初分配给它们的权重的方式。
虽然看到了各种学习类型, 反向传播 被视为一种常见的方法,其中分配随机权重,将所看到的输出与测试数据进行比较,并通过比较两者来计算输出中的误差(即实际输出相对于预期输出)。现在,紧邻输出层的层调整其权重,导致后续内层的权重调整,直到错误率降低。
在下图中可以看到一种高级而实用的查看隐藏图层的方法。我确实应该向猫和狗道歉,因为它们已经无数次地参与到“学习”实验中来了!
虽然在示例中每个层对应于一个特定的功能看起来很简单,但是隐藏层如何工作的可解释性并不像看起来那么容易。这是因为,在典型的无监督学习场景中,隐藏层被比作黑盒,它们做它们所做的事情,但每一层背后的推理仍然像大脑一样是一个谜。
http://fortune.com/ai-artificial-intelligence-deep-machine-learning/
总之,深度学习与其他机器学习方法有何不同?
一个简单的答案就是所涉及的训练数据量和所需的计算能力。
在我阐述差异之前,人们必须理解深度学习是实现机器学习的一种手段,并且存在许多这样的 ML 方法来实现期望的学习水平。深度学习只是其中之一,由于所需的人工干预水平最低,它正迅速受到欢迎。
也就是说,传统的 ML 模型需要一个叫做的特征提取的过程,程序员必须明确地告诉在某个训练集中必须寻找什么特征。此外,当任何一个特征被遗漏时,ML 模型不能识别手里的物体。这里的重点是 ie 的算法有多好。程序员必须记住所有可能的猜测。否则,无人驾驶汽车很难发现道路上各种各样的路标和无数的物体,这种情况会危及生命。
Image Source: Matlab tutorial on introduction to deep learning
另一方面,深度学习是由各种例子的大型数据集提供的,模型从中学习要寻找的特征,并产生带有概率向量的输出。这个模型会自己“学习”,就像我们小时候学习数字一样。
Image Source: Matlab tutorial on introduction to deep learning
太好了!那么我们为什么不早点从深度学习开始呢?
多层感知器和反向传播方法是在 20 世纪 80 年代从理论上设计的,但由于缺乏大量数据和高处理能力,muse 逐渐消亡。自从 大数据和英伟达超级强大的GPU问世以来,深度学习的潜力正受到前所未有的考验。
现在已经有很多关于数据集需要多大的争论。尽管有些人声称更小但多样化的数据集就可以了,但你希望模型学习的参数越多,或者手头的问题越复杂,训练所需的数据也就越多。否则,拥有更多维度但数据量小的问题会导致过度拟合,这意味着你的模型实际上抢走了它的结果,并且只对你训练的集合有效,从而使分层学习无效。
为了验证大数据的必要性,让我们来看三个大容量训练数据的成功场景-
- 脸书 著名的现代 人脸识别系统,恰如其分地称为“ DeepFace ”,部署了 400 多万张 4000 多个身份的人脸图像训练集,在标注集上达到了 97.35%的准确率。他们的研究论文在许多地方重申了这种大型训练集如何帮助克服过度拟合的问题。
- Alex Krizhevsky——开发 AlexNet 并与 Geoffrey Hinton 一起参与谷歌大脑事业的人和其他学者,描述了一个涉及手眼协调的机器人抓取 的学习模型。为了训练他们的网络,总共收集了 800,000 次抓取尝试,机械臂成功地学习了更广泛的抓取策略。
- Andrej kar pathy,特斯拉的人工智能总监,在斯坦福大学攻读博士期间使用神经网络进行 密集字幕——识别图像的所有部分,而不仅仅是一只猫!该团队使用了 94,000 张图片和 4,100,000 个基于地区的字幕,从而提高了速度和准确性。
Andrej 还声称他相信他们的座右铭是保持他的数据大,算法简单,标签弱。
那么你的数据有多大?
支持该论点的另一方是最近的一篇关于深度面部表征的研究论文使用小数据,面部识别问题用 10,000 张训练图像解决,并发现与用 500,000 张图像训练的问题相当。但同样的情况尚未在深度学习目前涉及的其他领域得到证明——语音识别、车辆、行人和自动驾驶车辆中的地标识别、NLP 和医学成像。还发现迁移学习的一个新方面需要大量预先训练的数据集。
在证明这一点之前,如果你正在寻求在你的业务中实施神经网络,比如微软的销售团队如何使用 NN 来推荐要联系的潜在客户或要推荐的产品,你需要访问大量数据,正如百度前首席数据科学家、广受欢迎的深度学习专家吴恩达所说,他将深度学习模型等同于需要大量数据燃料的火箭发动机。
现在,当我回去从我的面条中挑选卷心菜的时候(感谢我惊人的大脑),你为什么不开始向你的人工神经网络输入丰富的数据呢!
本文最初发表于刮刀厂。
为什么 Google Dataset 可以彻底改变数据科学界
让我们面对现实吧,数据集搜索比数据清理更差,或者一个悖论,如果我们按照我们的要求精心设计地收集数据,数据清理将需要更少的努力。
但并不是每次阳光普照,也不是每次我们都得到干净的完全格式化的数据,每一列都符合我们的要求,每一行都按照该列提供的参数显示所有值。事实上,我可以说你肯定不会得到完美的数据集来满足你的要求。请注意,我代表的是现实世界问题的这些场景。
现在, Anthony Goldbloom 和 Ben Hamner 已经完全理解了这个问题,他们创建了一个网站纯粹专注于提供数据集和主持数据科学家之间的竞争,而不担心他们提供的数据集。
Kaggle website on April 2010
现在仍然要注意的是,这是在 2010 年的时候,当时比特币的价格仅为 0.08 美元,人们需要四年多的时间才能尝到甘的味道。
时光飞逝,现在我们已经有了一个伟大的数据科学家社区和专注于人工智能和深度学习的高端 GPU 社区。Kaggle 还在热情的数据科学家中建立了一个特殊的位置,并为他们的网站添加了许多功能。
到目前为止,Kaggle 一直是最可靠的平台,用于举办机器学习比赛,而不是对数据集感到好奇。
但是就像你“不要以貌取人”一样去 Kaggle。虽然 Kaggle 仍然是最好的竞争场所,但它不是你在现实生活中能得到的。
对于那些从事分析和大数据工作的人来说,过去几年就像梦想成真一样。有一个新的职业…
www.kdnuggets.com](www.kdnuggets.com/2016/10/big…)
因此,我们必须在网上搜索,以获得我们机器学习算法的现成数据集,或者如果你想要特定地理区域或特定人口统计的数据集,那么你必须收集数据。
但是搜集数据在 T2 很有争议,因为从技术上讲,从不同的网站搜集数据在 T4 是非法的。此外,它需要大量的计算速度和能力来收集数据。因此,这给数据科学家收集数据带来了严重的难题。
然后是谷歌数据集。
到目前为止,谷歌数据集仍处于测试阶段,但它已经在数据科学界获得了非常积极的回应。
还有很多更多的 …。
现在谷歌数据集帮助你从各种网站获取搜索数据。即使在测试阶段,我也要说它比其他任何提供数据集搜索的平台都要好。
此外,GoogleAI 还表示,它将增加一些功能,例如获取特定地理位置的数据集,甚至直接可视化数据。
这让我很兴奋,因为这是执行机器学习 ie 的第一步。使用 google dataset 收集数据集将会更加令人兴奋。
为什么选择 GPU?
在深度学习社区中,GPU 支持的机器和集群将大大加快训练神经网络的时间,这已经不是秘密。在本文中,我们将研究梯度下降的运行时间,以及 GPU 在哪些方面降低了时间复杂度。
伪代码,梯度下降(为了简洁省略了一些细节)
While (k < max_iterations):
select batch size n
For each instance in n:
Calculate network output
For each weight dimension m:
# arbitrarily chosen update algorithm
delta_wi = delta_wi + eta * (desired - output) * x(n)i
For each weight dimension m:
wi(k+1) = wi(k) + delta_wi
k += 1
该算法以 O(knm)运行,(丢弃计算网络输出所花费的时间,因为这完全依赖于网络架构,如果你在做典型的矩阵向量运算,W^TX).,则在每个节点可以是 O(m)
O(knm): 循环的 k 次迭代,批量大小的 n 个实例,权重的 m 维。
然而,神经网络算法的最佳特性之一是它们对并行化的可扩展性。我们能够将批量更新中的 n 个实例和 m 个维度拆分到我们 GPU 上的 c 个不同内核中。
**NVIDIA GPU 通常有> 1,000 个内核,**相比之下,CPU 速度快得惊人,但只有大约 4 到 8 个内核。这对我们的神经网络训练意味着什么?
这些内核允许我们将我们的批处理(n/c)分开,并在每个内核上并行运行训练过程。由于梯度下降更新网络中权重参数的方式,这是可能的。GD 不是在每个训练步骤后立即更新权重,而是聚集该批的误差,然后在计算完该批中所有实例的更新后更新权重。此外,权重的更新可以分开,因为这些操作也彼此独立地运行。
感谢阅读,我希望这能帮助你获得一些关于 GPU 和梯度下降算法的直觉!如果你有兴趣尝试 GPU,我强烈推荐 Google Colab 运行时。
CShorten
Connor Shorten 是一名计算机科学学生。对软件经济学、深度学习和软件工程感兴趣。
为什么伟大的故事在媒体上失败了,你能做些什么?
Collage of my 2018 stories (Photocollage.com)
以下是我在分析 2018 年媒体故事时发现的一些令人惊讶的事情
是什么让一篇文章在媒体上疯传?哪些是人们真正阅读的?是什么驱使他们点击珍贵的拍手按钮,他们又是什么时候爱上它的?
这些都是每个作家心中的疑问。我们将在这里回答他们。我们将充分利用 Medium 提供的稀疏但有用的统计数据。然后,我们将从一年多来发表的一百万篇媒体报道中获得更多的见解,这些报道是由 Harrison Jansma 从公共故事卡片中收集的。
这也反映了我作为一名作家在媒体上的一年,突出了一些突出的故事,并确定了一些关于提升的关键要点。
我的 2018 上媒
虽然我写博客已经有几年了,但我的出版之旅始于今年早些时候。我已经在 TDS 上发表了我所有的 14 篇数据科学文章,几乎是每月一篇。非常感谢 TDS 团队构建了这个社区,并能够接触到如此高质量的读者群。
我的帖子面向三类读者:a) how-to 文章,帮助那些有志于数据科学事业的,b)讲解者为数据科学从业者揭开技术和方法论的文章,为非技术和业务简化数据科学的文章
我的 14 篇文章已经获得了 86,000+的总浏览量(包括 RSS 浏览量约 120,000 次,转载 和 语言翻译)和 10,000+的掌声。平均每篇帖子有 6000 多次浏览,阅读率约为 40%。
Summary of my stories on TDS
相比之下,哈里森从他的分析中发现,大多数中等水平的文章获得的掌声不到 10 次,而排名前 1%的文章获得的掌声超过 2000 次。大约有 2700 名作家已经完成了这项工作。一致性是罕见的,因为不到 0.3%的这些高度鼓掌的故事有重复作者。
虽然我的点击率最高的故事“”*”*在这个范围内,但它错过了标记为数据科学的故事的截止日期。因此,这是一个目标,以及一致性。
是什么让人们点击你的故事?
许多因素会影响一篇报道的曝光率和浏览量。虽然发布的范围、发布日期、时间和主题都有发言权,但最重要的是帖子的标题。
“除非你的标题能推销你的产品,否则你已经浪费了 90%的钱。”— 大卫·奥格威
我对文章标题做了相当多的试验,但我总是害怕在点击“发布”之前对标题进行精炼的最后阶段。简直是疯了分析 麻痹跑步到深夜,那吃了一个小时,还留下不好的回味。
这似乎对我的故事有用,但我仍在学习其中的诀窍。
媒体世界告诉我们,坏消息很好卖,标题受益于一点负面色彩(失败、挫折、挣扎)。工作物品,我定期使用( 4 种方式、 5 种原因、 3 个阶段)。感性生僻字给单调的标题带来魅力和感染力(秘密’、狂热’、真实原因’)。
一个好标题的秘诀是什么?
虽然我的帖子没有这么多,但《百万媒体故事》在这方面提供了一些有趣的见解。分析那些获得 2000 多个数据科学相关标签的文章,这是我从它们的标题中发现的。
毫不奇怪,大多数标题都有关键词'数据科学'、人工智能'、机器学习'、神经网络'、数据科学家。撇开这些不谈,我们最后得出这个词云:
Wordle.net
大多数标题的结构都是问题'如何'、为什么'、什么',它们很好地吸引了用户。这些帖子兼作讲解者,并使用诸如'介绍'、了解'、学习'、指导'、讲解'、教程'、初学者'等词语。
列表条很突出,有趣的是看到了流行的数字:1-6,10,15。他们把个人与'你'、你'、我们'、我们'联系在一起。故事中确实使用了否定形式,如'而非'、不要'、零',但情感分析在这里可能更有用。
很多帖子都是技术性的,围绕着' python '、熊猫'、 keras '、 jupyter '、 tensorflow '、回归'。好的数字使用个人的,情感的或不常见的词,如'需要知道',' 完成',' 快速',' 自由',' 新',' 大'。
现在,这是一个现成的计算器。
哪些故事让人懒得看?
除了点击之外,大多数故事都无法吸引读者。我自己每天都会打开几十个浏览器标签,其中大部分都没有得到进一步的爱,直到一次浏览器崩溃让它们永远安息。
那么,哪些故事实现了这一壮举?“读数计数与“视图计数没有任何不同,因为两者高度相关(我的有限集合为 96%)。
但是,Medium 的读数 %我对此保持关注,远远超过查看次数。这就是它如何发现隐藏的宝石。
Bigger boxes mean more Views, darker blue is higher Read%
我在数据科学访谈上的头条新闻拥有最高的阅读量(对于一个大分母来说,这是不寻常的高),但接下来的两个故事的浏览量要低得多(# 9-如何炫耀你对分析的热情和# 13-可视化机器学习)。尽管基数较低,但如果被选中,它们还是有可能被阅读。
哪些故事未能实现潜力?
每个作家都有自己最喜欢的故事,他们觉得这些故事很有潜力,但没有得到应有的曝光。好故事总是不了了之。这可能是一个糟糕的标题,不起眼的缩略图,错误的时间或其他因素。
一个人如何超越偏见,从统计上发现具有这种隐藏潜力的人?粉丝转化率(粉丝/阅读)是一个很好的代理。
在所有真正读过这个故事的人中,有多少人被感动到向全世界宣布了这个故事(以及搜索互联网上任何和所有人类活动的信号饥渴算法)。
按照这个标准,我的前三个故事没有一个登上排行榜:
Bigger boxes mean more Reads, brighter blue shows higher fans-to-reads ratio (or underserved potential)
这里最突出的是:“变成独角兽的秘方是什么”、“图形语法如何帮助构思一个伟大的故事”和“为什么人工智能模型非常需要人类来保持令人敬畏”。
必须指出的是,高收视率的故事远远超出了目标受众,所以他们往往表现不佳。
对于 Medium 来说,这是一个添加到统计页面的有用指标。出版物和策展人可以用它来决定哪些故事必须被赋予新的生命。
是什么让一个故事如此受欢迎?
点击并阅读了一个故事后,用户花时间欣赏它是一件大事。毫不奇怪,你会发现许多帖子要求鼓掌或做 gif 演示,尽管 Medium 的策展人讨厌这样做。
作家可能渴望它,但一个故事必须理所当然地赢得它!
The lifecycle of a story: View — Read — Fan
衡量一个故事受欢迎程度的一个好方法是看粉丝给它鼓掌的次数。这与上面的粉丝-阅读比率不同,它只是告诉读者中有多少人转化为粉丝。
现在,我们把门槛设得很高,因为这个人需要按住按钮宝贵的几秒钟来提高鼓掌次数。那些为故事鼓掌 50 次的人,一直到最大可能,你们真的很特别!
由于 Medium 卡显示的只是总点击量,而不是粉丝数,所以我不能对一百万个故事进行统计(也许 Medium 可以添加另一个有用的指标?).对我来说,每个粉丝的平均鼓掌次数是 4.9 次。
再说一次,我的五大故事没有一个占据这里的首位。我的帖子“GANs 神经网络的简单英文解释”最受欢迎,每个粉丝有 6.62 次掌声,紧随其后的是“为什么图形的语法是伟大数据故事的成分”的帖子,有 6.60 分。
Note the spikes in Claps/Fans ratio for the 2 lower-ranked stories (ratio of 6.6)
多长时间算太长?
现在终于谈到一个困扰我很久的问题。一个故事的合适尺寸是多少?阅读时间长是否会让人不点击?或者,当他们看到里面巨大的卷轴时会跳过它吗?
虽然我一直以 1000 字为基准,但我的故事平均 1355 字。我花时间重新起草,使它们更紧凑、更有力。我想知道是否要把真正长的分成几部分。
令我惊讶的是,长篇故事并不是禁忌。如果有什么不同的话,那就是我的长篇小说更受欢迎,阅读率也不相上下。
Note how the stories with 2000+ words shine in the engagement metrics
在我的 3 个 2000 多字的故事中,一个在浏览量中排名前 5,一个阅读率非常高,另一个最受喜爱,拥有最高的掌声/粉丝比率。
可以肯定的是,我检查了百万中等数据集,发现阅读时间和喜欢之间有+10%的相关性(对于喜欢数超过 100 的~200K 的故事)。这证实了用户不会回避长表单。
所以,如果你有一个很长的故事,不要隐瞒。
并且,这里的是一个 excel 表格,里面有我所有的故事链接和统计数据,包括一些比这里显示的更多的数据。你还能发现其他有趣的金块吗?
那么,你下一个故事的要点是什么?
- 特别注意标题,混合使用情感、力量、消极和列表。但是,不要过度。(这个故事我理解对了吗?!)
- 如果你的故事很长,不要担心(这是我第四长的 1700 字)。
- 对你的阅读量保持好奇,如果阅读量太低,反思一下你的内容。在没有公开数据的情况下,也许 30%是一个很好的基准。
- 找到你的哪些故事粉丝转化率(粉丝/阅读)高,哪些最受喜爱(拍手/粉丝)。他们是你的观众最能产生共鸣的人。向他们学习,写得更像他们。
最重要的是,为热爱写作的人写故事,并慷慨地与听众分享你的知识。剩下的迟早会自己解决的。
现在,我点击发布按钮,让这个故事成为另一个统计数据:)
本文使用的工具:Excel、R、TableauPublic 和 Wordle.net。感谢 哈里森 对于中等数据集和分析。
如果你觉得这很有趣,你会喜欢我写的这些相关文章:
对数据科学充满热情?随意在LinkedIn上加我,订阅我的 简讯 。
如何聘请人工智能顾问
所以,你知道你需要一些机器学习/人工智能开发。为什么不自己做呢?简单的回答是,专家比多面手更有经验,因此可以减少你的风险和努力。更长的答案是关于知道地雷藏在哪里,以及好的需求看起来像什么。我是一名机器学习专家,我在美国和加拿大的公司担任顾问,从事合同工作。我也有丰富的发展业务的经验。结合我在该领域工作中获得的经验,我们来谈谈聘请人工智能顾问的问题。
如果你的项目没有资金支持,你最好的选择是尝试与大学实验室合作,以获得一些早期结果。在本文中,让我们假设你的项目是一个企业采用人工智能来改进核心产品的标准案例。因此这是一个**的小 R;大 DR&D 项目。有些项目,尤其是创业公司,是一个“大 R;大 D"** 风流韵事,那是另一个时代的话题。现在,让我们坚持假设你有一个合适的团队和客户服务器,并希望添加一些尖端的人工智能功能。****
你在找一个人工智能顾问。现在让我们更具体地了解要寻找什么。你想要的是一个比数据科学家更专业的顾问。你需要工程学。机器学习项目很少只涉及数据科学部分。你需要聚集数据,并将其转化为人工智能可以学习的正确格式。有时项目涉及硬件、无线和网络。这就是云和物联网(IoT)。雇佣一个了解你的需求的业务含义的顾问也是有帮助的,有点像管理顾问。你想要一个可以谈论预算、规划和解决方案架构的资源,知道大规模的机器学习部署是什么样子的。这也是一个好主意,尽你所能涉及资助,因为 ML 领域是非常前沿的,应该使你的 R & D 有资格申请一些政府资助项目(在加拿大,这些是 Mitacs 、 OCE 、 NSERC 等。等等。).
雇佣顾问来启动你的人工智能项目的另一个方面是能力建设。您希望在您的公司中构建一些通用基础架构,以提供执行未来机器学习项目的能力,并将知识灌输到您的 devops 团队中,以维护和扩展顾问带来的代码(尽可能/实际)。将人工智能能力融入一家公司可能是一个项目管理和团队建设过程,就像它是一个软件/硬件项目一样。它通常涉及董事会会议,将这些目标与关键绩效指标(KPI)和利益相关者会议联系起来。在设计项目时,让高管、产品经理和高级开发人员在同一个房间里是一个聪明的主意。我准备了许多提案,与投资者和关键意见领袖互动,并向大量观众展示产品。没有两个会议是相同的。这就是为什么当你决定让你的公司进入人工智能领域时,有一位专家在你身边是件好事。
运营和大数据
“幸运青睐有准备的人”(路易斯·巴斯德)。
向任何一位未来的顾问询问他们最近的工作经历。即使有了 NDA,他们也可以分享一些不被禁止的信息。例如,“描述一下你最近为一个大客户做的项目”可以用来回答“我最近完成了一个项目,涉及一个美国客户的大数据 AI 解决方案的架构和部署。这是一个本地解决方案,从运行 Ubuntu server 和 GPU 的准系统基础架构服务器开始,到能够支持每秒数千个事务的服务结束。他们对结果很满意。我会问他们我是否能和你分享更多细节。”这是一种意料之中的反应。就我而言,我列出了可公开验证的专利、文章和博士学位,以便客户能够了解我的工作水平。我最近在机器学习方面的工作将于 2017 年 7 月在法国尼斯发表(“面向个人计算机用户的无监督深度学习推荐系统”和“面向个人计算机用户的可视化深度学习推荐系统”)。
在后续工作中,你可能会从一位优秀的顾问那里得到类似下面这样的东西。“回到大数据和云之间的关系,我想谈谈我最近在数据流物理资产的云连接方面的体验。我的团队帮助一个新客户将硬件设备连接到一个云系统,该云系统记录、分析和呈现数据可视化。我们从头开始设计云解决方案,并期望在客户的后续工作声明中,将我们的机器学习分析添加到他们的实时生产解决方案中。”这告诉你,他们了解云和物联网,并乐于大规模进入人工智能领域。
我的大部分工作都是在非常严格的 NDA 下进行的,所以我在这里提供了我的学术工作或公共领域工作中的例子来说明我在实践中是如何与客户打交道的。但是… 不要让顾问躲在 NDA 后面。特别是如果他们不能为你提供上述陈述,你的顾问应该有一个公开的个人资料,表明他们来自哪里。例如,同行评审的出版物、相关的大学学位、专利、小组讨论、团队等等。以我自己为例,我已经完成了一个硕士学位,课题是在给定硬件限制的情况下,找出软件程序的哪些部分应该在硬件中加速。我的博士论文是关于通过无监督学习向用户推荐行动。所有这些都是为了告诉客户一个可信的故事。看看咨询的网站。是好看,还是他们只是一个邮箱地址和一个空白页?不言而喻,顾问公司应该成立。此外,他们公司的网站是一个很好的方式来判断如何组织顾问真的是。他们基本上是为了钱而做任何事情吗(例如,会为 cookies 编码),或者他们是狭隘地专注于?比如我们这种情况,做 IoT 和 AI,就这样。
预计会遇到一个过程。咨询师热爱过程。通过需求收集和白板会议,希望在编写任何代码之前深入了解解决方案的结构。您应该讨论如何使用该系统,以及如何向客户销售该系统的商业案例。顾问应该与您一起制定一个名为工作说明书(SOW) 的计划,其中包含里程碑和可交付成果,然后让利益相关方参与进来。
每个顾问处理风险的方式都不一样。我对解决方案架构的方法是组织。在我职业生涯的早期,我直接在运营部门工作,数据中心和网络运营是非常严肃的领域,一直让我踌躇不前。如果一个人在运营中拉错了弦,或者在这些服务器中部署了一个错误,那么每个客户都可能会呼叫支持。这是一个高压环境。为了应对这种压力,我对开发团队采用传统的系统架构方法,从开发、集成和生产开始,包括回滚选项、QA 部署验证,以及在每个分发中心定期进行 VPS 备份以降低风险。只要有可能,我建议客户使用云来避免这种运营风险。
****我是云解决方案的忠实粉丝。机器学习代码在 GPU 上运行,有时比在 AWS 上运行更便宜。我带来的关键价值是理解和设计软件架构以及所需硬件的能力。你想要的建议是什么时候去云。不是所有的客户都会听,但是所有的顾问都应该能够帮助你决定在哪里构建你的系统(云还是本地)。我经常将 GPU 硬件配置到客户端基础架构中,无论是基于 AWS 的云、数据中心的专用机架中,还是在客户的私有设施中。GPU 硬件设置和部署到生产环境是我理解的事情。这里值得一提的具体技术有 Nginx 用于服务和负载平衡,内存化用于缓存结果以减少延迟和不必要的计算,复制和索引以减轻高流量数据库表的压力,以及 noSQL 等分布式查询系统。我个人的偏好是 postgres,虽然我用过 t-SQL (SQL server)、mySQL 和 Sqlite。经验告诉我要规范化表格,听从 DBA,因为他在数据库方面比任何人都聪明,并且尽可能通过预处理从数据库之外的数据中获取性能。任何优秀的顾问都会做出这样的限制性陈述,宣称他们不是所有事情的专家。如果一个咨询师总是声称自己有专业知识,而不考虑话题,那么你应该担心了。
你雇佣的任何人工智能顾问都必须了解安全。他们经常接触你最敏感的数据。通过参与几个大数据项目,我对云自动化有了一种直观的感觉,这种感觉与安全需求密切相关。我把云,不管是私有的还是公共的,看作是一个 VPS 管理系统。为了建立公司的生产系统,需要许多基础技术,从认证(例如 Oauth2)和授权(例如基于角色的访问控制模式)到 SSL 和防火墙。我经常这样做,从零开始,我熟悉涉及硬件和软件的安全系统(见已批准的专利)以及伴随安全开发项目的威胁模型和安全策略,就像这个职位的帖子中描述的那样。比如 IP 的白名单和黑名单,PPK 认证,RSA 基于令牌的认证等。当然,任何系统都是由使用它的人来决定的。培训员工遵守安全策略对于维护安全基础架构至关重要。
机器学习
现在让我们深入讨论这个关键话题。也就是说,顾问能设计并实现一个机器学习系统来满足你的需求吗?你怎么知道?
Visualization of the output from an image processing neural network classifier in 3D space.
正如我在最近的一篇帖子中描述的那样,机器学习专家很难找到。开发人员很快就掌握了一般知识,这很好,但是更深层次的专业知识很难从短期的在线课程或在线视频中获得。不要误解我的意思,我喜欢这些资源并强烈推荐它们,但是它们不足以给你的开发团队提供他们需要的技能。回顾我的档案,我在 2006 年本科最后一年上了我的第一门人工智能大学课程,当时它还没有风靡一时。在 2009 年至 2017 年以兼职方式完成机器学习博士学位的同时,我一直在从事一系列与机器学习相关的非常有趣的工作,一直追溯到我在 Zip.ca(重大公司)的工作,在那里我设计了一个推荐系统并进行运筹学研究(例如整数线性规划、组合优化、背包问题、转运问题等)。我在加州 Zip 公司的任务是找到一个“好的”DVD 分配给客户,给出一个客户需求列表和每个分销中心的 DVD 供应情况。这部作品与网飞在加拿大展开了激烈的竞争。
对于一个你不认识的顾问,总是指望从一个小的概念证明开始,向自己证明这个顾问了解他们的东西。与顾问合作,想出一个唾手可得的项目。一些他们不需要太多开发工作就可以快速交付的东西(例如,基于他们已经拥有的现有代码,以及你已经收集的数据)。如果这第一步进展顺利,那么你就可以自信地转移到更大的项目范围。
不要过多考虑顾问用的是什么工具,只要是行业标准就行。我用 python 完成了大部分机器学习工作,我选择的框架是 Tensorflow 1.0 和 scikit-learn。我有时使用 Keras。我的代码几乎总是在 GPU 中运行。只要有可能,我就重用现有的机器学习模型,而不是从头开始构建它们。期待顾问向你展示如何通过重用现有的人工智能代码来节省每个人的时间和金钱。
请顾问概括描述部署。我举的一个图像处理项目的例子是这样的:“我采用了卷积神经网络(CNN)和监督学习来根据标记数据区分图像类别。例如,区分患者身上的伤口、基于外观检测产品之间的差异以及其他这样的图像分类任务。在生产中,我会使用一个支持 GPU 的 VPS 和一个服务器,如 Flask 和一个负载平衡器(nginx ),使这些模型具有高吞吐量。训练一个完整的 CNN 可能是时间密集型的,因此作为了解观察到的特征的第一步,我使用了来自现有 CNN 的迁移学习,以查看标记数据聚类中感兴趣的特征在多大程度上分类为期望的类别。在监督学习之外,当没有足够的标记数据用于监督学习时,我部署了非监督学习模型。有时,维度缩减适用于无监督学习(例如,对于聚类,我使用 t-SNE,有时使用 PCA 或 K-means)。”**
然而,对于一个文本处理项目,我会这样回答:“我是单词嵌入模型的超级粉丝。对于这种类型的任务,我使用 word2vec 和/或 GloVe,或者与 Tensorflow 一起使用,或者直接在 python 中使用,并利用现有的模型,如 google news vectors 和 wikipedia,或者基于文本语料库或客户的数据集构建自己的模型。我们可以更详细地研究许多其他机器学习模型,包括 RNN 和 LSTM 等生成模型,以及情感分析等更新的学习模型,等等。”**
结论
希望这篇文章能帮助你决定和谁一起做机器学习顾问。最重要的是,你雇佣的人工智能顾问不仅仅是一名数据科学家。你希望他们在从需求到部署的整个系统设计中提供帮助,并帮助进行能力建设,以便你在 devops 团队中的内部资源可以支持 AI 基础设施和代码。期望顾问有一些与你合作的过程,包括一份设定明确期望的工作说明书。问一个潜在的顾问一些棘手的问题,并确保你得到一些最近的工作历史和高级别的确认,他们了解你的项目的风险、安全性和云组件。请他们用一般术语描述一个部署,并尝试让他们尽可能重用现有的 AI 代码,从而节省您的金钱和时间。调查政府拨款以及它们如何应用于你的项目。最后,即使顾问看起来很棒,也要从一个小的概念验证开始,以确保他们能满足你的期望。
编码快乐!
——丹尼尔 丹尼尔@lemay.ai ←打个招呼。 LEMAY . AI 1(855)LEMAY-AI
您可能喜欢的其他文章:
为什么医院需要更好的数据科学
可以说,航空公司比医院在运营上更复杂,资产更密集,监管更严格,但迄今为止,在保持低成本并获得可观利润的同时,表现最好的航空公司比大多数医院做得更好。例如,西南航空公司已经想出了如何做好最重要的两件事:让更多的飞机更频繁地停在空中,并且比任何人都更频繁地给每架飞机加油。类似地,其他复杂、资产密集型、基于服务的行业的赢家——亚马逊、运营良好的机场、UPS 和联邦快递——已经知道如何超额兑现承诺,同时保持精简和实惠。
这些例子与医疗保健有关,有两个原因。
首先,医院运营在许多方面类似于航空公司和机场运营以及运输服务。服务运营中有许多步骤(办理登机手续、行李、安检线、登机口),每个步骤都有很高的可变性(天气延误、拥堵、机械问题),用户旅程中有多个相互关联的环节,所有这些操作都涉及人,而不仅仅是机器。用数学术语来说,医院运营,就像航空和运输一样,由数百个小流程组成,其中每一个都比组装汽车的步骤更随机,更不确定。
第二,今天的医院面临着零售、运输和航空公司多年来面临的同样的成本和收入压力。正如西南航空、亚马逊、联邦快递和 UPS 所证明的那样,为了保持生存,资产密集型和服务型行业必须简化运营,少花钱多办事。医疗保健提供商不能通过投资越来越多的基础设施来摆脱困境;相反,他们必须优化现有资产的使用。
要做到这一点,提供商需要一如既往地做出优秀的运营决策,就像其他行业一样。最终,他们需要为他们的医院创建一个可操作的“空中交通控制”—一个具有预测性、不断学习并使用优化算法和人工智能在整个系统中提供规范性建议的集中式命令和控制能力。数十家医疗保健组织正在通过使用包括 LeanTaaS、Intelligent InSites、Qgenda、Optum 和 IBM Watson Health 在内的提供商提供的平台来简化运营。这些解决方案的共同点是能够挖掘和处理大量数据,以便向管理和临床最终用户提供建议。
通过数据科学提高医院运营效率可以归结为应用预测分析来改善关键医疗服务流程的规划和执行,其中最主要的是资源利用率(包括输液椅、手术室、成像设备和住院病床)、员工安排以及患者入院和出院。如果做得好,提供者会看到患者访问率(容纳更多患者,更快)和收入的增加、成本的降低、资产利用率的提高以及患者体验的改善。这里有几个例子:
**增加或利用。**对于一种为大多数医院带来超过 60%的入院率和 65%的收入的资源来说,当前的块调度技术在优化手术室时间和改善患者访问、外科医生满意度和护理质量方面远远不够。当前的技术—电话、传真和电子邮件—使得数据块计划的更改变得繁琐、容易出错且缓慢。利用预测分析、移动技术和云计算,提供商正在挖掘利用率模式,以大幅改善调度。
例如,移动应用程序现在允许外科医生和他们的日程安排者一键请求他们需要的封锁时间。在科罗拉多州的 UCHealth,调度应用程序允许患者更快地接受治疗(外科医生释放不需要的块的速度比手动技术快 10%),外科医生获得更好的控制和访问(外科医生每月释放的块的中值数量增加了 47%),整体利用率(和收入)增加。借助这些工具,UCHealth 的人均收入增加了 4%,这相当于每年增加 1500 万美元的收入。
**大幅削减输液中心等待时间。**输液调度是一个极其复杂的数学问题。即使对于一个有 30 个座位的中心来说,以病人为中心的方式避免上午 10 点到下午 2 点的“高峰时间”也需要从一个 googol (10100)的可能解决方案中选择一个。面对这一挑战,纽约长老会医院应用预测分析和机器学习来优化其日程模板,从而将患者等待时间减少了 50%。除了改善长期患者排班之外,这些技术还可以帮助排班员管理输液中心的日常不确定性(最后一分钟的附加服务、延迟取消和缺席),以及优化护士的工作量和休息时间。
**简化 ED 操作。**急诊科因瓶颈而闻名,无论是因为患者在排队等待化验结果或成像,还是因为该部门人手不足。分析驱动的软件可以确定最有效的 ED 活动顺序,显著减少患者等待时间。当一名新患者需要进行 x 光检查和抽血时,了解最有效的顺序可以节省患者的时间,并更明智地利用急诊资源。软件现在可以显示历史滞留时间(也许周三 EKG 的人员短缺问题需要解决),并实时显示每个病人在该部门的旅程和等待时间。这使得提供商能够消除反复出现的瓶颈,并呼叫工作人员或立即重新安排患者流量以提高效率。例如,埃默里大学医院使用预测分析来预测患者在一天中的时间和一周中的日期对每一类实验室测试的需求。这样,提供者将患者的平均等待时间从 1 小时减少到 15 分钟,从而相应地减少了急诊瓶颈。
**急诊转住院床位。**预测工具还可以让医疗服务提供者预测患者需要入院的可能性,并提供哪个或哪些病房可以容纳他们的即时估计。有了这些信息,住院医生和急诊医生可以很快就可能的入职流程达成一致,这可以让入职链上的每个人都可以看到。这种数据驱动的方法也有助于提供者优先考虑哪些床位应该首先清洁,哪些单元应该加速出院,以及哪些患者应该转移到出院休息室。圣地亚哥的 Sharp HealthCare 使用数据驱动的集中式患者物流系统,将其入院订单占用时间减少了三个多小时。
**加速出院计划。**为了优化出院计划,个案经理和社会工作者需要能够预见和防止出院延迟。电子健康记录或其他内部系统通常会收集有关“可避免的出院延迟”的数据,即上个月、上个季度或上一年因保险验证问题或缺乏交通工具、目的地或出院后护理而延迟的患者。这些数据对提供商来说是一座金矿;使用适当的分析工具,在患者到达并完成其文书工作的一个小时内,提供商可以相当准确地预测其数百名患者中谁最有可能在出院期间遇到麻烦。通过使用这些工具,病例管理人员和社会工作者可以创建一个高优先级患者的名单,一旦患者入院,他们就可以开始制定出院计划。例如,DC 华盛顿州的 MedStar Georgetown 大学医院使用出院分析软件,将其日出院量增加了 21%,住院时间减少了半天,并将早晨出院量增加到日出院量的 24%。
每天数百次持续做出卓越的运营决策,需要复杂的数据科学。正确使用分析工具可以降低医疗保健成本,减少等待时间,增加患者访问,并释放现有基础设施的容量。
这篇文章最初出现在哈佛商业评论。
Sanjeev agr awal**是LeanTaaS的总裁兼首席营销官。Sanjeev 是谷歌的第一任产品营销主管。从那以后,他在三家成功的初创公司担任过领导职务:移动推送平台 Aloqa 的首席执行官(被摩托罗拉收购);Tellme Networks(已被微软收购)产品和营销副总裁;以及作为 Collegefeed(被 AfterCollege 收购)的创始 CEO。Sanjeev 毕业于麻省理工学院,获得 EECS 学位,并在麦肯锡公司和思科系统公司工作过。他是一个狂热的壁球运动员,并被贝克尔的《医院评论》评为医疗保健创新领域的顶级企业家之一。
为什么、如何以及何时应用特征选择
现代数据集的信息非常丰富,数据是从数百万个物联网设备和传感器收集的。这使得数据变得高维,拥有数百个要素的数据集很常见,甚至达到数万个也不罕见。
特征选择是数据科学家工作流程中的一个非常重要的组成部分。当呈现非常高维度的数据时,模型通常会阻塞,因为
- 训练时间随着特征数量呈指数增长。
- 随着特征数量的增加,模型具有越来越大的过度拟合的风险。
特征选择方法有助于解决这些问题,方法是在不损失太多信息的情况下降低维数。这也有助于理解这些特性及其重要性。
在本文中,我将讨论以下特征选择技术及其特点。
- 过滤方法
- 包装方法和
- 嵌入式方法。
过滤方法
过滤方法考虑特征和目标变量之间的关系来计算特征的重要性。
方差比检验
f 检验是一种统计检验,用于模型之间的比较,并检查模型之间的差异是否显著。
f 检验对模型 X 和 Y 进行假设检验,其中 X 是仅由常数创建的模型,而 Y 是由常数和特征创建的模型。
比较两个模型中的最小二乘误差,并检查模型 X 和 Y 之间的误差差异是否显著或偶然引入。
f 检验在特征选择中是有用的,因为我们知道每个特征在改进模型中的重要性。
Scikit learn 提供使用 F-Test 选择 K 个最佳特性的**。**
sklearn.feature_selection.f_regression
对于分类任务
sklearn.feature_selection.f_classif
使用 f 检验来选择特征有一些缺点。F-Test 检查并仅捕获要素和标注之间的线性关系。高度相关的特征被给予较高的分数,而不太相关的特征被给予较低的分数。
- 相关性具有很强的欺骗性,因为它不能捕捉强非线性关系。
2.使用像相关性这样的汇总统计可能是个坏主意,正如安斯科姆的四重奏所展示的那样。
Francis Anscombe illustrates how four distinct datasets have same mean, variance and correlation to emphasize ‘summary statistics’ does not completely describe the datasets and can be quite deceptive.
交互信息
两个变量之间的互信息衡量一个变量对另一个变量的依赖性。如果 X 和 Y 是两个变量,并且
- 如果 X 和 Y 是独立的,那么知道 X 就无法得到关于 Y 的任何信息,反之亦然。因此它们的相互信息是 0 。
- 如果 X 是 Y 的确定性函数,那么我们可以用互信息 1 从 Y 确定 X ,从 X 确定 Y 。
- 当我们有 Y = f(X,Z,M,N)时,0 < mutual information < 1
We can select our features from feature space by ranking their mutual information with the target variable.
Advantage of using mutual information over F-Test is, it does well with the non-linear relationship between feature and target variable.
Sklearn offers feature selection with Mutual Information for regression and classification tasks.
sklearn.feature_selection.mututal_info_regression
sklearn.feature_selection.mututal_info_classif
F-Test captures the linear relationship well. Mutual Information captures any kind of relationship between two variables. scikit-learn.org/stable/auto…
Variance Threshold
This method removes features with variation below a certain cutoff.
The idea is when a feature doesn’t vary much within itself, it generally has very little predictive power.
sklearn.feature_selection.VarianceThreshold
Variance Threshold doesn’t consider the relationship of features with the target variable.
Wrapper Methods
Wrapper Methods generate models with a subsets of feature and gauge their model performances.
Forward Search
This method allows you to search for the best feature w.r.t model performance and add them to your feature subset one after the other.
Forward Selection method when used to select the best 3 features out of 5 features, Feature 3, 2 and 5 as the best subset.
For data with n features,
->在第一轮中,创建具有单独特征的“N”个模型,并选择最佳预测特征。
->在第二轮中,用每个特征和先前选择的特征创建“n-1”个模型。
->重复这一过程,直到选择了“m”个特征的最佳子集。
递归特征消除
顾名思义,这种方法一个接一个地消除特定模型上表现最差的特征,直到知道特征的最佳子集。
Recursive elimination eliminates the least explaining features one after the other. Feature 2,3 and 5 are the best subset of features arrived by Recursive elimination.
对于具有 n 个特征的数据,
->在第一轮中,“n-1”个模型结合了除一个特征之外的所有特征。性能最低的特征被移除
->在第二轮中,通过移除另一个特征来创建“n-2”模型。
包装器方法通过广泛的贪婪搜索向您承诺一组最佳的特性。
但是包装方法的主要缺点是需要训练的模型数量庞大。它在计算上非常昂贵,并且对于大量特征是不可行的。
嵌入方法
特征选择也可以通过一些机器学习模型提供的洞察力来实现。
套索线性回归可用于特征选择。套索回归是通过在线性回归的成本函数中增加一个额外的项来实现的。这除了防止过度拟合之外,还将不太重要的特征的系数降低到零。
The highlighted term has been added additionally to Cost Function of Linear Regression for the purpose of Regularization.
As we vary ƛ in the cost function, the coefficients have been plotted in this graph. We observe that for ƛ ~=0, the coefficients of most of the features side towards zero. In the above graph, we can see that only ‘lcavol’, ’svi’, and ‘lweight’ are the features with non zero coefficients when ƛ = 0.4.
基于树的模型计算特性的重要性,因为它们需要将性能最佳的特性保持在靠近树根的位置。构建决策树包括计算最佳预测特征。
Decision Trees keep the most important features near the root. In this decision tree, we find that Number of legs is the most important feature, followed by if it hides under the bed and it is delicious and so on. www.safaribooksonline.com/library/vie…
基于树的模型中的特征重要性基于基尼指数、熵或卡方值来计算。
与数据科学中的大多数事情一样,特征选择高度依赖于上下文和数据,并且对于特征选择没有一站式解决方案。最好的方法是了解每种方法的机制,并在需要时使用。
我主要使用特征选择技术来获得关于特征及其与目标变量的相对重要性的见解。请在下面评论你使用的特征选择技术。
为什么我选择 BigQuery 进行事件分析,为什么你也应该这样做
在每一个创业公司,都有你必须设计大规模分析事件摄取的时候。
主要的想法是,你有一个后端日志事件,你想有关于他们的分析见解。
这几乎是经典的数据工程任务之一。
你对创业公司的要求可能听起来像这样:
- 你想要一个可管理的解决方案 你不想花费大量的工程精力和时间。你想迭代…而且你想快速完成。你希望你的注意力集中在产品的开发上,而且要做得好、做得快。花在管理基础设施上的时间越少,可能越好。
- 您希望能够在事件发生后尽快查询事件 这并不总是一个要求。通常,你想对过去的事件进行分析,但你并不在乎在事件发生后的第二天你是否能做到。例如,当您需要为用户提供帮助,并且您需要知道特定用户发生了什么事情时,您实际上几乎必须立即做这件事。
- 保持成本可控 显然,没有人愿意支付不必要的费用。
- 如果需要,能够在短时间内大规模扩展 这是一个好方法。通常,你想构建最简单的东西来解决你的问题,但不是更简单。此外,您希望有一种好的方法来最终扩大规模,而不必从头开始重建一切。这有时会发生,不过没关系。
如果你看看市场,几乎有无限多的解决方案…哪一个是最好的?嗯,这真的取决于你的用例。
对我来说,有三个主要角色:
- BigQuery
- 亚马逊红移
- 亚马逊红移光谱
BigQuery
BigQuery 是 Google analytics DB。
它由 Colossus (Google 分布式文件系统)提供动力,每个查询由 Dremel (Google 查询引擎)转化为执行树,数据从 Colossus 中检索并聚合……一切都运行在 Google Jupiter 高速网络上。
作为一个分析数据库,BigQuery 使用列存储。如果您不熟悉这种存储,它不同于传统的事务数据库,后者按行存储数据。这样做是为了反映通常在分析数据库上执行的查询类型。
通常,你会有这样的东西:
SELECT foo, bar
FROM sales_events
WHERE timestamp between '2018–01–05' and '2018–01–09'
如您所见,我们查询了少量的列(本例中为 2 列),但是我们处理的数据量可能非常大(整整一个季度的销售事件)。按列存储数据将使这变得更容易。
亚马逊红移
Redshift 是分析数据库领域的另一个大玩家。这是亚马逊的分析数据库,它使用列存储(如 BigQuery)并且是完全托管的(如 BigQuery)。
红移光谱
红移光谱是亚马逊提供的一个非常有趣的分析解决方案。Spectrum 背后的想法是使用 S3 作为数据源,允许在其上运行 SQL 查询。为了获得与 Redshift 和 BigQuery 相当的性能,您实际上需要以列格式“手动”存储数据(通常选择 Apache Parquet 格式)。
雅典娜呢? 亚马逊的雅典娜在原理上给出了相同功能的红移光谱,有一些差异。 我发现 Spectrum 更有趣,因为我们已经运行了红移,它与 Spectrum 的集成比 Athena 更好。
最后我选择了 BigQuery,就这样!
Photo by Javier Allegue Barros on Unsplash
方便用户的
BigQuery 不使用索引:随着数据大小的增长,BigQuery 只是增加更多的服务器,这样性能几乎保持不变。在 BigQuery 中,每个查询都是一个表扫描,我认为这很好。尽管如此,性能还是惊人的好。
红移可能更有性能,但是你需要明智地选择主键和排序键。看到一个性能很差的红移实例是很常见的,只是因为键没有被很好地计划。
排序键用于加速查询和提高列数据库的压缩,这对您的成本和系统性能有很大的影响。
红移光谱和 Athena 将需要更多的工程工作,因为我们需要以正确的格式手动存储数据以获得良好的性能。
扩大规模的潜力
首先,您可以将插入数据流式传输到数据库中。在 BigQuery 中,你可以使用 stream insert,而在 Redshift 中,使用 Amazon Kinesis Data Firehose 可能是个好主意。Kinesis Firehoses 已经设置为与 Amazon storages(如 Redshift)一起工作,并不断向其写入数据,同时提供一些容错排队机制。
最终,您将生成太多的数据,无法直接流入 DBs,并且可能会遇到一些限制(成本或服务中的一些配额)
我认为 BigQuery 为这个问题提供了最简单的解决方案。
基本上,您可以决定哪些数据需要立即查询,哪些不需要,然后将它们放在两个不同的路径上。 第一个(热路径)直接流式传输到 DB,另一个存储在其他地方,然后批量插入 DB(这是 Google 云平台免费提供的操作)。
该图很好地展示了这一点,摘自 Google 博客。
红色的路径是热的,而蓝色的是冷的。
source: cloud.google.com/solutions/a…
有了红移,我觉得就没那么直白了(但我可能错了)。
一种解决方案是将传入的数据存储在 DynamoDB 上,供立即需要的查询使用,稍后您可以将所有数据批量传输到红移或 S3 以获得频谱。
整个流水线的架构会是这样的(这里用 Athena 代替 Spectrum 或者 Redshift,但原理是一样的)。
source: aws.amazon.com/blogs/datab…
费用
BiqQuery 是按查询和存储收费的…其他的几乎都是免费的。加载数据是免费的,但你需要支付流媒体插入费。
这意味着在某些用例中,它可能非常便宜。可能在许多分析应用程序中,您将扫描/返回大量的行,而这些行通常不是很大(数据结构方面)。
红移按节点收费。数据越多,需要的节点就越多。另一方面,亚马逊保留了实例支付计划,基本上你承诺使用服务 1 至 3 年,你可以预先支付一些钱。这可以为您节省原价的 70%。尽管如此,对于一家初创公司来说,致力于长期计划可能不是一个好主意。
红移光谱也可以很便宜,基本上,它是根据你处理的数据量收费的(有点像 BigQuery)。
结论:我们已经了解了如何在现实生活中设计一个事件摄取问题。市场上有不同的解决方案,每一个都有自己的优点和缺点。我们研究了 BigQuery 在某些用例中如何成为一个好的解决方案,并将其与 Redshift 和 Redshift Spectrum 等替代方案进行了比较。
如果您喜欢这篇文章,并且觉得它很有用,请随意👏或者分享。
干杯!
为什么我放弃了大会硕士课程
2016 年秋季,我面临一个选择,是继续攻读乔治华盛顿大学的商业分析硕士学位,还是重新开始大会的数据科学沉浸式学习。虽然拥有学位很诱人,但大会提供了许多不容忽视的优势。
为什么我决定攻读硕士学位
我花了七年时间从事政治竞选工作,其中五年专注于竞选数据。虽然我在我的组织中的角色对竞选活动至关重要,但它更多的是技术性的,而不是战略性的。我对我们的分析团队和分析供应商中的同行所做的事情非常感兴趣。事实上,他们有工具来模拟选民的行为,一直到单个选民,这看起来很强大。我喜欢用数据来帮助组织决策的想法,这也是我申请 GWU 大学硕士课程的原因。
我在 2015 年秋季开始了我的硕士项目。虽然开始时我非常兴奋,但这种感觉很快就消失了。我发现无法平衡我当前职位和我的主人的要求。我还发现,我的工作和为我的组织实现 2016 年选举目标的努力做出的贡献更具启发性。我决定推迟学业继续工作。
【2016 年 11 月来了又走了
虽然我在选举前就知道我已经准备好改变了,但选举的结果使这种改变具体化了。我已经在同一家公司以不同的身份工作了五年,但我真的需要一些东西把我带到职业生涯的下一个层次。距离下一次重大选举还有两年,我知道我可以培养一个人来接替我的位置,而不会让我的组织陷入困境。
我知道无论我参加什么项目,我都需要全力以赴,以免像去年一样遇到寻找平衡的问题。我不想在 1 到 2 年内失业,就像全心全意奉献给 GWU 所要求的那样。
大会在这个意义上更有吸引力,因为它是一个 3 个月的项目。同样是 1.5 万美元,而 GWU 是 5 万美元。
我现在已经完成了一半多,我很满意。除了在时间和金钱上更加实惠之外,g a 似乎更加面向项目。博客、项目和顶点都提供了探索的机会,这有助于我寻找的智力刺激。