TowardsDataScience 博客中文翻译 2016~2018(八)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

获得数据科学工作的 8 个技巧

原文:https://towardsdatascience.com/8-tips-to-land-the-data-science-job-e648ebea2f93?source=collection_archive---------11-----------------------

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

在我作为数据科学家的短暂时间里,我采访了数量惊人的人。几天后,我开始注意到候选人的模式。这里有一些建议(直接取自表现最好的人),你可以用来最大化获得工作的机会:

面试前

基本上,你的简历。

简历是一个人如何展示自己的直接反映。这种努力,对细节的关注,以及在某种程度上,设计传达的“个性”,会产生潜意识的偏见——不管面试官是否意识到这一点。打造完美的第一印象时,请记住以下几点:

  • 错误:拼写错误、格式错误、过于冗长、不清楚的描述都是大忌。三次检查错误,然后再三次检查。请朋友帮忙。你头脑中清晰的要点对其他人来说可能没有意义。
  • **长度:**确保你的简历不是 8 页长(是的,我遇到过这种情况。)两页精瘦、优质的内容通常是一个很好的极限。越简洁越好。如果你写了 100 篇论文,突出前 3 篇,其余的链接到一个网站。
  • **做人:**最后,不要害怕列出真正的兴趣和爱好。你不仅仅是一个写代码的机器人。文化契合非常重要。人们不只是想知道你能不能做好工作,而是想知道他们能不能和你一起

你的简历可能会成为面试的起点。确保你能说出每一个要点——你应该知道你做了什么以及为什么你这么做。

面试

现在你和你的面试官面对面了。在这里,你将面临技术和行为两方面的问题。我将集中讨论技术部分。

记住,知识本身不会给你带来工作。你可能是一个摇滚明星,但你仍然需要证明这一点。面对简单和复杂的技术问题时,请记住以下几点:

  • **回答长度:**换句话说,不要让你的面试官厌烦。知道什么时候结束你的回答并把接力棒传递给面试官是关键。不管你在说什么,5 分钟的独白只会伤害你的机会(相信我,我一直在接受)。目标是将答案控制在 30 秒以内。
  • **技术深度:**不要害怕用大词。毕竟这是一次面试,确保你在回答中使用适当的行话来传达准确的意思。然而,当人们用大词和概念来弥补知识的缺乏时,这是非常明显的。在不牺牲准确性的前提下,尽可能简单地练习回答问题。
  • **开始简单:**你的第一个答案很少会是完美的。从简单开始,找到一个解决方案,然后改进它。试图首先设计完美是傲慢的,对大问题不起作用。
  • **澄清:**不明白问题没关系。要求澄清和举例说明表明你愿意作为一个更大的团队的一部分学习和发挥。没有人会因为回答错误的问题而被录用。
  • 不知道:如果你真的被难住了,就说出来——不知道也没关系。而且,这肯定比仅仅抛出一个错误的答案要好。

结论

最常违反的提示是简历错误答案长度。获得这些权利的一个有效策略是向朋友寻求帮助——校对和模拟面试会有回报。你会惊讶于几个小时的练习能带来多大的进步。

运动员在确定他们的比赛日策略之前不会参加比赛,所以你为什么不可以呢?

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

建立成功数据团队的 8 种方法

原文:https://towardsdatascience.com/8-ways-to-set-up-a-data-team-for-success-b223c5e8e674?source=collection_archive---------3-----------------------

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

我们生活在数据驱动型组织的黄金时代。算法!大数据!为什么,你甚至可能有一两个数据科学家!但是……

如果你的数据人员花大部分时间在复杂的商业概念上做简单的算术,那么你称之为数据科学就太慷慨了。真的只是商业智能。你的团队在做什么?

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

老实说,希望介于两者之间。区别并不重要。如果学术严谨不影响商业成果,那它就毫无用处。另一方面,重要的是他们正在做的很多事情可能没有科学或商业价值。这可能与他们在复杂数学方面的能力无关。知道是什么阻碍了他们吗?

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

VP of Businessing

是你。运营团队的领导者。有计划的人,不管有多不成熟。Cherrypicked 数字是你执行的烟幕和镜子。*“是啊,但不是我!”。*这是你在仪表盘上的自我形象:

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

How ‘bout them KPIs?

好吧,我越来越夸张这些流行文化参考。关键是,你可能低估了在不犯灾难性分析错误的情况下使用数据的难度。

就像一个工程师和一个糟糕的产品经理一样,你的数据团队将会失败,除非你,企业所有者,已经在上游为他们的成功做好了准备。不要做骗子,做一个真正的‘数字人’。

8 相当简单的直觉检查策略可以避免最危险的错误。

僵尸实验的故事

我们的第一个策略以故事的形式出现:

1)知道分析是否值得做

这似乎是显而易见的,但从我的经验来看,它是最常被忽略的一个。它会悄悄靠近你。对我来说是的,但我会告诉你如何抓住它。这是一个真实的故事,讲述了我把事情搞砸的时候,以及为什么会这样。

When it just isn’t worth doing

作为我们的 CRM 管理员,我正在帮助扩展一个支持团队,该团队将在不到 3 年的时间里通过我们的 CRM 处理超过 22,000 个线程。代理可以在结案时按原因标记案例。关键是:至少有一个标签是必需的。管理人员设定要求时并不太关心运营成本。我写了代码在我们的 CRM 中验证这一点。运营成本见鬼去吧。我们将成为一个数据驱动的组织。

运营成本是多少?三年来,人们标记了大约 22000 条这样的线索。保守估计标记一个案例需要 5 秒钟(可能更长),估计这项工作需要大约 30 个小时的数据输入。这可能看起来不多,但想象一下,让某人坐下来,告诉他们一整周的工作仅仅是创建这些数据。我们基本上做到了这一点,那么经理们从这一昂贵的努力中得到了什么呢?

没有人发表过这份报告。我怎么知道?如果他们这样做了,即使曾经,他们也会看到一个非常典型的数据模式:

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

告诉他们我们的主要问题是…

…‘其他’。

公平地说,对话很难分类!不公平的是,我们的代理人不明白这一点。但是让我们更进一步。想象一个完美的标签系统,没有代理人的困惑和冷漠。

一个过于简单的代理就是排除“其他”标签。我们在剩下的列表中看到了什么?我们的第二最常见的各种问题仍然完全让其他人相形见绌。你知道它是什么并不重要。但对我们来说,这是一个公司大部分人已经在着手解决的明显的、非常棘手的问题。没有什么是我们不知道的。

所以,让我们继续看图表。在我们的前两个无用标签(占数据的 90%)之后,也许我们可以在长尾理论中找到价值。在尾部,大约有 5 个令人惊讶的标签断断续续地出现。其余的标签(比如我们手机应用的问题)非常罕见。代理人可以告诉我们的所有趣闻。如果数字分布更加均匀,也许我们可以仔细检查他们的排名(比如移动应用程序问题是否比预期的高)。但是这些数据是如此的杂乱无章,毫无用处。

通常,现实世界中的数据远没有你事先想象的结果有趣

收集数据是白费力气。不仅仅是 30 个小时的集体标记。但是,使这成为我们过程的一部分的所有精神开销。训练特工。不断变化的分类法。数据维护。机会成本。

**通常,“计算数字”不值得花费时间,尤其是耗时的时候。**那么,我应该从一开始就注意什么,以便更早地发现这一点呢?

我一直反复强调的一个明显的观点是,总是从分析中寻求学习,如果没有东西可学,就放弃努力。但是除此之外,我们还缺少一个更重要的策略:没有任何我们想要通知的决定。

作为一个操作者,我绝对讨厌 过程 没有目的

更多的数据比更少的数据好*,但获取数据的成本往往比你意识到的要高。轻率地委派他人(通常是您的数据团队或初级代表)在数据上的时间是一个危险的领域。总是:

1)有 的决定 你打算通知

2)保持努力向 学习 反对那个决定

总结一下这个故事,符合这个框架:

决定: 无。我们做这个分析不是为了给任何具体的决策或未来的计划决策提供信息。有用的愿望从未实现。

方法 :用标签的 MECE 分类法来标记每个客户服务案例

学习: 无。我们没看。如果我们这样做了,我们只会学到显而易见的东西。我们可以从代理商那里得到更好的轶事色彩。

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

Know If It’s Worth Doing

问题 :显然,这个例子的问题在于我们没有 决定 的目标或者 学习 的反对。

*数据多总比少好吗?分析会在数据团队得到它之前就被毁掉吗?即使有明确的目标来指导决策,天才数学家也可能失败。以下是(使用我们的新框架)需要注意的其他七个问题:

其他最佳实践

此后,我创建了一些虚构的场景,展示了经理们应该使用的常见策略,以确保他们不会削弱他们的数据团队。

2)注意生存偏差

(因优秀图书 如何不被看错 )

决策: 一家 B2B 软件公司正在准备他们的路线图。他们的主要目标是跨越从最初的 200 名早期用户到下一千名客户的鸿沟。

方法: 他们建立并分发一份客户调查。“20%的受访者投票支持下一步添加该功能”。

学习: “通过对客户驱动的功能集进行优先级排序,这种分析将帮助我们赢得更多优势”

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

Survivorship Bias

问题: 这种方法与保留或追加销售目标非常匹配。但目标是获得 新的 客户。这种方法并没有准确地衡量这些观众。它采访了购买产品的人,而不是没有购买产品的人。为了提高点击率,他们反而需要听到为什么人们 没有 购买。

3)对照对照组判断有效性

决策: 一位经理想知道 SLA 是否会改善 SDR 的平均提案响应时间

方法: 经理制定了一个内部 SLA,要求所有入站查询在 24 小时内得到一个详细的建议,数据团队对业务时间调整后的平均响应时间进行建模,并构建一个控制面板。

学习: “响应次数下降了!SLA 起作用了!”

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

No Control Group

问题: 众所周知,您的 SDR 最近的入站/代表更少,所以他们的队列更短,这可以解释更快的响应时间。有没有可能他们几乎总是满足 SLA,而这一切只是在高压力时期惩罚他们?

4)不要忘记机会成本

决策: 公司希望分析“相关项目”功能的有效性,以增加追加采购

方法: 产品 A/B 测试产品页面上建议订购补充项目的功能。数据工程师构建并显示这个新的 KPI。

学习: “大家正在添加相关项!我们应该投资于“相关商品”功能,以最大限度地提高购物车附加组件”

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

Opportunity Cost

我们已经证明了在忽略机会成本的情况下投资该特性的合理性。每天,我们都在房租、工资等方面烧钱。如果同一个团队可以在 4 周内建立一个“捆绑”购物体验,并且有可能创建 200%以上的多商品购物车,会怎么样?我们在相关项目上浪费时间做什么?!?!

5)始终承认假设

决策: 一个财务主管需要预算雇佣多少工资管理人员来支持一个新的市场(加拿大)

方法: 数据团队利用销售数字来推算需求。然后模型提供人数增长,推断需要多少工资人员。

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

Unacknowledged Assumptions

问题: 我们承认增长过快可能会影响我们的估计。但是我们忽略的一个重要假设是 【我们新市场的薪资需求将与现有市场大致相同】 。货币呢?税法?也许每个员工都要支持两倍的工作!

6)问题统计显著性

决定: 三名 Eng 考生在同一季度拒绝录取通知书。招聘经理想知道如何减少求职者流失

方法: 一个人力资源代表问每个人为什么他们通过了。这三个人都描述了在“我能发挥更大影响力的小团队”中选择机会。有了共识,这次谁还需要数据团队?

学习: “只有当候选人没有意识到我们的子团队是灵活和独立的,我们才会失败。我们 40 人的工程团队听起来势不可挡。我们应该强调候选人所在的子团队的规模,并避免对整个工程团队的规模提出质疑

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

Stastistical Significance

问题: 甚至有足够的数据得出结论吗?零假设是: “如果我们提到了小的子团队,考生绝对不会拒绝” 。你不需要复习 p 值就可以问:“这闻起来对吗?”有时你会连续翻转头部五次。

7)寻找缺失的数据

决策: 某 CX 经理团队有早/晚班;他们想在轮班期间给明星特工配备最困难、最紧急的问题。

方法: 支持案例升级率由数据团队划分到班次中,一个控制面板显示这些时段随时间的变化

学习: “我们最紧迫的问题是 55%的夜晚,45%的白天。我们实际上需要将我们最好的人员分散到两个班次”

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

Missing Data

问题: 只看紧急邮件忽略了全貌。我们忘了计算打给代理帮助热线的电话,这很可能是如何 许多 紧急问题进来的。有没有可能这些偏向晚上的数据,再加上电子邮件数据,强烈支持全明星的夜班工作人员?

8)小心错误的选择

决策: 一家公司希望研究客户对其核心产品的潜在新定价模式的偏好

方法: 进行一项调查,询问他们最喜欢哪个新选项。

*****学习:*“5 个选项中,80%表示选项 3。这是一个明显的赢家。”

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

False Choices

问题: 那些你调查中没有的选项呢?如果他们想要选择一个以上的选项(75%的人会选择选项 2)。如果 100%的人更喜欢你当前的定价模式而不是新的选择,会怎么样?****

摘要

不要认为聘请一个博士和在复杂的数学上投入大量时间会拯救你的数据团队。在编辑草稿期间,我以前的同事(data all star)Ryan Brennan明智地阐明了所有这些例子都只是抽象的问题。当我们用日常数字表达想法时,企业所有者有责任确保表达的准确性。不要逃避你的责任。不要让你的团队失败。

8 年过去了,阿姆斯特丹仍然是智能城市的领头羊

原文:https://towardsdatascience.com/8-years-on-amsterdam-is-still-leading-the-way-as-a-smart-city-79bd91c7ac13?source=collection_archive---------1-----------------------

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

instagram.com/fetherico

欧洲的创业之都是科技和创新的中心

阿姆斯特丹有 1281 座桥。对于我们大多数人来说,这似乎是一个相当容易被抛弃的事实,但对于阿姆斯特丹智能城市倡议来说,这是一个巨大的飞跃。因为直到今年,我们都不知道有多少座桥。

32 个地区部门覆盖了超过 12,000 个数据集,您可以开始明白为什么了。由于没有收集所有信息的中央枢纽,共享统计数据是繁忙的政府部门没有时间或资源去做的事情。

现在,阿姆斯特丹拥有了城市数据,这是其智能城市引擎的燃料。

是什么让阿姆斯特丹与众不同

阿姆斯特丹的特别之处在于,它将城市数据开源。每个人都可以访问这些信息,任何人都可以向集合中添加更多的数据集。城市数据可以在网上获得,很容易搜索、下载或链接到你自己的系统。

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

大城市需要适应

目前世界人口的 50%居住在城市。到 2050 年,这一数字预计将增加到 70%——这将包括在此期间全球总人口增长约 20 亿人。在阿姆斯特丹这样的城市,大部分基础设施都来自宗教改革时期,必须进行改造,以确保首都的道路、住房、服务和生活质量得到改善。与此同时,城市必须变得更加可持续,以避免空气污染的增加和进一步加剧气候变化。

2016 年 4 月,阿姆斯特丹获得欧洲创新之都奖。今年,荷兰在 2017 年全球创新指数中跃升 5 位,排名第 3。而且没有减缓的迹象。

简史

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

Image: expeditieaarde.blogspot.nl

  • 自 1200 年以来,荷兰 15-20%的土地已经被周围的海洋、湖泊、沼泽和湿地开垦
  • 这个国家只有 50%的地方高于海平面 1 米以上
  • 27%在海平面以下,这个地区有五分之一的人口

阿姆斯特丹市位于海平面以下 2 米。和所有早期文明一样,水赋予了城市生命。生产和运输货物的能力对荷兰的生存一直至关重要。它仍然是世界第八大出口国,贸易占该国国内生产总值的 82.5%。

市民们一直都意识到与水的关系是多么脆弱,荷兰习惯于利用技术来应对无时不在的洪水风险。在过去,如果你不妥善照料你的庄稼,维护灌溉系统、堤坝、防洪堤和障碍物,你邻居的庄稼也会遭殃。在许多方面,这项公约现在仍然适用。这些尊重、合作和社区的原则已经延续了几个世纪,这就是为什么今天的阿姆斯特丹仍然是精明的基础设施和创新的典范。

我的邻居应用程序(MijnBuur)

这一框架的一个例子是涵盖荷兰每一套公寓的“业主协会”法。虽然每个人都拥有自己独立的公寓,但大楼里的每个人都必须合作维护、清洁和保证整个建筑的安全。这通常是通过按月收取服务费来实现的,这意味着,如果你邻居的淋浴器漏水,损坏了你的天花板,你可以向该基金申请资金。

MijnBuur 应用程序建立在这种睦邻关系之上。你与你的邻居直接相连,他们可以提醒你任何危险,他们需要的东西或他们想做的任何事情。目的是让公民更有社会责任感,在不涉及市政当局的情况下解决纠纷。该项目应该节省资金,同时也改善社区关系——并通过向政府提供关于首都居民之间共同问题的有用数据来塑造未来的政策。

挖掘技术文化

  • 荷兰是欧洲人口最稠密的国家,也是世界上人口最稠密的国家之一——每公里 4.88 人
  • 在阿姆斯特丹,这一数字上升到每公里 4439 人——目前阿姆斯特丹的人口超过 82 万
  • 再加上每年 1400 万游客…

……你可以明白为什么政府热衷于创造尽可能多的创新机会。商业部门和阿姆斯特丹政府都积极尽最大努力吸引顶级技术和创新人才,并通过国际人才活动、Startupbootcamp 和为阿姆斯特丹编码等计划留住他们。

数字平台用户产生的数据往往比所提供的服务更有价值。通过将阿姆斯特丹的城市数据开源,通常为企业保留的经济价值被返还给市民,让他们重新投资于解决城市问题的创新解决方案。

而且不仅仅是免费数据。阿姆斯特丹已经有了强大的数字基础设施和 ICT 生态系统。荷兰拥有欧盟最快的互联网。对创业公司的支持无处不在。无论是接触经验丰富的创业交流、现代的共同工作空间、世界闻名的加速器和孵化器,还是介绍首都的许多风险资本家、天使和投资者。

2016 年,阿姆斯特丹的初创公司筹集了 1.94 亿€,占整个荷兰初创公司总资金的 76%。Lumos Global 是一家提供清洁廉价太阳能的公司,筹集了其中的近一半资金。提醒人们,可持续发展和社会企业家精神仍然是这座城市的最大愿望。

阿姆斯特丹智慧城市倡议(ASC)

自 2009 年提出概念以来,ASC 已经推动了 80 多个旨在让城市更智能的试点项目。在一个早期项目中,研究和统计部直接进入首都的各个政府部门,直接获取数据。

利用保险公司的统计数据和治疗费用的信息,他们发现一些抑郁症患者比例高的地区没有得到相应水平的护理。该市向一项教育计划投入了更多资金,该计划针对那些拒绝接受治疗或不愿承认自己患病的人,并增加了接受医疗护理的人数。

无塑料河流

这个试点项目不仅强调了收集信息的重要性,还强调了组织和分享信息的重要性。在最近一次无塑料河流的马拉松比赛中,设计师安妮·玛丽克·埃维琳斯、萨斯基亚·斯图德和弗朗西斯·杰罗恩·祖特利用石油和疏浚行业共有的原则创造了“伟大的泡沫屏障”。这个简单的想法是在河底放一根带孔的管子。通过泵入空气,你创造了一个“气泡屏障”,阻止塑料漂浮在河中,并将废物引导到河岸进行收集。对于像阿姆斯特丹这样拥有复杂开放运河系统的城市来说,这是一项无价的创新。这种方法很便宜,可以很容易地应用到世界各地的其他水道,为每年倾倒入海洋的 800 万吨塑料提供了一种解决方案。

Van Plestik 通过收集收集的废塑料并将其转化为 3D 打印机的建筑材料,将这一解决方案向前推进了一步。这些打印机可以为各种应用创造高质量和负担得起的塑料物品。Van Plestik 是 StartupAmsterdam 开展的一项名为“住宅创业”的计划的一部分。

创业阿姆斯特丹

2015 年阿姆斯特丹市和 250 名科技行业利益相关者的合作。目的是统一和扩大阿姆斯特丹的启动系统,并建立一个生态系统。

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

我们的目标是成为创业公司的一站式商店,将他们与关键人物、导师、投资者、技术人才和新客户联系起来。在他们的网站上,你可以搜索招聘信息、寻找合作空间、查看活动日历、阅读相关新闻文章、查看大学课程、加入包括 80 多家企业在内的社区网络,并获得联络人员的支持。

在 Eli5,我们使用该系统与智能城市规划者联系,测试我们最新的数字产品,与类似的公司建立联系,寻找人才,然后通过组织聚会和实习来回馈该系统,与那些刚刚进入行业的人分享我们的方法和经验。例如,今年我们想测试我们的在线提议工具,并很快找到了愿意给我们反馈的自由职业者团体。然后作为交换,我们免费提供软件给他们。

在短短两年内,该项目巩固了阿姆斯特丹作为欧盟科技中心的地位。在很短的时间内,他们已经:

  • 建立了一个公司网络
  • 创建了 Launchpad Meetups 来连接企业和创业公司
  • 发起阿姆斯特丹资本周,将创业公司与资本联系起来
  • 创办了创业学院,包括 BSSA (B.Startup School Amsterdam)和成长部落学院
  • 协办国际创业训练营
  • 将编码课程引入学校课程

常驻启动

StartupAmsterdam 支持的举措之一是政府孵化器 Startup in Residence。

每年,市政府都会评估人们关注的问题,并利用城市数据为初创公司创造一系列需要解决的社会挑战。通过这样做,他们利用了阿姆斯特丹巨大的创业文化以及他们雇佣的有才华的应用程序、平台和软件开发人员。

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

阿姆斯特丹任何时候都有 1500-2000 家创业公司,与创意人员和开发人员合作可以大大加快创新进程。这也意味着市民可以直接参与他们城市的未来。

如果解决方案证明是成功的,阿姆斯特丹市将投资于该公司或成为他们的启动客户。与市政当局合作为初创企业获得城市专家及其网络的支持提供了一个独特的机会。该计划几乎支持了本文中提到的所有应用。

2015 年的试点计划产生了五个可行的项目,包括一个鼓励居民分类垃圾的应用程序,以及一个帮助游客离开酒店和住宿的应用程序,还通过提供阿姆斯特丹鲜为人知的景点 Wyzer 的信息来更均匀地分散游客。

Wander 的 Wyzer 应用程序

这个应用程序的聪明之处在于,它有助于让人们远离人迹罕至的道路,同时改善他们对这座城市的体验。该应用程序连接到一个指南针,而不是地图,所以你仍然朝着正确的方向前进,但可以探索不同的路线到达那里。他们称之为“模糊导航”。该应用程序突出了“隐藏的宝石”,供您沿途发现。所以当你回到家,你会有一个比大多数游客更独特的故事要讲——当地人对减少拥堵感到高兴。

这项技术使用地图、GPS 和旅游数据,然后依靠一些社区合作向用户推荐最佳去处。

阿姆斯特丹高级都市解决方案研究所(AMS)

AMS 是由代尔夫特大学、瓦赫宁根大学和麻省理工学院构思的,以响应城市对实际城市问题开发大都市解决方案的建议呼吁。成立研究所意味着研究,更重要的是,可以进行小规模的测试。相对廉价的应用程序和平台可以快速验证想法,并创建可行的实时数据和分析。

AMS 是一个项目的一部分,该项目旨在摆脱 Wyzer 等应用程序使用的传统公共数据形式,并研究产生大规模地理社会数据的方法。这是从传感器、GPS 设备和手机中挖掘出来的。然而,这种信息更以人为本,也受益于以前未开发的来自社会媒体、LoRa 网络和开放数据门户的社区信息。

2016 年 6 月,荷兰成为世界上第一个拥有全国范围的 LoRa 网络以促进物联网的国家。因此,它是测试这种新型数据的完美实验室。

大城市数据的优势

AMS 最雄心勃勃的项目之一是社会城市数据实验室。研究人员和开发人员正在为“大城市数据的获取、丰富、整合、分析和可视化”构建最先进的技术。

如果你能从大量市民中实时收集关于挑战和不满的知识,那么城市规划者和决策者将会了解得更多。不可避免地,这意味着该政策将更有效地服务于社区,提高生活质量。

社交玻璃

社会城市数据实验室的成果之一是社会玻璃。这个基于网络的平台利用实时城市大数据分析和预测来创建“人类景观的反映”。

通过使用高级词汇语义分析词义及其之间的关系,并将结果与机器学习相结合,该团队可以确定公众的状况、情绪、欲望——几乎任何情绪。

当你开始用地理定位数据和市政当局的其他公开数据来交叉参考时,你就可以开始建立模式和绘制城市的情绪。因此,如果一个本地事件正在扰乱居民,周围的社会数据可以帮助指导规划者解决问题。或者,如果博物馆的长队打扰了游客,该平台可以发送警报,告诉其他人避开该景点,直到它不那么繁忙。

科学并不完美。社交帖子的特点和内容多种多样,缺乏结构,可能会有偏见和模糊不清。人工智能需要一些时间来学习识别模式和验证数据。但是,通过进一步让市民参与到智慧城市计划中来,阿姆斯特丹在下一步就有了优势。

未来:智慧城市 3.0

智慧城市的第一次迭代非常注重技术。像 IBM 和思科这样的大公司经常被批评有太大的影响力,并推动城市采用他们还没有适当使用的基础设施的技术。

阿姆斯特丹的首席技术官 Ger Baron 在接受《麻省理工斯隆管理评论》采访时表示,“每一家来这里告诉我们它是如何工作的公司,他们都是错的,因为他们不知道一个城市是如何工作的……人们认为它是如何工作的和它是如何工作的之间有很大的差异”。当他开始创建一个全市范围的数据清单时,这一点变得更加明显,他意识到没有人有一个完整的、经过整理的首都桥梁数据。那些管理这座城市几个世纪的人也没有完全理解它。巴伦的部分工作是确保企业利益不会压倒市民利益,当一个城市急于变得更聪明时,这种情况经常发生。

智慧城市 2.0 的特点是由城市本身而不是技术提供商引领。该版本侧重于提高居民和游客的生活质量,并与市民协商设计工具,以确保解决方案符合他们的需求。这就是阿姆斯特丹对创业计划(Startups in Residence)所做的事情,它完全基于人们所关心的问题来设定挑战。

下一个阶段是公民共同创造。智慧城市 3.0 仍然需要由技术和城市来实现,但将由人民和社区来领导。像修理咖啡馆或工具借阅图书馆这样的计划已经在阿姆斯特丹开始实施,通常由公众单独管理,为公众服务。应用程序 Verbeterdebuurt 字面意思是“改善邻里关系”,为阿姆斯特丹人提供了一种便捷的方式来强调问题并提出改变建议。它有 GPS 功能,可以上传图片以节省冗长描述的时间。

居民可以比管理员更快地发现城市的需求。通过合作,他们通常也能更快地找到解决方案。如果政府不再将市民视为顾客或服务的接受者,而是让他们成为城市的共同创造者,阿姆斯特丹将继续变得更聪明。只要它继续建设宽带、无线和物联网基础设施。最重要的是,城市数据得到了维护。

成为数据科学家的 88 种资源和工具

原文:https://towardsdatascience.com/88-resources-tools-to-become-a-data-scientist-c28008bf8fdf?source=collection_archive---------13-----------------------

《哈佛商业评论》认为数据科学家是 21 世纪最性感的工作。在本文中,借助于最好的免费网络数据抓取工具之一octo parse V7,我们汇总了成为数据科学家可能需要的资源和工具。

1.学习资源:课程学位 / 证书书籍

2.工具:数据提取器数据分析报告

3.数据科学竞赛/计划

您可以查看 原帖

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

20 门关于数据科学的在线课程

1。数据科学专业

创作者:约翰·霍普斯金大学

这一专业化涵盖了您在整个数据科学管道中需要的概念和工具,从提出正确的问题到做出推论和发布结果。在最终的顶点项目中,您将应用通过使用真实世界的数据构建数据产品而学到的技能。完成后,学生将有一个文件夹,展示他们对材料的掌握。

https://www.coursera.org/specializations/jhu-data-science

2。Python 中的数据科学简介

创作者:密歇根大学

本课程将向学习者介绍 python 编程环境的基础知识,包括基本的 python 编程技术,如 lambdas、读取和操作 csv 文件以及 numpy 库。

https://www.coursera.org/learn/python-data-analysis

3。应用绘图、制图&Python 中的数据表示

创作者:密歇根大学

本课程将向学习者介绍信息可视化基础知识,重点是使用 matplotlib 库进行报告和制图。

https://www.coursera.org/learn/python-plotting

4。Python 中的应用机器学习

创作者:密歇根大学

本课程将向学习者介绍应用机器学习,更侧重于技术和方法,而不是这些方法背后的统计数据。

https://www.coursera.org/learn/python-machine-learning

5。在 Python 中应用文本挖掘

创作者:密歇根大学

本课程将向学习者介绍文本挖掘和文本操作的基础知识。

https://www.coursera.org/learn/python-text-mining

6。Python 中的应用社会网络分析

创作者:密歇根大学

本课程将通过使用 NetworkX 库的教程向学习者介绍网络分析。

本课程应该在以下课程之后学习:Python 中的数据科学导论、Python 中的应用绘图、图表和数据表示,以及 Python 中的应用机器学习。

https://www . coursera . org/learn/python-social-network-analysis

7。什么是数据科学?

创建者:IBM

在本课程中,我们将会见一些数据科学从业者,并大致了解当今的数据科学。

https://www.coursera.org/learn/what-is-datascience

8。数据科学开源工具

创建者:IBM

在本课程中,您将了解 Jupyter 笔记本电脑、RStudio IDE、Apache Zeppelin 和数据科学体验。

https://www . coursera . org/learn/opensource-tools-for-data-science

9。数据科学方法论

创建者:IBM

您将了解:—解决数据科学问题的主要步骤。—实践数据科学的主要步骤,从形成具体的业务或研究问题,到收集和分析数据,到构建模型,以及了解模型部署后的反馈。—数据科学家如何思考!

https://www.coursera.org/learn/data-science-methodology

10。应用数据科学

创建者:IBM

这是一个充满活力的专业,面向希望获得现实世界数据问题实用技能的数据科学爱好者。它对任何有兴趣从事数据科学职业的人都有吸引力,并且已经具备基本技能(或者已经完成了应用数据科学专业化入门)。您将学习 Python——不需要任何编程知识。然后你将学习数据可视化和数据分析。通过我们的指导讲座、实验室和项目,您将获得处理有趣数据问题的实践经验。

https://www . coursera . org/specializations/applied-data-science

11。用于数据科学的数据库和 SQL

本课程的目的是介绍关系数据库的概念,并帮助您学习和应用 SQL 语言的知识。它还旨在帮助您开始在数据科学环境中执行 SQL 访问。

*【https://www.coursera.org/learn/sql-data-science *

12。数据科学数学技能

杜克大学

本课程旨在向学习者传授在几乎所有数据科学数学课程中取得成功所需的基本数学知识,面向拥有基本数学技能但可能没有学过代数或微积分预科的学习者。

https://www.coursera.org/learn/datasciencemathskills

13。数据科学:争论

哈弗 dX

本课程涵盖了数据争论过程的几个标准步骤,如将数据导入 R、整理数据、字符串处理、HTML 解析、处理日期和时间以及文本挖掘。

https://www . EDX . org/course/data-science-wrangling-harvardx-ph 125-6x

14。数据科学:生产力工具

哈佛大学

https://www . EDX . org/course/data-science-productivity-tools-harvardx-ph 125-5x

15。数据科学研究方法:Python 版

微软

https://www . EDX . org/course/research-methods-for-data-science-python-edition

16。如何赢得数据科学竞赛:向顶尖高手学习

创建者:国立研究大学高等经济学院

如果你想进入竞争激烈的数据科学领域,那么这门课程就是为你准备的!参加预测建模竞赛可以帮助您获得实践经验,提高和利用您在各个领域的数据建模技能,例如信贷、保险、营销、自然语言处理、销售预测和计算机视觉等。

https://www.coursera.org/learn/competitive-data-science

17。计算思维和数据科学简介

指导教师:埃里克·格里姆森教授;约翰·古塔格教授;安娜·贝尔博士

6 0002 是 6 0001 计算机科学和 Python 编程入门的继续,面向很少或没有编程经验的学生。它旨在让学生了解计算在解决问题中的作用,并帮助学生,无论他们的专业如何,对他们编写小程序以实现有用目标的能力充满信心。该类使用 Python 25 编程语言。

https://OCW . MIT . edu/courses/electrical-engineering-and-computer-science/6-0002-introduction-to-computational-thinking-and-data-science-fall-2016/

18。计算机科学导论和 Python 编程

指导老师:安娜·贝尔博士;埃里克·格里姆森教授;约翰·古塔格教授

《计算机科学和 Python 编程导论》面向很少或没有编程经验的学生。它旨在让学生了解计算在解决问题中的作用,并帮助学生,无论他们的专业如何,对他们编写小程序以实现有用目标的能力充满信心。该类使用 Python 25 编程语言。

https://OCW . MIT . edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/

19。统计思维和数据分析

讲师:辛西娅·鲁丁教授;Allison Chang(助教);Dimitrios Bisias(助教)

本课程介绍统计数据分析。主题选自应用概率、抽样、估计、假设检验、线性回归、方差分析、分类数据分析和非参数统计。

https://OCW . MIT . edu/courses/Sloan-school-of-management/15-075j-statistical-thinking-and-data-analysis-fall-2011/

20。用于数据科学的 SQL

加州大学戴维斯分校

本课程旨在为您提供 SQL 和数据处理基础的入门知识,以便您可以开始出于数据科学的目的对其进行分析。

*【https://www.coursera.org/learn/sql-for-data-science *

数据科学学位/证书

  1. 计算机科学硕士

伊利诺伊大学厄巴纳-香槟分校

学费:21000 美元

计算机科学硕士是一个非论文学位,需要 32 个学分的课程。学生可以按照自己的进度完成计算机硕士所需的八门课程,少则一年,多则五年。学生通过 Coursera 平台接受讲座,但伊利诺伊州的教师和助教会就大学学位学分所需的一系列严格的作业、项目和考试进行建议和评估。

计算机科学硕士学位 32 个学分的学费为 19,200 美元。

https://www . coursera . org/degrees/伊利诺伊州计算机科学硕士

2。计算机科学学士

伦敦大学

学费:9600-17000,取决于学生的地理位置。

该学位由伦敦大学戈德史密斯团队设计,旨在为您提供计算机科学的坚实基础和数据科学、人工智能、虚拟现实和网络开发等主题的专业知识。你的学习将涉及行业和学术案例研究,以帮助你从现实世界问题的角度理解你的研究

https://www . coursera . org/degrees/学士-科学-计算机-科学-伦敦

3。数据科学

哈佛大学

学费:整个项目 441.90 美元。

你将学到:基本的 R 编程技巧;统计概念,如概率、推理和建模,以及如何在实践中应用它们;获得使用 tidyverse 的经验,包括使用 ggplot2 的数据可视化和使用 dplyr 的数据辩论;熟悉实践数据科学家的必备工具,如 Unix/Linux、git 和 GitHub、RStudio 实现机器学习算法;通过激励真实世界的案例研究,深入了解基本的数据科学概念。

https://www . EDX . org/professional-certificate/harvardx-data-science

4。微软数据科学专业计划

创建者:微软

学费:整个项目 1089 美元

你将学会:使用微软 Excel 探索数据;使用 Transact-SQL 查询关系数据库;使用 Excel 或 Power BI 创建数据模型并可视化数据;将统计方法应用于数据;使用 R 或 Python 进行数据的探索和转换;遵循数据科学方法;用 Azure 机器学习创建和验证机器学习模型;写 R 或 Python 代码,构建机器学习模型;将数据科学技术应用于常见场景;针对给定的数据问题实现机器学习解决方案。

https://www . EDX . org/微软-专业-程序-数据-科学

6。计算机科学硕士

亚利桑那州立大学

学费:15000 美元

您将从 20 门课程选项中选择 10 门课程,以发展新兴按需技术方面的专业知识。从人工智能、软件工程、云计算、大数据和网络安全等重点领域中进行选择。你还将创建一个项目组合,用来向未来的雇主展示你的经历。

https://www . coursera . org/degrees/master-of-computer-science-ASU

书籍

1。数据科学手册:来自 25 位了不起的数据科学家的建议和见解

作者:卡尔·山

25 位业内专家在这本手册中给出了一些建议,对初学者很有帮助。

2。商业数据科学:你需要了解的数据挖掘和数据分析思维

作者:福斯特教务长和汤姆·福塞特

面向企业的数据科学介绍了数据科学的基本原理,并引导您完成从收集的数据中提取有用知识和商业价值所需的“数据分析思维”。本指南还帮助您理解当今使用的许多数据挖掘技术。

3。做数据科学:从一线直说

作者:凯茜·奥尼尔和瑞秋·舒特

在这些长达一章的讲座中,来自谷歌、微软和易贝等公司的数据科学家通过展示案例研究和他们使用的代码来分享新的算法、方法和模型。如果你熟悉线性代数、概率和统计,并且有编程经验,这本书是数据科学的理想入门。

4。使用 Python 从零开始的数据科学:逐步指南

作者:彼得斯·摩根

如果你正在寻找一个完整的从零开始使用 Python 的一步一步的数据科学指南,这本书是给你的。在他的第一本书《用 Python 从零开始进行数据分析》获得巨大成功之后,Peters Morgan 出版了他的第二本书,现在专注于数据科学和机器学习。从业者认为这是这个领域中最简单的指南。

5。假人数据科学(假人(计算机))

作者:莉莲·皮尔森

虚拟数据科学是 IT 专业人员和学生的完美起点,他们希望快速入门广阔的数据科学空间的所有领域。这本书以商业案例为重点,探讨了大数据、数据科学和数据工程方面的主题,以及这三个领域如何结合起来产生巨大的价值。

6。概率、统计和随机过程介绍

作者:侯赛因·皮什罗-尼克

这本书向学生介绍了概率、统计和随机过程。学生和工程、各种科学、金融和其他相关领域的从业者都可以使用它。它为这些主题提供了一种清晰直观的方法,同时保持了数学的准确性。你也可以在网上找到课程和视频。

https://www.probabilitycourse.com

7。OpenIntro 统计数据

作者:大卫·迭斯和克里斯托弗·巴尔

OpenIntro 项目成立于 2009 年,旨在通过制作免费使用且易于修改的优秀书籍和教学工具来提高教育质量和可用性。他的处女作是 OpenIntro Statistics。相应的课程和视频可在以下位置找到:

https://www.openintro.org

8。统计推断

作者:乔治·卡塞拉

是很多高校应届毕业生的教材。

讨论理论统计和理论发展的实际应用。包括大量涵盖理论和应用的练习。

9。应用线性统计模型

作者:考特纳

应用线性统计模型是长期建立的统计建模的主要权威文本和参考。第五版增加了计算和图形分析的使用,而没有牺牲概念或严谨性。一般来说,5e 在例子和练习中使用更大的数据集,如果方法可以在软件中自动化而不丧失理解,它就这样做了。

10。广义线性模型介绍

作者:安妮特·j·多布森和阿德里安·g·巴尼特

它为统计建模提供了一个连贯的框架,重点是数字和图形方法。这本畅销书的新版本已经更新了非线性关联的新部分,模型选择的策略,以及关于良好统计实践的海报。

数据提取器:通过聚合网站的大数据来创建自己的数据库。

  1. 八分音符

许可证:免费

网址:https://www.octoparse.com/

数据导出格式:Excel、HTML、CSV、JSON 和数据库

Octoparse 是最好的免费网络数据提取器,功能全面,支持从网站上提取几乎所有类型的数据。有两种应用模式——向导模式和高级模式——供非程序员快速习惯 Octoparse。

此外,其云提取能够在云端运行刮刀,并将数据保存在八分云,使得每个人都能够实时访问刮刀动态信息。Octoparse 不仅提供 SAAS,还提供 web scraper 设置和数据收集的定制服务。

2。莫曾达

许可证:商业

网址:https://www.mozenda.com/

Mozenda 是一个云网络抓取服务(SaaS ),具有用于数据提取的实用功能。Mozenda Web Console 是一个基于 Web 的应用程序,允许您运行您的代理(scrape 项目),查看和组织您的结果,并将提取的数据导出或发布到 Dropbox、Amazon 和 Microsoft Azue 等云存储中。代理生成器是一个用于生成数据项目的 Windows 应用程序。

3。刮刀

许可证:免费

https://chrome.google.com/webstore/category/extensions

Scraper 是一个 Chrome 扩展,具有有限的数据提取功能,但它有助于进行在线研究,并将数据导出到谷歌电子表格。该工具适用于初学者以及能够使用 OAuth 轻松地将数据复制到剪贴板或存储到电子表格的专家。Scraper 是一个免费的网络爬虫工具,它可以在你的浏览器中工作,并自动生成较小的 XPaths 来定义要爬行的 URL。它可能不提供包罗万象的爬行服务,但新手也不必处理混乱的配置。

4。文档解析器

起价:25 美元/月/用户

Docparser 允许您从 PDF 和扫描的文档中提取特定的数据字段,将 PDF 转换为文本,PDF 转换为 JSON,PDF 转换为 XML,将 PDF 表格转换为 CSV 或 Excel 等。

5。可视刮刀

VisualScraper 是另一个伟大的免费和非编码的 web scraper,具有简单的点击式界面,可用于从 web 上收集数据。您可以从多个网页获取实时数据,并将提取的数据导出为 CSV、XML、JSON 或 SQL 文件。除了 SaaS,VisualScraper 还提供网络抓取服务,如数据传送服务和创建软件提取器服务。

6。数据小屋

起价:2000 美元/月

不需要编码、不需要服务器或昂贵的 DIY 软件,Datahut 是一种完全托管的 web 数据提取服务,它支持从 web 提供随时可用的数据馈送,以帮助快速构建应用程序和进行业务分析。

http://datahut.co

7。WebHarvy

WebHarvy 单用户许可证:129 美元/年

WebHarvy 是一个点击式网页抓取软件。它是为非程序员设计的。WebHarvy 可以自动从网站上抓取文本、图像、URL 和电子邮件,并以各种格式保存抓取的内容。它还提供内置的调度程序和代理支持,支持匿名抓取和防止网络抓取软件被网络服务器阻止,您可以选择通过代理服务器或 VPN 访问目标网站。

https://www.webharvy.com

8。智胜枢纽

许可证:免费

https://www.outwit.com/products/hub

OutWit Hub 是 Firefox 的一个插件,它有几十个数据提取功能,可以简化你的网络搜索。这个网络爬虫工具可以浏览网页并以适当的格式存储提取的信息。OutWit Hub 提供了一个单一的接口,可以根据需要抓取少量或大量的数据。OutWit Hub 允许您从浏览器本身抓取任何网页,甚至创建自动代理来提取数据并根据设置格式化。

9。数据整合

免费版:是

https://www.talend.com

Talend Data Fabric 是一个集成平台,可让客户在内部、云中或使用大数据运行时,在批处理、流和实时之间无缝移动。它可以通过安全的云集成平台即服务(iPaaS)轻松连接大数据源、云应用程序和数据库。

10。Dexi.io

*【https://dexi.io/ *

作为一个基于浏览器的网络爬虫,Dexi.io 允许你从任何网站抓取基于你的浏览器的数据,并提供三种类型的机器人供你创建抓取任务——提取器、爬虫和管道。免费软件为您的网络抓取提供匿名网络代理服务器,您提取的数据将在 Dexi.io 的服务器上托管两周,然后数据将被存档,或者您可以直接将提取的数据导出到 JSON 或 CSV 文件。它提供付费服务来满足你获取实时数据的需求。

数据分析工具

1。网络焦点

由信息建设者

Information Builders WebFOCUS 是业内最灵活、最普及的 BI 和分析平台,能够向任何和所有业务利益相关方提供广泛的治理分析工具、应用程序、报告和文档。

www.ibi.com

2。迷你标签 18

通过 Minitab

起价:1,495.00 美元/一次性/用户

Minitab 是全球用于质量改进和统计教育的领先统计软件。

3。Stata

由 StataCorp

Stata 是满足您数据科学需求的解决方案。获取和操作数据。探索。想象一下。模型。做出推论。将您的结果收集到可重复的报告中。

https://www.stata.com/

4。SAS/STAT

由 SAS 研究所提供

统计分析系统提供了广泛的统计软件,从传统的方差分析到精确方法和动态数据可视化技术。

https://www.sas.com/en_us/home.html

5。MicroStrategy 企业分析

通过微观战略

全面的企业分析和移动平台,提供全方位的分析和报告功能

www.microstrategy.com

6。想法

CaseWare 国际公司

CaseWare IDEA 是一款全面、强大且易于使用的数据分析工具,可快速分析 100%的数据,保证数据完整性并加快分析速度,为更快、更有效的审计铺平道路。

https://www . caseware analytics . com/products/idea-data-analysis

7。NVivo

QSR 国际公司

NVivo 不仅仅是一个组织和管理数据的工具,它还可以帮助您以不同的方式思考您的研究,发现更多信息,并以严格的证据支持所有信息。

*【http://www.qsrinternational.com/nvivo/nvivo-products *

8。ATLAS.ti

通过科学软件开发

ti 是一个复杂的工具,可以帮助你以创造性的、系统的方式来安排、重组和管理你的材料。

https://atlasti.com/

9。查询表单

通过暴风范围软件

免费版是

QueryStorm 是一个用于 Excel 的开发和数据处理插件。它在 Excel 中提供了 SQL 和 C#支持,使技术人员更容易与电子表格中的数据进行交互。

https://www.querystorm.com/

10。巨嘴鸟托科

由巨嘴鸟托科

Gartner 的评论:Toucan 是一家很好的合作公司。该工具用户友好,易于安装,易于部署,并且在使数据易于理解方面做得很好。这个团队很有帮助,很专业,带你了解他们的敏捷方法,这使得我们能够快速地将项目推出,并把它交给我们的合作者。

https://toucantoco.com/en/

报告工具

1。QlikView

由 Qlik 提供

QlikView 将 ETL、数据存储、多维分析和最终用户界面结合在同一个包中,因此部署速度极快,日常维护也很简单。

www.qlik.com

2。点击报告

敲击声

TapReports 是一个基于云的协作和报告解决方案,允许企业管理与其客户的通信,并为其客户生成可定制的营销报告和交互式销售报告。

https://www.tapclicks.com/

3。IBM Cognos Analytics

由 IBM 提供

IBM Cognos Analytics 是一个内聚的性能管理和商业智能解决方案,具有预算、战略规划、预测和整合功能。

www.ibm.com/products/cognos-analytics

4。Zoho 报道

作者 Zoho

Zoho Reports 是一个自助式商业智能和分析软件,允许您创建有洞察力的仪表板和数据可视化。

*【https://www.zoho.com/reports/ *

5。SAP Crystal Reports

由 SAP Crystal 报告

借助 SAP Crystal Reports,您可以创建功能强大、格式丰富的动态报表,这些报表来自以多种格式、多达 24 种语言交付的虚拟数据源和数据源。

www.sap.com

6。BI360

按求解程序

Solver 专门提供世界一流的财务报告、预算和分析,通过一键访问所有数据源来提高公司的盈利能力。BI360 可用于云和内部部署,侧重于报告、预算、仪表板和数据仓库。

www.solverglobal.com

7。Domo

多莫公司

Domo 是一个基于云的业务管理套件,集成了多个数据源,包括电子表格、数据库、社交媒体和任何现有的基于云的或内部部署的软件解决方案。

https://www.domo.com/product

8。交流记者加

按管理引擎

在大多数使用 Active Directory 技术的公司环境中,Microsoft Exchange 充当所有电子邮件通信的中心。

https://www.manageengine.com/products/exchange-reports

9。伊泽达报道

Izenda 是一个商业智能(BI)平台,支持实时数据探索和报告创建。

https://www.izenda.com/

10。增长 BI 仪表板

Grow 是一款基于云的业务分析和报告解决方案,适合中小型企业。该解决方案允许用户创建可定制的控制面板来监控业务工作流和关键活动。

https://www.domo.com/product

12 项数据科学竞赛/计划

1。卡格尔

Kaggle 是 Alphabet now 的子公司,它是一个预测建模和分析竞赛的平台,统计学家和数据挖掘者在这个平台上竞争,以产生最佳模型来预测和描述公司和用户上传的数据集。

【www.kaggle.com 号

2。克劳代

CrowdAI 是瑞士洛桑联邦理工学院的一个开源平台,用于举办开放数据挑战赛,并深入了解问题是如何解决的。

https://crowdai.com/

3。CrowdANALYTIX

CrowdANALYTIX 是一个众包平台,用于构建由众多数据科学家组成的全球社区构建的定制人工智能解决方案。它也是一个人工智能驱动的平台,用于自动创建零售产品目录的上下文感知产品属性和元标签。

https://crowdanalytix.com/community

4。Datascience.net

Datascience.net 是第一个法语数据科学平台,由一群数据专家于 2013 年推出。它在面临复杂数据中心问题的组织和愿意解决这些问题的最佳数据科学家之间架起了一座桥梁。

https://www.datascience.net/fr/challenge#

5。黑客排名

HackerRank 专注于消费者和企业的竞争性编程挑战,其中开发人员通过尝试根据提供的规范编程来竞争。HackerRank 的编程挑战可以用多种编程语言(包括 Java、C++、PHP、Python、SQL、JavaScript)解决,并且跨越多个计算机科学领域。(维基百科)

https://www.hackerrank.com/contests

6。创新

InnoCentive 是一家开放式创新和众包公司,其全球总部位于马萨诸塞州沃尔瑟姆。它们使组织能够将他们未解决的问题和未满足的需求(被框定为“挑战”)公开给大众来解决。

https://www.innocentive.com/ar/challenge/browse

7。顶部编码器

Topcoder 是一家众包公司,拥有一个由设计师、开发人员、数据科学家和有竞争力的程序员组成的开放的全球社区。Topcoder 向公司、中型企业和小型企业客户出售社区服务,并向社区成员支付项目工作报酬。Topcoder 还组织一年一度的 Topcoder 公开赛和一系列较小的地区性赛事。(维基百科)

https://www.topcoder.com/

8。黑客地球

Hacker Earth 是一家位于印度班加罗尔的初创科技公司,提供招聘解决方案。其客户包括 Adobe、Altimetrik、Citrix Systems、InMobi、Symantec 和 Wipro。它有一个有竞争力的编程平台,支持超过 32 种编程语言(包括 C、C++、Python、Java 和 Ruby)。(维基百科)

*【https://www.hackerearth.com/challenges/ *

9。分析 Vidhya

https://datahack.analyticsvidhya.com/contest/all/

10。驱动数据

https://www.drivendata.org/competitions/

11。编码

https://app.codility.com/programmers/challenges/

12。CodaLab

https://competitions.codalab.org/competitions/

原载于www.octoparse.com*。*

面向数据科学家的 9 份重要简讯

原文:https://towardsdatascience.com/9-essential-newsletters-for-data-scientists-e225e4227318?source=collection_archive---------3-----------------------

简讯对 2018 年内容监管的重要性

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

Conor’s Newsletter

问题是

一段时间以来,数字媒体就是未来,这一点已经很清楚了。然而,只有在过去的几年里,我们才真正体验到大规模数字媒体的后果。虽然假新闻可能因影响力和各种丑闻而占据中心舞台,但问题不仅仅是假新闻。

真正的问题在于区分信号和噪声。

我们不断被信息轰炸,以至于在互联网大小的干草堆中找到隐喻的“价值针”变得越来越困难。

目前这种困境留给我们的问题多于答案。

在一个充斥着点击诱饵标题和假新闻的世界里,我们如何毫发无损地躲过这些地雷?如今,网络上有无穷无尽的内容,哇,我们是不是要筛选所有的内容,并把注意力集中在重要的内容上?

这些无疑是难题。事实上非常困难,每天都有成千上万有才华的人试图解决这些问题。

解决方案

我越来越清楚,这些问题的解决方案都依赖于完善一个高于一切的概念——内容监管。

“内容监管是收集与特定主题或感兴趣的领域相关的信息的过程.”

在一个完美的世界里,你不应该仅仅为了找到一个特定主题的真实的、有价值的信息或资源而搜索万维网。这项任务可以而且应该委托给其他人。

在这篇文章的其余部分,我将重点关注我最喜欢的内容管理形式——时事通讯。我们将回顾为什么简讯对数据科学特别有用,然后我将分享我目前订阅的每一份数据科学简讯。

数据科学呢?

由于数据科学技能集的快速增长和多维度性质,简讯可以提供巨大的价值。

这个领域目前没有放缓的迹象。似乎每隔一周就有一个有趣的突破或项目。新技术和技巧也非常普遍。

为了让你的数据驱动技能保持最佳状态,你需要培养一种成长心态并乐于学习新事物。时事通讯是帮助你了解该领域最新动态的最佳方式。

把你订阅的时事通讯想象成一群聪明、专业的精英,他们为你提供值得你花费时间的信息。

幸运的是,对于数据科学家来说,有大量优秀的时事通讯可供研究。你会在下面找到我的订阅列表,没有特定的顺序,关于数据科学、机器学习、人工智能或一般黑客的任何内容。在过去的三年中,这种方法不断被迭代和发展。

作者注:我只订阅了一小部分优秀的时事通讯,所以不要害怕拓展和尝试其他的。此外,如果不符合标准,您可以在一期后退订。没什么可失去的!

[## 数据科学周刊-第 239 期

我们的资源页面。

mailchi.mp](https://mailchi.mp/datascienceweekly/data-science-weekly-issue-927097?e=2c2014787d) [## 获取奥赖利数据通讯-奥赖利媒体

在 1,969 个评级中,平均每五颗星中有四颗保持消息灵通。从业内人士那里获得每周见解,此外…

www.oreilly.com](https://www.oreilly.com/data/newsletter.html?mkt_tok=eyJpIjoiT1dJNU1qUTFaVGd3WTJGaiIsInQiOiJkTmVucm1rTG4wc0R2NVFiTEE3a1wvXC9sRXVLM28yUVpUXC9KaXdUXC93SmplR3B4QkJFc0VCN2VadW85Z3MrYXU3aHZkZmtuc01ZKzNoXC9TVkRzOGI5bFZNUXZSMTVORFhTZ0E4ZnFPVko5R3FwTlY2b2hJaXFMVXROODlJUHBSakluIn0%3D) [## 存档问题|数据灵丹妙药

有关策划的数据科学新闻和工具,请浏览 Data Elixir 的时事通讯档案。

dataelixir.com](https://dataelixir.com/issue/?num=187?sid=ShnzrOJ#start) [## 玛奇纳数据-第 133 期

这里有一个新的重要的东西:TD= DP + MC 时间差分学习:结合动态规划和蒙特卡罗…

www.getrevue.co](https://www.getrevue.co/profile/datamachina/issues/data-machina-issue-133-119481?utm_campaign=Issue&utm_content=view_in_browser&utm_medium=email&utm_source=Data+Machina) [## 模式:分析调度

注册我们的每周时事通讯,里面充满了关于数据、数据科学和分析的相关文章。

about.modeanalytics.com](https://about.modeanalytics.com/newsletter/?utm_source=dispatch-send&utm_campaign=dispatch-subscribe&utm_medium=email&mkt_tok=eyJpIjoiTVRRNFpURXhNbVF5TUdFeiIsInQiOiIrbjV5Y2V0K05FTWV5WURPWEFZQ1BDRUI1bnRTZm1DTEt1a1o0dWgyb015WjJhZUJiK2JjcW1zMDJJQTMyN0hSNFpmdmZWQVI1TnNpaVVYc3pvZGVRSTh3Nk1jU0NyVFRDM2kraVwvZjJXTm5rUENYNm5mTEhUMWVpWGd2XC9STndRIn0%3D) [## 争夺机器学习霸权的国家

“工业机器人能够杀死一个人…[但是]传感器、计算和软件的进步正在改变…

mailchi.mp](https://mailchi.mp/usejournal/deception-964925?e=8489f0e7ea) [## 嵌入式 ML。值得信赖的分析。ML @ Twitter。雪花& BigQuery。[DSR 第 140 位]

数据科学综述- ❤️想要支持我们吗?转发这封邮件给三个朋友!🚀从一个朋友那里转发来的…

roundup.fishtownanalytics.com](http://roundup.fishtownanalytics.com/issues/embedded-ml-trustworthy-analysis-ml-twitter-snowflake-bigquery-dsr-140-119218) [## 黑客新闻摘要

我们会定期发送电子邮件,内容包括黑客新闻,这样您就不会经常分心,并且可以随时了解…

www.hndigest.com](https://www.hndigest.com/) [## Kaggle 时事通讯:音频样本 GAN、MDPs 教程和 CERN 竞赛指南

你好!复制研究论文是提高机器学习技能的一种有益方式。但是实践可以是…

us1.campaign-archive.com](https://us1.campaign-archive.com/?u=e4c8fb8b43860678deab268e5&id=c810091291&e=abeaa8fb3e)

包扎

感谢阅读!如果你喜欢这篇文章,请继续向鼓掌按钮展示你的爱。对更多的帖子感兴趣吗?请确保关注我并订阅下面的我的简讯以接收任何新内容。更多关于我和我在做什么的信息,请查看我的网站。

A/B 测试:中心极限定理的重要性

原文:https://towardsdatascience.com/a-b-testing-the-importance-of-central-limit-theorem-362f6843bf55?source=collection_archive---------12-----------------------

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

数据分析需要准确甚至尊重的数据处理。当 AB 测试已经完成,并且已经收集了统计上显著数量的数据时,就到了确定获胜者的时候了。然而,在分析之前,清理和准备 AB 测试数据集至关重要。此外,研究数据的性质和特征并选择合适的统计评估方法也是极其重要的。

中心极限定理是处理数据和样本的基本要素。没有对中心极限定理的理解,一般情况下就不可能形成和评价 A/B 测试样本和数据分析。在本文中,我将解释这个定理的实际好处及其在 A/B 测试中的重要性。

中心极限定理是分析师装备中的有力工具。

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

一些定理论文

  • 从任何总体中形成大的随机样本倾向于按照正态律分布其平均值,并且接近我们从中取样的一般总体的平均值,而不管一般总体的分布形式如何。即使总体分布是指数分布,多重随机样本抽取也趋向于正态分布。
  • 大多数样本的平均值将足够接近总体的平均值。究竟什么应该被认为是“足够接近”是由标准误差决定的。
  • 样本平均值距离总体平均值超过两个标准误差的可能性相对较小,样本平均值距离总体平均值超过三个或更多标准误差的可能性极小。
  • 一些结果纯粹是随机的可能性越小,我们就越能确定有其他因素的影响。

假设我们启动了一个实验,目标度量是平均检查。零假设是对照组和实验组之间的平均检查值没有差异。另一个假设是,差异是存在的。

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

众所周知,小样本量会导致对统计数据的不准确评估。根据大数定律,样本量越大,样本均值越接近总体均值。这意味着,为了更准确地评估总体均值,我们需要足够大的样本。

这可以通过下面的图表来理解,图表显示随着样本量的增加,样本均值越来越接近总体均值:

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

我们可以使用 bootstrap 来确定指数分布平均检查数据的置信区间。我们可以看到,算术样本平均值的平均值大约等于从中提取统计数据的样本平均值。标准偏差变小了,因为观察值现在尽可能接近真实的总体平均值。

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

在这种情况下,平均值的标准偏差是之前绘制的置信区间的标准误差。现在,使用置信区间,我们可以评估统计数据。这是中心极限定理的主要实用价值之一。

如果目标是获得更精确的均值估计,那么有必要最小化方差。价差越小,平均值越准确。要使均值的标准差足够小,需要足够大的样本量。

底线

上面的例子假设我们对分布的形式有所了解。在现实中,有许多情况下,观测值不能用任何分布规律来解释。这些情况很可能与异常值有关。伦理问题是,将数据调整到所需的分布形式,以获得充分的评估或保持原样。在 A/B 测试中,这个决定取决于假设、抽样和度量。在某些情况下,剔除离群值是有意义的,但在另一种情况下,考虑“鲸鱼”是值得的。

例如,Bootstrap 在处理异常值时并不完美。看看如果我们将值 100 和 1000 添加到要重新采样的样本中会发生什么

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

结论

为了执行稳健的数据分析,了解统计基础知识至关重要,否则,获得误导性结果的风险极高。在具有非正态分布的数据集上使用适用于正态分布数据的评估方法会导致做出错误的决策。

下一步是什么

在接下来的文章中,我们将回顾哪些指标通常具有正态和非正态分布形式,以及在每种情况下应该应用什么统计标准来测试假设。

最初发表于【awsmd.com】

闯入数据的坏蛋指南

原文:https://towardsdatascience.com/a-badasss-guide-to-breaking-into-data-5d1a7258ef4e?source=collection_archive---------15-----------------------

一个由环境工程师转变为数据科学家的故事

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

这不是我的故事。

这是一个关于数据科学家、数据战略家、培训师和技术业务教练的故事,他激励了数据领域的许多专业人士。她是莉莲·皮尔森数据狂热的创始人和 LinkedIn Learning 的讲师——她还写了几本书,为数据科学的初学者提供指导。

如果你想在数据领域进一步发展自己的事业,或者想在数据科学领域成为一名成功的企业家,那么她写的《一个坏蛋进入数据的指南》是另一部杰作,强烈推荐。

为什么我觉得这本书是必读书?

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

Book — A Badass’s Guide to Breaking Into Data

简单。书是 实用 。没什么特别的。

尽管提供的内容很简短,但它实际上会分解为对您真正重要的内容,即作为一名有抱负的数据专业人员,从最佳资源中学习,以及如何一步一步地建立您的产品组合和个人品牌。

令我惊讶的是,这本书甚至更进一步,向你展示了数据专业人士在不同的社交媒体上应该关注哪些技术影响者。我就想,什么?真的吗?Lillian Pierson采取的大规模行动不仅帮助人们从最好的资源中学习,也帮助人们从行业中最优秀的人那里学习,这绝对是鼓舞人心的!

建立一个数据科学博客

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

(Source)

事实上,最吸引我注意力的章节是如何建立一个数据科学博客。

对我来说,这一切都可以归结为一个词——分享。

思维的类比——假设您分析了一个数据集,得出了一些有趣的结果,从而产生了见解和行动计划。但是最后,你没有机会向利益相关者展示你的结果,或者,你的分析根本没有听众给你反馈。

所以问题是——你做过分析吗?

嗯…在你内心深处,你知道你花了很多时间来分析数据集,但机会没有敲门让你分享和展示结果。

回到写你的数据科学博客。尽管您可能有突破性的解决方案或从数据集获得的见解来解决问题,但如果解决方案孤立存在,什么也不会发生,因为没有人知道它。

**分享。**这是打开在数据领域获得成功的机会之门的钥匙。人们通过把你的学习历程或分析放入 词语 中来了解你做了什么和你有什么能力。通过分享,你也可以向他人学习。

结论

感谢您的阅读。希望你会发现这本书很有用,我很想听听你从内容中学到了什么,以及你将如何应用这些概念。在下面留下你的评论吧!

这里 可以免费获得电子书

一如既往,如果您有任何问题或意见,请随时在下面留下您的反馈,或者您可以随时通过 LinkedIn 联系我。在那之前,下一篇文章再见!😄

关于作者

Admond Lee 现在的使命是让每个人都能接触到数据科学。他正在帮助公司和数字营销机构通过创新的数据驱动方法,利用可操作的见解实现营销投资回报。

凭借其在高级社会分析和机器学习方面的专业知识,Admond 旨在弥合数字营销和数据科学之间的差距。

如果你想了解更多关于 Admond 的故事、数据科学服务以及他如何在营销领域帮助你,请查看他的 网站

你可以在 LinkedInMediumTwitter脸书上和他联系。

[## 阿德蒙德·李

让每个人都能接触到数据科学。Admond 正在通过先进的社交分析和机器学习,利用可操作的见解帮助公司和数字营销机构实现营销投资回报。

www.admondlee.com](https://www.admondlee.com/)

可分卷积的基本介绍

原文:https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728?source=collection_archive---------0-----------------------

任何人只要看一看 MobileNet 的架构,就会毫无疑问地遇到可分卷积的概念。但那是什么,它和普通的卷积有什么不同?

有两种主要类型的可分离卷积:空间可分离卷积和深度可分离卷积。

空间可分卷积

从概念上来说,这是两个中较容易的一个,并且说明了将一个卷积分成两个的想法,所以我将从这个开始。不幸的是,空间可分卷积有一些明显的限制,这意味着它在深度学习中没有被大量使用。

空间可分卷积之所以如此命名,是因为它主要处理图像和内核的空间维度:宽度和高度。(另一个维度,即“深度”维度,是每个图像的通道数)。

空间可分离卷积简单地将一个核分成两个更小的核。最常见的情况是将 3x3 内核分为 3x1 和 1x3 内核,如下所示:

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

Image 1: Separating a 3x3 kernel spatially

现在,我们不是用 9 次乘法进行一次卷积,而是用两次卷积,每次 3 次乘法(总共 6 次)来达到相同的效果。随着乘法运算的减少,计算复杂度降低,网络能够运行得更快。

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

Image 2: Simple and spatial separable convolution

可以在空间上分离的最著名的卷积之一是 Sobel 核,用于检测边缘:

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

Image 3: Separating the Sobel kernel

空间可分离卷积的主要问题是,不是所有的核都可以被“分离”成两个更小的核。这在训练期间变得特别麻烦,因为在网络可以采用的所有可能的核中,它最终只能使用可以分成两个更小的核的微小部分中的一个。

深度可分卷积

与空间可分离卷积不同,深度可分离卷积与不能被“分解”成两个更小内核的内核一起工作。因此,它更常用。这是在 keras.layers.SeparableConv2D 或 tf.layers.separable_conv2d 中看到的可分离卷积类型。

深度方向可分离卷积之所以如此命名,是因为它不仅处理空间维度,还处理深度维度——通道的数量。一个输入图像可能有 3 个通道:RGB。经过几次卷积后,一幅图像可能有多个通道。您可以将每个通道想象成该图像的特定解释;例如,“红色”通道解释每个像素的“红色”,“蓝色”通道解释每个像素的“蓝色”,“绿色”通道解释每个像素的“绿色”。具有 64 个通道的图像对该图像有 64 种不同的解释。

与空间可分离卷积类似,深度方向可分离卷积将一个核分割成两个独立的核,进行两种卷积:深度方向卷积和点方向卷积。但首先,让我们看看一个正常的卷积是如何工作的。

正常卷积:

如果你不知道从二维角度看卷积是如何工作的,请阅读这篇文章或查看这个网站

然而,典型的图像不是二维的;它也有深度以及宽度和高度。假设我们有一个 12×12×3 像素的输入图像,一个大小为 12×12 的 RGB 图像。

让我们对图像进行 5x5 卷积,没有填充,步幅为 1。如果只考虑图像的宽度和高度,卷积过程有点像这样:12x12 — (5x5) — >8x8。5x5 内核每 25 个像素进行一次标量乘法,每次产生 1 个数字。我们最终得到一个 8×8 像素的图像,因为没有填充(12–5+1 = 8)。

然而,因为图像有 3 个通道,我们的卷积核也需要有 3 个通道。这意味着,每次内核移动时,我们实际上执行 5x5x3=75 次乘法,而不是执行 5x5=25 次乘法。

就像 2d 解释一样,我们对每 25 个像素进行标量矩阵乘法,输出 1 个数字。经过一个 5x5x3 的内核,12x12x3 的镜像会变成一个 8x8x1 的镜像。

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

Image 4: A normal convolution with 8x8x1 output

如果我们想增加输出图像中的通道数量,该怎么办?如果我们想要 8x8x256 大小的输出呢?

嗯,我们可以创建 256 个内核来创建 256 个 8x8x1 图像,然后将它们堆叠在一起,创建一个 8x8x256 图像输出。

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

Image 5: A normal convolution with 8x8x256 output

这就是普通卷积的工作原理。我喜欢把它想象成一个函数:12x12x3 — (5x5x3x256) — >12x12x256(其中 5x5x3x256 代表内核的高度、宽度、输入通道数和输出通道数)。不是说这不是矩阵乘法;我们不是将整个图像乘以内核,而是将内核移动通过图像的每个部分,并分别乘以图像的小部分。

深度方向可分离卷积将该过程分成两部分:深度方向卷积和点方向卷积。

第 1 部分—深度方向卷积:

在第一部分,深度方向卷积,我们给输入图像一个不改变深度的卷积。我们通过使用 3 个形状为 5x5x1 的内核来实现这一点。

Video 1: Iterating 3 kernels through a 3 channel image

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

Image 6: Depthwise convolution, uses 3 kernels to transform a 12x12x3 image to a 8x8x3 image

每个 5x5x1 内核迭代图像的 1 个通道(注: 1 个通道,不是所有通道),得到每 25 个像素组的标量积,给出一个 8x8x1 的图像。将这些图像堆叠在一起会创建一个 8x8x3 的图像。

第 2 部分—逐点卷积:

请记住,原始卷积将 12x12x3 图像转换为 8x8x256 图像。目前,深度方向卷积已将 12x12x3 图像转换为 8x8x3 图像。现在,我们需要增加每个图像的通道数。

逐点卷积之所以这样命名,是因为它使用了一个 1x1 内核,或者说是一个遍历每一个点的内核。无论输入图像有多少通道,该内核都具有深度;在我们的例子中,是 3。因此,我们通过 8x8x3 图像迭代 1x1x3 内核,得到 8x8x1 图像。

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

Image 7: Pointwise convolution, transforms an image of 3 channels to an image of 1 channel

我们可以创建 256 个 1×1×3 的内核,每个内核输出一个 8×8×1 的图像,从而得到形状为 8×8×256 的最终图像。

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

Image 8: Pointwise convolution with 256 kernels, outputting an image with 256 channels

就是这样!我们已经将卷积分成两部分:深度方向卷积和点方向卷积。再抽象一点,如果原卷积函数是 12x12x3 — (5x5x3x256) →12x12x256,我们可以把这个新卷积图解为 12 x12 x3—(5x 5x 1 x1)—>(1x1 x3 x256)—> 12 x12 x256。

好吧,但是创建深度方向可分离卷积有什么意义呢?

让我们计算一下计算机在原始卷积中要做的乘法次数。有 256 个 5x5x3 内核移动 8x8 次。也就是 256x3x5x5x8x8=1,228,800 次乘法运算。

可分卷积呢?在深度方向卷积中,我们有 3 个移动 8x8 次的 5x5x1 内核。也就是 3x5x5x8x8 = 4,800 次乘法。在逐点卷积中,我们有 256 个移动 8×8 次的 1×1×3 内核。也就是 256x1x1x3x8x8=49,152 次乘法。把它们加在一起,就是 53,952 次乘法。

52952 比 1228800 少很多。随着计算量的减少,网络能够在更短的时间内处理更多的数据。

但是,这是怎么做到的呢?第一次碰到这种解释,直觉上对我来说真的没什么意义。这两个卷积不是在做同样的事情吗?在这两种情况下,我们通过 5x5 内核传递图像,将其缩小到一个通道,然后扩展到 256 个通道。为什么一个比另一个快两倍多?

思考了一段时间后,我意识到主要的区别是这样的:在正常卷积中,我们对图像进行了 256 次的变换。并且每一次变换使用多达 5x5x3x8x8=4800 次乘法。在可分离卷积中,我们只真正地变换图像一次**——在深度方向卷积中。然后,我们把变换后的图像简单地拉长到 256 通道。不必一次又一次地变换图像,我们可以节省计算能力。**

值得注意的是,在 Keras 和 Tensorflow 中,都有一个被称为“深度乘数”的论点。默认设置为 1。通过更改此参数,我们可以更改深度方向卷积中的输出通道数量。例如,如果我们将深度乘数设置为 2,每个 5x5x1 内核将给出 8x8x2 的输出图像,使得深度方向卷积的总(堆叠)输出为 8x8x6,而不是 8x8x3。有些人可能会选择手动设置深度乘数,以增加其神经网络中的参数数量,从而更好地学习更多特征。

深度方向可分卷积的缺点是什么?肯定!因为它减少了卷积中的参数数量,所以如果您的网络已经很小了,您可能会因为参数太少而结束,并且您的网络可能无法在训练期间正确学习。然而,如果使用得当,它能够在不显著降低效率的情况下提高效率,这使得它成为一个非常受欢迎的选择。

1x1 内核:

最后,因为逐点卷积使用了这个概念,所以我想谈谈 1x1 内核的用法。

可以在可分离卷积之外使用 1x1 内核,或者说 n 个 1x1xm 内核,其中 n 是输出通道的数量,m 是输入通道的数量。1x1 内核的一个明显目的是增加或减少图像的深度。如果你发现你的卷积有太多或太少的通道,1x1 内核可以帮助平衡它。

然而,对我来说,1x1 内核的主要目的是应用非线性。在神经网络的每一层之后,我们可以应用一个激活层。无论是 ReLU、PReLU、Softmax 还是其他,激活层都是非线性的,不像卷积层。"直线的线性组合仍然是一条直线."非线性层扩展了模型的可能性,这通常使得“深”网络比“宽”网络更好。为了在不显著增加参数和计算的数量的情况下增加非线性层的数量,我们可以应用 1x1 内核并在它之后添加激活层。这有助于给网络增加一层深度。

如果您有任何进一步的问题,请在下面留下评论!别忘了给这个故事一些掌声!

机器学习的基本模型——概述

原文:https://towardsdatascience.com/a-basic-model-for-machine-learning-an-overview-3854ea77e919?source=collection_archive---------6-----------------------

第 1 部分,共 2 部分

如今软件中最常见的“机器学习”形式是算法,可以从中学习并对数据做出预测。 Arthur Samuel 在 1959 年创造了“机器学习”这个术语,意思是赋予“计算机无需明确编程就能学习的能力”

今天,随着计算和数据的大幅增长,机器学习算法被有效地用于狭窄的任务,如“识别”图像,口语和书面语许多其他事情

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

所有这些都非常有用,但是这种方法不会导致对事物的理解,并且它在学习的方式上有根本性的限制:

  • 通常需要非常大量的数据来获得有用的结果
  • 算法往往是“黑箱”,它们的工作不可内省
  • 新的学习经常迫使整个模型的重建

这与幼儿(和动物)的学习方式毫无相似之处。

  • 从单一的信息中学习(“一次性学习”)
  • 关联和决定是可以解释的
  • 新的学习可以是渐进的也可以是从错误中产生的

麻省理工学院最近的一篇研究论文简洁地描述了“一次性学习”的想法:

“尽管机器学习已经解决了一些人们毫不费力就能解决的相同的分类和识别问题,但标准算法需要数百或数千个例子才能达到良好的性能。虽然用于数字识别的标准 MNIST 基准数据集每类有 6000 个训练样本,但人们可以仅从一个样本中对外国手写字符的新图像进行分类。”

除了一次性学习,从错误中学习的概念也是元素。神经网络在反向传播中使用梯度损失函数,然而这是建立模型的大规模强力迭代的一部分,而不是应用学习的自然部分。

反思做出决定的原因,因为这是由有意识的“T0”缓慢思考“T1”引起的,这与富有成效的学习循环是不可分割的。一个孩子被问到“这个东西属于吗?”她说是的,并能解释原因。她讲述了一个原因。老师解释答案,在这个过程中,学生形成新的理解,或强化现有的概念。

“为什么,”学习者最有力的问题是一个故事。

我在这里的目的是概述一个学习的基本模型,认识到机器和动物的大脑非常不同,但学习的基本概念和过程不一定如此。

学习的“无限循环”

给定角色学习者教师,人/动物的基本学习循环可以总结如下。

a .图案采集:

a.1 学习者获得符号模式*(图像、形状……)*

a.2 图案被赋予了某种东西*(一个名字)*

b .模式理解:

b.1 学习者被问及一个模式是否“属于”一个事物

b.2 学员根据所学模式提供最佳答案

教师提供强化或纠正,从而获得更多信息

一个模式不属于某样东西是学习的一个要素。

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

Cookie Monster on Sesame Street ‘a thing that does not belong’

孩子们通过看到“不属于”的例子来学习。

让我们从想象一个基本学习模型开始,该模型识别基本模式,学习如何识别模式组的区别特征,并确定模式是否可归因于某个事物。

标志

我们用字母做符号,顺序符号一起表示一个比较简单的模式。这是一个最基本的出发点。

符号是一个简单的字符串。

*符号:*一

另一个

符号: x

一个符号内部可以有其他符号,更低层次的抽象。

符号: x,(x1)

更深一层…

符号: x,(x1,(x1a,(x1a!)))

我们可以将一组符号排列成一个符号结构(一个有序的符号列表):

符号结构: a b c

现在让我们想象另一个:

符号结构: x y z i j k

出现的是在机器学习中有用的基本编程类和相关数据结构。符号结构可以包含同类的其他实例,符号结构是一个符号列表,每个符号都可以包含一个符号列表,依此类推。

事物可以被认为是其他事物的具体化

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

注意:这些例子中使用的字母数字可以是形状、色块,无论什么——它们是象征性的。我们实际上并没有将称为字母 a ,它只是作为一个方便的符号。

模式匹配

模式可以被匹配以产生它们相似性的“面具”(如果有的话)。我们可以使用数学中的技术(集合论)来寻找相似性。

象征结构: a b c 和象征结构: x y c

共享符号: c ,在第三个位置

象征结构: 1 1 9 *象征结构:*9 8 7 6 5

分享符号: 9

符号结构: 1 0 1 和符号结构: 1 1 1

份额: 1 (位置 0)和 1 (位置 2)。注意位置是从零开始的。

因为模式匹配掩码是符号结构的列表,所以它们可以与其他掩码进行模式匹配,以模式列表简化为公共特征。在集合论中,这被称为幂集的交集。

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

the intersection of a powerset

模式归属

现在让我们想象一个符号模式可以被赋予一个属性,也就是说我们将一个模式与某个“事物”联系起来或者不联系起来。归属的性质,就目前而言,将是“”,但显然可能是其他方式。

注意:我们现在将符号模式表示为有序的 [ 符号列表 ]

符号结构:【a b c】a‘foo’

符号结构:【x y z I j k】不是一个‘foo’

这是幼儿常用的基本学习方法。他们看到一只兔子的照片,听到“兔子”,他们看到另一只兔子的照片,再次听到这个词。一张袋鼠的照片不会发出“兔子”的声音。孩子正在从小数据中逐渐学习。

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

当然,一只兔子的图像是一个比单一字母符号复杂得多的符号,但它们都是象征性的。

只有和孩子们在一起,我们才有最好的机会研究逻辑知识、数学知识、物理知识等等的发展。—让·皮亚杰

在我们的学习模型中接下来发生的是模式的识别,其中固有的是识别模式中的区别特征

模式和显著特征

假设向您展示了以下符号模式,为了方便起见,再次使用字母符号(忽略字母的含义)。

象征结构: 【公元前】

符号结构:【x y c】

符号结构:【n o c】

你被告知这些模式代表了事物“foo”,也就是说,它们每个都带有后缀**“is a‘foo’”**

**‘foo’**的特点是什么?

答:最后一个位置的**‘c’**符号。

再:“喷火”是:

象征结构:【x b c c a】****

象征结构:【x c c y】****

符号结构:【y n c c x】****

****‘foo’有什么特点?

答:‘c c’符号的共同存在。这种符号组合本身就是象征性的。你可能也注意到了所有的模式都有一个‘x’****

如果你随后看到另一种模式:

象征模式:【x p q n c c o p】****

你可能会断言,根据你的理解,这也是一个“foo”。你可能是对的,也可能是错的,但是你断言的基础是存在被称为的属性的模式的区别特征。

事物实例中固有的符号模式成为模式匹配的基础。

为什么你认为那是一个“foo”?

因为它既展示了‘c c’图案,也展示了在所有其他被识别为‘foo’的图案中看到的‘x’图案。

当你浏览了上面的模式并理解了给出的问题时,你的大脑有意识地去寻找共同的模式。您浏览了前两个模式,注意到它们都以‘x’符号开始,然后立即注意到第三个模式缺少这个特性,但仍然包含那个‘x’符号(AND 构造)。快速重新扫描显示,所有 3 个图案都包含‘c c’,您可能会将这一对视为一个集合符号(不再需要 2 个单独的符号)。

再做一次,并在过程中意识到你的心理过程。在推理中反省自己的思维过程,或者所谓的‘慢思考’,并不困难。

现在你得到了另一种模式,即‘foo’

象征结构:【I t c c o v】****

现在【foo】的特点是什么?

答:‘c c’符号结构的存在是区别特征。符号“x”现在不再是一个显著的特征。

你对‘foo’有了更多的了解。以前被认为是显著特征的东西立即被抛弃了。当然,符号‘x’仍有可能在‘foo’的模式匹配中发挥一些作用,但让我们暂时把它放在一边,坚持基本原则。

有可能用与或逻辑来表达区别特征。如果属性的符号结构被放入子组中以维持幂集交集,就会出现这种情况。

从反面例子中学习

到目前为止,我们已经了解到“foo”由几种符号模式表示:

‘foo’:

符号结构:【x b c c a】****

象征结构:【x c c y】****

象征结构:【y n c c x】****

象征结构:【x p q n c c o p】****

符号结构:【I t c c o v】****

现在假设你在上面的级数中被告知符号模式:【x p q n c c o p】不是‘foo’,你被给了几个其他的模式代表一个事物不是‘foo’。

****不是‘foo’:

象征结构:【x p q n c c o p】****

符号结构:【o p a t g】****

象征结构:【w q o p I】****

不‘foo’的区别特征似乎是‘o p’符号。

现在我们对一个符号模式是否是“foo”有了更强烈的感觉。

抽象

对于符号来说,有抽象是很常见的,对于模式匹配来说,在抽象的层次上形成是很常见的。

符号: 梗,(狗)

符号: 鳟鱼,(鱼)

符号: 乌鸦,(鸟)

符号: 知更鸟,(鸟)

象征结构: [(梗、[狗])、(鳟鱼、[鱼])、(乌鸦、[鸟])】

符号“知更鸟”(一种鸟)应该与包含“乌鸦”(另一种鸟)的符号模式相匹配(在动物类型的抽象层次上)。

可以有几个抽象层,每个层中有多个符号。可以在模式的转换中建立新的底层数据,产生额外的模式匹配机会。

机器学习算法和认知系统

**常用的 ML 算法缺乏这些基本的学习品质:一次性学习、内省、应用学习循环。而常用的数学库,包括那些有集合论支持的,缺乏实现我们这里所描述的功能和数据结构。

你在文本编码解码中使用的递归 LSTM 神经网络不能告诉你为什么它提供了某个术语,也不能在它出错时进行纠正。它的模型必须从头开始重建,通过数十万次数据迭代来微调它的许多突触权重。

用于识别手写数字的“最近森林”算法或卷积 ANN 也有同样的缺陷。它不能说明为什么有些东西是“8”而不是“7”。它通过查看成千上万的数字,并针对这一特定目的在 10⁶迭代中进行自我调整,来确定一个东西更有可能是“8”而不是另一个数字。

这里概述的学习模式是一个潜在的起点。它提出了一种结构,可以识别图案和表面的区别特征,并对它们进行仔细检查。一种软件系统,它通过练习和问题的过程进行学习,并能够确定一组模式是否可归因于某个事物。一个类和数据结构有助于理解一个事物

德国哲学家马丁·海德格尔写道:“在西方思想过程中占主导地位的对事物实在性的解释早已不言而喻,现在也在日常生活中使用……”

一个事物的实体——一个事物是“围绕着它集合了属性”—马丁·海德格尔

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

如果我们有一个事物的例子(一只兔子,一封手写的信,一个形状,等等)。)然后我们形成事物是什么的模式。

  • 这是什么东西?有哪些模式被归因于它?
  • 这不是什么东西?
  • 这个东西有什么让它像或者不像别的东西?
  • 我们对这个事物的理解让我们相信另一个事物是相似的还是不同的呢?
  • 关于我们对这个东西的理解,可以讲什么故事?

大多数当前的算法 ML 方法不能导致机器认知,不能导致对事物的理解。学习的基本属性是认知系统的基础。为了让“机器学习”延伸并进化为认知,我们必须首先处理学习的基本过程。

我的希望和意图是让这篇文章引发关于机器学习和表面实现的这些基本方面的建设性对话,以推进这项工作。

****第二部分:一个实现

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

https://tinyurl.com/yaam8ep6

时间序列预测的贝叶斯方法

原文:https://towardsdatascience.com/a-bayesian-approach-to-time-series-forecasting-d97dd4168cb7?source=collection_archive---------2-----------------------

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

今天我们将从头开始在 R 中实现贝叶斯线性回归,并使用它来预测美国 GDP 增长。这篇文章基于英格兰银行关于应用贝叶斯计量经济学的非常翔实的手册。我已经把原始的 Matlab 代码翻译成 R,因为它是开源的,并广泛应用于数据分析/科学。我在这篇文章中的主要目标是试图让人们更好地理解贝叶斯统计,它的一些优点,以及一些你可能想使用它的场景。

让我们花一点时间来思考一下,为什么我们首先要使用贝叶斯技术。这样做有几个好处,对于时间序列分析来说尤其有吸引力。使用时间序列模型时的一个问题是过度拟合,特别是在相对较短的时间段内估计具有大量参数的模型时。在这种特殊的情况下,这不是一个问题,但当考虑多个变量时,这肯定是一个问题,这在经济预测中很常见。过度拟合问题的一个解决方案是采用贝叶斯方法,该方法允许我们对变量施加某些先验。

为了理解为什么会这样,考虑一下岭回归(L2 惩罚)的例子。这是一种正则化技术,通过在参数值变大时惩罚我们来帮助我们减少过度拟合(对岭回归的良好解释)。相反,如果我们采用贝叶斯方法来解决回归问题,并使用正态先验,我们实际上是在做与岭回归完全相同的事情。 这里的 是经过推导证明他们相同的视频(真的好课程 BTW)。我们经常喜欢使用贝叶斯方法的另一个重要原因是,它允许我们将不确定性纳入我们的参数估计中,这在预测时特别有用。

贝叶斯理论

在我们开始之前,让我们花点时间来讨论贝叶斯理论的基础以及它如何应用于回归。通常,如果有人想估计以下形式的线性回归:

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

Linear regression Matrix Form

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

Normally distributed error

他们将从收集每个变量的适当数据开始,并形成下面的可能性函数。然后,他们会试图找到使该函数最大化的 B 和σ:

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

Likelihood Function

在这种情况下,通过取该函数的对数导数,并在导数等于零的地方找到 B 的值,可以找到最佳参数。如果我们真的做了数学计算,我们会发现答案是下面的 OLS 估计量。我不会去推导,但在这里是一个非常好的视频推导 OLS 估计的细节。我们也可以把这个估计量想象成 X 和 Y 的协方差除以 X 的方差

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

OLS estimator

方差的最佳值将等于

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

variance

其中 T 是数据集中的行数。经典频率主义方法和贝叶斯方法之间的主要区别在于,模型的参数仅基于数据中包含的信息,而贝叶斯方法允许我们通过使用先验来整合其他信息。下表总结了频率主义者和贝叶斯方法之间的主要区别。

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

那么我们如何利用这些先验信息呢?这就是贝叶斯法则发挥作用的时候了。记住贝叶斯规则的公式是:

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

Bayes Rule

这里的是一个非常清晰的解释和使用贝叶斯规则的例子。它展示了我们如何将我们的先验知识与证据结合起来,用一个医学例子来形成后验概率。

现在,让我们将贝叶斯规则应用于我们的回归问题,看看我们会得到什么。下面是我们参数的后验分布。记住,这最终是我们要计算的。

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

Bayes Rule expressed using our model and data

我们还可以更进一步,用更简洁的方式描述 后验分布

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

Posterior Distribution

这个等式表明,以我们的数据为条件的我们的参数的后验分布与我们的 似然函数 (我们假设它是正态的)乘以我们的系数的 先验分布 (它也是正态的)成比例。分母中的边际密度或 F(Y )(相当于贝叶斯规则中的 P(B ))是一个归一化常数,以确保我们的分布积分为 1。还要注意,它不依赖于我们的参数,所以我们可以忽略它。

为了计算后验分布,我们需要分离出这个后验分布中与每个系数相关的部分。这涉及到计算边际分布,这在实践中通常很难通过分析来完成。这就是被称为 吉布斯采样 的数值方法派上用场的地方。Gibbs sampler 是**Markov Chain Monte Carlo(MCMC)**的一个例子,它让我们利用条件分布来近似联合边际分布。接下来是如何工作的快速概述。

吉布斯采样

假设我们有 N 个变量的联合分布:

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

我们想找到每个变量的边际分布。然而,如果这些变量的形式未知,可能很难解析地计算出必要的积分(积分很难!!)。在这种情况下,我们采取以下步骤来实现吉布斯算法。首先,我们需要初始化变量的初始值,

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

接下来,我们根据其他 N-1 个变量的当前值对第一个变量进行采样。即

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

然后,我们对第二个变量进行抽样,条件是所有其他变量

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

,重复这一过程,直到我们对每个变量进行了采样。这结束了吉布斯采样算法的一次迭代。当我们多次重复这些步骤时,来自条件分布的样本收敛到联合边际分布。一旦我们运行了 M 次吉布斯采样器,我们保留的样本的平均值可以被认为是后验分布平均值的近似值。下面是取样器在两个变量作用下的可视化。您可以看到,算法最初是如何从分布之外的点开始采样,但经过一些步骤后开始收敛到分布。

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

Source: Coursera: Bayesian Methods for Machine learning

既然我们已经讨论了理论,让我们看看它在实践中是如何工作的。下面是使用 Gibbs sampler 实现线性回归的代码。特别是,我将对美国季度国内生产总值(GDP)的同比增长进行 AR(2)模型估计。然后,我将使用这个模型,用贝叶斯框架来预测 GDP 增长。使用这种方法,我们可以使用来自后验密度的分位数,即来自我们算法的保留抽取的分位数,围绕我们的预测构建可信区间。

模型

我们的模型将具有以下形式:

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

AR(2) Model

我们也可以通过定义下面的矩阵,用矩阵的形式来表达。

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

上面是一个系数向量,下面是数据矩阵 X。

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

这给出了上面等式 1 中的形式。正如我已经说过的,我们的目标是近似我们系数的后验分布:

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

coefficients

我们可以通过计算吉布斯抽样框架内的条件分布来做到这一点。好了,现在这个理论已经过时了,让我们开始用 r 编写代码。

密码

我们需要做的第一件事是载入数据。我从圣路易斯美联储的网站下载了美国的 GDP 增长。我选择 p=2 作为我想要使用的滞后数。这种选择是相当随意的,有正式的测试,如 AICBIC 我们可以用来选择最佳数量的滞后,但我没有使用它们进行分析。那句老话是什么?照我说的做,不要照我做的做。我认为这适用于这里。😄

library(ggplot)Y.df <- read.csv('USGDP.csv', header =TRUE)
names <- c('Date', 'GDP')
Y <- data.frame(Y.df[,2])p = 2
T1 = nrow(Y)

接下来,我们定义 regression_matrix 函数来创建包含 p 滞后 GDP 变量和一个常数项的 X 矩阵。该函数接受三个参数,数据、滞后次数以及真或假,这取决于我们是否需要一个常量。我还在下面创建了另一个辅助函数,它将模型中的系数矩阵转换成一个伴随矩阵。这个函数, ar_companion_matrix 实质上转换一个系数矩阵,如下所示(注意不包括常数项):

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

matrix of coefficients

转换成一个 nn 矩阵* ,其系数位于顶行,其下是一个(n-1)*(n-1)单位矩阵。以这种方式表达我们的矩阵允许我们计算我们的模型 的 稳定性,这将是我们的吉布斯采样器的重要部分。当我们看到相关的代码时,我会在后面的文章中详细讨论这个问题。

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

Companion form of matrix

regression_matrix  <- function(data,p,constant){
    nrow <- as.numeric(dim(data)[1])
    nvar <- as.numeric(dim(data)[2])

    Y1 <- as.matrix(data, ncol = nvar)
    X <- embed(Y1, p+1)
    X <- X[,(nvar+1):ncol(X)]
    if(constant == TRUE){
        X <-cbind(rep(1,(nrow-p)),X)
    }
    Y = matrix(Y1[(p+1):nrow(Y1),])
    nvar2 = ncol(X)
    return = list(Y=Y,X=X,nvar2=nvar2,nrow=nrow) 
}################################################################ar_companion_matrix <- function(beta){
    **#check if beta is a matrix**
    if (is.matrix(beta) == FALSE){
        stop('error: beta needs to be a matrix')
    }
    **# dont include constant**
    k = nrow(beta) - 1
    FF <- matrix(0, nrow = k, ncol = k)

   ** #insert identity matrix**
    FF[2:k, 1:(k-1)] <- diag(1, nrow = k-1, ncol = k-1)

    temp <- t(beta[2:(k+1), 1:1])
    **#state space companion form
    #Insert coeffcients along top row**
    FF[1:1,1:k] <- temp
    return(FF)
}

我们的下一段代码实现了我们的回归矩阵函数,并从结果列表中提取矩阵和行数。我们还建立了贝叶斯分析的先验。

results = list()
results <- regression_matrix(Y, p, TRUE)X <- results$X
Y <- results$Y
nrow <- results$nrow
nvar <- results$nvar**# Initialise Priors**
B <- c(rep(0, nvar))
B <- as.matrix(B, nrow = 1, ncol = nvar)
sigma0 <- diag(1,nvar)T0 = 1 **# prior degrees of freedom**
D0 = 0.1 **# prior scale (theta0)****# initial value for variance**
sigma2 = 1 

我们在这里所做的基本上是为我们的 贝塔系数 设置一个正态先验,其均值= 0,方差= 1。对我们来说,我们有前科:

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

对于我们的方差,我们有先验:

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

对于 方差参数 ,我们设置了一个**逆伽玛先验(共轭先验)。**这是用于方差的标准分布,因为它只为正数定义,这对于方差来说是理想的,因为它只能是正的。

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

Inverse Gamma Prior

对于这个例子,我们任意选择 T0 = 1 和θ0 = 0.1(D0 是我们的代码)。如果我们想测试这些先验的选择,我们可以通过改变我们的初始先验来做稳健性测试,看看它是否显著改变后验概率。如果我们尝试想象改变θ0 的值会产生什么影响,我们会发现,较高的值会给我们一个更宽的分布,我们的系数更可能呈现较大的绝对值,类似于我们的β具有较大的先验方差。

reps = 15000
burn = 4000
horizon = 14
out = matrix(0, nrow = reps, ncol = nvar + 1)
colnames(out) <- c(‘constant’, ‘beta1’,’beta2', ‘sigma’)
out1 <- matrix(0, nrow = reps, ncol = horizon)

上面我们设置了我们的预测范围,并初始化了一些矩阵来存储我们的结果。我们创建了一个名为 out 的矩阵来存储我们所有的抽奖。它需要的行数等于我们的采样器的抽取数,在本例中等于 15,000。我们还需要创建一个矩阵来存储我们的预测结果。因为我们通过迭代以下形式的方程来计算我们的预测:

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

AR(2) Model

我们将需要最后两个可观测期来计算预测。这意味着我们的第二个矩阵 out1 的列数将等于预测周期数加上滞后数,在本例中为 14。

吉布斯采样的实现

好了,接下来是一段看起来很复杂的代码,但我会一步一步地看,希望之后会更清楚。

gibbs_sampler <- function(X,Y,B0,sigma0,sigma2,theta0,D0,reps,out,out1){for(i in 1:reps){
    if (i %% 1000 == 0){
    print(sprintf("Interation: %d", i))
        }
    M = solve(solve(sigma0) + as.numeric(1/sigma2) * t(X) %*% X) %*%
        (solve(sigma0) %*% B0 + as.numeric(1/sigma2) * t(X) %*% Y)

    V = solve(solve(sigma0) + as.numeric(1/sigma2) * t(X) %*% X)

    chck = -1
    while(chck < 0){   # check for stability

        B <- M + t(rnorm(p+1) %*% chol(V))

        **# Check : not stationary for 3 lags**
        b = ar_companion_matrix(B)
        ee <- max(sapply(eigen(b)$values,abs))
        if( ee<=1){
            chck=1
        }
    }
    **# compute residuals**
    resids <- Y- X%*%B
    T2 = T0 + T1
    D1 = D0 + t(resids) %*% resids

    **# keeps samples after burn period**
    out[i,] <- t(matrix(c(t(B),sigma2)))

    **#draw from Inverse Gamma**
    z0 = rnorm(T1,1)
    z0z0 = t(z0) %*% z0
    sigma2 = D1/z0z0

    **# keeps samples after burn period**
    out[i,] <- t(matrix(c(t(B),sigma2)))

    **# compute 2 year forecasts**
    yhat = rep(0,horizon)
    end = as.numeric(length(Y))
    yhat[1:2] = Y[(end-1):end,]
    cfactor = sqrt(sigma2)
    X_mat = c(1,rep(0,p))for(m in (p+1):horizon){
            for (lag in 1:p){
           ** #create X matrix with p lags**
                X_mat[(lag+1)] = yhat[m-lag]
    }
            **# Use X matrix to forecast yhat**
            yhat[m] = X_mat %*% B + rnorm(1) * cfactor
    } out1[i,] <- yhat
}
    return = list(out,out1)
    }results1 <- gibbs_sampler(X,Y,B0,sigma0,sigma2,T0,D0,reps,out,out1)**# burn first 4000**
coef <- results1[[1]][(burn+1):reps,]
forecasts <- results1[[2]][(burn+1):reps,]

首先,我们的函数需要以下参数。我们的初始变量,在这种情况下,GDP 增长(Y)。我们的 X 矩阵,只是 Y 滞后了 2 个周期,并附加了一列 1。我们还需要我们之前定义的所有先验,迭代算法的次数(reps ),最后,我们的 2 个输出矩阵。

主循环是我们在这里最需要注意的。这是所有主要计算发生的地方。前两个方程 M 和 V 描述了以 B 和σ为条件的正态分布的 后验均值和方差 。我不会在这里推导这些,但如果你感兴趣,它们可以在 Hamilton (1994)的时间序列分析或 Bishop 模式识别和机器学习第 3 章 (尽管符号略有不同)中找到。明确地说,我们的后验参数β的平均值定义为:

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

我们的后验参数β的方差定义为:

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

如果我们稍微考虑一下 M 中的第二项,我们可以用最大似然估计来代替 Y_t,这样我们就可以得到

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

本质上,这个等式表明 M 只是我们的先验均值和β的最大似然估计的加权平均值。我直觉地认为这很有意义,因为我们正试图结合我们先前的信息以及来自我们数据的证据。让我们考虑一下之前的方差,尝试改进我们对这个等式的解释。如果我们分配一个小的先验方差(sigma0),本质上我们对我们的先验选择是有信心的,并认为我们的后验将接近它。在这种情况下,分布将会非常紧密。相反,如果我们在 Beta 参数上设置了一个高方差,情况正好相反。在这种情况下,βOLS 参数的权重将更大。

但是我们还没有完成。我们仍然需要从正确的分布中随机抽取,但我们可以使用一个简单的技巧来做到这一点。要从均值为 M、方差为 V 的正态分布中获取随机变量,我们可以从标准正态分布中抽取一个向量,并使用以下等式对其进行转换。

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

Draw of B from conditional posterior distribution

本质上,我们通过后验方差(标准差)的平方根来添加我们的条件后验均值和标度。这给了我们来自条件后验分布的样本 B。下一段代码也有一个检查,以确保系数矩阵是稳定的,即我们的变量是稳定的,确保我们的模型是动态稳定的。通过将我们的 AR(2)重铸为 AR(1)(伴式),我们可以检查 特征值的绝对值是否小于 1(只需要检查最大的特征值是< |1|) 。如果是的话,那就意味着我们的模型是动态稳定的。如果有人想更详细地了解这一点,我推荐《数理经济学的基本方法》第 17 章,或者阅读这篇博客文章作为快速入门。

现在我们有了 B 的绘制,我们根据 B 从反向伽马分布中绘制 sigma。从具有自由度的反向伽马分布中采样一个随机变量

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

和规模

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

我们可以从标准正态分布 z0 ~ N(0,1)中抽取 T 个变量,然后进行如下调整

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

z 现在是从正确的反向伽马分布中提取的。

下面的代码将我们提取的系数存储到 out 矩阵中。然后,我们使用这些绘图来创建我们的预测。该代码实际上创建了一个名为 yhat 的矩阵,用于存储我们对未来 12 个时期的预测(因为我们使用季度数据,所以是 3 年)。我们预测提前一步的等式可以写成

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

Forecast equation

一般来说,我们需要一个大小为 n+p 的矩阵,其中 n 是我们希望预测的周期数,p 是 AR 中使用的滞后数。预测只是一个 AR(2)模型,每个周期都有随机冲击,这是基于我们对 sigma 的提取。好了,这就是 Gibbs 抽样器代码。

现在我们可以开始看看算法产生了什么。下面的代码提取了我们需要的系数,这些系数对应于 coef 矩阵的列。每一行都给出了吉布斯采样器每次采样的参数值。 计算这些变量中每一个的平均值给我们提供了每个系数 分布的后验平均值的近似值。这种分布对于假设检验等其他统计技术非常有用,也是采用贝叶斯方法建模的另一个优势。下面我用 ggplot2 绘制了系数的后验分布。我们可以看到,它们非常类似于正态分布,这在我们定义了正态先验和似然函数的情况下是有意义的。我们参数的后验均值如下:

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

Posterior Means of Parameters

const <- mean(coef[,1])
beta1 <- mean(coef[,2])
beta2 <- mean(coef[,3])
sigma <- mean(coef[,4])qplot(coef[,1], geom = "histogram", bins = 45, main = 'Distribution of Constant',
      colour="#FF9999")
qplot(coef[,2], geom = "histogram", bins = 45,main = 'Distribution of Beta1',
      colour="#FF9999")
qplot(coef[,3], geom = "histogram", bins = 45,main = 'Distribution of Beta2',
      colour="#FF9999")
qplot(coef[,4], geom = "histogram", bins = 45,main = 'Distribution of Sigma',
      colour="#FF9999")

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

接下来我们要做的是使用这些参数来绘制我们的预测,并围绕这些预测构建我们的可信区间。

绘制我们的预测

以下是对 3 年 GDP 同比增长的预测。请注意,使用贝叶斯分析使我们能够创建具有可信区间的预测,这对于突出我们预测的不确定性非常有用。请注意,这不同于置信区间,其解释略有不同。如果我们采用频率主义的方法,例如运行一个实验 100 次,我们会期望我们的真实参数值在 100 个实验中有 95 个在这个范围内。相比之下,贝叶斯方法被解释为真正的参数值以 95%的概率包含在这个范围内。这种差异很微妙,但非常重要。

library(matrixStats); library(ggplot2); library(reshape2)**#uantiles for all data points, makes plotting easier** post_means <- colMeans(coef)
forecasts_m <- as.matrix(colMeans(forecasts))**#Creating error bands/credible intervals around our forecasts**
error_bands <- colQuantiles(forecasts,prob = c(0.16,0.84))
Y_temp = cbind(Y,Y)error_bands <- rbind(Y_temp, error_bands[3:dim(error_bands)[1],])
all <- as.matrix(c(Y[1:(length(Y)-2)],forecasts_m))forecasts.mat <- cbind.data.frame(error_bands[,1],all, error_bands[,2])
names(forecasts.mat) <- c('lower', 'mean', 'upper')**# create date vector for plotting**
Date <- seq(as.Date('1948/07/01'), by = 'quarter', length.out = dim(forecasts.mat)[1])data.plot <- cbind.data.frame(Date, forecasts.mat)
data_subset <- data.plot[214:292,]
data_fore <- data.plot[280:292,]ggplot(data_subset, aes(x = Date, y = mean)) + geom_line(colour = 'blue', lwd = 1.2) + geom_ribbon(data = data_fore,
aes(ymin = lower, ymax = upper , colour = "bands", alpha = 0.2))

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

GDP Forecast

上面的代码计算了我们预测的 16 和 84 个百分点,用作可信区间。我们将这些列与我们的预测相结合,然后使用 ggplot 和 geom_ribbon 绘制数据子集,以绘制预测的间隔。上面的情节看起来相当不错,但我想让这个更漂亮一点。

我发现了一个非常有用的博客帖子,它创建了与英国央行通胀报告非常相似的粉丝图表。我使用的库叫做扇形图,它可以让你绘制出我们预测分布的不同百分位数,看起来比上一张图好一点。

library(fanplot)
forecasts_mean <- as.matrix(colMeans(out2))
forecast_sd <- as.matrix(apply(out2,2,sd))
tt <- seq(2018.25, 2021, by = .25)
y0 <- 2018.25
params <- cbind(tt, forecasts_mean[-c(1,2)], forecast_sd[-c(1,2)])
p <- seq(0.10, 0.90, 0.05)**# Calculate Percentiles**
k = nrow(params)
gdp <- matrix(NA, nrow = length(p), ncol = k)
for (i in 1:k) 
    gdp[, i] <- qsplitnorm(p, mode = params[i,2], 
                           sd = params[i,3])**# Plot past data**
Y_ts <- ts(data_subset$mean, frequency=4, start=c(2001,1))
plot(Y_ts, type = "l", col = "tomato", lwd = 2.5, 
     xlim = c(y0 - 17, y0 + 3), ylim = c(-4, 6), 
     xaxt = "n", yaxt = "n", ylab="")**# background and fanchart**
rect(y0-0.25, par("usr")[3] - 1, y0 + 3, par("usr")[4], 
     border = "gray90", col = "gray90")
fan(data = gdp, data.type = "values", probs = p, 
    start = y0, frequency = 4, 
    anchor = Y_ts[time(Y_ts) == y0-.25], 
    fan.col = colorRampPalette(c("tomato", "gray90")), 
    ln = NULL, rlab = NULL)**# BOE aesthetics**
axis(2, at = -2:5, las = 2, tcl = 0.5, labels = FALSE)
axis(4, at = -2:5, las = 2, tcl = 0.5)
axis(1, at = 2000:2021, tcl = 0.5)
axis(1, at = seq(2000, 2021, 0.25), labels = FALSE, tcl = 0.2)
abline(h = 0)
abline(v = y0 + 1.75, lty = 2) #2 year line

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

GDP Forecasts

结论

我们的预测似乎相当乐观,平均预测到 2021 年,年增长率在 3%左右。似乎还有相当大的上行风险,95%的可信区间将升至近 5%。图表显示,在这段时间内出现负增长的可能性极小,这很有意思,从美国目前的扩张性经济政策来看,这可能是正确的。正如你所看到的,置信区间相当大,表明在预测期内 GDP 增长值的分布范围很广。我们可以使用许多其他类型的模型来代替,并可能获得更准确的预测,如贝叶斯 VAR 或使用许多其他经济变量的动态因素模型。虽然可能更准确,但这些模型更复杂,也更难编码。为了介绍贝叶斯回归并获得对这种方法的直观理解,AR 模型是完全合理的。

我认为重要的是要说明为什么我选择从头开始做这种模型,而做这种类型的预测显然有更容易和更少痛苦的方法。我倾向于发现,对我来说,学习像这样复杂的东西的绝对最好的方法是尝试从头开始复制算法。这确实强化了我在理论上所学到的东西,并迫使我将它应用到实际环境中,如果我没有完全理解这个主题,这可能会非常困难。我还发现,这种方法让事情在我脑海中停留的时间更长。实际上,我可能不会使用这段代码,因为它很容易出错,而且很难调试(正如我已经发现的那样),但我认为这是一种非常有效的学习方法。虽然这显然比仅仅找到一个 R 或 Python 的包要花更多的时间,但花时间一步一步地完成它的好处最终会更大,我会向任何试图学习或理解不同模型和算法如何工作的人推荐它。

好了,伙计们,这篇文章到此结束。我希望你们都喜欢它,并了解了一些贝叶斯统计以及我们如何在实践中使用它。如果您有任何问题,欢迎在下面发帖或通过 LinkedIn 与我联系。

下面的课程很好地概述了机器学习中使用的贝叶斯方法,我推荐给任何想提高这方面知识的人。

推荐课程: 贝叶斯机器学习方法

链接到 Kaggle 内核:https://www.kaggle.com/dfoly1/bayesian-regression-blog-post

注意:这篇文章中的一些链接是附属链接。

张量流入门(第 1 部分)

原文:https://towardsdatascience.com/a-beginner-introduction-to-tensorflow-part-1-6d139e038278?source=collection_archive---------0-----------------------

Tensorflow 是广泛用于实现机器学习和其他涉及大量数学运算的算法的库之一。Tensorflow 由 Google 开发,是 GitHub 上最受欢迎的机器学习库之一。Google 使用 Tensorflow 在几乎所有应用程序中实现机器学习。例如,如果你正在使用谷歌照片或谷歌语音搜索,那么你正在间接使用张量流模型,它们在谷歌硬件的大型集群上工作,在感知任务中非常强大。

这篇文章的主要目的是向初学者友好地介绍 TensorFlow,我假设你已经了解一点 python。TensorFlow 的核心组件是计算图和通过边在所有节点间遍历的张量。下面我们就来简单介绍一下其中的每一个。

张量:

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

数学上,张量是一个 N 维向量,这意味着张量可以用来表示 N 维数据集。上图很难理解。我们将看看它的简化版本

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

上图显示了一些具有最小维数的简化张量。随着维度的不断增加,数据表示变得越来越复杂。例如,如果我们取一个(3x3)形式的张量,那么我可以简单地称它为 3 行 3 列的矩阵。如果我选择另一个形式的张量(1000x3x3),我可以称它为一个向量或 1000 个 3x3 矩阵的集合。这里我们称(1000x3x3)为结果张量的形状或维度。张量可以是常数,也可以是变量。

计算图表(流程):

现在我们理解了张量的真正含义,是时候理解流动了。这个流程指的是计算图或简单的图,图不可能是循环的,图中的每个节点代表一个操作,如加、减等。并且每个操作导致新张量的形成。

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

上图显示了一个简单的计算图表。计算图形具有以下属性:

上图的表达式:

e = (a+b)x(b+1)

  • 叶顶点或开始顶点总是张量。也就是说,一个操作永远不会出现在图的开始,因此我们可以推断图中的每个操作应该接受一个张量并产生一个新的张量。同样,张量不能作为非叶节点出现,这意味着它们应该始终作为操作/节点的输入。
  • 计算图总是以层次顺序表示复杂的操作。上述表达式可以用分层的方式组织,将 a+b 表示为 c,b+1 表示为 d。因此,我们可以将 e 写成:

e = ©x(d)其中 c = a+b,d = b+1。

  • 以相反的顺序遍历图导致子表达式的形成,这些子表达式被组合以形成最终表达式。
  • 当我们向前遍历时,我们遇到的顶点总是成为下一个顶点的依赖,例如没有 a 和 b 就不能得到 c,同样地,没有 c 和 d 的解就不能得到 e。
  • **同级节点中的操作相互独立。**这是计算图的重要性质之一,当我们以图中所示的方式构造一个图时,很自然地,同一层中的节点(例如 c 和 d)是相互独立的,这意味着在计算 d 之前不需要知道 c,因此它们可以并行执行。

计算图形中的并行性;

上面提到的最后一个属性当然是最重要的属性之一,它清楚地表明同一级别的节点是独立的,这意味着在 c 求值之前没有必要闲置,当 c 仍在求值时,您可以并行计算 d。Tensorflow 很好地利用了这一特性。

分布式执行:

Tensorflow 允许用户利用并行计算设备更快地执行操作。计算的节点或操作被自动调度用于并行计算。这一切都发生在内部,例如在上面的图中,操作 c 可以在 CPU 上调度,而操作 d 可以在 GPU 上调度。下图显示了分布式执行的两种前景:

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

第一种是单系统分布式执行,其中单个 Tensorflow 会话(将在后面解释)创建单个工作进程,该工作进程负责在各种设备上调度任务;第二种情况下,有多个工作进程,它们可以在同一台机器上或不同的机器上,每个工作进程在其自己的上下文中运行,在上图中,工作进程 1 在单独的机器上运行,并在所有可用的设备上调度操作。

计算子图:

子图是主图的一部分,本质上是计算图。例如,在上图中,我们可以获得许多子图,其中一个如下所示

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

上图是主图的一部分,从性质 2 我们可以说一个子图总是代表一个子表达式,因为 c 是 e 的子表达式。子图也满足最后一个性质。同一层的子图也是相互独立的,可以并行执行。因此,可以在单个设备上调度整个子图。

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

上图解释了子图的并行执行。这里有两个矩阵乘法运算,因为它们都在同一级,它们相互独立,这适用于最后一个属性。这些节点被调度在不同的设备 gpu_0 和 gpu_1 上,这是因为它们具有独立性。

工人之间交换数据:

现在我们知道 Tensorflow 将其所有操作分布在由工人管理的不同设备上。更常见的是,在工作者之间交换张量形式的数据,例如在 e =©*(d)的图中,一旦计算出 c,就希望将其进一步传递给过程 e,因此张量从节点向上流到节点。这种移动如图所示:

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

这里,来自设备 A 的张量被传递到设备 b,这导致了分布式系统中的一些性能延迟。延迟取决于一个重要的性质,即张量的大小。设备 B 处于理想模式,直到它从设备 a 接收到输入。

压缩需求:

很明显,在计算图形中,张量在节点之间流动。在流到达可以处理它的节点之前,减少由流引起的延迟是很重要的。减小尺寸的一个这样的想法是通过使用有损压缩。

张量的数据类型起着重要作用,让我们来理解为什么,很明显,我们在机器学习操作中追求更高的精度,例如,如果我们使用 float32 作为张量的数据类型,那么每个值都使用 32 位浮点数表示,因此每个值占用 32 位的大小,这同样适用于 64 位。假设一个形状为(1000,440,440,3)的张量,可以包含在该张量中的值的数量将是 1000440440*3。如果数据类型是 32 位,那么它是这个大数字的 32 倍,它在内存中占据了相当大的空间,因此造成了流的延迟。可以使用压缩技术来减小大小。

有损压缩:

有损压缩处理压缩数据的大小,并不关心它的值,这意味着它的值可能会在压缩过程中损坏或不准确。但是,如果我们有一个 32 位浮点数,如 1.01010e-12,那么最低有效位的重要性就会降低。更改或删除这些值不会对我们的计算产生太大影响。因此,Tensorflow 通过忽略所有可忽略的数字,自动将 32 位浮点数转换为 16 位表示,这将大小减少近一半,如果是 64 位数字,压缩到 16 位将导致大小减少近 75%。因此张量占据的空间可以最小化。

一旦张量到达节点,16 位表示就可以通过添加 0 恢复到原始形式。因此,32 或 64 位表示在到达节点进行处理后被买回。

张量流介绍的第 1 部分到此结束,编程和构造简单的子图将在下一部分解释。

谢谢☺

RNN 情感分析初学者指南

原文:https://towardsdatascience.com/a-beginners-guide-on-sentiment-analysis-with-rnn-9e100627c02e?source=collection_archive---------4-----------------------

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

Photo Credit: Unsplash

情感分析大概是自然语言处理中最常见的应用之一。客户服务工具情绪分析变得有多重要,我就不用强调了。所以在这里,我们将使用递归神经网络IMDB 数据集中训练一个分类器电影评论。如果你想深入深度学习进行情感分析,这是一篇很好的论文

数据

我们将使用递归神经网络,特别是lstm,在 Keras 中执行情感分析。方便的是,Keras 有一个内置的 IMDb 电影评论数据集,我们可以使用。

from keras.datasets import imdb

设置训练和测试数据中的词汇大小和负载。

vocabulary_size = 5000(X_train, y_train), (X_test, y_test) = imdb.load_data(num_words = vocabulary_size)
print('Loaded dataset with {} training samples, {} test samples'.format(len(X_train), len(X_test)))

加载了 25000 个训练样本的数据集,25000 个测试样本

检查样本评论及其标签。

print('---review---')
print(X_train[6])
print('---label---')
print(y_train[6])

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

Figure 1

注意,评论被存储为一个整数序列。这些是预先分配给单个单词的单词 id,标签是一个整数(0 表示负,1 表示正)。

我们可以用imdb.get_word_index()返回的字典把复习映射回原来的单词。

word2id = imdb.get_word_index()
id2word = {i: word for word, i in word2id.items()}
print('---review with words---')
print([id2word.get(i, ' ') for i in X_train[6]])
print('---label---')
print(y_train[6])

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

Figure 2

最大评论长度和最小评论长度。

print('Maximum review length: {}'.format(
len(max((X_train + X_test), key=len))))

最大评论长度:2697

print('Minimum review length: {}'.format(
len(min((X_test + X_test), key=len))))

最小审核长度:14

焊盘序列

为了将这些数据输入到我们的 RNN 中,所有输入文档必须具有相同的长度。我们将通过截断较长的评论并用空值(0)填充较短的评论,将最大评论长度限制为 max_words。我们可以使用 Keras 中的 pad_sequences()函数来实现这一点。现在,将 max_words 设置为 500。

from keras.preprocessing import sequencemax_words = 500
X_train = sequence.pad_sequences(X_train, maxlen=max_words)
X_test = sequence.pad_sequences(X_test, maxlen=max_words)

设计一个用于情感分析的 RNN 模型

我们开始在下面的代码单元中构建我们的模型架构。我们从 Keras 中导入了一些你可能需要的层,但是你可以随意使用任何你喜欢的层/转换。

记住我们的输入是最大长度= max_words 的单词序列(技术上是整数单词 id),我们的输出是二元情感标签(0 或 1)。

from keras import Sequential
from keras.layers import Embedding, LSTM, Dense, Dropoutembedding_size=32
model=Sequential()
model.add(Embedding(vocabulary_size, embedding_size, input_length=max_words))
model.add(LSTM(100))
model.add(Dense(1, activation='sigmoid'))print(model.summary())

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

Figure 3

总之,我们的模型是一个简单的 RNN 模型,具有 1 个嵌入层、1 个 LSTM 层和 1 个致密层。总共需要训练 213,301 个参数。

训练和评估我们的模型

我们首先需要通过指定我们在训练时想要使用的损失函数和优化器,以及我们想要测量的任何评估指标来编译我们的模型。指定适当的参数,包括至少一个度量“准确性”。

model.compile(loss='binary_crossentropy', 
             optimizer='adam', 
             metrics=['accuracy'])

一旦编译完成,我们就可以开始培训过程了。我们必须指定两个重要的训练参数——批量大小和训练时期的数量,它们与我们的模型架构一起决定了总的训练时间。

训练可能需要一段时间,所以喝杯咖啡,或者去跑步更好!

batch_size = 64
num_epochs = 3X_valid, y_valid = X_train[:batch_size], y_train[:batch_size]
X_train2, y_train2 = X_train[batch_size:], y_train[batch_size:]model.fit(X_train2, y_train2, validation_data=(X_valid, y_valid), batch_size=batch_size, epochs=num_epochs)

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

Figure 4

一旦我们训练了我们的模型,就该看看它在看不见的测试数据上表现如何了。

如果我们通过度量=[‘accuracy’],scores[1]将对应于准确性

scores = model.evaluate(X_test, y_test, verbose=0)
print('Test accuracy:', scores[1])

测试精度:0.86964

摘要

有几种方法可以用来建立我们的模型。我们可以通过试验不同的架构、层和参数来继续尝试和提高我们模型的准确性。如果不花太多时间训练,我们能有多好?我们如何防止过度拟合?

源代码可以在 Github 找到。期待听到反馈或问题。

参考: Udacity — NLP

脑机接口和卷积神经网络初学者指南

原文:https://towardsdatascience.com/a-beginners-guide-to-brain-computer-interface-and-convolutional-neural-networks-9f35bd4af948?source=collection_archive---------0-----------------------

简单并附有定义。

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

Futurist / Humanist Gerd Leonhard

路标

Part 1: 脑机接口与 AI +研究论文大图

第 2 部分:
深入解释与 BCI 一起使用的神经网络

大脑能否通过脑机接口(BCI)技术直接与人工智能、机器人和其他大脑连接,以超越我们人类的局限性?

对一些人来说,这是我们生存的必需品。事实上,我们需要成为电子人才能在人工智能时代发挥作用。

定义

脑-机接口(BCI): 仅通过大脑活动使用户能够与计算机交互的设备,这种活动通常通过脑电图(EEG)来测量。

脑电图(EEG): 通过放置在头皮表面的电极记录大脑产生的电活动的首选生理方法。

功能磁共振成像(fMRI): 通过检测与血流相关的变化来测量大脑活动。

功能性近红外光谱 ( fNIRS ):使用近红外光谱(NIRS)进行功能性神经成像。使用 fNIRS,通过与神经元行为相关的血液动力学反应来测量大脑活动。

卷积神经网络(CNN): 一种用于图像识别和处理的人工神经网络,专门用于处理像素数据。

**视觉皮层:**大脑皮层的一部分,接收和处理来自眼睛的感觉神经冲动

历史

《卫报》记者莎拉·马希说:“脑机接口(BCI)并不是一个新想法。已经有各种形式的 BCI,从放在你头顶上测量大脑信号的设备到植入你大脑组织的设备。”(来源)

大多数脑机接口最初是为医疗应用开发的。Tellart 的首席设计师 Zaza Zuilhof 表示,“大约 22 万名听力受损者已经从耳蜗植入中受益,耳蜗植入可以将音频信号转化为电脉冲,直接发送到他们的大脑。”(来源)

这篇文章名为《脑机接口简史》给我们提供了许多与 BCI 历史有关的信息。事实上,文章说“在 20 世纪 70 年代,对脑机接口的研究在加州大学开始,这导致了大脑-计算机接口这一表达的出现。BCI 研发的重点仍然是神经假体的应用,这有助于恢复受损的视觉、听觉和运动。20 世纪 90 年代中期,标志着人类第一个神经假体装置的出现。BCI 并不准确地解读思想,但当你以某种方式思考时,它能探测到大脑辐射能量的最小变化。BCI 识别大脑中特定的能量/频率模式。

【2004 年 6 月【Matthew Nagle 成为第一个植入 cyber kinetics BrainGate BCI 的人,标志着该领域的一项重大发展。

2004 年 12 月,Jonathan Wolpaw 和纽约州卫生部沃兹沃斯中心的研究人员提交了一份研究报告,展示了使用 BCI 控制电脑的能力。在这项研究中,患者被要求戴上一顶包含电极的帽子,以捕捉来自运动皮层的脑电图信号,运动皮层是大脑控制运动的一部分。

BCI 在控制应用方面有着悠久的历史:光标、瘫痪的身体部位、机械臂、电话拨号等。

最近,埃隆·马斯克(Elon Musk)进入了这个行业,宣布向 Neuralink 投资 2700 万美元,这是一家旨在开发一种 BCI 的风险投资公司,该公司根据人工智能改善人类沟通。Regina Dugan 介绍了脸书的计划,该计划将改变 BCI 技术的游戏规则,提高数字通信的效率。"

根据约翰·托马斯托马兹·马斯奇克尼尚特·辛哈蒂尔曼·克鲁格贾斯汀·道韦尔斯“一个 BCI 系统有四个主要组成部分:信号采集、信号预处理、特征提取和分类。”(来源)

这有什么关系?

埃塞克斯大学脑机接口博士后研究员 Davide Valeriani 说:“人类和技术的结合可能比人工智能更强大。例如,当我们基于感知和推理的结合来做决定时,神经技术可以用来改善我们的感知。这有助于我们应对一些情况,比如从安全摄像头看到非常模糊的图像,不得不决定是否干预。”(来源

这些脑机接口实际上能做什么?

对于 Zaza Zuilhof 来说,这取决于你问谁,以及你是否愿意接受手术。“为了这个思想实验的目的,让我们假设健康的人只会使用不需要手术的非侵入性脑机接口。既然如此,目前主要有两种技术,fMRI 和 EEG。第一种需要一个巨大的机器,但第二种,通过像 Emotiv 和 Neurosky 这样的消费耳机,实际上已经可以为更普通的观众所用。”(来源)

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

Source

然而,BCI 也可以成为健康人的一种有前途的交互工具,在多媒体、虚拟现实或视频游戏领域以及许多其他潜在应用中有几个潜在的应用。

Davide Valeriani 说,“脑电图硬件对用户来说是完全安全的,但记录的信号非常嘈杂。此外,到目前为止,研究实验室主要集中在使用它来了解大脑和提出创新应用,而没有任何商业产品的后续行动……但这将会改变。(来源)

马斯克的公司是最新的。其“神经花边”技术包括在大脑中植入电极来测量信号。这将允许获得比脑电图质量更好的神经信号——但这需要手术。最近,他表示,需要脑机接口来确认人类对人工智能的优势。"(来源)

这个技术还是很危险的!事实上,我们制造了计算机,并且确切地知道它们如何工作以及如何“修改”它们。然而,我们并没有制造大脑,我们仍然不知道它们是如何工作的。更不用说如何安全成功地“入侵”它们了。我们已经取得了很大的进步,但还不够。

你的大脑现在是如何工作的,以及未来会发生什么

简单来说,你的大脑分为两个主要部分:

  • 边缘系统
  • 新大脑皮层。

边缘系统负责我们的原始欲望,以及那些与生存有关的欲望,如进食和繁殖。我们的新大脑皮层是最高级的区域,它负责逻辑功能,使我们擅长语言、技术、商业和哲学。

人类大脑包含大约 86 个称为神经元的胆神经细胞,每个细胞都通过称为轴突和树突的连接器与其他神经元相连。每当我们思考、移动或感觉时,神经元都在工作。事实上,大脑产生大量的神经活动。基本上,从一个神经元到另一个神经元的微小电信号在起作用。

有许多信号可以用于 BCI。这些信号可以分为两类:
-尖峰信号
-场电位

我们可以检测这些信号,解释它们,并使用它们与设备进行交互。

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

Cortext 的机器学习顾问鲍里斯·鲁德林克(Boris Reuderink)表示,“脑机接口的一个更大的问题是,大脑信号很弱,非常多变。这就是为什么很难训练一个分类器,并在第二天使用它,更不用说在不同的主题上使用它了。”(来源)

为了插入神经带,一根包含卷起来的网状物的微小的针被放置在颅骨内。该网状物然后被注射并在注射时被揭开,包围大脑。

人工智能或机器学习已经受到极大关注,用于开发 BCI 应用来解决几个领域中的困难问题,特别是医疗和机器人领域。AI/ML 已经成为 BCI 系统最有效的工具。( 来源 )

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

下面让我们试着详细阐述一下这些方面。这些方面都有各自的研究领域。

信号产生
产生这些大脑信号有两种方式:

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

Sjoerd LagardeQuintiq 的软件工程师“主动产生信号的好处是信号检测更容易,因为你对刺激有控制权;比如当他们出现的时候。如果你只是在读取受试者的脑电波,这就更难了。”

信号检测
检测大脑信号有不同的方法。最著名的是脑电图和功能磁共振成像,但也有其他的。脑电图测量大脑的电活动,功能磁共振成像测量大脑中的血流。这些方法各有其优缺点。一些具有更好的时间分辨率(它们可以在大脑活动发生时检测到),而另一些具有更好的空间分辨率(它们可以精确定位活动的位置)。

这个想法对于其他类型的测量技术来说基本上是一样的。

****信号处理例如,当使用脑电图时,像磨牙这样的事情会显示在数据中,还有眼球运动。这种噪音需要过滤掉。

该数据现在可用于检测实际信号。当受试者主动产生信号时,我们通常会意识到我们想要检测的信号类型。一个例子是 P300 波,这是一种所谓的事件相关电位,当出现不频繁的任务相关刺激时就会出现。这种波动将在您的数据中显示为一个大的峰值,您可能会尝试机器学习的不同技术来检测这样的峰值。

信号转导
当你在数据中检测到了感兴趣的信号,你想以某种对某人有帮助的方式使用它们。例如,受试者可以使用 BCI 通过想象的运动来控制鼠标。这里你会遇到的一个问题是,你需要尽可能有效地使用你从受试者那里得到的数据,同时你必须记住,BCI 氏症可能会出错。目前的 BCI 相对较慢,偶尔会出错(例如,计算机认为你想象的是左手运动,而实际上你想象的是右手运动)。"(来源)

在神经带的例子中,它将自己与人脑整合在一起。它在人和机器之间创造了完美的共生关系。

这两个部分相互共生。一个人工智能层或第三界面可以位于它们之上,将我们插入一个非常新的先进的世界,并使我们能够与我们的人工智能机器人朋友保持一致。

这种连接可以让我们获得更多的记忆存储,惊人的机器学习能力,是的,不需要说话就可以与他人进行心灵感应式的交流。

“你有一个你自己的机器延伸,以你的电话、电脑和所有应用程序的形式存在。。。迄今为止,你比 30 年前的美国总统拥有更多权力和能力,”埃隆·马斯克说

BCI 的种类

《富有同情心的人工智能》的作者阿米特·雷(Amit Ray)表示:“最复杂的脑机接口是“双向”脑机接口,它既可以记录神经系统,也可以刺激神经系统。
脑机接口可分为三大类:

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

在侵入性技术中,必须使用特殊的设备来捕获数据(脑信号),这些设备通过关键的手术直接插入人脑。在半侵入式中,设备被插入到人类大脑顶部的头骨中。一般来说,非侵入性被认为是最安全和低成本的设备类型。然而,由于头骨的阻碍,这些设备只能捕捉到“较弱”的人脑信号。大脑信号的检测是通过放置在头皮上的电极实现的。

有几种方法可以开发无创的脑机接口,如 EEG(脑电图)、MEG(脑磁图)或 MRT(磁共振断层成像)。基于脑电图的脑机接口是研究 BCI 最受欢迎的类型。EEG 信号在控制信号中被处理和解码,这是计算机或机器人设备容易感知的。处理和解码操作是构建高质量 BCI 的最复杂的阶段之一。特别是,这项任务非常困难,以至于科学机构和各种软件公司不时地组织竞赛来为 BCI 创建 EEG 信号分类。

卷积神经网络和 BCI

CNN 是一种基于视觉皮层的人工智能神经网络。它能够通过前向和后向传播优化每个滤波器的权重参数,从输入数据中自动学习适当的特征,以最小化分类错误。

人类的听觉皮层是以分层组织的方式排列的,类似于视觉皮层。在层级系统中,当感觉信息流经系统时,一系列的大脑区域对感觉信息执行不同类型的计算。早期区域或“初级视觉皮层”对颜色或方向等简单特征做出反应。后期阶段实现更复杂的任务,如对象识别。

使用深度学习技术的一个优点是它需要最少的预处理,因为最佳设置是自动学习的。关于 CNN,特征提取和分类被集成到单个结构中并被自动优化。此外,人类受试者的 fNIRS 时间序列数据被输入到 CNN。由于卷积以滑动显示方式进行,CNN 的特征提取过程保留了 fNIRS 获得的时间序列数据的时间信息。

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

Source

然而,BCI 研究中最大的问题之一是大脑信号的非平稳性。这个问题使得分类器很难在信号中找到可靠的模式,导致不良的分类性能。"(来源)

你如何从零开始了解 BCI?

航空航天工程博士生 Hosea Siu 表示,“对于直接的‘大脑’接口,你需要一组脑电图电极,对于周围神经系统接口,你需要肌电图电极。

一旦你能把数据输入电脑,你就需要做一些信号调节。比如过滤你要寻找的信号频率,过滤掉环境噪音(在美国,电线产生的 60 赫兹噪音很常见……)。

之后,你需要考虑你实际上想要让系统做什么。当你想到蓝色时,你需要它来检测你的脑电图模式的特殊变化吗?或者当你移动手指时,你需要它来检测你的肌电图的变化吗?电脑呢?它应该运行一个程序吗?键入一些文本?

想想你将如何标记你的数据。计算机最初如何知道一个特定的信号是有意义的?

这是监督学习。选择您喜欢的分类方法,获取大量标记数据,并训练您的系统。您可以使用交叉验证等方法来检查您训练的模型是否在做您认为它们应该做的事情。

做完这些,你可能会有一个看起来像脑机接口的东西。"(来源)

在哪里可以找到脑机接口上机器学习的数据集?

您可以在以下网站找到几个公开的脑电图数据集:

人工智能和强化学习与神经接口技术的最新进展以及各种信号处理方法的应用,使我们能够更好地理解并利用大脑活动与计算机和其他设备进行交互。

了解更多信息

决策树分类初学者指南

原文:https://towardsdatascience.com/a-beginners-guide-to-decision-tree-classification-6d3209353ea?source=collection_archive---------3-----------------------

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

决策树是最流行的机器学习算法之一,但也是最强大的。本文将从非技术角度解释它们是如何工作的。

它们如此强大的原因之一是因为它们很容易被可视化,因此人类可以理解正在发生的事情。想象一个流程图,其中每一层都是一个带有是或否答案的问题。最终一个答案会给你一个最初问题的解决方案。那是一棵决策树。每个人都下意识地使用决策树来完成最琐碎的任务。机器学习中的决策树利用这种能力,并将其放大,以便能够人工执行复杂的决策任务。

很多时候,很难理解机器学习算法是如何做出决定的,这使得它们无法用于许多场景。对于可能需要对决策提出异议的情况,尤其如此,例如在刑事司法系统、卫生行业和战略性商业决策中。对于面向客户的机器学习算法来说,这甚至是一个更重要的因素,因为根据 GDPR,客户有“权利获得解释。决策树的人类理解能力是一个主要的优势。

决策树分析数据集,以构建一组规则或问题,用于预测类别。让我们考虑一个由许多不同动物和它们的一些特征组成的数据集。这些特征可以用来预测他们的阶级。如果我们拿一只鹰和一头大象来说,一个能把这两种动物分开的问题会是‘这种动物有两条腿吗?’或者可能是“这只动物体重在 500 公斤以下吗?”。对这两个问题中的任何一个回答“否”都会导致大象的分类,而“是”会导致鹰的分类。

可以建立这些规则来创建一个可以对复杂情况进行分类的模型。为了扩展动物分类的例子,考虑需要将选择的动物分类为哺乳动物、鸟类、鱼类的场景。查看可视化决策树,了解如何使用两个简单的问题来拆分数据。

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

这些简单的问题一个接一个地分层,允许对各种各样的动物进行分类。这就是决策树的力量。现在,如果我们给训练好的决策树一个新的动物,比如一只狗,它会对它进行分类。狗会呼吸空气吗?是的。狗会下蛋吗?不。因此模型会将其归类为哺乳动物,正确答案!

当一个人构建决策树时,问题和答案是基于他们的逻辑和知识的。在数据科学中,这些规则的创建通常由算法控制,该算法通过分析整个数据集来学习要问哪些问题。为了将这放入上下文中,我们将回到动物的例子,算法将查看所有的动物,以找出所有不呼吸空气的动物,并注意到它们都是鱼。这在数学上将数据集按其类别进行分割。这创造了强大的算法,可以以任何人都可以理解的方式将新数据分类。

决策树在作为整体使用时会变得更加强大。集成是结合决策树创建更强大模型的聪明方法。这些集成创造了最先进的机器学习算法,在某些情况下可以胜过神经网络。两种最流行的集成技术是随机森林和梯度推进。

感谢您的阅读。请查看我的下一篇文章深度学习初学者指南。或者,如果你对数据科学初学者指南或人工智能应用于商业的更多文章感兴趣,请访问 Miminal

自然语言处理初学者指南

原文:https://towardsdatascience.com/a-beginners-guide-to-natural-language-processing-e21e3e016f84?source=collection_archive---------0-----------------------

当我开始作为一名数据科学家的旅程时,最吸引人的是寻求理解单词的意义和影响的自然语言处理(NLP)。

NLP 最伟大的方面之一是它跨越了计算研究的多个领域,从人工智能到计算语言学,都在研究计算机和人类语言之间的交互。它主要关注编程计算机准确快速地处理大量的自然语言语料库。什么是自然语言语料库?它是对现实世界语言所表达的语言的研究。它是一种理解文本中一组抽象规则以及语言与另一种语言之间关系的综合方法。

虽然 NLP 在现代计算机工业革命中变得更加重要,但它实际上是令人惊叹的艾伦·图灵的大脑产物,他在帮助破解德国 Enigma 编码机器的同时,还写了一篇题为“计算机器和智能”的文章,该文章首次提出了将人类语言与计算机联系起来的严肃用途。随着技术在我们日常生活中的无处不在,我们已经看到了自然语言处理通过革命性的工具如谷歌翻译、IBM 沃森、语音识别和生成以及情感分析对我们日常生活的影响。

然而,像所有的事情一样,NLP 也有一些问题和缺点。当一个人说话时,它努力产生自然流动的语言,就像你读一部糟糕的电影剧本时一样,听起来像是计算机在说话。虽然有一些方法可以尝试理解语调的变化,但 NLP 仍然难以理解讽刺和幽默。然而,这是一个需要深入研究的领域,我期待着“讽刺突破”出现的那一天。不为别的,就是为了更好地理解朋友偶尔发来的短信或即时消息。

目前可用的一些最有用的计算机/数据科学工具有:

计数向量化、哈希向量化、词频-逆文档频率(TF-IDF)、词汇化、词干分析、解析和情感分析。

CounterVectorization 是一个 SciKitLearn 库工具,它获取任意数量的文本,并将每个唯一的单词作为一个特征返回,并计算该单词出现的次数。虽然这可以生成许多特性,但这些特性是一些非常有用的参数,有助于避免这种情况,包括停用词、n_grams 和 max_features。停用字词会生成一个不会作为特征包括在内的字词列表。它的主要用途是在“英语”词典中删除无关紧要的单词,如“is,The,a,it,as ”,这些单词可能会频繁出现,但对我们的最终目标几乎没有影响。Ngram_range 选择如何将单词组合在一起。不是让 NLP 分别返回每个单词,而是如果它等于 2,您可以得到类似“Hello again”或“See you later”的结果,如果它等于 3。Max_features 是您选择创建的要素数量。如果你选择它等于无,这意味着你会得到所有的单词作为特征,但如果你设置它等于 50,你只会得到 50 个最常用的单词。

哈希矢量器使用“哈希技巧”将文本转换为出现矩阵,每个单词映射到一个特征,使用哈希函数将其转换为哈希。如果该单词在文本主体中再次出现,则它被转换成相同的特征,这允许我们在相同的特征中对其进行计数,而无需在存储器中保留字典。

TF-IDF 揭示了在不同的文本主体中,哪些词最有区别。如果您试图看到在一个文档中多次出现但在其他文档中没有出现的单词之间的差异,这将特别有帮助,从而使您可以解释该文档的一些特殊之处。它取决于术语频率、一个单词出现的频率以及逆文档频率,即它在所有文档中是唯一的还是共有的。

词汇化是将单词的屈折形式组合在一起作为单个方面进行分析的过程。它是一种利用一个词的预期意义来确定“引理”的方法。这在很大程度上取决于在一个句子、段落或更大的文档中正确地找到“预期的词类”和一个词的真正含义。例如,“run”是“running”或“ran”等词的基本形式,或者“better”和“good”在同一个词条中,因此它们被认为是相同的。

词干与词汇归类非常相似,它将单词组合在一起,但与词汇归类不同的是,它将一个单词引用回它的基本形式或词根形式。事实上,在我遇到的描述它的最好的例子中,涉及到词干回溯到它的基本形式。“词干”、“词干化”、“词干化”、“词干化”都是基于单个词“词干”。

解析一般用途是分析一串单词以形成语法规则。对于 NLP 来说,它是对一串单词的分析,产生一个解析树,揭示单词之间的句法关系,它可以包含语义。然而,解析的一个缺点是,何时解析和解析什么完全取决于用户,因为任何段落都可以以他们选择的任何方式解析,从单个字符到整个句子等等。

情感分析最简单的定义是从一个文档或一组文档中提取单词的解释或主观含义,以确定特定单词或一组单词的“态度”。它最大的用途之一是在脸书、推特和其他社交媒体上识别公众意见的趋势,一个词在特定音调环境中出现的频率,以及解释一组词的音调。

在做任何和所有这些分析之前,我强烈建议您过滤和清理您正在处理的任何文档。我遇到的最好的函数之一是由我的一位老师 Mark Mummert 创建的。虽然它的重点是通过使用漂亮的汤清理 html 文件,但它可以很容易地适用于其他 NLP 清理。

def review_to_words(raw_review):
      #Remove html
      review_text=BeautifulSoup(raw_review).get_text()
      #Remove non-letters - Utilized Regex Library
      letters_only = re.sub("[^a-zA-Z]", " ", review_text)
      #Conver to lowercase and split into individual words
      words = letters_only.lower().split()
      #Convert Stop-Words to a set and remove them
      stops = set(stopwords.words("english"))
      meaningful_words = [w **for** w **in** words **if** **not** w **in**    stops]
      #Join the Words back into one string seperated by a  space and return the result.
      **return**( " ".join( meaningful_words ))

NLP 的世界是巨大而复杂的,并且仍然是一个需要大量研究的领域。有许多有用的工具,所有这些工具在解释和利用文字世界方面都有极其有益的用途。

对于 python 用户来说,我相信你对 NLP 最有用的资源是 Sci-Kit Learn 库NLTK 库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值