黑客马拉松教会了我什么!!
解决现实世界的问题
萨法尔·萨法罗夫在 Unsplash 上拍摄的照片
我喜欢参加黑客马拉松来测试我的技能,也学习新的技能。我发现这种学习方法很有效。在我大学二年级的时候,我曾经认为在任何一个平台上做一门在线课程就足够了。但是很快,我就会忘记我在那门课中学到的东西。就在那时,我开始探索,发现了许多发布黑客马拉松问题的网站。我参与了一些,但我不能解决问题,不知道从哪里和如何开始。因为我的兴趣在于机器学习和开发端到端应用程序,所以我只参与了这些。
问题是,每当我们在网上上课时,他们会教你该主题的全部内容,老实说,这并不是必需的,因为技术在不断更新。所以我过去常常做的是,我会寻找问题,以及使用什么类型的技术来解决这些问题。
通过这种方式,我开始了解许多不同的技术,以及何时何地使用这些技术。我是大二,所以那时候只懂 C 和 C++基础(哎呀)。我用 Python 做了一门关于机器学习的课程,这给了我一个如何用机器学习解决问题的想法。现在,我开始在黑客地球、 TechGig 、 Analytics Vidhya 上参加不同的黑客马拉松。我也知道卡格尔,但觉得太难了。我对概念有一个基本的理解,但不是在编码部分,比如使用哪个库之类的东西。
一开始,我无法完成黑客马拉松的问题。但是,即使在黑客马拉松截止日期过后,我还是继续研究同一个问题。通过阅读不同网站的文章和博客,我开始了解不同的概念,并解决了部分问题陈述。
慢慢地,我的步伐加快了,知道了如何解决问题,这时候我也开始提交我的解决方案。我在大学的时候也是这样做的,所以这需要时间,而且我的专业不是计算机,所以我花了更长的时间从不同的博客中学习这些概念。直到那时,python 成了我最喜欢的编程语言,我对机器学习和深度学习的兴趣也越来越大。
许多问题陈述可以通过创建 web 应用程序来解决。所以我开始探索数据库技术,比如 Mongodb 和 AWS 服务,并将它们与 python 集成。我从事过创建前端静态网站的工作,所以我了解 HTML、CSS 和 BootStrap。我参加过乐天黑客马拉松,我们的想法和 Magicpin(优惠券)相似。所以我们创建了一个像亚马逊一样的完整的电子商务网站,它拥有所有的功能。我们使用 MongoDB 作为数据库,HTML CSS & Bootstrap 作为网站的前端,Flask 作为网站的动态,为用户提供推荐系统。作为黑客马拉松的一部分,这个项目让我对整个堆栈开发过程有了一个全面的了解。
我的观点是,如果你有一个最终目标,比如制作一个可供用户使用的应用程序,那么你会学到比在线课程更多的东西。在线课程会指导你,但不会告诉你在哪里使用这些概念。当你参加黑客马拉松时,问题陈述是需要解决的真实问题。此外,很有可能您尝试执行的任务在 StackOverflow 上不可用,因此您需要跳出框框来完成该任务。所以你会体验到这一点,并且明白你的技能有多好。我发现这是检验我的技能和学习的最好方法。
目前,我正处于最后一年,通过用不同的技术制作应用程序来学习新的东西。
这是我想分享的个人经历。
和平。
面部识别是怎么回事?
我们知道这有点偏颇,为什么公司现在才踩刹车?
上周, IBM 宣布他们将不再销售或研究面部识别技术。不久之后,亚马逊宣布他们将停止销售面部识别技术一年,微软也宣布他们将停止向执法部门销售这项技术。这是巨大的。有一段时间,面部识别技术变得更加广泛,许多人甚至使用 face id 来解锁他们的手机。对于一项广泛传播、快速发展的技术来说,突然停止发展是件大事。
发生这种情况的原因是因为这项技术存在难以置信的偏见,既不利于女性,也不利于肤色较黑的人。然而,这并不能解释为什么现在会发生这种情况。正如你可能看到的,我链接的那些文章都是一年前的了。面部识别有偏差已经不是什么秘密了。然而,改变的是公众的情绪和理解。
作为一个在社交媒体上花了很多时间的人,我有很多社会正义的朋友,我看到了很多关于在抗议中该做什么和不该做什么的帖子。我见过流传的一件大事是不要露出你的脸(这更容易做到,因为我们都戴着口罩),并且要极其小心你在社交媒体上发布的内容。这一切都源于这样一种认识,即当局会在抗议活动中使用任何图像,试图在事后很久识别某些抗议者。随着面部识别的使用越来越多,公众越来越了解它能做什么和能做什么。越来越多的人开始质疑它的使用以及它的道德性。当我展示我的关于 STEM 中#MeToo 运动的项目时,我提到了有偏见的技术(这是为什么我们需要在技术背后有一个更加多元化的团队的原因)。我可以说,根据我自己的经验,大多数人只是模糊地意识到这种偏见已经融入了技术本身。现在,我想几乎每个人都知道面部识别技术是有偏见的,并且,在错误的人手中,是危险的。
很明显,公众监督的增加导致了这些改革,另一个原因是这些有偏见的技术改革并不普遍。
6 月 11 日, OpenAI 宣布他们将发布一个 API,人们可以在那里访问他们开发的人工智能模型。这很好,除了 T2 已经有研究表明他们的自然语言世代是性别歧视和种族主义的。当然,你还能从 reddit 数据上训练出来的身上期待什么?
那么,为什么加速器被放在一个有偏见的技术的进步上,而刹车被踩在另一个上呢?很简单,现在大家都知道面部识别了。有了这个更广泛、更博学的社区,一项技术因其偏见受到了更多的审视,公司也相应地做出了回应。没有多少人知道自然语言生成会有怎样的偏差,或者这些偏差会是什么样子。因此,没有人认为 OpenAI 发布供公众使用的模型有什么错。
如果你要提交一篇重要的论文,你不能只是自己看一遍然后再提交。很有可能,你至少会有一个人检查它并给出一些反馈。我们这样做的原因是,我们需要新的和不同的观点,以确保我们的想法站得住脚,或者我们在有效地传达我们的想法。NLG 和面部识别之间的区别很简单,有更多的反馈摆在桌面上,如果这不是让数据科学和人工智能更容易获得的有力证据,我不知道还有什么。
在你能接触到有趣的分析之前会发生什么
想从事数据分析师的职业?除了有趣的统计分析,你可能还需要考虑其他一些事情。
伊莲娜·科伊切娃在 Unsplash 上的照片
对于那些有志成为数据科学家或数据分析师的人来说,你有没有想过自己在接受工作后,会花大部分时间做统计分析和机器学习?嗯,是的,或者至少那是我上学时的想象。
但是现实和我想的很不一样!你仍然会花很多时间做分析,但是只有 60%左右。剩下的 40%,你将花在准备和总结分析上。你可能认为是清理数据还是报告?
毕业后,我已经做了两年左右的数据分析师,做了从小到大的不同项目,与不同的技术、半技术和非技术利益相关者团队合作(我说的“技术”是指精通数据分析。)到目前为止,我的经历真的让我大开眼界,这个职业远比我的预期更有趣,因为除了有趣的统计分析之外,还有一些东西。在这篇文章中,我想和你分享在准备分析的过程中你可以期待什么。
如果你想从事数据分析师的职业,但又不清楚自己将从事什么工作,请继续读下去!因为这篇文章真的可以帮你证明这个职业是否真的适合你*。*
1.接受数据请求
接收来自内部或外部不同利益相关者的数据请求,以支持决策过程,这是数据分析师生活的一部分。
但是你的时间是有限的,所以一旦你收到这些请求,有一定的步骤来优先安排你的时间做最重要的工作。
首先,为什么?
第一步是理解请求的上下文和值。问问你自己和你的利益相关者:
- 他们为什么想要这条信息?它是否符合公司战略或公司的首要任务清单?
- 这些信息有多大价值——它会改变他们的思维过程或行为吗?如果信息只是一个美好的拥有,行为改变的机会为零,那么为什么要麻烦呢?
第二,我们可以利用哪些现有信息?
一个很棒的优先排序技巧是遵循 80/20 规则——在任何项目中,20%的活动产生 80%的结果。具体来说,在这种情况下,你能做些什么事而不费力就能回答问题的大部分?
对数据请求的上下文有了清晰的理解后,您现在对数据请求是否真的有助于解决问题,以及是否有任何现有的报告或您可以向风险承担者指出的问题有了更好的认识。
如果没有,并且问题被认为是需要解决的,那么你继续下一步。
2.头脑风暴解决方案
有时候,利益相关者已经确切地知道他们需要什么样的信息,你的工作就是和他们一起集思广益,看看那条信息是否真的有意义,或者他们是否需要从一个不同的角度出发。
其他时候,他们不知道,你的工作是提出想法,并通过识别相关信息来引导他们。
无论哪种方式,这一步都是不可避免的,因为这是确保所有人意见一致的重要一步,也是管理你和你的利益相关者之间的期望的重要一步。
一旦你就解决方案达成一致,把它记在每个人都能看到的地方( JIRA 票,谷歌文档,汇合页,等等)。).
3.触摸数据
但还不是最精彩的分析,只是还没有!还有一些其他的事情要处理。
我在哪里可以得到我需要的数据?
既然您已经清楚了解决方案,现在是时候考虑一些后勤问题了:
- 需要哪些数据?
- 你能从哪里得到数据?
- 可以通过您的数据仓库访问它吗?还是可以通过其他途径获得?
- 你需要其他团队的帮助来获得这些数据吗?(软件工程师、营销等。)
- 而如果没有这些数据,可以用代理吗?
我信任这些数据吗?如果有,应该怎么用?
一旦你确定了数据,抓紧自己,你还没有做真正的分析。正如一句老话所说:“垃圾进来,垃圾出去”——你不会想用垃圾数据来提供垃圾见解。因此,数据验证部分来了。
由于数据验证没有对错之分,所以我不会过多地讨论这个问题。根据问题和您正在处理的数据的性质,步骤会有所不同。也有一些非常详细的文章来了解数据验证,比如这个 one (我觉得非常有用)。
相反,我想记下真正给我抓住机会的某些事情。
****首先抓住你:**动态性质 和 数据结构
是否有任何有损信息?
例如,发票状态可以是今天未结,明天已付—当状态改变或状态将被覆盖时,会有另一行数据吗?如果被覆盖,数据就会丢失。
有损数据的问题在于,分析结果会随着状态的改变而改变,这导致风险承担者如果想要查看一段时间内的趋势,他们的见解会不一致。但是如果他们想看目前的状态,这个数据是可以的。
****第二个问题:**真相的来源
“条条大路通罗马”,但具体在哪里呢——是去罗马圆形大剧场、圣彼得大教堂,还是梵蒂冈博物馆?关键是,可以有许多不同的方法来获得最终答案,但每种方法都会产生略有不同的答案。连接多个表的方式只要稍有改变,就会导致非常不同的结果。
请注意,当前的数据请求可能不是您的利益相关者为支持其决策而查看的唯一信息来源。他们也可以查看其他数据报告。他们比较所有这些信息,并在发现任何不匹配或不合逻辑的部分时提出问题,这是完全自然的。令我们失望的是,没有简单的方法来确保这种情况永远不会发生。
这在很大程度上可以归结为一个好的数据治理策略,它确保了一个干净、精简和可信的数据流。如果做得好,您可以减少验证数据的时间。如果这开始吓到你,不要紧张!因为除非你是公司里唯一的一个人,否则一个好的数据治理策略及其执行是整个公司的努力。
无论如何,我不会在这里深究,因为这不是主要部分,我也不是数据治理方面的专家。如果你发现自己没有这样的策略,两个简单的步骤是:
- 在您的数据团队中就如何根据业务定义获取某些信息达成一致
- 记下您在用于分析的每个数据集中看到的注意事项,并向您的利益相关者解释它们
4.最终总结
那上面有很多信息!这篇文章的关键信息是:
作为公司的数据分析师或数据科学家,您是帮助指导利益相关者(内部或外部)使用数据做出决策的专家。该指南的第一步是确保:
- 你优先安排你的时间去解决你的公司和利益相关者最重要、最有价值的问题
- 你的涉众看向正确的方向:这个分析或者这个度量与他们的根本问题相关吗,或者他们需要从不同的角度来处理它
- 你提供给他们的信息来源可靠。为了确保这一点,数据验证是至关重要的一部分
当世界停止的时候 AI 会怎么样(新冠肺炎)?
新冠肺炎被证明是我们这个时代最伟大的黑天鹅事件之一。这对人工智能、机器学习和数据科学的未来意味着什么?
尤利娅·加达里娜在 Unsplash 上的照片
世界就这么停止了…
嗯,也许不是我们星球的实际轨道和旋转,而是我们大多数人都知道的经济和生活方式。新冠肺炎·疫情以令人眩晕的速度改变了世界各地从个人到政府的一切运作方式。似乎很难相信,在 2 月初,冠状病毒是一个新的流行词,只存在于海外对美国人口的新闻报道中。现在,很明显,这不仅仅是一个标题,而是对全世界每个人和企业的直接和间接威胁。
幸运的是,作为人类,我们有独特的能力在这种时候表现出适应力。即使我们的观点和信仰发生了微小的变化,我们仍然能够从会议室跳到变焦视频会议,而没有额外的沉思片刻。当然,这就是我们如何度过这场极端的挑战,这场挑战似乎是人类自身的直接对手。令人惊讶的是,在大规模封锁、隔离和物资短缺的情况下,世界仍然保持着普遍的文明。我认为这是因为像新冠肺炎这样的敌人让我们看到,是我们团队中的每一个人,而不是典型的国家或商业争端促使人们相互争斗。
一些可能不如我们人类公平的东西是预测和时间序列模型,这些模型在过去 10 年中成为人工智能和数据科学应用的焦点。我要大胆猜测一下,说:
对 2020 年的每一个预测或预言模型,无论是金融、销售、异常、交通,甚至气候,在这一点上都悲惨地失败了
我认为任何声称自己没有的人都可能是后见之明偏差或数据篡改的罪魁祸首。马后炮这次是字面上的 2020 年…
标准普尔 500(8 月 19 日—3 月 20 日)在衰退之前,没有任何模型能够预测到这一点。(鸣谢:市场数据归作者所有)
数据科学界的任何人都可以理解为什么模型不能预测这种动态变化。主要是因为现代统计建模技术是基于对过去趋势的推断进行预测的。与此同时,大多数模型仍然被关在一个偏远的小屋里,只知道当前特定领域的数据。这意味着与我们不同,大多数模型没有得到 12 月下旬肺炎爆发的消息,这是一种新病毒,将悄悄地爆发成全球疫情。像新冠肺炎这样前所未有的现象可能会被证明是旨在预测现实世界的现代人工智能方法的克星。
因为以前成功的模型依赖于几个月或几年的粒度数据,所以需要相当长的时间来适应新的世界动态,以便再次变得有用。由于这个原因,许多行业将把人类拉回到被模型夺走的预测椅子上。在此期间,重要的是要寻找在不可预见的事件中允许模型继续运行的方法,同时为下一次训练修复每个数据集中的大规模异常。
一些例子
金融是一个很容易看到这些模型失败的地方。正如上图所示,每只股票都曾接近历史高点,但在最聪明的公司预测下一步走势之前,突然被击垮。如上所述,几乎所有的收益和目标价格预测都被不久前被算法取代或辅助的人类所接管。现在,新的预测通常以“COVID 调整…”开头
除了金融,还有更多前所未见的异常现象。下面我们来看几个。
中国的氮氧化物空气污染(来源: NASA
COVID 引起的异常现象的一个主要例子是空气质量的变化。从中国开始,全球工厂、商务旅行和通勤的关闭不可避免地导致了氮氧化物、二氧化碳和颗粒物排放的大幅减少。在不知道事情将保持关闭多长时间的情况下,这将被证明是任何时间序列数据集的一次大幅度下降。
选择国际空中交通比较(来源: knoema 免费信息图
受打击最大的行业之一是旅游业。由于限制病毒全球传播的努力,大部分旅行已经停止。考虑到航空公司和邮轮公司目前面临的濒临破产,这对于这些行业来说显然是一个异常现象。这些财务故障中的大多数是由于没有算法或人能够预测到他们的现金流操作的完全关闭。
餐厅食客 YOY 零钱(来源: OpenTable 公开数据
与旅游类似,大多数政府已经强制关闭餐馆或至少只经营外卖业务。这再次引起了从餐馆到预订和评论应用到送货服务的所有事情的震惊。
谷歌搜索“卫生纸”的数据
从一个轻松的角度来看,感兴趣的项目和集体思维购买就像卫生纸一样,是滑稽有趣的变化,在大规模变化的时代,这些变化会向相反的方向发展。你认为 Charmin 的市场分析师在 2020 年的模型中考虑到这一点了吗?
除了天气之外,几乎每个收集数据的行业都有这些异常现象。很快,我们可能会看到互联网活动发生前所未有的变化,向虚拟工作场所的转变,以及电网活动的巨大转变。问题是,这些关键的基础设施是否已经为此制定了计划,因为我们知道这些又是一系列失败的预测。不过,我们很快就会度过这段艰难时期,许多行业将会回归正常。下一个任务将是找到使用新的基于时间的数据集,每个数据集都有自己的大规模下降或峰值,时间长度我们仍然不知道。
使用这些新数据
一天早上,每一位数据科学家、分析师和商业领袖都会去他们的工作地点,不戴口罩,也不渴望接触任何东西后有洗手液。战胜疫情是从过去的大流行中推断出来的,我知道这是正确的。
随着业务恢复正常,总有一天,模型可以按照它们已经习惯的算法方式重新构建。现在唯一的问题是,将会有一个巨大的异常,可能会构成这个集合的一部分,大到不能简单地认为是一个异常值。人工智能、人工智能和数据模型未来面临的最大问题是:“在世界恢复正常之前,我们应该如何应对这段时间的变化?”
理论上的 TP 购买趋势(由 MindBuilder AI Research 提供)
我想到了两个简单的选择,但却充满了矛盾。第一个也是最容易的方法是,如果可行的话,把这部分数据切掉。这显然只适用于跟踪趋势的数据集,而不适用于底层数据的影响。对于气候数据,这可能行得通(中国几乎完全反弹),但对于销售数据等模型,这就行不通了。失败的原因是,将被削减的时间对消费者和企业都有一整个时期的影响,这对下一步是有意义的。这是真的,即使它发生了巨大的变化。例如,在卫生纸购买中可以看到,任何囤积的消费者都会有比正常情况更长时间的供应,从而导致下一个时间段的销售额比正常情况下有所下降。这是从囤积或虚拟化中获益的企业的普遍趋势。
另一个技巧是使用类似于金融业的调整方法。由于到目前为止的混乱,这些计算一直严重依赖于人类的直觉来猜测如果世界没有改变,数字可能会保持在什么位置。可以使用更深入的统计工作,例如基于推理的特征工程。该方法可以将每个 COVID 真实 tilmestep 的预 COVID 投影与异常期间的统计投影平均值进行比较。这可以被认为是以自己的方式平滑。当然,这也有它自己的缺点。在气候的例子中,它会引入一段或多或少带有人为数据的时间。剩下的时间里,每个模型将被训练来模拟一个数据集,该数据集包含的点只不过是有根据的猜测。对此建模可能会在模型假设的冷漠中加入太多的人类偏见。
要更深入地分析处理缺失数据的数学方法,请查看本文。
明天的人工智能
在这最后一节之前,我想说,大多数基于非时间序列的“人工智能”应用程序应该会毫无问题地继续向前发展。这将包括计算机视觉、NLP 和许多其他封闭系统。另一方面,企业在财务上已经依赖的实时系列模型为机器学习和数据科学社区提供了一个警钟。虽然我们作为人类相对较快地适应了我们的新动态,但这些应用程序在这一点上或多或少是无用的。我运行了几个实验性的股票预测模型,它们仍然继续预测第二天股价会大幅反弹至正常水平。
对于这种近乎滑稽的不一致,我并不责怪这些模型或它们的创造者。这些模型只知道世界的常态,而创造者(也就是我)永远也不会猜到世界会像现在这样停止。在这个时候,我们能为统计建模世界做的最好的事情是更加努力地思考如何建立像我们自己一样有弹性的模型。
也许我们对上面讨论的数据所能做的最好的事情是将异常期抽出来,为停工创建一个独特的模型,就像 COVID 已经创建的那样。这可能会创造出一些乱世的首批高科技数据科学模型。同时,我们可以为我们的正常模型提供系统,以我们的方式消化全球信息,随时准备切换到危机模型模式。这听起来说起来容易做起来难,但对于一个计划越来越依赖算法的社会来说,有必要通过后见之明来了解我们现在拥有的数据的价值。
我喜欢在任何斗争中寻找积极的金块。我认为,新冠肺炎带来的冲击将引导人们、技术和企业更好地规划未来。不幸的是,进步似乎总是伴随着战争、基础设施故障和流行病等混乱,但事实是,它们推动了人类生活的许多方面变得更好。随着人工智能、机器学习和数据科学成为我们这个时代最有前途的技术,看到这场冲击给我们带来的推动是很重要的。它让我们看到了人类的韧性,我们应该努力将其植入我们的系统,让它们继续帮助我们在危机结束时更快地走向光明。
要了解更多关于人工智能的现状和发展方向,请阅读这篇文章:
通过了解人工智能的起源来了解我们的未来走向。这篇文章概述了过去…
towardsdatascience.com](/the-state-of-ai-in-2020-1f95df336eb0)
继续和我在 LinkedIn 上的对话!
看看我目前在https://www.mindbuilderai.com做什么
参考文献
[1]https://earth observatory . NASA . gov/images/146362/airborne-nitrogen-dioxide-slumps-over-China
[3]https://www.opentable.com/state-of-industry
https://trends.google.com/trends/explore?q=toilet%20paper&geo = US
印钞机走了 BRRR 比特币会怎么样?
2020 年,加密货币将会沉浮
照片:乔希·阿佩尔
随着比特币的价格在今年迄今为止大幅下跌,将 2020 年视为加密货币起飞的理想时间似乎有些奇怪。信不信由你,比特币的忠实信徒们比平常更加看好 T2,显然对 BTC 两周前经历的痛苦下跌毫不畏惧。为了理解金融环境中酝酿的信心,我们必须后退一步,理解支撑中本聪圣教会的关键故事:
- 第一,比特币被认为是稀缺和不可改变的——由它的创造者设计成现代货币政策的解毒剂。
- 第二,比特币应该是世界上最可靠的价值储存手段,数字黄金,当其他市场受到攻击时的避风港。
- 第三,资源密集型的工作证明系统通过周期性的暂停来保护网络并锁定随着时间的推移而减少的发布。
尽管新冠肺炎给世界和经济市场造成了越来越大的损失,但比特币的这三个关键故事却像星星一样排成一行。
印钞机要坏了
同样的货币政策做法让中本聪十分恼火,以至于创造了比特币。正如各国央行将火力卸给以缓解 GFC 的剧烈疼痛,他们正准备在 2020 年再次这么做。这包括量化宽松——更广为人知的是“印钞”。随着可怕的新冠肺炎幽灵的出现,各国央行正在寻求更大的武器库,储备了数万亿美元。
顺便说一句——一万亿美元是如此巨大的一笔钱,以至于研究表明我们几乎不能理解这个数字意味着什么,更不用说如何量化它和运用批判的眼光了。难怪美国国会的两万亿刺激方案成为正面头条——我们不知道这意味着什么,但听起来政府肯定在做很多事情来对抗新冠肺炎!
借鉴《政治家手册》的一页,美联储在寻求减轻公众担忧和安抚紧张的市场方面走得更远。回到量化宽松政策,美联储在非常短的时间内增加了数万亿美元的资产负债表,现在首次超过 5 万亿美元。分析师认为,美联储可能会在其资产负债表上积累多达 10 万亿美元来支撑市场。
在这一点上,美国的经济领导人似乎准备好了抛出任何不可思议的巨额资金来对抗病毒(前财政部官员字面上指的是美联储可用的“无限”数量的现金)。看,不乏顶级经济学家愿意支持这种激进的方法来抵消危险的经济萧条。尽管如此,难怪“印钞机 go brrrmeme 已经成为传达美联储对 QE 一触即发的方式的一种简单方式。
毫无疑问,比特币受益于越来越多的人意识到,美元的货币政策掌握在一小撮能够随意控制现金流的银行家手中。
比特币的正统观念还表明,当传统金融市场暴跌时,它会受益,因为它是一种与道指波动不相关的资产。无数比特币的使用者将 BTC 推销为安全港,不仅与传统投资不相关,而且反向相关(即,BTC 的价格不仅不受其他市场下跌的影响,还会在其他资产下跌时升值)。
这种特殊的叙事受到了抨击,随着 3 月早些时候股市在“黑色星期四”暴跌,比特币经历了 50%的噩梦般下跌。不完全是广告中的安全港,尽管 BTC——公平地说——回撤至 6000 美元。然而,新冠肺炎的经济影响才刚刚开始被感受到,大多数分析师预计在最终的衰退中,股市将持续熊市。在加密方面,比特币的支持者正在排队预测“脱钩”,BTC 开始显示出与股票的相关性降低(因此在股票熊市中对投资者变得有吸引力)。
如果所有这些财政和经济动荡还不够,比特币的武库中还有一件武器:备受吹嘘的减半,这一事件适时地将给予矿工的比特币数量减半。大约每四年才会出现一次减半的情况,这是一次供需平衡的奥林匹克庆典。出于不太可能的巧合,下一个减半非常快;预计在五月初举行。
为什么这很重要?比特币的支持者急切地指出了历史趋势,即 BTC 的价值在之前每减半后都会大幅上升。在 Twitter 上关注比特币的影响者,你会看到 BTC 的任意数量的股票到流量图表,这些图表跟踪比特币生产率下降与价格预期上涨的对比。大多数 S2F 分析表明,今年的减半应该会使 BTC 的价格明显上升到 10 万美元(是的,这是目前价格的 16 倍)。
原文中有一句乐观的话是这样的:[“这个数字不是凭空而来的。”](http://To everyone’s relief, no doubt, this figure wasn’t pulled out of thin air.)
简单回顾一下:仅在 2020 年的前三个月,比特币的三个最强叙事可能同时达到高潮:
- 美联储正在印钞票,数万亿的钞票,并且夸张地说,如果需要的话,它将生产“无限”数量的现金;
- 股票市场和其他传统投资已经崩溃,数百万投资者在市场进一步下跌的情况下寻求不相关的替代品;和
- 距离比特币标志性的减半只有一个多月了,随后将出现价值不对称增长的历史证据。
已经到了买比特币的时候了吗?嗯…
比特币的机会之年也是一个存在的风险
这是一年来的第 22 条军规,绝对预示着比特币的乐观前景:本文中讨论的叙述可能被证明是错误的,这将给比特币带来灾难性的问题。
想象一下,今年年底,BTC 将在当前水平上下波动,或略高于当前水平,但仍远低于 2 万美元的历史高点。如果传统投资的牺牲、无休止的印钞和地震般的“减半”都没有激励人们离开舒适区去购买比特币,还有什么会呢?如果比特币教会的基本叙事被证明对采用或价格没有影响,那么加密货币的价值主张到底是什么?
坊间报道显示,机构投资者(钱包鼓鼓的大玩家)对这些问题感到担忧:
比特币的风险不仅很高,而且事关生死存亡。在混乱的一年,比特币投资者完全有理由感到乐观,因为他们最大的故事终于在世界舞台上得到检验。因此,2020 年迫在眉睫,这一年比特币要么沿着轨道飞向月球,要么坠落回地球。
如果你对这类关于加密货币的影响的思考感兴趣,你可能会喜欢我的新出版物, Technocracy 。我将定期撰写关于技术正在改变社会的文章,比如我最近的一篇关于冠状病毒如何让大规模监控成为我们的新常态。
如果人离开一个城市,房价会怎么样?
分析新冠肺炎对主要城市房价的影响
波士顿的南端街区
四年前,我搬到波士顿,开始了我的第一份工作,带着新面孔,准备体验这座城市。我很快沿着千禧一代的轨迹,在市中心为一套太小的公寓付出太多。我牺牲了空间和便利来换取进入。
我可以步行 10 分钟去上班,15 分钟去芬威公园,20 分钟去波士顿公园。我被能量包围着。纵观美国,城市的发展是因为人们、娱乐和工作在这些领域结合起来创造了这种能量。
然后,COVID 发生了。许多让我和其他人觉得城市生活很特别的东西,一夜之间就消失了。剩下的是价格和(缺乏)空间,没有城市能提供的许多好处。让一座城市充满活力的一切现在也让它变得不安全。
这让我思考——如果人们离开城市,住房会发生什么变化?根据哈里斯民意调查,如果考虑搬到郊区的 40%的城市居民真的离开了,会发生什么?如果他们中的一小部分做了会怎么样?
考虑房价的一个简单方法是供给和需求。如果有更多的人住更少的房子,价格应该更高,反之亦然。
来源:美国人口普查局
此外,人们搬到城市的速度比他们居住的地方建造的速度要快得多;这是波士顿一直在经历的现象。
2010 年至 2019 年间,萨福克县(主要是波士顿及其近郊)的人口变化率几乎是住房增长的两倍。因此,2017 年,波士顿的租赁空置率约为 3.4%,而全国范围内的空置率约为 7.3%。
2010 年至 2019 年间,波士顿人口数量的增长速度是住房数量的两倍。
我们可以通过分析一个城市的人口与住房比率(每套住房单位的人口数量;供求不平衡的代表)和待售房屋每平方英尺的价格。直觉上,随着人口:住房比率的增加,价值应该增加(理解许多其他因素影响房价)。
例如,在下面的散点图顶部附近标记为波士顿的点。波士顿市的人口约为 692,000,估计有 288,716 套住房,每平方英尺的挂牌价格中位数为 1,009 美元;人口与住房单元的比率(人口/住房单元)约为 2.399。
下面散点图上的每个点是 x 轴上的人口:住房(p:h)比率和 y 轴上的美国居民超过 150,000 的城市每平方英尺的中值标价。
供需标绘在 x 轴,价格标绘在 y 轴。
正如所料,有一个适度的积极关系,但有很大的可变性。为了进一步完善和研究这种关系,我们将超出预测值的值用蓝色表示,低于预测值的值用红色表示。
这种上下分割只是相似值的聚类;我们假设,除了推动价格上涨的人口:住房比率之外,落在这条线以上的城市都有独特之处。例如,一些沿海城镇,如迈阿密或圣地亚哥,人们重视海滩通道。其他城市如西雅图或纽约,因为是大都市而吸引更高的价格。
相比之下,这条线以下的地方“城市般”的环境缩小了(罗得岛州的普罗维登斯和俄勒冈州的波特兰),或者人口数量可能由于居民一年中的部分时间在其他地方度过而膨胀了(亚利桑那州的菲尼克斯和佛罗里达州的坦帕)。
仅考虑那些高于这条线的,我们看到 p:h 比率和每平方英尺价格之间更紧密的分布和关系。线性回归线预测,p:h 比率每变化 1 个单位(例如,从每套住房 2 人到 3 人),每平方英尺的中值价格增加约 165 美元。
这表明,在这些昂贵城市的子集中,p:h 比率和每平方英尺价值之间似乎存在适度的强相关关系。
那么,这对像波士顿这样的地方意味着什么呢?假设住房单元数量稳定,人口减少,波士顿的 p:h 比率将会下降。我们可以通过将波士顿的房价与其今天最接近的替代品和未来潜在的同类群体进行比较,来衡量市盈率下降对波士顿房价的影响。
如果我们以蓝色来看波士顿目前的“同行群体”(示例城市:纽约州纽约市、加利福尼亚州亨廷顿海滩),每平方英尺的平均价格(ppsf)为 813 美元;波士顿现在的股价约为 1,009 美元,比现在的股价有 24%的溢价。如果波士顿下降到橙色的下一个“对等组”(例如新泽西州泽西城、德克萨斯州奥斯汀、弗吉尼亚州阿灵顿),平均 ppsf 为 712 美元。
波士顿目前(蓝色)和潜在(橙色)的同龄人群体以及他们的平均。ppsf。
如果我们假设波士顿也有 24%的溢价,那就相当于每平方英尺的价格为 883 美元,下降了 14.4%。要达到这个水平,需要人口减少 11%。换句话说,物价下降的速度会比人口减少的速度快。
要回答本文开头提出的问题,有一种看似合理的情况,即高消费城市的人口下降重置了供需平衡,将更多权力放在租房者/购房者手中。
相反,城市价格的恶化与郊区价格的上涨同时发生。随着交通状况恶化,城市变得更加安全,郊区生活失去了一些吸引力。现在,我们已经看到了这种趋势的逆转,密度被蔑视,分离被重视。
价格下跌的影响在银行、投资者和近期购房者的风险中最为突出。租赁投资者和抵押贷款经营者正在根据房屋价值和租金的增长进行计算;这在短期内可能不太可能。
城市的短期前景可能是过剩单元冲击市场,因为人们对世界的不确定性做出反应,这将暂时使价格停滞不前。随着第一波不确定性的过去,人们对自己的新住所感到舒适,接下来可能会是一段住房流动性降低和单位易手的时期。最终,一个新的长期均衡将会达成,但我们离它太远了,无法有把握地预测它会是什么样子。
你认为价格会发生什么变化?主要城市的人口?长期影响会是什么?请随时在 jordan@jordanbean.com 通过电子邮件与我联系,或者通过 LinkedIn 与我联系。
资料来源和数据注释:
- 每平方英尺的房价数据来自市一级的 Zillow。
- 住房单元数据是使用通过 get_acs R 包获得的 2018 年美国社区调查(ACS)数据估算的。数据是在邮政编码级别获取的(有一定的误差),并根据邮政编码到城市的查找表汇总到城市级别。城市命名约定有时不同于 Zillow 命名约定。对于人口充足的城市,已尽最大努力尽可能匹配两个来源的数据。
- 人口数据来自美国人口普查局。
数据工程师太牛逼会怎么样?
数据科学家变得平凡。以下是一些确保你脱颖而出的步骤。
托拜厄斯·菲舍尔在 Unsplash 上的照片
多年来,一直有将数据工程从数据分析和数据科学建模中分离出来的趋势。从表面上看,这似乎是一项明智的投资。分析师和科学家有时间从事建模工作,并向商业赞助商进行演示。有一个隐藏的不利因素。我认为我们不应该将分析师和科学家与数据来源分开。
标准的经验法则是,数据科学家花 80%的时间清理数据。数据科学家并不便宜。将资源投入到数据工程中是有经济意义的。许多数据科学家讨厌处理原始数据。他们很乐意让工程师去操心数据的来源和格式的调整。很多时候,我是赞同这种安排的。我花了几个月的时间在我的数据分析团队中倡导数据工程角色。我喜欢自动化。有用的干净数据是自动化的关键。当一个优秀的工程师从我们的流程时间中减去 6 个小时,我们会对他们给予应得的赞扬。
那么,我为什么犹豫要不要全力以赴地进行这种结盟呢?原始数据。而不是来自 API 或管理数据集的数据。真实世界的商业数据。这种数据因其警告而令人愤怒。只有终身的主题专家才能真正理解数据的变化以及为什么会出现细微差别。真实数据很难看。工作类别在不应该的地方有空值,有人显示为 158 岁。真的吗?
数据工程师和大部分数据科学家看到这种可变数据都会发出呻吟声。它扰乱了自动化任务,并且不适合我们的算法。我们有时太快去“管理”丑陋的数据和异常值。我们可以自动对空值取中值,并排除客户年龄超过 100 岁的所有行。当我们看到这些客户名称中有些有报价,有些没有报价时,我们会低下头。我们大声问,“为什么?”
我想就数据讲述的故事提出一个观点。如果你搜索得足够多,即使是糟糕的数据点也能说明问题。您可以咨询您的 SME,而不是从 name 字段中删除引号来匹配那些没有报价的行。为什么会这样?如果精通应用的基础编码语言,可以自己找。您可能会发现,客户自己输入信息时,在“名称”字段中不会得到报价。由第三方(如医疗服务提供商)自动注册的客户会显示报价。取决于你正在测量或试图预测什么,这是丰富的数据!这种变化可能会成为客户是否自愿加入该计划的一个指标。这条信息可能不存在于数据库中的任何其他地方。
深入研究数据以识别隐藏特征的能力是一项真正的优势。这可能会让你从其他数据科学家中脱颖而出,在最好的情况下,也会让你的公司从竞争对手中脱颖而出。你需要区分你自己、你的工作和你的结果。另外,侦探工作也很有趣。我个人不喜欢在无法看到和理解构建这些数据的底层代码的情况下使用任何“精心策划”的数据源。
因此,要开始区分您的数据特征技能:
- 靠近原始数据。它告诉你什么?
- 在数据工程师自动化 ETL 之前,找到 SME 来讨论不规则性。
- 研究代码库。如果你不懂这门语言,开始学习它可能会有帮助。自力更生节省时间。
- 识别全新的丰富功能。提出你的新见解。你的商业赞助商会喜欢的。
当你打破线性回归的假设时会发生什么?
以及当你打破它们时该怎么做。
安德烈·利亚科夫在 Unsplash 上拍摄的照片
简介
线性回归是有抱负的数据科学家学习使用的第一批机器学习工具之一。
它很容易实现,其结果很容易解释,背后的数学也很容易理解。
此外,线性回归在数据科学项目中很常见,要么作为基线模型,要么作为探索性数据分析(EDA)的一部分。
难怪每周都会有一篇关于线性回归的新文章发表。
然而,虽然这些文章讨论了线性回归背后的数学和假设,但很少讨论当你打破这些假设时会发生什么。
这篇文章有三个目标:
1.解释线性回归的六个假设
2.解释当六个假设都不成立时会发生什么
3.解释当六个假设中的任何一个被打破时,你能做什么
我假设对线性回归及其假设有一个大致的了解。因此,本文的主要重点将是第二个目标和第三个目标。
线性回归的六个假设
1)总体模型(或真模型)的参数是线性的。
下面是一个简单的回归模型,其中 Y 是目标变量, X 是自变量,ε是误差项(模型没有捕捉到的随机性)。
我们所说的“参数线性”是指人口模型可能在目标变量或自变量上有数学变换(平方根、对数、二次),但在参数上没有。
因此,我们的自变量的变化将具有相同的边际效应,不管它们的价值。
2)我们有 n 个观察值的随机样本。
这个假设使我们确信我们的样本是总体的代表。更具体地说,它向我们保证取样方法不会影响我们样品的特性。
3)没有完美的共线性。
独立变量之间没有完美的线性关系。它们可以以某种方式相关联——事实上,如果变量完全不相关,我们就不会将它们包含在我们的回归模型中——然而,我们不应该将一个变量写成另一个变量的线性组合。
4)零条件均值
以独立变量为条件的误差项ε平均等于零。
也就是说,误差项与我们的自变量无关。
5)同伦方差
在统计学术语中,当随机变量的方差为常数时,称为同态方差。
线性回归假设以独立变量为条件的误差项是同方差的。也就是说,
6)常态
误差项正态分布,均值为零,方差恒定。
当我们打破这些假设时会发生什么?(对此我们能做些什么呢?)
1)真实模型是非线性的
具体来说,假设真实模型的形式为
但是我们估计了一个线性模型。
我们的参数估计会有偏差,我们的模型会做出糟糕的预测。
有两种方法可以确定是使用线性函数还是非线性函数来对总体中的关系进行建模。
你可以在两个变量之间创建一个散点图,看看它们之间的关系是线性的还是非线性的。然后,您可以比较线性回归和非线性回归的性能,并选择性能最佳的函数。
第二种方法是用线性回归拟合数据,然后绘制残差图。如果残差图中没有明显的模式,那么线性回归可能是正确的模型。然而,如果残差看起来是非随机的,那么非线性回归可能是更好的选择。
2)我们的样本是非随机的
假设您想测试锁定是否影响了消费者的支出决策。您碰巧在疫情之前进行了一项在线购物者调查,并且您决定在疫情三个月后进行第二次在线购物者调查。
这是非代表性抽样的一个例子。不是每个人都喜欢在网上购物,在网上购物的人可能有拒绝网上购物的人所没有的特质。作为一名研究人员,你不可能知道是这些未被观察到的特征,还是锁定,改变了消费者的消费决策。
一个更好的研究人员会在封锁前随机选择一组 n 人,然后在封锁几个月后随机选择另一组 n 人。如果选择过程是完全随机的,那么这两组人会或多或少地相同。因此,你可以肯定疫情导致了他们支出的变化。
当然,完美的随机抽样是不可能的。因此,在构建回归模型之前做一些 EDA 来确认这两个组没有很大的不同是一个好的实践。(也有不同类型的回归技术可以用来模拟随机性——我可能会在另一篇文章中讨论这些技术)。
(注:政府擅长创建随机数据集。例如,劳动经济学家广泛使用的加拿大劳动力调查(LFS)选择了一个随机的人群。如果你正在寻找一个随机样本,那么就从政府机构中寻找数据集。
3)我们有完美的共线性
假如
而且
在这种情况下,我们的第三个变量是前两个变量的线性组合。
回想一下,多元线性回归通过保持所有其他变量不变来估计一个变量的影响。然而,这种所有其他都等于的假设在上述回归模型中是不可能的。如果我们改变一个变量,比如说第一个变量,那么第三个变量也会改变。类似地,如果我们改变第三个变量,那么第一个变量或第二个变量(或两者)也会改变。
完美共线性的解决方案是删除其中一个变量(在上面的示例中,我们将删除第三个变量)。
4)我们的误差项与我们的一个独立变量相关
如果我们的回归模型与真实模型不同,就会出现这种情况。例如,我们可能认为真正的模型是
事实上,真正的模型是,
第二个和第三个自变量的排除导致遗漏变量偏差。平均而言,我们的斜率估计值 B1 将大于或小于真实值 B1 。
有两种解决方案。首先,如果您知道真实模型中应该包含的变量,那么您可以将这些变量添加到您正在构建的模型中。这是最好的解决方案;然而,这也是不现实的,因为我们永远无法真正知道真实模型中有哪些变量。
第二个解决方案是进行随机对照试验(RCT)。在 RCT 中,研究人员将参与者随机分配到治疗组或对照组。因为处理是随机给出的,所以误差项和自变量之间的关系等于零。
当然,除非你是一名博士生,否则你很可能没有资金来进行 aRCT。幸运的是,有一些方法可以模拟 RCT——回归不连续性、差异中的差异等。我可能会在另一篇文章中讨论这个问题。
5)我们的误差项的方差取决于独立变量的值
这导致我们的参数方差有偏差。因此,OLS 标准误差也是有偏差的(因为它们是我们方差的平方根)。因为我们的置信区间和假设检验是基于 OLS 标准误差的,如果标准误差有偏差,那么我们的置信区间和假设检验就是不准确的。
解决方案是使用稳健的标准误差。
不涉及背后的数学,稳健的标准误差导致 OLS 的标准误差是同方差的。
在 statsmodels 中,可以将稳健的标准误差指定为 fit 方法中的参数。
OLS(...).fit(cov_type='HC1')
6)我们的错误是非正常的
类似于假设五被违反会发生什么,如果假设六被违反,那么我们的假设检验和置信区间的结果将是不准确的。
一个解决办法是转换你的目标变量,使它成为正常的。这也可以使错误正常化。对数变换和平方根变换是最常见的。如果你想变得有趣,那么你也可以使用 Box-Cox 变换,我在这里讨论。
奖金
只有当我们使用横截面数据时,上述假设才成立。如果我们有面板数据或时间序列数据,线性回归需要不同的假设。
结论
现在你知道了线性回归的六个假设,违反这些假设的后果,以及如果这些假设被违反了该怎么办。
现在你可以建立更精确的线性回归模型,你可以用你的新知识打动招聘人员。
有什么变化?微软 Power 平台中无代码解决方案的持续交付方法
微软 POWER 平台解决方案
关于使用微软的 Power 平台和 Azure DevOps 持续交付 AI 模型、Power 应用程序和流程的分步指南。
杰西·拉米雷斯在 Unsplash 上的照片
在我最近的故事中,我解释了如何使用微软 Power 平台创建一个无代码的人工智能预测模型,来预测虚拟自行车共享服务的未来租金。
无代码解决方案很棒,这些平台支持的场景也在不断增长。但我们都知道,权力越大,责任越大。
当你的无代码解决方案变得富有成效,并且许多人依赖它时,那么是时候引入更专业的规程了,比如源代码控制和持续交付。
这是一个转折点,因为您现在面临的问题是用 pro-code 重新开发您的解决方案并将其移交给 DevOps 团队,或者说服您的组织即使使用无代码解决方案也可以遵循这些最佳实践。
这是公民开发者会见 DevOps 实践者的地方。
这个故事解释了如何将一个无代码的解决方案自动签入到源代码控制中,并使用连续交付的方法来部署它。这一切都是在 Azure DevOps 的帮助下完成的。
在我们的案例中,这样的解决方案包含人工智能预测模型、底层实体、可视化数据的应用程序以及在新数据到达时调用预测模型的工作流。
所有这些组件都是使用 Microsoft Power 平台构建的。使用以下产品:
- 高级应用程序
- 电力自动化(又称流程)
- 人工智能生成器
- 公共数据服务
该分步指南解释了以下内容:
- 将解决方案导出并签入到 git 存储库中。
- 将解决方案部署到不同的环境中。
在 Power Platform 中组装解决方案
如果你遵循我以前的文章,你可以简单地重用人工智能模型和自行车共享实体来创建你的第一个解决方案。
要构建这样的解决方案,请转到make.powerapps.com,选择解决方案,并点击新建解决方案。填写详细信息并点击创建。
在新创建的解决方案中,点击添加现有的,添加我在上一篇文章中创建的 AI 模型和实体。请随意向您的解决方案添加任何其他现有组件,如 Flows 或 Power 应用程序。
现在,我们有了一个解决方案,它包含了我们希望置于源代码控制之下的所有内容,并使其可部署到其他环境中。
创建签入管道
接下来,我们创建我们的签入管道,它的唯一目的是从它的源环境中导出先前创建的解决方案,并将其放入我们的 git 存储库。
在 Azure DevOps 中创建一个新项目。
将其命名为动力平台,点击创建。
作为第一步,我们必须在这个新项目中初始化 git 存储库。为此,我们转到 Repos >文件并点击下面的初始化按钮。这只是将一个漂亮的README.md
提交到存储库中。请随意更新文件并解释这个项目是做什么的。
现在我们可以创建签入管道。为此,转到管道并点击创建管道。
点击下面的使用经典编辑器链接。
选择您的项目 Azure Git Repo 作为源,然后单击继续。
点击 Empty job 模板,我们就完成了空管道的创建。
添加高级应用程序构建步骤
在接下来的几个步骤中,我们将使用来自 Visual Studio Marketplace 的 Azure DevOps 扩展来与我们的 Power 平台进行通信和交互。
在空管道内,点击 + 图标,搜索动力平台。从市场结果中,选择 PowerApps 构建工具并点击免费获取。
您将被重定向到 Visual Studio 市场。点击免费获取并为您的 Azure DevOps 组织安装它。
仅此而已。现在我们可以通过这个扩展来处理一些新任务。
导出并签入解决方案
回到我们的空管道,点击 + 图标,搜索 PowerApps 工具安装程序**。**这必须是每个管道的第一步,因为它在运行时下载必要的资源。这一步不需要任何配置。
第二步,我们添加 **PowerApps 导出解决方案,**它从我们的源 Power 平台环境中导出解决方案。
这一步需要几个参数才能正常工作。首先,我们创建一个到 Power 平台环境的服务连接。
为此,点击 PowerApps 环境 URL 旁边的管理链接。
点击创建服务连接并选择通用作为连接类型。
输入您的 Power 平台环境的服务器 URL 。您可以在管理门户的环境详细信息中找到它。
输入对该环境拥有完全访问权限的任何用户的邮件地址和密码。将连接命名为类似电源平台开发的名称。
点击保存完成。
注意:很快就会有一种更安全、更现代的方法来使用服务原则连接到您的环境。GitHub 已经有一期了,你可以订阅,以便在它发布时得到通知。
回到您的管道,从下拉列表中选择新创建的连接。
接下来,我们必须为这一步配置一些构建变量,这些变量将在运行时自动解析。
解决方案名称
$(PowerPlatform.SolutionName)
解决方案输出文件
$(Build.ArtifactStagingDirectory)\$(PowerPlatform.SolutionName).zip
现在我们再次使用 + 图标添加第三个构建步骤。搜索 PowerApps 解包解决方案并将其添加到管道中。
这一步将解包解决方案 zip 文件,以获得其原始的.json
或.xml
文件。这样,我们可以使用 git 跟踪所有的更改。
同样,我们必须配置一些构建变量。
解决方案输入文件
$(Build.ArtifactStagingDirectory)\$(PowerPlatform.SolutionName).zip
解包解决方案的目标文件夹
$(PowerPlatform.SolutionName)
作为最后的构建步骤,我们向管道添加一个简单的命令行任务。
我们使用这个步骤将下载并解压缩的解决方案存储在我们的 git 存储库中。更准确地说,我们签出我们的存储库的主分支,并将所有的变更提交给它。
echo Commit Power Platform Solution
git config user.email "[build.pipeline@xxx.com](mailto:build.pipeline@leantify.com)"
git config user.name "Build Pipeline"
git checkout master
git pull origin
git add --all
git commit -m "Automatic solution commit"
git -c http.extraheader="AUTHORIZATION: bearer $(System.AccessToken)" push origin master
现在我们已经配置了所有的构建步骤,我们对管道进行一些更改。
首先,我们允许脚本访问 OAuth 令牌。我们在前面的命令行脚本中使用了这个令牌。
接下来,我们创建在构建步骤中使用的PowerPlatform.SolutionName
变量。我们将这个变量设置为我们在 Power 平台中的解决方案的名称,例如BikeSharing
。
现在点击**保存,**但是不要排队。
作为最后一步,我们必须允许管道对 git 存储库进行修改。
我们用左下方的项目设置来做这件事。点击仓库,从列表中找到您的构建服务用户。允许参与和创建分支。
首次运行管道
随着我们的解决方案到位,我们的管道准备就绪,我们现在可以第一次运行它了。这将下载解决方案并将其置于源代码控制之下。
转到管道并选择先前创建的管道。
点击运行管道按钮并检查设置。
成功运行后,我们可以在 git 存储库中看到解包的解决方案。
建立一个持续的输送管道
既然一切都在源代码控制之下,我们可以开始将解决方案推广到其他测试、试运行或生产环境。
为此,我们像前面一样创建第二个管道。给它起个名字,比如Power Platform-CI-Testing或者其他任何能反映你目的的名字。
再次,添加 PowerApps 工具 安装程序作为第一步。第二步,添加 PowerApps Pack 解决方案,并配置其参数如下:
要打包的解决方案的源文件夹
$(PowerPlatform.SolutionName)
解决方案输出文件
$(Build.ArtifactStagingDirectory)\$(PowerPlatform.SolutionName).zip
这一步只是将解决方案打包成一个 zip 文件,这样就可以将它导入到目标环境中。
第三步,我们添加了 **PowerApps 导入解决方案。**为了使这一步有效并连接到您的目标环境,我们创建了另一个通用服务连接。
我们像以前一样配置它,但是指向另一个服务器 URL 。同样,这可以是任何其他 Power 平台环境,比如您的开发环境、您的团队环境或者您的生产/客户环境。
对于解决方案输入文件,我们放入以下内容:
$(Build.ArtifactStagingDirectory)\$(PowerPlatform.SolutionName).zip
现在我们已经准备好了管道,我们再做两个配置。我们添加PowerPlatform.SolutionName
作为变量,并且我们在触发器面板上启用持续集成。
后者强制管道在每次有东西提交到存储库的主分支时运行。
保存您的管道,但不要将其排队。
要测试整个流程,请对您的 Power Platform 解决方案进行任何更改,并手动触发签入管道。当第一个管道完成时,第二个管道会自动启动。
在一切运行成功之后,转到您的目标环境并检查要创建的解决方案。任何后续运行都将更新目标环境中的解决方案。你不需要做任何事。
**恭喜恭喜!**这是无代码解决方案的持续交付。
万事如意!
👉,
塞巴斯蒂安
额外收获:使用 git 命令行跟踪。
现在我们已经将一切置于源代码控制之下,您可以使用 git 命令行来跟踪所有的更改。克隆存储库并使用类似于git log -p
的命令来查看最近的更改。
作为一名数据科学家,我通过开发 Django 应用程序学到了什么
一次意想不到却很有用的软件开发经历后,我想分享的四件事。
图片由 Unsplash 提供。作者 @markusspiske 。
在隔离期间,我们都以这样或那样的方式受到了长期禁闭的骚扰。尽管新冠肺炎立即影响了我们的经济系统,但我仍然感到 安全在我聪明的工作数据科学家的角色中。我错了。
我的工作是为一个著名的邮轮品牌生产机器学习模型,旨在控制船队航行期间的环境影响。你可以想象,邮轮业务在当前的疫情和许多相关活动期间有一个粗略的停止。
随着所有活动的停止,我开始把我的时间投入到更多的学习中,开发新技术,并试图建立一个更大的网络。
不过,我的公司为我准备了一张王牌。为了继续全职工作,他们向我提议开发一个与我们合作的梦幻网球应用程序的后端。
我并不完全信服,因为我缺乏软件开发的专业知识,尤其是在使用著名的 Django 框架方面。然而,我绝不会尝试构建一个应用程序,但我会继续我的数据科学家之路。这个意想不到的变化让我做了一些我不打算做的事情,也许还能学到新的有用的概念,这将使我成为一名在数据和技术领域工作的专业人士。
这个直觉被证明是正确的,因为我很快就要再次成为一名科学家,我想告诉你我在 Django 发展的这几个月里学到的一些简单的想法。不要担心!这是几分钟的阅读。
编写干净的代码
我已经读了很多遍了,我总是试着写出整洁、清晰的代码。然而,没有什么比在开始之前没有太多的文档或彻底的移交就更改他人编写的代码更能让您理解遵循良好的编程规则有多重要。
很多读到这里的人会说他们非常擅长,就像我以前说的那样。然而,我发现数据科学家编程的方式是关注数据、ETL 过程和结果。我们通常在定义和限定的环境中运营。对软件开发的贡献拓宽了我的编程视野,让我明白了许多小的潜规则,这些规则肯定会在我的日常工作中帮助我。
什么规则?举几个例子:智能评论;代码中函数的顺序和变量的命名;将类细分成包;做好进口,而不是重新发明轮子等等。
可以去看看这本GitHubrepo包含了一个 python 改编的 Clean Code 名著。
IDEs 的良好使用
最近,我读了许多帖子和各种新闻,都是关于通过不同的 ide 来传播数据科学应用程序和原型开发工具的。然而,出于懒惰和方便的原因,我一直使用 Jupyter notebook 来构建我的原型。笔记本是一种疯狂且即时的工具,尽管过去我想变得“酷”并使用真正的 ide 编程,但最终,我还是屈服了,回到了我亲爱的老 Jupyters 身边。
我们可以认为这一点是前一点的子集。我曾亲自使用过 PyCharm 进行开发,我非常喜欢它,尤其是在帮助你编写更高质量的代码方面。有了这个工具提供的所有建议(和错别字纠正),你会觉得你的椅子旁边有一个助手,告诉你哪里出错了。确实不错。
有利于 ide 的一点是可以插入断点并跟随我们程序的流程,以及如何极其容易地填充变量。与所有可以手动插入到代码中的打印和日志列表(我们可以在代码中忘记)相比,结果是更加清晰和更加直接的调试。
我会把 PyCharm 也用于机器学习模型的开发吗?当然不是在初始阶段,但是当初始探索和机器学习模型被定义,你进入代码强化阶段和管道构建时,这是一个很好的选择。
如果对 python 编程的 ide 感兴趣,可以看看这里。
Git 版本工具
我一直是 Git 的粉丝,但是,我经常单独工作或者和几个同事一起工作,每个人都有他们自己的项目部分和他们的参考笔记本。一个人写的代码很少会影响其他人的工作。大多数时候,我只需要 Git 来将我的代码保存在某个安全的地方。
在这个项目中,我需要关注代码版本,并了解 Git 作为一个强大工具的潜力。我不得不在生产过程中立即进行干预,回到以前更安全的版本,去寻找 bug。我直接控制代码,并在运行和运行之间进行必要的修改。现在情况不同了。
创建与软件主版本平行的分支的可能性避免了以几种不同方式命名的许多文件的产生,正如我们数据科学家所习惯的那样,如“etl_production.ipynb”、“etl_with_new_feature.ipynb”、“model _ new _ v2 _ I _ hope _ this _ is _ the _ last . ipynb”等。的确,这是一次巨大的升级。
如果你想开始使用 Git 和 GitHub,你可以阅读来自 Anne Bonner 的一篇有趣的文章。
API 如何工作
这可能看起来微不足道,但是生产 API 是理解事物如何工作的好方法。这个项目帮助我了解了用户的需求是什么,最好提供所需信息的格式,以及如何优化请求本身的参数。
在过去,我必须构建 web 服务来提供一些机器学习模型的输出。出于简单和缺乏组织的原因,我开发了大型 API 来负责整个模型训练过程和结果的生成。这些调用中的每一个都需要大量的参数,而且,混淆的几率很高。我的错误是假设在另一边有一个人类用户,他必须手工填写每一个请求。
现在我倾向于开发小的、可理解的、可调试的 API,这些 API 可以级联,并且易于集成到应用程序中。
此外,我终于明白了处理请求可能遇到的所有不同的异常,并帮助用户理解问题以及制定正确的请求是多么重要。始终检查 HTTP 状态代码。
我现在绝对认为自己是一个更好的机器学习工程师!
其实这一点我没有什么参考,你能给我推荐点有意思的吗?
最终考虑
在网络中有一种微妙的优越感,即数据处理人员优于开发人员。我可以向你保证的是开发是一项艰苦的工作,对于许多数据科学家来说,拥有一次或多次开发经验无疑是黄金。我一直认为,数据科学家必须是纯技术人物和商业之间的纽带。然而,知道如何做不同的事情是一个优势,当你把它付诸实践时,可以帮助你预测一个项目或一个简单想法的努力和复杂性。
如果你有时间和可能去编码,那么去做!
你有过类似或对比的经历吗?你可以通过 Linkedin 或者下面的评论告诉我。
感谢您的阅读!
10 个月来我对人工智能的了解
图像:使用 Canva 创建
总结我在过去十个月里所学到的关于人工智能的一切,包括为了支持我的发现而完成的初步研究。
介绍
在过去的十个月里,我作为一名数字倡导者在实习期间有机会研究和推广新的和新兴的技术。我主要关注工作场所中的人工智能和自主过程,以及它们如何提高生产率。我观察了广泛的行业,以从更广阔的视角增加我的理解。我了解到人工智能将被用来增强人类,而不一定会取代人类。当我们将人类智能和计算智能结合起来时,我们得到了被称为“放大智能”的东西。我也开始了解到,人工智能可以在可持续发展方面为地球带来很多好处,它给了我对未来的很多希望。
我通过撰写关于许多不同行业(如法律、金融、医疗保健、时尚和音乐)的文章完成了许多次要研究,但我决定开展一个主要研究项目,以得出关于我的发现的明确结论。我进行了一项调查,旨在研究人们对进一步将人工智能应用到工作场所的想法和感受。这项调查是由来自不同行业、不同年龄的 92 名 T4 人进行的。这在我研究的时候真的很有帮助,因为我从许多不同的角度获得了意见。我决定使用甲骨文的数据可视化桌面来可视化我的结果,让数据更容易理解。
主要研究:职场的未来是什么?
- 每个行业的人数
每个行业的人数
我想看的这项研究的第一个要素是每个行业的人数细分,因为这将极大地影响这项研究涵盖的行业范围的结果。我很幸运有 92 个人参与了调查,涵盖了 14 个不同的行业。最受欢迎的行业是技术,这是我在一家“技术”公司工作时所期望的。我还让来自媒体、金融、医疗保健、零售、教育、酒店、餐饮、通信、物流、设施、工程、儿童保育和人力资源等各行各业的人参与了我的调查。
- 按性别细分的技术行业
按性别划分的技术行业
按性别划分结果也很重要,因为它不仅能让我们了解有多少男性和女性参与了我的调查,还能让我们了解每个行业中有多少女性。开始时,结果一度是 50/50 的比例,但参与我的调查的男女比例是男性 48.9% 和女性 51.1% 。当我按性别对科技行业进行细分时,情况稍微有些不均衡,男性占该行业的 54.9% (紫色),女性占 43.1%(淡紫色)。众所周知,科技行业缺少女性,但这些数字相差 10%,这是我很高兴看到的。
- 按年龄细分的科技行业:
技术行业和年龄范围
年龄是我感兴趣研究的另一个因素,因为技术行业通常被认为是由非常年轻的人主导的领域,但我想表明这个行业中有所有年龄的人。我还想探究老一代人对新技术犹豫不决的观点,因为这是一个我不同意的概括。最受欢迎的年龄范围是 25-34 岁,其次是 35-44 岁。根据经济合作与发展组织的数据,25-54 岁的人被认为处于“最佳职业生涯”,这是可以预测的。
- 人们对艾的感情:
人们对更多 AI 进入职场的可能性的感受
令我惊讶的是,完成这项调查的人 100%知道什么是人工智能。我预计会有一些人不知道什么是人工智能,但我很高兴看到每个人似乎都知道它是什么。然而,在让更多的人工智能技术进入工作场所方面,似乎确实存在一些怀疑。大多数人对更多人工智能进入工作场所的可能性持积极态度,79.3%的人持积极态度。相当比例的人( 17.4% )对人工智能进入职场的可能性感到无所谓,既不是好也不是坏,只有 3.3% 的人对此感到负面。
- AI 提升生活:
你相信人工智能能改善我们的生活吗?
当问人们是否相信人工智能会改善他们的生活时,也有类似的结果。我理解当问人们他们是否相信一台机器能让他们的生活变得更好时的怀疑态度。仔细想想,洗衣机和洗碗机被带进来的时候,他们大概也有同样的怀疑态度。不到三分之二( 63% )的人相信人工智能可以改善他们的生活,超过三分之一( 33.7% )的人选择了“也许”,这确实传达了一定程度的不确定性。然而,只有 3.3%的人选择了“不”,这是对人们及其对人工智能的信任的积极评价。
- 人工智能取代乔布斯:
你担心你现在的工作被 AI 取代吗?
当问及人们是否担心他们目前的工作被人工智能取代时,普遍的共识是 85.71% 不。正如所料,有一定比例的人确实担心人工智能会取代他们的工作,准确地说是 14.29% 。诚然,人工智能将被用于提高工作场所的生产率,因此它很可能取代重复性工作或那些可以自动化的工作。未来人类需要的工作将是那些需要创造力、同情心和同理心的工作。
总结
我研究新技术和新兴技术的时间进一步激励我继续在技术领域工作。这也让我有机会认识到,如果你热爱技术,你可以进入无限多的行业。我的主要研究项目支持我在过去十个月里完成的次要研究,人工智能将被用来增强人,而不一定取代人。正如丹尼尔·贝尔所说:“像艺术一样的技术是人类想象力的一次飞跃。”
所有观点和意见都是我个人的,与甲骨文无关。
我在攻读博士学位两年后学到了什么
迄今为止,我在整个博士生涯中学到的 10 个教训
读博两年过去了,最近一直在反思自己学到的东西。这是一次跌宕起伏的经历。有许多不眠之夜,令人沮丧的时刻,当然,也有许多学习经历。
在本文中,我想与您分享我在过去两年中作为一名数据科学相关领域的研究生所学到的 10 条经验。如果你正计划开始学术生涯,或者你已经开始了,我希望这 10 课对你有用。让我们开始吧。
1.以批判性思维的心态研究文学
重要的是不要停止质疑。
——阿尔伯特·爱因斯坦
由 Unsplash 上的 chuttersnap 拍摄
你所在领域的相关工作掌握了你需要知道的所有知识。如果你是研究和寻找一个主题的新手,最好的地方是寻找你所在领域的现有作品。但是,记得在阅读别人的作品时要有开放的心态。不要盲目相信一切,总是问问题。想想如果你要解决问题你会怎么做,以及你选择方法背后的原因。
从我开始攻读博士学位开始,我就一直在使用工具对不同的数据集进行基准测试。我曾经遇到过无法重现某些工具出版物中声称的结果的情况。有时,当我联系作者时,一个常见的回答是他们不知道,否则就会受到冷遇。这是当前研究界可悲的事实。许多人在研究质量和数量上妥协。
我不是说每件作品都有问题。也有一些杰出的作品,我尽力把它们作为坚实的基础。
2.总是讲一个故事来表达你的问题
讲故事是将想法融入世界的最强有力的方式。
—罗伯特·麦基
在计算机科学和生物学交汇的跨学科领域,比如生物信息学,你需要一个故事来解释你在做什么。不是所有的生物学家都是计算机科学家,也不是所有的计算机科学家都是生物学家。
在我读博士的早期,当有人问我研究领域之外的问题时,我会用所有的专业术语解释,最终把他们弄糊涂。这让我重新思考我的解释方法。怎样才能让别人用简单的语言理解我复杂的话题?
后来,我想出了如何用简单易懂的方式解释我的研究课题。我总是试图在现实世界中编造一个与我的问题相关的故事。这使得解释起来非常容易,任何人都可以理解。
3.定义你的范围
你可以做任何事,但不是所有事。
—大卫·艾伦
保罗·斯科鲁普斯卡斯在 Unsplash 上的照片
一个研究领域是一个广阔的领域,可以有许多课题。甚至那些单独的主题也有不同的方向供你探索。你必须选择一个主题,决定你要做什么,并确定范围。如果你试图做所有的事情,那么你将无法完成任何事情。因此,对于你要做的事情,一定要有一个明确的范围。如果你在当前的范围内停滞不前,那么你可以扩展一下,看看还有什么是可能的。
4.将您的问题与现有解决方案联系起来
研究就是看别人看过的东西,思考别人没想过的东西。
—艾伯特·森特-杰尔吉
图片由 Gerd Altmann 从 Pixabay 拍摄
在过去的几十年里,很有可能大多数的研究问题都被某人遇到过。类似的方法可能已经被提出来解决你想要解决的问题。如果你像我一样正在做跨学科研究,那么你可以通过借鉴现有工作的想法来建模你的问题。尽管还没有人提出这样一个模型,但基本的东西确实存在。你所要做的就是将这些知识应用到你的场景中,继续寻找,直到你能推断出一个解决方案,或者最终,你证明一个解决方案并不存在!
5.在现实世界中,您无法避免脏数据
数据就像垃圾。在你收集它之前,你最好知道你要用它做什么。
——马克·吐温
克里斯·利维拉尼在 Unsplash 上的照片
你需要根据你要解决的研究问题获得数据。由于我的研究问题与基因组研究有关,我需要包含基因组数据的数据集。
模拟数据集使事情变得容易得多,因为你可以很容易地获得地面真相。然而,当您处理真实数据时,很难确定确切的事实真相。此外,真实数据中存在大量噪声和模糊性,您提出的解决方案可能不会像模拟数据那样完美。你可能要做一些假设,继续你的工作。当处理真实数据时,总有一个界限,没有人知道什么是正确的。
6.尽可能清晰地展示你的解决方案
清晰和简单是复杂和不确定性的解毒剂。
乔治·凯西将军
一旦你想出了解决你的问题的方法,你必须把它展示给社区。我们最常做的事情是编辑一篇文章,并提交给一个会议或期刊。你必须清楚地解释你的方法,不能引起任何混乱。当谈到介绍你的方法时,写作风格很重要。
在展示解决方案时,强烈建议使用视觉提示。例如,你可以用流程图一步一步地解释你的方法。你也可以举一个简单的例子,解释这个例子的状态在你的方法的每一步是如何变化的。此外,您可以使用图表和图示来解释结果中的重大改进。
7.拒绝是正常的
成功埋在拒绝的另一面。
——托尼·罗宾斯
一旦你完成了你的文章,你可以把它提交给一个会议或杂志。我们总是鼓励以某个领域的顶级会议和顶级期刊为目标。每年,这些会议和期刊都会收到大量高质量的作品,审稿人会从中挑选一些发表。这真的取决于你作品的展示质量(以及你的运气)。你越能打动评论家,你的作品被接受的机会就越大。
第一次提交时,你的作品可能不会被接受。我的第一篇博士论文被一个会议拒绝了。做研究的时候被拒绝是很正常的。不要把它看做一次失败。将其视为改进解决方案的新机会。即使你的作品被拒绝,评论者也会提供他们的评论。这些意见通常包含
- 你在评估中没有考虑到的要点
- 你的方法中不清楚的地方
- 关于更多可以测试的工具、方法和数据集的建议
- 您的方法的可能扩展
你可以用这些评论来改进你的工作。我能够根据审稿人的意见改进我被拒绝的文章,并把它发表在我所在领域的一个顶级期刊上。关键是当你的工作被拒绝时,永远不要放弃。
8.你必须获得和发展技能
一个人必须发展拓展能力的技能,让自己超越自我。
—米哈里·契克森米哈
图片由 Gerd Altmann 从 Pixabay 拍摄
研究人员是问题的解决者。解决问题,你需要同时具备技术技能和软技能。
你需要编程和统计等技术技能来解决你感兴趣的问题,并提出一个可靠的解决方案。随着目前开源软件越来越受欢迎,如果你生产一个包含你提出的方法的自动化工具,它更有可能被研究社区所欣赏,因为任何人都可以使用它并重用你的代码。此外,您必须使用基于统计数据的适当评估指标来分析您的结果。
你需要一些软技能,比如说和写,来展示你的解决方案。想象一下,你必须向你的小组展示你提出的方法。你需要想出一个清晰的故事,并清楚地介绍你的方法。类似地,当你编辑一份要出版的手稿时,清晰和简单也同样适用。
9.在你的领域保持最新
日复一日,几乎每一分钟,过去都被更新了。
—乔治·奥威尔
图片由皮克斯拜的 Gerd Altmann 提供
每个领域都在进步,每天都有新的事物出现。提出了改进的和有效的方法来解决已经解决的问题。你必须跟上你所在领域的新发展。你可以从这些新的发展中获得灵感并运用到你的工作中。
了解新发展的一个好方法是阅读在顶级期刊和顶级会议上发表的新研究文章。这些高质量的工作可以为你的工作提供有价值的见解。我总是使用谷歌学术来寻找新的出版物,我也加入了 ResearchGate 。
10.与你所在领域的专家建立关系网
你的关系网就是你的净资产。
波特·盖尔
会议和研讨会是一些主要的地方,在那里你可以见到你所在领域的专家,并了解他们的工作。你可以通过结识人来扩大你的关系网。一般来说,人们都在寻找候选人加入他们的实验室或与之合作。如果你对完成博士学位后的研究实习或博士后机会感兴趣,在你的人际网络中拥有这些联系将是有益的。
最后的想法
总结这篇文章,这里是关键的要点。
- 批判性分析
- 讲故事
- 清楚地定义你的范围
- 与现有工作相关
- 处理真实世界的数据
- 专注于简单和清晰
- 不要因为被拒而失望
- 发展新技能
- 跟上新的发展
- 发展你的人际网络
在过去的两年里,我的监督小组为我提供了宝贵的见解和指导。你应该最大限度地利用你的小组的专业知识。
我希望你能从这篇文章中得到一些有用的东西。请在评论中告诉我你的想法。我很想听听你的经历。
感谢您的阅读!
干杯!
如果您对更多与研究、数据科学和计算机科学相关的经验感兴趣,请随时查看以下文章。
想升学?这里有一些情报!
towardsdatascience.com](/towards-a-data-science-phd-f2b563a8a682) [## 如何擅长算法?
我作为计算机科学本科生学习算法和数据结构的经历
towardsdatascience.com](/how-to-be-good-at-algorithms-bb1dd19ab54b) [## 自学 Web 开发
我的第一个与网络相关的软件工程项目,以及你如何自己掌握网络
medium.com](https://medium.com/@anuradhawick/learning-web-development-on-your-own-84e9020cd4c2) [## 如何在软件工程中有一个坚实的开端
我的第一个软件开发项目 A-Z 编程体验!
towardsdatascience.com](/how-to-have-a-solid-start-in-software-engineering-158dd9aa02c8) [## 计算生物学和生物信息学研究
子领域,研究领域,数据来源和你可以在哪里发表你在计算生物学和…
medium.com](https://medium.com/computational-biology/research-in-computational-biology-and-bioinformatics-121d92681aad)
我不是数据科学家时对数据科学的了解
如何不一定要成为数据科学家才能获得有用的数据科学技能
通过阅读数据科学社区中的许多文章,人们会相信对什么是数据科学家以及他们做什么有一个清晰的描述。成为一名数据科学家被视为一种布尔考虑。你要么是数据科学家,要么不是。
然而,在现实中,即使你获得了“数据科学家”的头衔,你可能也不会专门从事数据科学工作(如果有的话,有时根本不会)。或者,如果您担任的角色没有明确被称为数据科学家,您可能会从事数据科学(或人们所说的数据科学)。
令人欣慰的是,该行业正在经历第一波专业化浪潮,以及之前被纳入包罗万象的“数据科学”保护伞下的角色之间的区别。考虑到即使在行业内对数据科学家的构成也存在困惑,我将不再拘泥于任何特定的头衔(尤其是考虑到他们的流动性),而是寻找机会,在利用数据创造价值的同时。
出于这个原因,而且事实上我是许多从其他职位进入数据科学的人之一,我只想分享我在获得有用的数据技能的经历,在我的职称中有“数据”之前。如果史蒂夫·乔布斯能够回忆起大学辍学时参加书法班是如何帮助他在未来担任苹果公司首席执行官的话,那么我和其他人肯定能够从以前的角色中找到有价值的见解。
咨询
我职业生涯的前四年左右是在咨询行业度过的。这是一个和“数据科学家”一样宽泛而模糊的术语。我从事的是数据工作,但在数据科学以目前的形式存在之前,这是一个漫长的过程。如果我和数字打交道的话,我基本上就是一个电子表格分析师。
然而,咨询职业总体来说还是不错的,我学到了很多技能,这些技能在我过渡到数据领域后会对我有所帮助。其中包括:
- 模仿直升机-要在数据科学领域卓有成效,你需要从业务需求出发,让你的工作管道浮出水面,并确保它与组织的整体战略保持一致。因此,你将获得一系列工具,这些工具将帮助你识别你的业务中存在的问题,并有效地“乘直升机”。也就是说,从高层次的角度有效地看待问题,考虑其战略含义,并深入细节以理解如何执行。咨询业对此了如指掌。
- 丰富的软技能:在咨询行业,你不断地参加会议和面试,以获取解决项目所需的知识。我学会了有效地做到这一点的技巧,例如广泛地展开对话,然后缩小到细节(再次盘旋),以及提出挑战性的问题和后续行动,以确保关键假设得到彻底测试。
这也是我发现自己在数据科学领域经常做的事情。你需要利用其他人的知识来更有效地工作(从速度和准确性的角度来看),因此沟通技巧至关重要。
你可能很了解你的领域,但你很可能会跨领域工作,所以你需要学会将人们聚集在一起,围绕你的项目使命团结他们。软技能对实现这一目标大有帮助。
- 出售你的作品和继续出售。咨询是一种服务行业,你实际上是在交易知识和知识产权。考虑到账单是通过展示知识如何对其他人有价值来支付的,一个人很快就学会了如何关注有价值的事情。数据科学家明智的做法是借鉴顾问的剧本,建立这种明确的联系。
在任何职业中,能够影响和展示你的工作如何带来价值是一项关键技能。推销也同样重要,一旦你完成了一项工作并获得了信誉,你就可以寻找你可以解决的其他问题和机会,并利用你在利益相关者中的信誉来建立对这些项目的支持,从而扩大你的影响范围。
这些是我在咨询行业学到的许多技能中的一部分,在我职业生涯的前 8 年左右,我以这样或那样的形式从事咨询工作,最终进入了数据特定咨询领域。在我的第一份咨询工作后,我去了趟欧洲,在那里我尝试加入了一家初创公司。
所需领域的启动。
创业是一场骗局。我工作过的那家初创公司是一家数据播放器公司,在一个特别受欢迎的领域工作,但是几乎没有在那个领域(或者任何领域——同样,在早期)使用数据的跟踪记录
为了参与这个特别的项目,我不得不建立关系网并努力工作,然后一旦进入团队,我们就不得不一起努力争取并留住客户,完善产品。
我在这段时间学到的主要是如何进入一个非常理想的领域,以及如何通过解决有意义的问题和我直接感兴趣的问题来牺牲眼前的回报以获得长期的利益。我还认识到,充满激情是一种资产,不像相反,你拥有“游戏中的皮肤”,可以像创始人或高管一样处理决策——这是一种宝贵的技能。
然而,我主要了解了如何进入一个竞争非常激烈的领域,这是所有有抱负的数据科学家都在努力做的事情,如果他们试图进入一个与他们的激情密切相关的领域(许多其他人也有这种激情),就更是如此。比方说在体育分析部门工作。或者,如果他们试图做真正开创性的工作。我学到的如何进入一个竞争激烈的领域的经验包括:
- 从研究你选择的特定领域开始,研究数据驱动决策在该领域的应用有多成熟。找出正在做什么,由谁做。如果这个领域竞争特别激烈,就像直接在这个领域工作一样寻找邻近的机会——开始建立你的关系网和投资组合。
- 基于你已经做的研究,开始跟踪那些在那个领域特别有洞察力的人,如果可能的话,和他们接触
- 开始做和宣传与你所关注的人质量相似的工作,最好是从不同的角度(让你的工作与众不同,但质量相似)
- 学会如何索取,让自己变得有用(并支持自己),即使在没有机会的地方。如果某个数据管理角色突然出现(与你想从事的领域相关),把它当作一个数据主管角色,做些副业来展示你的价值,让人们需要/想要你
- 学习如何将想法付诸实践。不管你梦想中的 MVP 是什么,为了你所处的地理位置,为了你所拥有的手段,试着把它作为第一步。以体育为例,假设你想为一支 NBA 球队进行数据分析。明智的第一步是联系你当地的大学团队,成为他们运营分析的负责人。
- 一旦你在你想要的领域有了角色,就开始疯狂地建立关系网,扩大你的影响圈。
- 你的主要挑战实质上是将下面这句话“我是一名对所述期望领域(即篮球)感兴趣的数据科学家”(很多人)改为…“我是一名对篮球感兴趣的数据科学家,曾帮助过 x、y、z……而且做了 a,b,c”(很少)。你应该把用尽所有可能的方法来达到后者作为你的目标
这些是我在这个竞争异常激烈的领域工作期间学到的许多经验和技能中的一部分。我接下来会去…
在干草堆里找针
最后,我最后一个不确切地说是数据角色是在一家支出分析公司工作。这是我从战略咨询过渡到更具体的数据角色时承担的第一个角色。对于那些不知道的人来说,支出分析是评估公司在给定时间段内进行的所有金融交易(即大量数据点)并发现任何异常交易的做法。通常,这些交易是错误的,但它们也可能代表欺诈等。
该角色要求您经常处理非结构化数据,并发现数据中的模式。这实际上是数据洞察的一个极好的训练场,因为这项工作的本质是在数据中发现罕见的、未知的信息。坚持不懈,不断开发和测试关于在哪里可以找到价值的假设——是工作的描述。
然而,要理解我带走的两件主要事情,你需要理解这样一个事实,即我所做的专业服务工作很大程度上是基于绩效的。我们的报酬取决于我们发现了多少异常数据点,以及它们的价值比例——一旦我们把它们还给客户。基于这种动态,你必须制定策略,并不断测试假设,看看这些策略是否有效。这里的主要教训与时间管理有关。在后来的数据角色中,我学到的主要经验是:
- 学习如何快速远离没有结果的假设——尽早识别这些假设,它们迟缓的根源,并快速切断诱饵,反之亦然
- 双倍下注那些知道的。
最后,这纯粹是金钱/时间管理的一课。快速远离那些没有被证明有洞察力和价值的事情,同时从那些有洞察力和价值的事情中获取最大价值。
这是数据科学中的一项关键技能,该领域的任何角色都在以指数级增长,大量数据正被用于分析。在一个潜在的无止境的假设和大量数据集的世界里,管理策略的有效性是非常重要的。
因此,这些是我学到的一些经验教训,在我担任数据分析和数据科学角色时,这些经验教训对我有所帮助。因此,如果你渴望成为一名数据科学家,但目前还不是,请放心,你已经获得了在你的旅程中帮助你的技能,尽管你可能还没有意识到这一点。
这个故事最初发表于这里
我从机器学习中学到的人类学习。
机器学习的原则使我成为更好的学习者。从成为房地产投资者到学习印尼语。
(书籍的外部链接都是附属链接,谢谢支持!)
介绍
任何涉足多个领域的人都会注意到,一个领域的原则和元叙事是如何以惊人的频率传播到其他领域的。例如,塞特亚·纳德拉(微软首席执行官)经常在他关于扭转微软的 autoethnography 中比较从板球运动到商业战略的策略。在《有意识的商业》一书中,弗雷德·考夫曼交叉运用了许多布德主义原则到企业领导中。史蒂夫·柯维在《高效人士的七个习惯》中也做了类似的事情,并不时反思他的摩门教信仰。在《被随机性愚弄》一书中,纳西姆·塔勒布将他在金融市场观察到的随机性原则与生活的其他方面进行了对比,包括商业。
这篇论文属于这一类型。我大半辈子都是自学成才的。但在我开始在机器学习领域工作后,我开始理解人类学习和机器学习之间一些有趣但有用的相似之处。现在承认,尽管有关于机器学习(在流行媒体中以“人工智能”的绰号更为人所知)的所有宣传,机器并不像人类那样学习。最近成为头条新闻的大多数令人印象深刻的“人工智能”壮举,当人们拉开《绿野仙踪》风格的帷幕时,只不过是受控环境中的统计客厅把戏——与我们认为的“智能”相去甚远。不,机器不能像人类那样“思考”或“学习”。尽管是人工智能从业者,我仍然是人工智能怀疑论者。
尽管如此,我从机器学习中学到的一些原则帮助我进行了与该领域完全不同的探索,我想在这里分享其中的一部分。这篇文章面向广泛的读者,但也夹杂了一些技术性的阐述。鼓励非技术读者快速浏览这些部分;整个信息有望保持完整。
1.递归神经网络与房地产投资
2018 年初,我决定成为一名房地产投资者。作为一个完全的新手,我知道无知地支付大笔现金会导致不稳定的风险。为了成功,我需要明智地掏出大笔现金,而不是无知地掏出。
我的一个朋友问道:“你怎么知道,你知道的足够了?”就一个主题读一本书肯定是不够的——没有任何背景知识,我无法判断这本书是否有指导意义或过于简单。读两本书也是一样的道理。但是三个呢?需要读多少书?
这是一个合理的问题。没有任何好的方法让小时间的房地产投资者客观地自我衡量他们的能力。鉴于人类倾向于高估自己在某一学科的能力(例如,虚幻的优越感或高于平均水平的效果[2]),这些天生的心理陷阱加剧了这种危险。
这并不是我第一次对一个话题神经过敏,深入阅读,之后至少看起来掌握了一些。我不担心我获取知识的能力。我担心会欺骗自己,以为自己比实际情况更有知识,但仍会不知不觉地投资于危险的盲点。
令人欣慰的是,我能够提出一个跨领域的见解,这被证明是非常有用的,这也是我想在本节中分享的内容。
生成假莎士比亚
我对现代自然语言处理(NLP)的第一次尝试是一个玩具递归神经网络,它可以生成听起来像莎士比亚的文本。它通过处理大量的莎士比亚文本(https://OCW . MIT . edu/ans 7870/6/6.006/s08/lecture notes/files/t8 . Shakespeare . txt)并最终学会模仿它来实现这一点。到目前为止,这个玩具示例已经广为人知,它出现在 Tensorflow 文档中,所以我不会重复代码。感兴趣的程序员可以在这里找到:【https://www.tensorflow.org/tutorials/text/text_generation
这是该页中的一些合成莎士比亚:
科米纽斯:我会把他抬进去的。
格雷米奥:她有很多。上帝是一个病人。我会给你打电话。告诉你的奴隶,在那里!哦,亲爱的凯文斯,别再来了!
护士:快乐,又来了;一个反对我;他们生活发誓,但栅栏,我有鱼
对于熟悉作者的人来说,这很容易被嘲笑为具有古英语的特征,但显然是假的。然而,该模型显然对莎士比亚戏剧的倾向有一些“理解”。它是怎么做到的?它在自动完成的背后使用了类似的技术:给定一串单词,最有可能跟随哪个单词?如果我给你一个莎士比亚的字符串作为“我恳求 __ ”,你可能会猜到接下来是“你”或其他专有名词,如“Horatio”或“Lucento”。能够用一个有意义的词来“填空”表明对这门学科的熟练程度。
另一方面,如果我们进入一个完全陌生的领域,比如血液肿瘤学,看到这样一句话
免疫受损患者的术后伤口愈合期延长。通常不能等待完全愈合,因为化疗的强度需要细胞毒性 ______。
我不知道下一个空白是什么。(我从 Google scholar 上的一篇随机论文中复制了我没有领域知识的 blurb)。这是一个明显的迹象,表明我在血液肿瘤学方面不够熟练。
如果没有对该领域的一些“理解”,机器学习算法将无法令人信服地填补空白。
因此,我可以说,如果机器能够预测单词序列中的下一个单词,而不仅仅是单个单词,而是整个句子和思想描述,它就对某个主题有一定程度的“理解”。这种对文本的“把握”有一个被称为“困惑”的可量化的度量,感兴趣的读者可以在这里的进行更多的调查。
这是我研究房地产的方法。继续看书,直到我能预测作者接下来要说什么。
不用说,这是一个相当昂贵和耗时的过程。在买第一套投资房产之前,我至少看了 20 本书。值得吗?吹嘘投资成功是不礼貌的,所以我就不告诉读者了。但可以说,今天我仍然热情、积极、有能力去努力。
在这个过程中,我还能更有效率吗?坦率地说,我不这样认为,因为我将在这篇文章的最后一节讨论。同时,我们来谈谈单词嵌入。
2.词汇嵌入与外语学习
作者照片。在巴厘岛,马侃已经去世。你真正的巴厘岛,一只猴子在我头上吃香蕉。
让我们快进到 2020 年,再讲一个故事。几个月前,我决定学印尼语。不出所料,我下载了 Duo Lingo,并开始记忆应用程序教给我的简单短语。
赛亚裙 minum air (我喝水)
塞拉马特·马拉姆,桑帕伊·jumpa lagi(晚上好,再次见到你!)
Kamu mau nasi dengan ayam goreng?(要不要炸鸡饭?)
然后变得很难
诸如此类。我觉得我学得很快,直到我遇到一个障碍。一开始,该应用程序有效地教你短语,而不是单个单词。
大约在第十课的时候,它决定教我一些动词:
伯哈西尔=成功
伯迪里=站起来
Bersaign = compete
Berkunjung = visit
Bekerja = work
Bermain = play
…
该应用程序将通过提供类似于我 ________ 和他一起的句子来教这个单词,除了印度尼西亚语,所以它将是 saya ______ dengan dia。
但是上下文中几乎没有任何东西表明“访问”、“工作”或“竞争”是更好的选择。这比通过闪存卡学习一个单词好不了多少。由于所有这些单词看起来和听起来都与我未经语言训练的眼睛和耳朵相似,这是一种具有挑战性的学习方法。
当你孤立地学习一个单词时,你不会比死记硬背做得更好,而且你不是在为你真正关心的任务而学习。使用一种语言时,你通常说出短语,而不是单个单词。你不能通过翻转抽认卡与你的外国对话者交谈。因此,跳过背单词,直接学习短语是非常有意义的,印度尼西亚语的 Duo Lingo 在开始时做得很好。学习短语有助于你学习单词。但是如果这个短语过于笼统,你实际上又是在孤立地学习单词。短语赋予单词意义,就像单词赋予短语意义一样。[4]
事实上,这正是语言学家约翰·弗斯指出的:
你可以从一个人交的朋友那里知道一个词——(约翰·鲁珀特·弗斯)
啊,但我不是因为学过语言学才学会这个概念的(我没有),我学会这个概念是因为我从机器学习中学习了单词嵌入。
单词嵌入
人类通过单词与现实世界物体或现象的关系来理解单词,以及这些单词如何与其他单词相关联地使用。机器学习,至少在这个时间点上,只理解与其他单词相关的单词。尽管有这种障碍,计算机仍然可以用文字做有用和有趣的事情,这是任何与聊天机器人或数字助理互动过的人都知道的。
打个比方,想象你生来就没有视力。你仍然可以理解“气球是红色的”是一个有效的句子,而“红色是气球”是胡言乱语。同样,在听了足够多的文学作品后,尽管缺乏蓝色的视觉概念,你还是会把“蓝色”和“海洋”联系在一起。为了进一步说明,我们知道人类能够理解像“尽管有上述规定,仍应规定……”这样的短语倾向于出现在法律文件中,尽管我们不能在感官上体验该短语。单词不需要物理具体化才能被理解。
那么机器如何理解文字呢?让我们从最终结果开始,反向工作。考虑下面的图像。
作者照片
看这个情节是有道理的——机器似乎对这些词有一些理解(后面提供代码)。出现在相同上下文中的单词看起来彼此更接近。机器是如何理解单词的,从而能够明智地将它们聚集在一起的?
机器学习中单词之间的关系是通过*嵌入来完成的,*最著名的算法是 word2vec 。
在 word2vec 中,每个单词被表示为 300 维空间中的一个点(尽管 300 在某种程度上是任意选择的)。上面的图是 300 维空间“投影”到二维空间。孤立来看,300 维空间中的某个点几乎没有解释,基本上是无用的。
没有 300 维的界标来把这个词放在上下文中。然而,如果计算机学习单词如何相互联系,它将能够把单词放入与它们的相互上下文相对应的簇中。正如语言学家所说,机器将通过它所保持的伙伴来认识这个单词。单词被循环定义对机器来说并不比对人来说更困难。
如果机器正确地学习了这些单词,类似的上下文单词将会彼此靠近出现,就像它们在上面的情节中一样。在机器开始学习之前,每个单词本质上都处于随机位置,当机器阅读大量文本时,它必须在 300 维空间中迭代地重新排列单词。经过足够的重新排列,这些点将以有意义的方式相对于彼此定位,即使它们的绝对位置仍然毫无意义。
确切的实现细节可以在其他地方找到,但粗略地说,该算法接受大量文本并随机删除句子中的一个单词。然后,算法会尝试猜测缺失的单词。它一遍又一遍地这样做,并且随着每一次连续的猜测,它更新隐藏单词的 300 维位置。它对语料库中的所有单词都这样做。当单词在 300 维空间中移动时,它们最终汇聚成簇和结构,模仿它们出现的上下文。
机器(或人类)无法从一个单词孤立的 300 维点表示中理解。它只知道它与其他单词的关系。因此,当你作为一个人学习一门语言时,你不应该太在意这个单词在思维空间中的确切位置,而是它如何与这个空间中的其他单词相关联。
下面是生成上图的代码:
作者照片(Github Gist)
剩下的就在这个链接里:https://github . com/jeffreyscholz/Blog-word 2 vec/blob/master/Blog-word 2 vec . ipynb
应用单词嵌入
如果你想知道我是如何绕过这个应用程序已经演变成的闪存卡教育的,我的一个印度尼西亚朋友介入了,给了我印度尼西亚民歌和童谣让我记忆。音乐可以帮助记忆是一个单独的话题,但是这种方法让我了解了单词所保持的上下文。
谢天谢地,我的室友不懂印尼语,所以他不知道我在唱一只坐在窗户上的鹦鹉,或者爆裂的绿色气球,或者其他幼稚的傻事。事实上,我确定我在他听起来很老练。果然,我发现从令人难忘的句子中回忆单词比从像我和他在一起这样没有上下文的短语中回忆要容易得多。
将这种方法进行逻辑总结,我试图在尽可能多的不同上下文中看到印尼语单词,这样我就可以通过他们保存的公司来学习单词——或者非常书呆子,在我的脑海中反复形成印尼语单词的 300 维表示。实际上,这意味着与导师互动,听该语言的音乐,阅读关于该主题的不同教学书籍,等等。当然,一个通晓多种语言的人不会觉得这个结论有什么了不起——当然,一个人应该沉浸在一门语言中才能有效地学习。啊,但是作为一个有经验的语言学家,我并没有发现现象,我通过从机器学习中引入它的类似物重新发现了这个原理。
3.人类和机器的学习有不可简化的复杂性吗?
图片来自维基百科,公共领域
回到我学习房地产的旅程——除了阅读所有这些书之外,有没有一种不那么费力的方式来开始这项努力?说到痛苦的学习,如果学习一门语言时没有那么多重复、精神紧张和社交尴尬就好了。
但当我们考虑机器如何学习时,它同样野蛮,如果不是更野蛮的话。实践中的机器学习包括购买一堆昂贵的硬件,收集大量数据,消耗大量电力,然后砰——算法学习数据中的模式。当然,令人印象深刻的结果有时会成为一个很好的标题,但在看过香肠是如何制作的之后,这些结果似乎并不神秘。正如我在介绍中提到的,我认为许多“人工智能”是受控环境中的统计游戏。
在各种情况下,我都在思考是否有某种方法可以将海量数据输入到一个聪明的算法中,并直接跳到模型的参数上,使模型能够做出有用的预测。
关于计算复杂性的技术讨论
例如,在线性回归中,“理解”一个数据集所需的参数通常可以用下面的公式“一次性”解决:[5]
这里,X 是您的数据集,其中每一行是一个数据点,y 是该条目的标签。矩阵求逆相当快,可以在 O(n^2.376 时间内完成。[6]然而,能够产生令人印象深刻的文章的“令人印象深刻的”神经网络(GPT3、威震天等)是在大约 40 千兆字节大的数据集上训练的,因此 X 乘以它的转置将远远超过千兆字节的平方——这肯定不适合任何计算机的内存。另外,我们这里讨论的是线性回归,神经网络不是线性的。尽管解析求解线性回归的算法在时间和空间上都是多项式,但人工智能中使用的数据集的庞大规模使得解析或“好”解决方案不可行。
非常技术性的讨论:如果一个问题是“np-hard”或“polytime ”,这并不太相关。人们可以找到 np-hard 问题的相当好的近似解决方案——尽管旅行推销员问题是 np-hard,但 USPS 可以有效地递送包裹。同样,当 n 很大时,一个需要 O(n)时间精确解决的问题是不容易处理的。即使在相对无害的 O(n)空间需求的情况下,上述问题也表明,如果数据很大,数据甚至不适合计算机。在这两种情况下,都需要考虑现实世界资源约束的近似解决方案,但这必然会造成计算瓶颈。
这个线性回归的例子说明了手头更大的问题。
计算复杂性的含义
我不会在这里深入研究计算学习理论,因为我认为这将不必要地分散我想表达的观点。但是仅仅看一下数学、计算复杂性和统计学,我们就可以发现许多类问题没有学习统计模式的“好”方法。也就是说,给定一个我们希望机器理解的数据集,我们可以从数学上证明,不存在一种让机器发现模式的优雅或有效的方法。发现这种模式的唯一方法是从胡乱猜测开始,然后通过一次又一次地反复迭代数据,慢慢地改进这种猜测。当有大量数据时,这将成为一个非常缓慢且昂贵的过程。
如果我们可以证明,没有数学上优雅而有效的方法让计算机从大型数据集学习,那么当我们花很长时间学习感兴趣的主题时,我们不应该对自己感到沮丧。阅读大量房地产书籍或试图理解一门外语的痛苦涌上心头。
似乎有一条基本定律被编码到宇宙中(正如我们目前理解的数学所定义的),即将大量信息提取为简洁的可描述模式需要花费与数据大小成比例的最小量的能量——无论是机器的计算周期还是人类的学习时间。对于相当大的“数据集”,如房地产或语言学习,最小能量可能相当大。这是无法回避的。正如不可能在少于 O(n log n)的时间内对一个无界整数数组进行排序一样,不花费一定的精力也不可能“理解”一个数据集。
这当然提出了一些哲学问题,关于人类能获得多少知识的极限。但实际上,我觉得这很令人欣慰。当我遇到一个要花很长时间才能学会的题目时,我不需要把困难完全归因于我迟钝的才智,也要归因于宇宙神秘的形而上学属性:在数学意义上,学习通常是可证明的困难。
结论
同样,这并不是说机器学习和人类学习有什么相似之处。具有传奇色彩的计算机科学家埃德格·迪克斯特拉(Edsger Dijkstra)指出,“计算机能否思考的问题,并不比潜艇能否游泳的问题更有趣。”正如我在引言中指出的,作者们已经写了大量关于体育、宗教、概率和商业等不同领域之间的相似之处。我相信机器学习和人类学习之间的相似之处就在于此。完全不同,但有时有趣且有启发性。
你见过机器学习和人类学习之间的其他相似之处吗?请在评论中分享!
另外,我计划接着写一篇关于知识升华的文章。那原本是这个里面的一部分,但是它让整个作品变得太长了。敬请期待!
脚注
[1]链接为附属链接,谢谢支持!
【2】虚幻的优越感。访问 2020 年https://en.wikipedia.org/wiki/Illusory_superiority
[4]我在这里忍住讨论维特根斯坦语言游戏的冲动,但有兴趣的可以在这里进一步阅读:https://en . Wikipedia . org/wiki/Language _ game _(哲学)
[5]我想在这里感谢我从https://stats . stack exchange . com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent中得出这个插图的帖子
[6]数学博士。矩阵求逆的复杂性。2020 年访问了http://mathforum.org/library/drmath/view/51908.html
我在 4 年的在线数据科学课程中学到了什么
来自数据学习冒险的观点
paweczerwi ski 在 Unsplash 上的照片
(注:所有观点均为本人)
介绍
实际上,我从未打算在数据科学&分析的广阔领域工作;那是 2016 年,我即将从一个 3 年制的商学学士学位毕业,当时这个学位的课程中很少有编程课程。
在结束了毕业前的最后一门考试后,最后一项未完成的工作是我的论文,它侧重于西方公司和亚洲公司之间的 M&A 交易的比较分析。我想分析东西方文化差异在多大程度上决定了 M&A 在股市的表现。
我记得必须处理和收集这些交易的大量数据,并发现在 Excel 中预先进行数据清理和处理被证明是相当笨拙的,对于我想要实现的特定任务来说肯定不是简单明了的。我想知道是否有更好的解决方案能让我更快更有效地得到最终结果。我听说过同学们使用 Python 和 R 来解决这类任务,所以我开始做我在接下来的几年中会多次做的事情,无论是在学习、研究还是在个人项目中:我被卡住了,最后停在了 StackOverflow 上。
在那里以及类似的网站上,我找到了许多在线编程课程的参考资料,因此我一头扎进去,希望从中获得一些提示,以加快对我的 M&A 论文的分析。
从那以后,我从未停止过学习,虽然我仍然非常努力,但我在这里分享了我在这一路上学到的一些关键知识,希望能激励你保持动力和兴奋,继续你以数据为中心的学习之旅。
进步是非线性的
由paweczerwiński在 Unsplash 上拍摄的照片
一个人技能的提高,和课程量、学习天数不成正比。有很多时候,我觉得课程的概念(函数作用域和面向对象编程)太脱离我当初为什么学习材料的实际原因*(学习 R 语言中的 5 种数据处理方法,以便我可以继续我的论文*),而其他时候情况正好相反,因为我发现概念在实现中太根深蒂固(“什么”),没有必要的理论背景来维持内在的理解(“为什么”)。
不管怎样,我发现这种短期的挫折感逐渐减轻了,因为一两年后,我会遇到另一门课程,这门课程会让我把我以前在大脑中记录的概念之间的许多点联系起来,但只是交易性的,没有真正消化这些材料。
本质上,如果你觉得预先定义的一系列课程不能简单地“修复”你的知识差距,不要绝望。概念内化需要时间,随之而来的是对概念的掌握(或者至少我愿意这么认为)。
理解是复合的
丹尼尔·利维斯·佩鲁西在 Unsplash 上的照片
我喜欢将某个主题或课题视为一个单一的构件,它在学生的知识库中占据其逻辑位置,然后学生有机会将新元素用于他/她喜欢试验和工作的任何应用领域。
随着学生掌握的积木数量的增加,潜在项目和实验领域的范围也呈指数增长,因为学生在他可以利用的积木之间建立了联系。这激发了学生的热情,也增强了他们学习更多知识的愿望,以不断增加某项技能的应用数量,这种技能是流动的,总是在朝着更大、更全面的方向发展。
由于数据科学和数据分析主题在很大程度上处于实施阶段,而不是纯粹的学术研究,因此非常鼓励学生以项目的形式很好地应用这些知识模块,如果成功,将导致创业努力、行业用例、酷博客帖子、有用的 GitHub repos 等…,从而在整个学习过程中产生积极的溢出效应。
认识到自己的无知= f(学习时间)
阿吉达·ATZ 在 Unsplash 上的照片
我研究得越多,就越意识到我只是触及了需要了解和吸收的东西的表面,我所知道的只是工业、学术界以及两者之间的知识海洋的一小部分。这真的很令人兴奋。
数据科学工具、框架和编程语言的数量在不断增加和发展。与此同时,越来越多的国家正在资助人工智能教育和实验研究,推动新的发现和应用领域,然后转化为新的行业用例和创业努力。
这是一个令人兴奋的领域,许多人和我一样,都想成为其中的一部分,在这种环境下,个人对知识的巩固充其量是流动的,这意味着人们只能学到这么多,主要是因为正如我们所说的那样,该领域的突破性进展正在开发中。
因此,我在这里喜欢采取的个人方法是,专注于接受自己的认知局限,但同时专注于为成为一个严肃创新和相关领域的一部分而感到兴奋,在这个领域中,一个人必须沿着与她/他自己的个人情况、行业偏好和专业领域最相关的路线开辟出她/他自己的个人道路。
本质上,我相信数据科学中有一些令人兴奋的东西。诀窍是不断学习探索一个偏好的利基市场,并学习如何在其中茁壮成长。
合作扩大了知识的增长
参加课程和学习班固然很好,但也许没有什么比与能够提供不同观点来解决问题的人一起从事很酷的项目更能巩固学习了。
协作为其他人如何处理和解决问题提供了机会,并提供了社交互动的额外好处,许多人需要在学习过程中感受和保持联系。
因此,不仅从教科书和书面材料中学习,而且从别人的直接经验中学习也是非常重要的。不得不专注于让别人解释一个概念提供了一个从以前忽略的角度看待主题的机会,迫使自己跳出传统的思维方式。另一方面,向他人解释概念会促使你专注于本质,并整理你的思维,这进一步巩固了学习。
我有很多“灵光一现”的时刻,听别人向我解释他们的代码,以及他们为什么以这种方式构建代码来解决某个问题。
最重要的是,协作可以为你的学习之旅增添更多乐趣。越早认真考虑越好,因为无论如何,这个领域是高度合作的,你必须善于与他人合作,才能在你最终追求的任何努力中取得成功。
概括起来
学习数据科学一直是一个非常有趣和有益的旅程,尽管我仍然处于其中。
为了减轻(不那么)偶尔的失落感,我发现制定一个学习计划是很有用的,这个计划也考虑到了全局。
这包括:
- 认识到进步是非线性的,你不会简单地马上理解任何事情。如果你坚持下去,你通常会在以后连接许多点。
- 明白增加新技能会使你能用它们做的事情组合起来。在处理新问题的时候享受乐趣,这些新问题结合了最近和最近获得的知识块。
- 意识到自己是一个不断发展的领域的一部分。发展部分专业知识是可以的。享受攻击你最喜欢的利基。
- 与充满热情的人在一起学习,加速和丰富你的学习。做一块海绵。
感谢阅读!
访问我的免费数据科学资源清单 这里
[## 通过我的推荐链接加入 Medium-Edoardo Romani
作为一个媒体会员,你的会员费的一部分会给你阅读的作家,你可以完全接触到每一个故事…
edo-romani1.medium.com](https://edo-romani1.medium.com/membership)
作为一名数据科学家工作一年后,我学到了什么
商业科学
原来有很多事情我希望我以前就知道…
介绍
2019 年 10 月开始了我作为数据科学家的旅程。在这里,我想分享我的经验,技巧,以及我希望我以前知道的事情,以避免你被烧伤。
10 月初,我在 Evo 担任数据科学家将满一年。利用应用于零售和供应链行业的尖端技术,创造出令人惊叹的工具。
今年是不可思议的过山车,我学到了很多东西,我认为自己非常幸运能够成为令人敬畏的团队的一员,这个团队力求完美,同时乐于助人,激励人心并且能够胜任。
你是和你相处时间最长的 5 个人的平均值。
嗯,我不知道这是真的还是假的,但如果是真的,我肯定会去争取。
最让我害怕的事情之一是当疫情(以及封锁来袭时:我害怕我将无法像以前那样交付,因为缺乏办公环境、同事,以及向你旁边的同事寻求帮助的可能性就这样一天天地消失了。
幸运的是,和往常一样,这只是一个习惯的问题。我们通常天生害怕新事物,然而,一旦我们落入水中,要么我们(试图)游泳,要么我们下沉。
我希望我以前就知道
在学术界之外,或者更明确地说,在专业环境中从事数据科学有许多不同之处,这些不同之处并不总是被教授或解释:
- 在专业环境中,你不是专注于单一技术(如 Python)的而不是,而是处于不同技术(SQL、Docker、R、Python、Bash……)的集合体 T10 中。
- 有时候旧的电子表格就是这样:管理者并不总是熟悉开发工具,比如
pandas
、dplyr
或matplotlib
。
照片由energepic.com从像素拍摄
- 你必须能够展示和衡量一切:有时你需要独自完成任务,而你的队友对任务了解不多,甚至不知道你参与解决任务的技术。准备好写下结果,并能够提交衡量工作影响的报告。
- 机器学习不是黑箱:如果交付一个解决方案,其中包括一些在后台运行的机器学习,你必须能够解释和理解模型创建的每个预测。
- 每个人都有自己的看法和观点:能够倾听并尊重他人的观点,并且永远准备好改变你的想法。
- 通常你需要后退一步:当开发一个产品的单一特性时,很容易让不知所措,从而失去对项目的关注。这是非常危险的。永远记住你为什么在做一件特定的事情,并把它当作拼图中的一块。不是独立的实体。
- 不要成为的粉丝:我们都有自己喜欢的技术、库、云提供商或框架,然而有时候,我们没有可能使用我们喜爱的工具,因此准备好并接受你需要使用(和从头开始学习不同的堆栈的情况。
记住,作为一个大三学生,你不必什么都懂一点,而是什么都懂一点!
- 你将经常需要使用电子表格进行不同的操作,最后但同样重要的是:电子表格(仍然)经常是随身携带的报告工具。熟悉诸如透视表格、
VLOOKUP
、IF
、创建(和格式化)图表等操作。 - SQL:我无法提及(至少)了解 SQL 的基础知识有多重要。数据通常存储在数据库中,这意味着熟悉 SQL 是必须的。熟悉联接、选择语句、分组依据至少一种 SQL 风格(MySQL、MSSQL、Redshift)。
来源:维基百科
- 了解不同的技术如何相互通信。在处理一项任务时,您可能需要连接到数据库以获取数据,请使用您的 to-go 语言轻松连接到数据库。
- Bash/Powershell 脚本:你很有可能会遇到像
CRON
乔布斯这样的事情。让熟悉 Linux 和 bash 环境,并学习如何从终端使用参数启动脚本,这是脚本启动的频率。
你总有一天会听说的…
- 另一个非常常见的情况是,当数据来自一个 API 时,有必要了解 API如何工作,更具体的概念,如令牌认证、JSON 和 HTTP 代码。
- 如果数据没有存储在数据库中,或者来自 API,那么您很有可能会使用存储桶,存储桶是由 AWS 提供的简单存储服务,用户可以在其中存储不同的文件,例如
.csv
,图像等等。
如何使用 S3 铲斗的示例。
- 处理大数据:在学习或大学期间,我们被教导如何从
.csv
等文件中读取数据,我们调用.read_csv
等小函数,自动准备好数据进行操作。在现实生活中,通常情况下,你根本无法完成这样的事情。数据收集太大而不适合内存,以及不同的策略,例如以块的形式读取文件,使用像 T2 这样的技术,或者处理更小的数据样本。 - Docker:为了让整个团队走上正轨,避免开发和生产环境之间的依赖问题,或者简单地避免臭名昭著的短语*“它在我的机器上工作”*,Docker 提供和基础设施来管理环境(称为容器)。我建议你熟悉 Docker 及其基本命令,如
docker-compose
和docker-build
,并了解什么是注册表。这会节省你很多时间。
来源:RSAConference 2019
结论
正如前面提到的,很多时候,这只是一个习惯的问题。不要害怕学习新事物或者弄脏自己的双手,记住永远接受批评和倾听别人的,最后:不要害怕“打破东西”。
最后,我知道学习新事物时很容易不知所措,有成千上万的资源、文章、视频、课程,当菜单太长时,选择变得越来越难,然而:
记住,你不需要把它做对,你只需要让它开始。
**I have a newsletter 📩.**Every week I’ll send you a brief findings of articles, links, tutorials, and cool things that caught my attention. If tis sounds cool to you subscribe.*That means* ***a lot*** *for me.*
[## 米尔斯形式
编辑描述
无情-创造者-2481.ck.page](https://relentless-creator-2481.ck.page/68d9def351)
作为一名管理大型开源项目的大学生,我学到了什么
办公时间
我的名字是帕拉什·沙阿,我是 Libra 的作者:一个机器学习库,让你用一行代码建立和训练模型。我也是弗吉尼亚大学的本科生。
我在开源社区的旅程始于一名普通的大学生——课后我在宿舍里做我的图书馆工作。但很快,它开始成长为比这大得多的东西,在不到一个月的时间里从 0 到接近 2000 颗恒星。突然间,它被用在卡内基梅隆大学和麻省理工学院的几门机器学习课上。
作为一个以前在技术行业没有专业经验和/或人脉的人,与这个领域的其他人相比,我启动这个项目的经历是独一无二的。以下是我在建设这个社区过程中最大的收获:
平等对待你的团队成员。
运营一个开源图书馆就像运营一个志愿者组织。你的参与者是出于个人兴趣,他们在你的项目上投入时间没有社会或金钱上的收益。与其让他们尊重你,不如让他们尊重你。你应该尊重他们的意见:不要拒绝可能符合你目标的改变,而是将这些想法塑造成可部署的东西。尊重他们的时间:在某些功能应该何时完成方面设定崇高的目标,但是记住要非常灵活。
在 Libra,我有一个系统,每个贡献者每周完成一个小功能。设置这些时间框架是为了确保项目稳步前进,而不是迫使开发人员更加努力地工作。你的成功在很大程度上取决于你的贡献者,因此,他们支配你的时间表,而不是相反。有明显的区别;了解这种分离是运行自己的开源项目的关键。
让每个贡献者/团队成员感觉自己是使命的一部分。
当你远程参与一个项目时,项目的目标可能看起来很遥远或者不可连接。亲自在一家公司工作,你开始理解这个集团的文化和使命。因此,运行一个开源项目,你很可能永远不会遇到你的贡献者,你必须模拟这种文化,让你的开发者感觉他们是整体目标的一部分。
在天秤座,我意识到即使是最小的手势也能产生重大影响。当你有了发布,在发布说明和你的 Slack 社区中感谢贡献者。通过经常与每个贡献者就他们正在做的事情进行一对一的交谈,来保持与他们的个人关系。
让每个人都参与进来,不论经验。
经常会有没有经验或经验很少的人加入你的社区,并希望做出贡献。有时,让他们快速工作的努力可能比他们完成的实际工作要大。没关系。你的项目活着,呼吸心跳可能几乎没有生命,如果你让这些新人加入,它只会保持生命。他们和他们的朋友谈论他们参与的事情,他们最终可能会加入。项目中的每个人在某些时候都是有价值的。
通常,缺乏任何机器学习实际经验的开发人员加入 Libra,并要求参与进来。我对此的解决方案有点古怪,但似乎很有效。他们可以随时问我问题,我有一个问题频道,这样新来的人就可以获得大量已经回答的问题。
寻找其他宣传渠道。
不要把自己的宣传局限于你的社交渠道。有很多不太受欢迎的方法可以让你的 GitHub 项目受到关注。鼓励你的贡献者和/或你认识的人在你的工作中写一些中等或中等水平的科学文章。你也可以去 madewithml.com 的或者 producthunt.com 的或者看看。就个人而言,天秤座在 madewithml.com占据了大约一周的第一名,这极大地提高了关注度。这可能不会从本质上增加牵引力——至少对我来说不是。不过,它给我的项目带来了足够多的明星/浏览量,让它出现在 GitHub 趋势页面上,在那里它爆炸了。
参加每一次会议,每一次聊天,不管是谁在问。
随着你的项目开始受到关注,会有人希望与你进行专业交流,但也只是为了了解软件背后的人。不要从利益的角度来看待这些会议——你的思考过程不应该是“我能从这次会议中获得什么”。这个世界的力量以奇怪的方式运作,你永远不知道你在 LinkedIn 上遇到的随机的人会如何帮助你联系到你的下一次休息。每个人都曾经告诉我,关系通常胜过个人能力,我目睹了这一次又一次运行天秤座。
我与来自这个领域各种品牌和公司的众多研究人员、教授和创始人聊了聊。通常,他们会把我和他们认识的对天秤座感兴趣的人联系起来。再一次,参加会议,你会惊奇地发现每个人带你去了哪里。
从合适的、有经验的人那里获得建议。
一旦你的项目有点进展,你会突然发现一个充满机会的世界。起初,这是相当令人难以抗拒的,但很快,你就会意识到这正是为什么你把你的项目开源并与世界分享。在你决定下一步做什么之前,通过和有经验的人交谈来找出最好的行动。
我发现这些人的方式触及了前面提到的一点——抓住每一次提供给你的机会。问他们关于他们的背景和他们做过什么的问题,让他们讲述他们的故事。当你与他们交谈时,你会知道你找到了合适的建议对象。最后,确保从各种人那里得到这个建议。我听取了来自不同大学的风险投资家、创始人和教授的建议。他们每个人都有不同的角度:风险投资会关注规模和影响力,而教授们会专注于具体的技术细节。
获得尽可能多的演讲机会。
对你的项目感兴趣的第一批用户是最重要的。这些是开发者,社区成员,他们纯粹出于兴趣不断寻找新项目。他们会告诉他们的朋友你的工作,在社交媒体上发布,并写文章介绍你的创作。我找到这些用户的方式是通过 meetup 社区,在那里我将我的组展示给几个组。最初的几个月,我在 3-4 个聚会上展示,直到今天,最活跃的用户是我在聚会上发现的那些人。我参与的方式非常简单:我只是加入了一些我能找到的最酷的小组,比如你的数据会谈,并直接在平台上给所有者发私信。每个人都很乐意让不同的人交谈,所以这很容易做到。
扩大你的社交面。
扩大你的社交面绝对至关重要。找到你的平台:我的平台是 LinkedIn,现在它变成了 Twitter。你需要一个地方,让人们跟着你听你说些什么。在我计划发布 Libra 的一两个月前,我开始在 LinkedIn 上发布关于软件开发和机器学习的帖子。这有助于吸引已经对这一领域感兴趣的追随者到我的个人资料,因此,当我发布我的库时,我的追随者已经对它感兴趣了。
我目前正在建立我的 Twitter 个人资料:)。
不要过早开始宣传。
这可能看起来违反直觉,但请听我说完。对你的项目来说,最重要的用户群是前 200-1000 名兴奋的、积极参与社区的用户。因此,如果你在你的软件可用和健壮之前就开始宣传,这些用户可能会因为你的工作太原始而感到没有动力。
我不是一个等待的人。一旦我创造了一些东西,我想分享出来,让每个人都知道。但是等待宣传你的作品是充实的是至关重要的。
结论
希望我已经提供了一些关于运行您自己的大型开源项目的见解。虽然我可能没有涵盖所有内容,但这些是我在过去几个月里学到的最重要的几点。如果你对聊天感兴趣,我很乐意在推特上与你联系。
作为一名数据科学研究员,我在一年内成为了人工智能的领导者
上周,我被认可并提名为 VentureBeat 的人工智能新星,这是每年颁发的人工智能领袖奖之一:
这个奖项将表彰在她人工智能职业生涯的开始阶段展示了模范领导特质的人。
这是我作为一个新人,人工智能领域的领导者所学到的。
作为这个行业的新人——刚从大学毕业,在这个行业呆了一年,我已经能够非常迅速地转变和塑造。不久前,我还只是一名数据科学研究员,在粒子加速器研究实验室自己的小实验室角落里攻读本科学位。我不应该说“只是”,因为数据科学是一项艰巨的工作!我一点也不知道,一年后,我会成为业界公认的领袖。
我在不到两秒的时间内从 0 加速到 60 英里!
最重要的是,我还能够以新人的视角来把握和观察这个行业。以下是我从一名数据科学研究员到行业领导者的一年中所学到的东西。
人工智能需要完全不同的视角
如今,大多数人工智能领导者都是“超越数据科学家”。他们通常会接受科学、工程或数学方面的正规培训,然后某天醒来,发现自己对领导人才更感兴趣。
在他们发现自己处于的所有太常见的情况下,技术和领导技能的双重掌握是在系列中获得的,而不是相互结合。
它们通常属于以下两种情况之一:
- 一个开始失去技术层面的东西,只能在高层次上谈论产品的领导者
- 一个如此沉迷于技术,并且通常会过度沉迷于发展的领导者
通常情况下,今天的人工智能公司分为两类:
- 追求技术抽象并专注于手头现实问题的公司(即领域专家)
- 一家公司过于依赖技术,忽视了他们最初试图解决的现实问题(即技术提供商)
这个行业需要你们所有人——技术和远见卓识的领导者,以及抽象和专注于技术的组织。但是,有一个筒仓问题。
这个行业是封闭的。在生态系统中,有些组织开发基础的、必要的技术,如框架、预先训练的模型和库。另一方面,也有专门从事特定领域的组织——他们非常了解特定的行业,最了解该行业面临的潜在问题。但是这些组织通常不会彼此紧密合作。他们建立相互独立的技术。
在这些组织中,有些人工智能领导者要么过于抽象,要么过于执着于技术。有些领导者只知道如何拼写人工智能,有些领导者懂得这背后的数学原理。他们通常不是同一个人。
为了优化人工智能技术并实现其承诺,需要的是既能抽象又能扎根于技术的领导者,以及彼此密切合作并和谐相处的组织。
但这并不容易。如果是的话,我们早就开始做了,对吗?
有一个态度问题。我们真的重视这些交叉以及技能和组织的相互交织吗?
人工智能所需的最有价值的领导特质
具有讽刺意味的是,在信息时代,由于信息量和每天产生新信息的速度,领导者通常被屏蔽在新信息之外。
仅在 2020 年 7 月 16 日的一天,就有大约 70 篇论文提交给了 arXiv.org,这些论文都与机器学习有关,每篇论文都有 15-50 页的信息。这还不包括其他研究出版商。每天都有大量新的信息和知识产生。
今天,人工智能领导者最必要的领导特质是谦逊。
在这个行业快速变化和每天变化的海洋中,纯粹依靠 20 年来对行业运作方式的智慧是不可能的。人工智能领导者需要愿意学习,并愿意向比他年轻 20 岁或比他低几级的人学习。组织需要扶持更多的后起之秀。
我所追随的最有效的领导者是那些敢于向实习生和直接下属学习的人。
公司通常会聘请新人担任产品经理或项目主管,因为这种情况需要由外向内的视角和充满新想法的知识源泉。组织每天都需要改变事物并快速适应新信息。
人工智能需要民主化
人工智能只对博士研究人员和能够负担得起研究驻地计划的组织开放的日子已经一去不复返了。为了让行业实现人工智能的全部潜力,需要民主化。让技术变得可及,拓展了我们可以用它做什么的可能性和领域。
与其他任何行业相比,人工智能更需要一个大型社区来进行协作,并需要可以在彼此之间共享的数据集、见解和模型,这就是为什么今天大多数行业领导者都开放源代码。这就产生了信任。
不仅数据集和模型需要民主化,知识和诀窍也需要可访问,特别是对最了解现实世界问题的行业专家。
人工智能不是黑盒子,也不是魔法。简单地说,它是一个允许我们从例子中生成指令的构造,而不是依赖程序员来概括一步一步的指令。
一旦越来越多的行业了解这一点,我们就越能更好地理解需要人工智能和不需要人工智能的用例*(是的!有些用例不需要 AI——有时,只需要数据分析和统计)*。行业领导者对这一点理解得越多,我们就能越好地解读人工智能可以增强我们今天现有的解决方案并为未解决的问题创造新的解决方案的可能性,我们就越不会对我们团队中的数据科学家花一整天的工作时间阅读 arXiv 上的论文感到沮丧。
总而言之,人工智能领域的领导者需要思想开放,谦逊,并致力于使人工智能民主化。人工智能需要成为一种可访问的技术,可供每个看到并希望解决问题的人使用。
人工智能在现实世界中的成功实施需要新一代的决策者,他们能够适应不断变化的行业。
这并不是说我们只需要行业中年轻的新人领导者。与已经在这个行业工作了 20 多年的人相比,我有一个极小的智慧数据集!这是一个“是的,而且。”我们需要两位已经获得智慧基础的领导者(毕竟,没有压缩框架可以体验!)以及可能撼动整个行业的新领袖。
改变世界不是一件容易的事,如果我们互相学习,会有更多收获。
作为营销分析实习生,我学到了什么
营销分析/数据科学/实习
从一个实习生的角度来看重要的经验教训
作为一名营销分析实习生,我学到了很多关于营销、数据和分析的知识。随着新冠肺炎导致全国许多公司取消实习,我想分享我学到的东西,以便那些没有机会实习的人仍然可以在这个夏天学到一些东西!如果你还没有看我之前的故事: 一个营销分析实习生的一天 ,一定要看看!
我的实习是独一无二的,因为我学到了营销技能、技术技能和商业技能。我想强调这些,特别是在这篇文章的技术和业务技能方面,因为我觉得我从这些领域学到的东西帮助我成为了一名分析师、营销人员和数据科学家。让我们开始吧!
免责声明:我不是全职营销分析专家,我只是转述我暑期实习的经验。这并不意味着教你所有营销分析中使用的技巧和工具,因为我还在学习。如需了解此信息,请查看 走向数据科学 。如果你对我在这个夏天学到的东西以及它对你的帮助感兴趣,请继续阅读!
技术
Python: 刚开始实习的时候,对 Python 的了解非常少。坦率地说,我害怕开始学习它,因为我刚刚花了太多时间学习 SQL,不想再用另一种语言从头开始。从技术角度来看,学习 Python 是我从这次实习中学到的最好的东西之一。无论你是从事数据科学、商业智能还是营销分析,我都强烈建议你学习一些基本的 python。以下是我实习期间使用的几个 Python 应用程序:
- 快速清理小型项目的数据,而不是将其放在 SQL 数据库中。
- 对大型项目运行高级分析,如调查或电子邮件性能报告。
- 分裂。csv 文件转换成可以导入 Access 数据库的小文件(次要的应用程序,但是在安全性非常严格的公司中可以节省大量时间)。
我实习的时候已经有了一些 SQL 的经验。然而,我没有意识到这有多大的帮助。作为一名实习生或入门级营销分析师,你希望尽一切努力为营销部门增加价值,并且要及时。我会得到 250 万行的 Excel 文件,拥有导入这些文件并快速清理数据的 SQL 知识为我节省了大量时间!以下是我实习时使用的几个 SQL 应用程序:
- 清理大约有 250 万行 75 列的电子邮件性能数据。
- 能够理解终身市场分析师在做什么(因为他大量使用 SQL!).
- 组织调查数据,以便未来的实习生和市场分析师可以访问。
Power BI 和 Tableau: 总体而言,数据可视化在我今年夏天所做的工作中非常重要。我会完成一个项目,认为我完成了,然后意识到,“等等,我不能给出一个统计或度量的表格”。虽然我在实习时有 Tableau 经验,但实际上我没有 Tableau 执照,所以我最终学会了如何使用 Power BI!以下是 Power BI 的几个应用,但可以应用于任何可视化工具:
- 将电子邮件绩效报告编制成直观的图表,让观众能够理解。
- 为调查结果创建一个仪表板,以便我可以轻松理解并与团队成员交流。
- 我做的几乎所有项目(是的,数据可视化非常重要!).
商业技能
沟通:如果你曾经向数据科学家、营销分析师或商业智能分析师请教一项需要学习的好技能,大多数人总是说:“沟通”。现在我一直觉得我是一个很好的沟通者。作为一名市场营销出身的学生,我每个学期都会在我的课程中做多次陈述。我从来没有意识到的是书面交流和口头交流一样重要。这里有几个书面交流很重要的场景:
关于书面沟通的一个小提示:在新冠肺炎的这段时间里,许多雇主更加重视书面沟通,我强烈建议你在从事其他项目和技术工作时,也要努力提高这一技能!
- 解释为什么电子邮件翻译不工作,因为它没有使用 UTF-8 编码。
- 校对一个数据可视化,并尝试解释没有一个功能可用于功率 BI 中所请求的更改。
- 与营销分析师一起解决 Python 中的一个 bug(这在新冠肺炎期间尤其困难,因为一切都是虚拟的)。
“我从未意识到书面交流和口头交流同样重要.”
**建立关系:**能够与你单位的其他人建立关系将大有裨益。如果你真诚地关心团队中的其他人,并真正认同团队精神,你的团队成员会更愿意帮助你,教你一些你以前不知道的东西。这是我实习时的几个例子:
- 我与营销分析师建立了关系,并帮助他,作为回报,他帮助我学习 Python。
- 我与营销自动化经理(我的主管/导师)建立了关系,作为回报,她让我从事更多的分析项目,并让我将它们与电子邮件营销结合起来。
- 我和其他实习生建立了关系,作为回报,我可以和另外 14 个朋友一起离开实习岗位(是的,这很重要!).
结束语
虽然我在实习期间学到了许多技术和商业方面的新技能,但这里有五个我学到的非常重要的教训,它们不属于任何一个类别,但对营销分析师和其他年轻的数据追求者来说很重要:
- **适应性强:**把最重要的技能传承下来。如果你工作的组织没有你习惯使用的工具,你需要适应并快速学习新的工具,这样你才能为组织提供价值。
- **对人友好:**虽然这对你的事业有帮助,但对人友好只会让你的工作环境更愉快!办公室里坐在我旁边的每个人都互相喜欢,对彼此都很好,这让我需要休息的时候变得更加有趣!
- **从其他角色中学习:**当我在市场分析/自动化实习时,我渴望也能在商业智能或数据科学领域工作。我也有机会与担任这些角色的人一起工作,这帮助我了解了这些角色,也帮助我了解了如何与担任这些角色的人一起工作,以及如何说他们的语言。
- **提问:**尽可能多的提问。这既适用于向他人学习,也适用于数据角色。营销策略师(他喜欢数据)给我的最好的建议之一是:“任何伟大的发现都是从一个简单的问题开始的。总是问问题”。
- 永远学习:这可能是第二重要的技能,与适应能力成对出现。如果您的组织需要您学习 R,因为这是营销分析团队的其他成员所使用的,即使您的背景是 Python,那么能够快速学习 R 将使您作为分析师脱颖而出,并在您的角色中更加高效。同样,你学得越多,你就越擅长学习。始终给自己灌输知识,因为归根结底,无论你是哪种类型的分析师或数据科学家,这都是我们提供价值的方式。我们通过我们的分析、数据可视化和交流来学习东西,并帮助他人学习东西。
“任何伟大的发现都始于一个简单的问题。总是问问题”。
如果这有帮助,请让我知道!我真的很喜欢写关于数据的文章,并且很乐意写更多关于数据作为一门手艺,如何在实习中脱颖而出的文章,并且分享更多我从技术角度学到的东西!大家注意安全,祝你们有美好的一天!
要联系我或接收更多内容,请在 Twitter 上关注我@BMNAnalytics!
我在 NLP 硕士期间学到了什么
在快节奏的研究领域获得学位的关键经验
迈克尔·克里斯滕森在 Unsplash 上的照片
⚠️读了我在⚠️博客中的原帖
关注我的推特了解更多✨的故事
我是在 Github 毕业活动的推动下想到写这篇文章的。
我于 2018 年在 LMU 慕尼黑开始了我的 NLP 硕士学位。我对机器学习感兴趣大约有一年了,已经完成了 Coursera 的深度学习专业化。我想更深入地学习自然语言处理,并成为这方面的专家。这就是硕士学位应该让你成为的人,对吗?在花了两年时间接受关于 it 的讲座和做编程作业后,我应该能够为社区做出贡献。至少我是这么认为的。
这个学位有两种背景:计算机科学和语言学。两者都有一些入门课程,这意味着你不需要其中的一半。因为学生们有着如此多样的背景,所以门槛很低。
超越讲座
我意识到如果我只是去上课和做作业,我不会学到很多东西。所以首先我找了更高级的课程。我参加了我能找到的最先进的计算机科学课程。这些要求很高,但仍有很大的发展空间。
你可能不会有太多的时间来做学生工作或作业,但如果这种情况适用于你,我强烈鼓励你以任何可能的方式使用大学提供的资源。作为嘉宾参加其他讲座,阅读课程文献,在课堂上提问并尝试与教授或讲师谈论该话题,他们会告诉你他们在课堂上没有提到的事情。
看报纸
在 NLP 中,这个领域在过去几年中发展得非常快。我们得到的课程材料试图跟上,但他们没有跟上。在作业中使用 Python 是最近的事,上学期几乎没有一门深度学习课程。我意识到如果我真的想了解 NLP 中发生的事情,我必须自己去了解。我开始看报纸。
我拿到了一篇看似介绍性的论文,我不太懂,所以我去找了这篇论文所基于的论文。我也不理解这些,所以我继续回去积累论文,直到我有了一篇我能理解的 2003 年的论文,还有 15 篇在我的队列中。
我慢慢地开始在时间中前进,理解 NLP 的基础知识,以一种我在讲课时不会做的方式。我利用这个机会用我的笔记做了一个 Github 回购,从那以后一直稳步增长。
一开始理解论文是有挑战性的,但是随着练习,你会变得更好,可以更好地理解它们所表达的内容。在某种程度上,我认为阅读这么多论文这一艰巨而漫长的任务是我在 NLP 中真正的主人。
如果可以的话,和教授一起做编程项目
在我的许多讲座中,编程方面是可选的,这意味着大多数人将他们的精力用在其他要求严格的强制性任务上。但我在这里看到了机会。我可以做一个项目,得到教授的更多关注,因为他们不会忙于其他学生,并且有更多的个人指导。
我就是这么做的。我的教授/导师是一名语言学博士,后来成为了 NLP 研究员,他对 NLP 提出了一个非常新鲜的观点,因为其他大多数教授都是计算机科学家,他们的想法来自另一方。
这位教授没有在编码方面挑战我,但她向我提出了关于我的结果、它们的可解释性、意义和影响的困难问题,并迫使我从一个与我习惯的角度完全不同的角度进行思考。
很多时候,我会花几个小时编码,最终得到一些结果,我会想“好了,工作完成了”。但是当我给她看我的作品时,她会问我一千个问题,我不得不回去思考。不要考虑如何编码这个或那个,而是考虑结果告诉我什么。这是令人沮丧和奇妙的,我学到了很多。
不幸的是学期结束了,我面临着更多的工作量,但有这么多的材料要处理,我想回去。这是我做的项目:探索语境化嵌入之间的语义相似性。
拥有你的硕士论文
当我不得不开始思考硕士论文时,我已经阅读了许多论文,知道该领域目前正在做什么,并且我有一些可以在论文期间工作的研究想法的草图。我寻找愿意指导学生写论文的平易近人的教授,我拜访了一些教授,看看他们在做什么项目。
我惊讶地看到,他们对我的倡议感到高兴,我花时间阅读论文,甚至有自己的研究想法。他们告诉我,大多数学生只是选择任何可用的项目,按照教授的指示,只是提出一些东西。
那时我意识到一点点主动性可以让你在人群中脱颖而出。最后,我选择了我的主管建议的一个项目,但我确保它是我的。我试图真正深入地理解它,阅读与它相关的论文,这时候它感觉不像是很多工作。
一开始我不明白我在做什么,我只是按照他告诉我的去做。但是慢慢的,通过提问,意识到自己的知识差距,我开始拥有了论文。我开始在会议上更多地发言,提出想法,并控制自己的论文。
截至 2020 年 5 月,我仍在为此努力。我最近成功地复制了 4 月份的一篇论文,甚至将其结果提高了 2%。我不知道我的论文会有什么结果,也不知道我们是否会设法发表论文,但我希望我能在这方面工作更长时间。我学到了很多。
结论
最终,无论你选择什么学位,你都只会学到你想学的东西。所以我鼓励你投入工作,尽力而为。你旁边会有很多人毕业,做好工作才能脱颖而出。
作为人工智能初创公司的联合创始人兼首席技术官,我学到了什么
由 Unsplash
全栈 AI/ML
你如何在现实世界中应用你的数据科学,并构建一个如此规模的人工智能产品?
他的文章在我的草稿文件夹里已经有一段时间了,但我相信现在是完成它的时候了。作为一个渴望开发真实世界人工智能产品的数据驱动型个人,我从我最近的两次创业中获得了宝贵的见解,并希望与你分享。
人们经常忽略的一点是,在人工智能产品的开发中,机器学习模型只是技术栈的一小部分。虽然技术熟练是科技联合创始人的一个重要属性,但它只是成功企业所需贡献的一小部分。
许多创始人认为,任何有能力编写代码或创建 MVP 的人都是初创公司 CTO 的理想人选。对于人工智能初创公司来说尤其如此,拥有一名拥有人工智能专业知识的首席技术官可以转化为更有效的知识产权管理协议,并能够节省在早期阶段寻找人工智能专家的时间和资源,这可能是昂贵的。
选择正确的技术
在着手开发创新的人工智能算法之前,每个技术联合创始人都会遇到的最初挑战是技术选择过程。这包括就要利用的基础设施、框架和技术堆栈做出决策。
基础设施
建立基础设施是将你的产品推向市场的关键一步。对于那些具有 AI/ML 或数据科学背景并且工程经验有限的人来说,这可能是一个未知的领域。有几种选择,包括传统的内部服务或利用云平台即服务( PaaS )或基础设施即服务( IaaS )提供商。
利用云服务的好处是巨大的,包括:
- 受管服务带有服务水平协议(SLA),最大限度地减少开发团队的工作量。
- 随用随付定价,消除了在服务器上的大量前期资本投资,释放了营销和招聘工作的预算。(需要注意的是,云服务可能并不总是比内部成本便宜。)
- 可扩展性&灵活性,大多数云提供商都提供随时扩展到任何规模的能力。
- 创业信贷和其他福利,如创业信贷(符合条件的创业公司最高可获得 10 万美元)、接触风险投资公司和合作伙伴以及免费的技术支持和咨询服务。—一些云提供商提供创业信贷(对符合条件的创业公司最高可达 10 万美元)、接触风投/合作伙伴以及免费的技术支持和咨询。
云服务市场的三大玩家是亚马逊网络服务(AWS)、谷歌云平台(GCP)和微软 Azure。基于个人经验,作者使用了 AWS 和 GCP,并将在下面的讨论中使用它们作为例子。
虽然不同云提供商提供的基础设施大体相似,但与 GCP 相比,AWS 更成熟,在某些行业被广泛采用。我多次被问到,为什么我们选择 GCP 作为主要的云服务提供商。
伊万·刘
- 可预编译的服务器 —GCP 提供了一种被称为可抢占实例的计算资源,与标准实例相比,可节省 60–80%的成本。尽管这些资源不附带 GCP 的正常 SLA,但保证每台服务器最多运行 24 小时。鉴于我们平台的性质,其核心组件是人工智能培训和产品管道,需要大量使用服务器, 我们选择了可抢占的资源,以平衡成本效益和足够的计算资源。
- 集成分析 —我们的平台严重依赖 Google Analytics、Firebase 和其他事件收集工具。GCP 的 Bigquery 作为一个托管数据仓库解决方案,提供了与这些工具的无缝集成,使分析仪表板上的数据可视化变得容易。
- 其他服务 —目前,GCP 提供稳定的 Kubernetes 解决方案(GKE)和人工智能服务,这两项服务都被我们的实时系统所利用。
然而,每一个决定都需要权衡:
- 数据库 —虽然 GCP 提供了一系列数据库,但它目前不支持 MariaDB,并且缺乏用于 CloudSQL 读取副本的集成负载平衡器。
- 人才的可用性 —与 AWS 相比,在 GCP 寻找有技能的工程师可能更具挑战性。
值得注意的是,每个初创企业都是独特的,技术选择应该基于特定的业务主张和用例。技术联合创始人必须做出明智的决定,为他们的业务选择合适的技术。
体系结构
一旦基础设施就位,下一个关键步骤就是平台架构的设计。考虑诸如安全性、可伸缩性、可靠性等各种高级方面是至关重要的。从我在两家创业公司的经历中,我学到了在架构中保持简单的重要性。
在设计架构时,只包含满足平台需求所必需的组件是非常重要的。
如果 MySQL + VMs 可以满足平台需求,就不要在设计中添加 Redis 或 Memcached 之类的缓存层。如果数据库读取副本可以解决并发瓶颈,那么就不要设计 MQ。
过度复杂的架构需要大量的开发工作,初创公司必须不断迭代和发展他们的产品,使设计中任何冗余和过时的组件都成为问题。人们很容易被最新、最大的技术进步所吸引,但作为一家初创公司,采取务实的方法并只实施业务所需的东西至关重要。
目标应该是以简单明了的方式实现预期的结果,而不是试图模仿大公司复杂的解决方案。
不要羡慕谷歌正在做的很酷的事情,实现一些不太酷的事情,直到你成为一个谷歌。
伊万·刘
发展
作为一家初创公司的技术联合创始人,必须全面了解技术的各个方面,包括人工智能模型和 iOS 应用。AI/ML 专家的角色不仅仅局限于简单的培训模型,因为它需要亲自参与整个代码库,尤其是在与离岸团队合作时。
为了确保初创公司技术的成功,消除代码库中的任何盲点至关重要,这些盲点可能会在未来导致灾难性的后果。
为了实现这一目标,这位技术联合创始人需要:
- 准备好学习任何语言——尽管你可能不直接负责日常开发,但对跨多个平台的编码技能的深刻理解是至关重要的。例如,在没有 iOS 开发人员的情况下,首席技术官必须有能力排除故障并发布新版本的应用程序。在 IT 预算削减或海外团队流失时,确保产品对第三方开发团队的依赖性最小以保持无缝运营至关重要。
- 尽早建立开发流程 —这包括发布流程、持续集成/持续交付管道和其他关键元素的实现。尽管这些过程不一定是完美的,或者遵守严格的工程最佳实践,但是将它们放置在适当的位置以避免混乱并确保最佳的团队生产力是很重要的。
- 不要仅仅依靠测试人员来保证质量——虽然测试是开发过程的一个重要组成部分,但是测试人员在一个冲刺阶段或者在一个版本发布之前完全覆盖一个特性的每一个方面可能是不可行的。考虑到测试需要额外的时间,可能会有这样的情况,工程团队在一个紧张的期限内构建不完整的特性,期望测试人员识别并解决任何问题。为了避免这种情况,除了依靠测试之外,建议鼓励工程师进行自检。这种方法有助于简化开发过程,避免交付前不必要的来回奔波。
- 采用灵活的语言选择方法——选择您和您的团队最熟悉、最舒适的语言或工具。避免只受受欢迎程度的影响。
由 xkcd
- 技术债务并不是不可接受的——认识到承担技术债务是创业旅程的自然组成部分是很重要的。重点应该是快速构建一个功能性产品并测试业务假设,为未来的融资和扩展工作做准备。关键是要保持一种心态,即一些技术债务可以在下一轮融资获得担保时得到解决。
组
作为一名领导者,有效地建立和管理团队至关重要。一个团队的成功不仅依赖于熟练的工程师,还依赖于定义良好的工作流程、开发过程、明确的目标、有效的领导和激励性的激励结构。忽视这些因素会导致混乱,最终导致失败。
由 ZIA
作为一名技术领导者,我学到的第一课是,拥有足够的开发人员比拥有过多的开发人员更好。
需求每小时每天都在出现,我需要更多的开发人员来完成任务,这样我们才能交付更多。
上述信念可能会导致一些挑战,包括:
- IT 预算的大幅增加
- 在团队管理中投入大量时间和精力
- 最有可能的是团队速度和生产力的边际改进
以下是解决上述问题的一些经验:
- 保持团队内部的简单性 —避免不必要的技术角色使团队结构复杂化,这些技术角色在项目的当前阶段可能并不需要。例如,在 MVP 的开发过程中,像站点可靠性工程师或渗透测试员这样的职位可能是不必要的。类似地,在生成足够的用户数据之前,可能不需要为数据分析师建立一个角色来支持数据驱动的上市策略。
- 一个负责任的开发人员总是比一个有经验的开发人员更好——虽然经验当然是一笔宝贵的财富,但它不一定等同于强烈的职业道德和对分配任务的主人翁意识。另一方面,一个缺乏经验但高度负责任的开发人员不仅能为团队做出积极的贡献,还能与团队一起成长和发展。重要的是要避免雇用那些表现出逃避责任和义务倾向的开发人员,因为这样的行为会破坏利益相关者的信任,并导致有害的工作环境。
- 毫不犹豫地更换不合适的团队成员——保持一个合适且高效的团队构成对于确保创业公司的成功至关重要。替换那些表现不尽如人意或不符合团队文化、动机和责任的团队成员势在必行。如果做不到这一点,可能会导致团队士气低落、生产力下降和错过最后期限。在团队成员表现不佳的情况下,最好及时解决问题,以避免对团队的进展产生长期的负面影响。团队的成功取决于每个成员的集体努力和承诺,确保每个人都与公司的目标和价值观保持一致是至关重要的。
- 找到你的得力助手——作为一名首席执行官,拥有一个值得信赖的得力助手对创业公司的成功至关重要。在你的团队中找到一个可以作为你的“左臂”或导师的人是很重要的。拥有这个人可以提供额外的支持和帮助,以确保组织的有效运作。
- 与你的团队进行技术交流 —对于技术联合创始人来说,与他们的开发团队进行有效的交流是非常重要的。这需要清晰简洁地交付技术指令,将复杂的业务需求分解成可操作的任务。展示技术专长可以赢得团队的尊重,并提高整体生产力。然而,技术联合创始人还必须能够以投资者和其他非技术利益相关者可以理解的方式阐明业务需求。
- 学会为你的团队过滤噪音—培养选择性过滤外部输入的能力至关重要,虽然这些输入可能看起来很有创意和令人兴奋,但它们很快就会成为分散注意力的来源,阻碍团队专注于核心任务。在这些输入和开发计划之间实现一个过滤机制,可以确保与产品路线图的一致性和一致性,减少不确定性和分歧。这将为团队营造一个高效且专注的工作环境。
- 更换整个开发团队时要小心——更换整个团队会导致项目交付的重大中断,导致长时间的无绩效,通常以周或更长时间来衡量。建议尽可能避免这种激烈的行动,而是寻求替代解决方案,帮助解决手头的问题,同时尽量减少对项目进度的影响。
- 关心、欣赏和尊重你的团队成员——特别是在第一个团队的情况下,他们可能不具备最先进的技术技能,但他们在产品的成长和发展中起着至关重要的作用。他们拥有对企业成功至关重要的宝贵的业务和技术洞察力。失去一名团队成员会对组织产生重大影响,因此,营造一个积极和支持性的工作环境以留住有价值的团队成员至关重要。
- 人脉——当务之急是积极参与人脉,以发现并吸引创业行业中稀缺的有才华的开发人员。建立和扩大职业关系可以提供宝贵的机会,在未来适当的时候接触潜在的候选人。即使开发人员不能立即加入团队,他们仍然可以通过这些关系提供有价值的见解和建议。
产品
作为首席技术官,积极参与产品开发是确保产品成功开发和交付的关键。你的角色包括决定最有效地利用技术来制造产品,并确保其技术可行性。这方面的主要考虑因素包括:
精益创业
- 专注于你想要为产品测试的关键假设 —初创公司的资源有限,通过专注于关键目标和测试假设来避免分散这些资源至关重要。随着产品在市场中获得牵引力,可能会有新的想法和建议涌入,但提供指导并做出符合团队能力和产品路线图的明智决策是 CTO 的责任。通过保持对团队能力和产品战略的清晰认识,CTO 可以有效地优先考虑和分配资源,以推动成功的产品开发。
- 在提交特性请求时要小心——提交每个请求会导致开发团队负担过重,并对他们及时交付可靠产品的能力产生负面影响。技术联合创始人应该充当把关人,与开发和产品团队密切合作,评估、优先考虑和管理利益相关者的期望,以确保团队专注于与整体业务目标和产品路线图相一致的最重要和最有影响力的任务。考虑非技术性的解决方案并随着时间的推移不断评估请求的相关性和重要性也很重要。
- 专利保护— 专利作为一种商业保护形式,有效地增加了竞争者的进入壁垒。此外,专利在风险投资家对初创企业的估值中扮演着重要角色。为了最大化专利的好处,建议在业务发展的早期就开始专利程序。虽然最终的专利不需要立即申请,但跟踪进展和建立时间表是必不可少的。与其只专注于为人工智能算法申请专利,不如专注于整个解决方案,这涉及到技术、工程努力、端到端管道、商业主张和模型等各个方面。专利应该足够通用,以保护大多数企业,但又足够具体,以满足专利的标准。
摘要
作为 CTO,理解技术、团队和产品之间的相互依赖是很重要的。这些元素中的每一个都在推动创业成功的过程中扮演着至关重要的角色。为了提高效率,保持热情并致力于通过工作对社会产生积极影响是非常重要的。
技术的关键方面是保持精简和简单,允许快速迭代和测试产品假设。
就团队管理而言,重要的是优先考虑团队成员的福祉,建立网络并扩大你的职业关系以识别潜在的人才,并过滤掉噪音以保持团队关注的一致环境。
就产品开发而言,积极参与产品团队并专注于测试关键假设至关重要。作为看门人,CTO 必须管理利益相关者的期望,并确保团队正在做与产品路线图和业务目标一致的正确的事情。申请专利的过程也应尽早启动,重点关注具体到足以申请专利的通用解决方案。
总的来说,关键是不断平衡和整合技术、团队和产品,以推动创业公司的成功。
关于我
作为一名终身学习者和技术专家,我专攻软件工程、机器学习和云工程领域。
我作为工程和产品领导者拥有丰富的经验,在定义机器学习战略、建立全栈数据科学和工程团队以及大规模交付端到端机器学习解决方案方面有着良好的记录。
我从艾瑞克·希格尔学到了什么
对他的书《预测分析》的诚实评论
詹·西奥多在 Unsplash 上的照片
我读完了艾瑞克·希格尔的预测分析。我不得不说这是一个可怕的阅读。我如何定义一本很棒的书?一本永久改变你态度的书。你一定不是拿起书之前的那个你了。它影响你生活的一个或多个方面:个人、财务、社会、浪漫、家庭或职业。还有,我读一本书,只有当我能从中学到东西的时候。我不只是为了学点东西才看的。如果一本书必须放在我的桌子上,它必须在我生活中的某个领域立即可用。是的,这本书不仅对我对数据科学的专业理解产生了巨大的影响,还帮助我发现了我的兴趣。从这本书里可以学到两个主要的东西。第一个是来自 的五种效果 :
- 预测效果
- 数据效应
- 诱导效应
- 整体效应
- 说服效果
埃里克没有透露书中的观点,而是将他在预测分析方面的许多经验隐藏在这些效应中。预测效果证明了在商业中,准确度较低的预测比猜测要好。数据效应表示数据总有故事可讲,总有一些有价值的东西可以从中学习。诱导效应证明了驱动机器学习的是艺术。总体效应解释了协同的概念在预测中的作用。说服效果将营销技巧、商业意识和 A/B 测试联系起来。你可能认为这很简单,你已经知道了,你可能是对的,除非你有十年的预测分析经验。你还可以从书中学到一些新的东西。每种效果都用现实生活中的商业案例来解释。这本书充满了从应用这些效果中获得的实际商业结果。最鲜明的对比是,他是一所大学的教授,但他的写作风格是实用的,非学术性的,以商业结果为导向的。
来自艾瑞克·希格尔的书
我从书中学到的第二件事是对学科本身的理解。我参加了几门数据科学课程,并使用 Pandas、NumPy 和 scikit-learn 编写了一些短程序。我已经建立了一些机器学习模型,我认为我知道一些东西。我错了。这本书教会了我机器学习在现实生活中的用处。编写代码来构建、测试和评估模型不是理解机器学习。这本书详细解释了什么是机器学习。没有一行代码,对决策树有更详细的解释。这本身就表明了埃里克对机器学习建模的理解。然后是对重要主题的大量报道,如相关性并不意味着因果关系、模型如何过度学习,以及为什么训练-测试数据分割存在。当然,所有这些都是真实的商业案例。看似业务风险的东西,Eric 使用预测分析将其转化为机会。这本书里没有一页是他用预测分析来解决商业问题的。
读完这本书后,我的职业兴趣永久地改变了。现在,我很好奇,也非常有兴趣了解和发现更多关于机器学习如何揭露金融欺诈,机器学习程序如何应用于企业的营销或广告问题,以及如何用于执法的信息。所有这些都是我在读这本书之前最不感兴趣的事情。我跳过了这本书的一些部分,但这仍然是一次令人费解的经历。
写我的第一篇学术文章时我学到了什么
以及在做之前我应该知道的
一篇学术论文?真的吗?
我最近一直在研究一个基于卷积神经网络的语音转换系统:虽然整个系统背后的主要思想并不太复杂,但我得到了相当令人信服的结果。
拍了拍自己的肩膀后,我准备开始一个完全不同的项目,把我的旧项目放在我忙碌的桌面上的一个随机文件夹里。
然后,突然,一道闪电从天而降击中了:
一篇论文!一篇学术论文!
这确实是一个诱人的想法,如果被征服,将会带来巨大的满足感。尤其是在我这种情况下。
我是一名本科生,学习一门与机器学习完全不相关,甚至与计算机科学不相关的学科。我是在激情和唯一的激情的引导下来学习一些机器学习基础知识的,没有任何关于整个领域的学术观点。我对学术界的真实运作一无所知。
我究竟为什么要试图写一篇真实的学术文章呢?我有资格考虑这个问题吗?
我的想法是说服我放弃整个“纸”的想法,让它离我越来越远,让它看起来遥不可及,不可能。
不可能。
不可能?
也许不是。
在和一些人讨论了我内心的困境后,我意识到我收到的建议总是同一个。
你可以做到的。
这个答案并没有真正消除我在这个问题上的所有犹豫,但它确实使整个局势变得更容易理解,脚踏实地,而不是一个遥不可及的任务。
我会失去什么?
没什么。
这一切可能会以一场大而美的混乱而告终,这是对学术文献的沉重一击。然而,在我内心深处,长期以来,学术研究者一直是一个迷人的人物。为了真正感受到一个研究人员的工作和经历,我需要,我想,尝试一下。
在日复一日的艰苦工作(有些人甚至称之为极度紧张的 T2 工作)之后,我拿到了我的论文。这是无论如何都不完美的,但我为我的小创造感到无比自豪。
只有在完成所有工作后,我才满怀信心地意识到我做出了正确的选择。我在整个旅程中学到了很多东西,在坐了几个月之后,我准备与你分享我在作为一个没有经验的学生作为唯一作者写论文时所学到的东西。
1.最大的障碍是认为自己做不到
这一课可能听起来很俗气,但正如我之前解释的,如果你没有经历过这个世界,你很容易感到气馁。
你可能会告诉自己,你不具备必要的知识和技能,无法在一个看起来如此遥不可及和成熟的领域产生影响。而且也许真的是这样。
但是一步一步,你会到达那里的。如果你真的不知道你的工作是否值得写论文,向教授和朋友寻求帮助,他们可能会给你一些非常有用的建议,带我们进入下一课…
2.不要害怕寻求帮助,但是…
我曾经认为我可以靠自己的去做和学习一切。那一只援助之手只会分散我的注意力让我慢下来。
但是当我有机会遇到合适的人时,这种思考方式就消失了。
如果你觉得自己处于最佳状态,这可能意味着你还没有遇到合适的人。
寻求 T42 的帮助通常是实现目标最有效的方式,如果不是唯一可能的方式的话。这也可以打开新的有趣的机会,因为你现在交谈的人对你知道什么和不知道什么有想法,因此可能会将你重新引导到新的、更有趣的项目和挑战。
然而,我会建议你不要咬援助之手:永远试着尊重你请求帮助的人,如果他们不总是对你有帮助,把你自己放在他们的处境中,试着理解为什么。
对同龄人表现出极大的尊重是建立有意义和富有成果的关系的有力途径:试着沿着这条路走下去,不要表现出傲慢和支配的迹象,迟早有一天,你会承认保持这种心态的结果。
3.不要着急
现在你有了自己的动力,你可以依靠某种外部指导,是时候让自己投入工作了。
对你的努力感到兴奋是一件好事,因为这会让你花在研究和写作上的时间更加愉快。然而,过度兴奋会让你真的想尽快完成你的整个项目,这可能是让错误和概念差异溜进你的论文的有效方法。
我强烈建议首先准备一份详细的待办事项清单,列出你旅途中所有必要的步骤;做完这些,你应该慢慢来,一步一步来,不要长时间工作,也不要经常感到疲劳和紧张。在这种平静放松的状态下,你的工作效率和质量只能提高。
4.研究一下在你之前谁做过这件事
学术文献中的引用问题在整个学术界讨论得非常深入。
意识到谁在你之前是非常重要的。虽然大多数学者在开始他们的研究时,对他们的主题的历史有着极其广泛的了解,但就一个可能是新的而不是很好理解的主题提出一个想法并不罕见:每当研究人员将他们感兴趣的主要领域的技术应用到另一个不同的领域时,这种情况就会发生。
这种现象在机器学习中相当频繁,因为它的许多核心概念被持续应用于每一个可以想象的领域(医学、工程、农业、生物学……)。
无论如何,你所依赖的以前的技术应该总是被研究。除了将功劳给有价值的研究人员,你将对你正在研究的任何东西建立更深的理解,谁知道呢,也许你会发现你的新最先进的技术实际上在 50 年前就已经为人所知了(不幸的是,这比你想象的更经常发生)。
换句话说,试着把写论文的**“以前的工作”部分作为整个研究过程的一部分,而不仅仅是你做的最后一件事,因为“你必须做”。我几乎可以保证,这种更深刻的理解将会影响并增强你看待自己研究的方式。**
5.花时间在抽象上
我毫不怀疑你已经知道摘要是你在大多数时候被评判的依据。然而,我真的想坚持它的重要性。
阅读你论文摘要的人中,只有一定比例的人会继续阅读其余部分。你的主要目标不应该在于最大化这个百分比,相反你应该专注于点燃你认为可能从你的工作中受益的类人的兴趣和好奇心**。**
虽然最近在学术文章的标题和摘要中使用加粗和笼统的说法非常普遍,但这通常会导致一种“点击诱饵”的形式,这的确吸引了许多普遍的关注,但最终论文中真正提出的东西并没有在该领域留下任何真正的凹痕**。**
另一方面,拥有一份精确的摘要并且真实地解释了你的意图,可以真正帮助抓住对你的提议真正感兴趣的读者,并且也许有一天会建立在你的工作之上。****
这就是为什么撰写摘要极其重要并且需要大量时间和精力的原因,因为在非常有限的几行中浓缩整个月的研究,而没有落入“clickbait”陷阱的风险**,是不容易的任务。**
6.如果不需要,就不要含糊其辞
我不止一次从这个领域的人那里听说过,你的论文中包含的公式越多,在会议中被接受的机会就越大。我不知道这个的说法是否真的成立,但我知道的是我有多不喜欢学术文章中不必要的公式**。**
没错,公式可能非常诱人:它们似乎给你的作品打上了真实性的印记,让你,作为作者,显得更聪明、更博学。
然而,正如你可能已经理解的那样,我相信这只是另一个闪亮的陷阱**,在这个陷阱里很容易掉进去。我更倾向于认为一种更加精简、直接而清晰的方法来解释你的研究只会有助于你的工作在这个领域更加成功。**
在记住这一点的同时,也要记住很长的公式通常需要才能达到你的学习目的,在这些情况下,把它们包括进来是至关重要的,最理想的是旁边有一个详尽的解释说明它们是如何精确工作的。****
只是尽量不要让被带走,因为有时候一个漂亮的示意图比两行希腊符号更容易理解。
7.示意图比文本更重要
当阅读论文时,我有时会非常高兴看到清晰和精心设计的图表。它们真正帮助读者抓住要点了解提议的系统是如何工作的,或者,总的来说,这一特定研究背后的直觉思维是什么。
另一方面,当在学术文章中我只能找到成堆成堆的白底黑字的文字,也许还有几个长长的公式,我对所提建议的热情急剧下降,使阅读过程变得缓慢而紧张。
这并不是说没有大,大,丰富多彩的图片的论文就不应该存在,但有时采取一个概念,它本身是很难把握的并把它变成一个清晰的示意图是可能的,并能真正帮助文章的整体清晰**。**
在这种概念表达中使用颜色也是至关重要的:颜色可以用来给你希望用图表解释的概念增加另一层深度**,但是不恰当的或者不合逻辑的使用只会制造更多的混乱,破坏清晰图表的积极效果。**
8.会不会被误用?
终于到了写论文的结论的时候了。
许多研究人员会认为这一段是最容易的一段**,为了尽快到达他们漫长工作的终点,不会在这一特定部分上花费太多的时间 和思想。**
然而,结论的作用是对前面章节中提出的内容进行深刻反思,而不是简单扼要的总结。
这是花一点时间考虑你的研究如何被滥用的最佳时机,一般来说有哪些可能的缺点和弱点:我还会建议把主要的包括在你的摘要中,因为从一开始就真诚地对待你的工作总是会得到赞赏。
在机器学习领域,滥用特定提议系统的主题是广泛讨论的**,通常,伴随着可能被滥用的技术,还会提出抵消相同技术的方法。**
这是解决可能导致危险结果的未探索技术应用的最佳方式,但是如果你的提议只能实现完全不道德的目标,你也许应该重新考虑与世界分享它。
9.你会得到负面评价。干杯吧。
在仔细阅读和检查你的珍贵文章,并询问其他人没有参与的研究过程后,做同样的事情,击掌你自己和休息一段时间让你的大脑在沉重的负荷后放松。
你做到了!
然而不幸的是,如果你想在某个地方提交你的论文,还有很多工作要做**。**
我应该坚持这样一个事实,即不向会议或期刊提交一篇文章,而只是在像 Arxiv 这样的平台上发表,特别是如果你是独立工作的话,是完全没问题的**,不应该给你带来任何尴尬。******
在提交给会议或期刊的情况下,准备好接受一些负面评论:对于大多数研究人员来说,这可能是一个高度沮丧的时刻,因为在一篇论文上工作了几个月之后,负面评论可能来自一个对感兴趣的领域不太了解的人,可能非常有压力。
无论发生什么事情,试着去理解评论者的观点:
在每一次复习中,即使是最令人气愤的复习,也应该有值得学习的地方。
说了这么多,我真的想感谢的阅读和的宝贵关注。
如果你即将写一篇学术文章,或者你目前正在写一篇,我祝你好运!我希望对你来说这将是一次愉快的旅程,就像我一样。
阅读我的博客文章,解释我的第一篇关于 声音转换和音乐风格转换的论文 :
****** [## 使用 GANs 进行语音翻译和音频风格转换
如何使用 Spectrograms 和 GANs 将爵士乐转换为古典音乐
towardsdatascience.com](/voice-translation-and-audio-style-transfer-with-gans-b63d58f61854)
看我的博文我学到了什么 培训 GANs 一年 :
训练生成性对抗网络很难:让我们把它变得简单一些
towardsdatascience.com](/10-lessons-i-learned-training-generative-adversarial-networks-gans-for-a-year-c9071159628)******
我从 120 多次数据科学演讲中学到了什么
办公时间
帮助驾驭世界和日常技术实践的 6 点,成为更好的数据沟通者
在 Unsplash 上 Anggi Nurjaman 拍摄的照片
回想我在数据科学团队中担任的各种角色,我突然意识到我是少数几个经常被邀请参加演示的人之一。
从一大堆会议邀请,到各种团队频道的幻灯片和我笔记本电脑上无数版本的演示文稿,我意识到在过去的六年里,我已经演示了 18 个项目的 120 多个版本——大约每三周一次演示!通过这一点,我可以有把握地说,我已经耐着性子听完了各种听众不喜欢的演讲。
有人可能会说,在一个数据素养的组织中,这么多的演示对于技术相关的利益相关者来说是不必要的,但在我工作的地方,这样的人少之又少。
吉菲——过来,卡拉莫👏🏽👏🏽👏🏽
我的许多演示文稿准备起来既费时又麻烦,但它们对我成为一名更好的数据科学交流者的努力非常有价值。不管怎样,我感谢我的自省时刻,它让我对自己的内容和沟通技巧充满信心。
迄今为止,在英国《金融时报》能源峰会上,作为主题演讲人并参加能源行业 ML 专题讨论小组一直是一大亮点。虽然我还有很多东西要学,但我现在知道我可以和那些倾听的人展开有趣的对话。
所以,这里有我认为有价值的六点,以及我在考虑展示我的项目时使用的一些资源。
1.创造一个故事
无论你正在陈述的项目是探索性的、生产就绪的解决方案还是研究性的,叙述都是连贯地表达所取得的进展所必需的。虽然有许多方法,但有两个关键要素是必须的。
语境
很多时候,我们的项目落地到我们面前就没有意义了。我们必须从平庸的数据中煞费苦心地构建模型、见解和结果。为了有意义,我们一遍又一遍地剖析和探索部分数据,以在更大的画面中找到的含义。本质上,我们成为了科学家。
对我们的观众来说幸运的是,我们能够在一个更大的画面中框定我们的数据,并成为故事讲述者。我们可以包括历史,类似的趋势和其他人可能采取的方法。我们可以用探索阶段的视觉化来描述潜在的挑战、一线希望和我们的灵感。
无论你是向非常具体的团队还是更大的、多样化的团队进行演示,一个包含更多相关事实和背景的定制演示都是有益的。我倾向于按照相当高层次的叙述来组织我的幻灯片,并在必要时将注意力吸引到详细的幻灯片上。这样做可以让观众专注于挑战和解决方案,同时我也可以帮助他们欣赏我取得的进步。
时间表
坚持清晰有序的时间表(最好是线性的)非常重要,数据科学故事不应该像克里斯托弗·诺兰电影一样。
我经常看到演讲一开始就有一个结果和解决方案。虽然这些很有影响力,但它们也引发了很多“这是什么意思?”时刻,这可能会疏远你的观众。
一个强有力的开始本质上是你的背景和你提供的情境。一个有价值的中间部分将包括对你的方法、发现、见解和必要信息的简明解释,以帮助听众理解所做的事情。在结束时,您应该总结模型结果、潜在的改进、数据的使用和挑战、生产策略以及项目是否继续的更广泛影响。
如果可以的话,留出提问的空间。这让观众有机会“更深入地”了解他们特别感兴趣的内容和任何事情。
2.不要让观众边听边读。
把你自己放在一个利益相关者的位置上,坐在一张 ML 幻灯片上,试图倾听专家的观点,阅读他们在幻灯片上的简介,理解他们的工作对商业领域的价值。这是很多杂耍。
吉菲——是啊,令人困惑…🤷🏽♂️
相反,应该限制每张幻灯片的文字量,尽量减少要点和陈述,以避免填鸭式的文字。你可以采取许多步骤来表达简洁明了的观点,盖伊·川崎 10/20/30 法则很好地阐明了这一点,它为推销提供了一个极好的模板。虽然它不能直接翻译为 ML 演示,但它的大部分内容是适用的。
3.观想很重要。如果你在制作图表,使用正确的视觉工具。
这对我来说可能是最重要的一点,然而,也是最难做到的一点。这些原则可能很容易讨论,但执行起来要困难得多,始终如一。
TL;视觉上的博士-
—带有标尺的图表帮助我们更准确地解释它们,减少我们的感知偏差。
—不要使用图表,因为它们不容易让人理解要点。
—通过调整对比度和亮度来突出重要内容,而不删除不重要的内容,从而为演示挑选或制作一致的调色板。
观想不仅仅是为了美学。事实上,它们有一个更高的目的,即帮助我们的大脑更容易地处理模式识别,因为它们将放大镜对准了更大数据集中已经存在的*。*
1812 年拿破仑的俄罗斯战役——查尔斯·密纳德,维基百科。这免费存在于我的脑海里。
1869 年,法国土木工程师查尔斯·密纳德预见了 1812 年拿破仑的俄国战役。虽然即使现在也很难构建这样的图表,但这是一个非常简单的图表,在一个 2D 图中表达了六个变量!(温度、部队人数、行进距离、行进方向、纬度/经度以及相对于特定日期的位置)。它从字面上讲述了通过数据征服的悲伤故事。
整理您的见解,不仅要展示数据,还要便于阅读。我在演讲中发现的两个基本但又反复出现的主题是:缺乏比较手段和正确使用颜色。
尺子和天平
我觉得有必要用一些背景来解释为什么我们的视觉能力经常失灵。
人类的大脑善于发现相似事物的差异,但前提是它们明显不同于其他事物。如果没有共同的方法来发现多个项目之间的差异,我们很容易误解或低估大型图表(条形图或折线图)中的某些数据点。
这大概是一个琐碎的解释,但是实际差异 vs 感知或主观差异的关系在韦伯定律中陈述。
此外,史蒂文幂定律加剧了我们感知偏差的这种差异,因为每个人都有一个独特的比例系统,这个系统在长度、面积和体积上都是非线性的。
2016 美国 Dem 总统候选人, NBC 新闻 —克林顿台词可以比较,但是桑德斯怎么样?
例如,当任何两个人估计条形图中两个条形之间的差异(即比率)时,他们会得出不同的估计值。虽然这在大多数情况下可能非常小,但在非结构化图形中比较多个条形会产生复合效应。这适用于长度、面积、体积、亮度、声音强度(响度)和重量。
为了解决这个问题,我们可以使用周期标尺(或作为标尺的公共边缘),因为它们提供了图表中最好的比较工具。这对于建立一个基线来比较两个或多个项目是非常宝贵的。
虽然这个修复看起来很琐碎,但是我们经常忘记考虑它。这些错误在堆积图和面积图中最为突出,因为使用标尺要困难得多。因此,我避免使用这些图表,坚持使用更简单的图表。
我花了 15 分钟重新制作了上面图表的右侧(在 Excel 中)。我现在可以分辨出候选人 & 种族之间的差异。没有上面那么干净,但是现在可以研究一下**!**
对比
色彩的运用,尤其是对比的差异,是吸引注意力的关键。我们通常使用颜色来区分多个变量,使用 Python 和 r 制作的图表中使用的各种顺序、发散和定性调色板。
重要的是要问清楚什么是相关的显示,一个变量对所有或多个变量。前者更容易解释,需要很少的颜色变化,因此只用两种对比就能做出有影响力的区分。后者在阐明变量的变化和复杂性,描述多方面的问题和见解方面是理想的。变量越少越好。如果你真的想走得更远,就按照重要性和与观众的相关性对它们进行分组。
在科学上有一个关于我们如何识别模式并解释它们的详细帖子——我强烈推荐它!
4.把它变成你自己的,充满激情。
我们的大多数项目最终会耗尽我们的热情。无论我们花多少时间清理数据和热情地优化,最终所有的利益相关者都关心我们代码的目的和结果。从全局来看,这并不有趣,至少对于那些能够资助进一步工作的非技术观众来说是如此。
Giphy —当有人问我“那又怎样?”,我听到钱德的声音。
我不得不提醒自己把注意力放在相关的事情上,是什么让解决令人沮丧的挑战变得有趣,以及我在这个过程中学到了什么有趣的东西。
我在演示过程中加入了不同的图表以增加参与度,包括生产模型的长期目标,制定策略以获得其他项目的额外收益,甚至花时间寻找组织良好的动画模板。
最糟糕的情况是,你的热情和真正的兴趣会让你的利益相关者和听众为你感到兴奋,你会从经历中学到一些有趣的东西,然后继续前进。在最好的情况下,他们会支持你,传播你的言论,召集合适的人和你一起做出正确的决定。
5.与你的观众互动。
演示开始时的互动可以让你的观众踏实下来,让他们专注于你想要吸引他们注意的东西。如果他们不得不在你起床前听完多个演示文稿,这一点尤其正确!关于这个项目的一个有趣的事实,一个有趣的统计数据,一个“举手表决…”的问题都是与你的观众互动的好方法。
总的来说,你也可以利用这个机会来了解他们所拥有的先验知识水平以及他们所熟悉的复杂程度。
当然,他们可能会撒谎或不参与,但通过与他们互动,观众有机会建立信任,并在向演讲者提问时打破任何尴尬的障碍。
6.帮助观众理解成功标准和模型评估。
如果某人对我们的世界是陌生的,那么用准确度、精确度/召回率和 AUC 等术语来衡量进展可能会让事情变得更加混乱。
具体说明你是如何评估模特的表现的。花时间回顾或向观众提供如何解释结果的悬崖笔记。如果是 AUC,解释为什么你会使用这种方法,结果和它对项目的意义。始终链接到更大的图片和它提供的价值。
如果结果不乐观,或者你认为需要更多的努力来改进,那么就要透明,并证明一种潜在的方法是合理的。如果这是一个死胡同,你已经用尽了所有的方法,同样适用。
FT 数字能源峰会 2019,Flickr —公用事业面板数据。
我们并不总是有时间来做好演示。在工程任务之间,很难找到时间来真正制作幻灯片,创作故事,并进行很好的可视化。努力是值得的!
简单而引人入胜的故事让少数产品所有者和常客对我们的项目更感兴趣。他们努力掌握基本概念。我们的站立会议和冲刺计划会议涉及了更多的抽象思维,能够减轻利益相关者的预算,更好地控制最后期限,并为我们尝试创造空间。
我愿意相信这些是我们为了成为更好的沟通者而逐渐学习和养成的习惯。我也希望我们工作的团队获得更多的赞赏,并投入时间进行沟通。我很幸运有一个思想开放的团队。
感谢您的阅读,如有任何建议,请在下方留言!