TowardsDataScience 博客中文翻译 2021(十七)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

数据科学家应该学好统计学的 3 个理由

原文:https://towardsdatascience.com/3-reasons-why-data-scientists-should-learn-statistics-well-90e80ae6c68f?source=collection_archive---------22-----------------------

不懂数据的我们只能做工具专家

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

杰克·亨特在 Unsplash 上的照片

数据科学是一个跨学科的领域。为了有一个繁荣的职业生涯,数据科学家应该获得一套全面的技能,涵盖该领域的每个组成部分。

其中一个组成部分是统计学。有些人甚至称机器学习为美化了的统计学。我不完全同意这种观点,但机器学习和统计学密切相关。

数据科学的目标是从数据中创造价值。实现这个目标的最初要求是很好地理解数据。统计学可以被认为是理解、解释和评估数据的最有效的工具。

在本文中,我们将讨论数据科学家应该全面理解统计概念的 3 个主要原因。

知道你有什么

一个成功的产品从理解数据开始。我们不能只是将原始数据转储到一个模型中,然后期望它产生有意义的结果。在典型的工作流中,大量的时间花费在理解数据上。

统计学帮助我们描述我们在数量上的度量。我们不需要浏览大量的数据,而是可以使用一些措施来以一种明智的方式解释它。

假设我们有一个篮球运动员的三分球数据。数据包含到篮筐的距离和投篮的结果。仅仅通过查看原始值很难管理这样的数据。

我们可以使用以下信息来简化这些数据:

  • 投篮得分的平均分数
  • 到篮子距离的标准偏差

仅仅通过两个简单的方法,我们就有了一个关于击球和球员表现的信息汇总。我们也可以用这些指标来比较不同玩家的表现。

这些量化指标是描述性统计的一部分,因为它们被用来描述数据。描述性统计不限于平均值和标准差。

平均值、中值和众数提供了数据分布的概况。他们也被称为集中趋势的措施。标准差试图解释单个值的分散程度。

变量的分布(如正态分布、二项式分布)也是描述统计学中非常重要的概念。例如,在正态分布的情况下,我们可以通过均值和标准差来了解大量数据。

超越你所拥有的

统计数据不仅帮助我们了解我们所拥有的,而且引导我们超越它。我们可以通过使用有限范围的数据(即样本)使用统计学来推断关于整个范围(即总体)的有意义的结果。

这部分统计又称为推断统计。它可以扩大我们手头数据的发现范围。这是至关重要的,因为我们通常没有整个范围的数据。

假设你在一家连锁店工作,你的任务是分析和比较两个不同国家的商店的销售模式。整个范围将是商店存在期间的销售数据。然而,收集和处理如此大量的数据是不可管理的,也是负担不起的。

取而代之的是,你从两组中抽取样本。您可以分析样本数据并比较商店。推断统计告诉我们样本结果是否适用于整个范围。

假设检验、p 值、统计显著性和 z 值是推断统计学中使用的一些术语和概念。数据科学家应该对这些概念有全面的理解,并能够应用它们。

使用推断统计学,我们可以根据对小范围数据的发现得出关于总体的结论。这一点非常重要,因为我们可能会处理样本数据,而不是总体数据。

机器学习不仅仅是导入算法

机器学习是数据科学的一部分。有几种机器学习算法,我们用来从数据中学习。

在监督学习的情况下,我们用已知数据训练算法,并期望它对新的观察结果进行预测。无监督学习算法提供了对数据中潜在结构或观察值之间关系的洞察。

在这两种情况下,原始数据的处理对于获得可靠和准确的结果极其重要。我们不能只是将原始数据转储到一个现成的算法中,然后期望得到出色的结果。

原始数据可能包含对模型性能产生负面影响的异常值。数据中也可能有一些缺失值。它们需要小心处理以保持特征的完整性。

我们如何执行这些操作对模型性能有很大的影响。为了恰当地处理它们,我们需要有很强的统计知识。例如,我们使用统计技术来标记异常值。类似地,在统计的帮助下确定缺失值的适当替换。

评估模型的结果和创建模型一样重要。我们不能只看一个指标就完成评估过程。其实应该是动态的,迭代的。

我们评估结果,为改进模型提供反馈。例如,检测结果中的高偏差或高方差至关重要。基于误差的模式,模型被不同地调整或更新。统计数据有助于我们创建一个有价值、信息丰富的评估流程。

机器学习不仅仅是导入一个算法并使用它。我们需要适当地准备和处理数据。同样,模型的输出也需要仔细评估。这两项任务都需要统计知识,因此这是数据科学家的必备技能。

数据科学是一个跨学科的领域。统计学是不可或缺的一部分,也是对数据科学家的绝对要求。没有像样的统计知识水平,只能做工具专家。

感谢您的阅读。如果您有任何反馈,请告诉我。

失败是你最好朋友的三个理由

原文:https://towardsdatascience.com/3-reasons-why-failure-is-your-best-friend-281a9e54bcfa?source=collection_archive---------23-----------------------

当我们在学习的时候,我们在成长

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

布雷特·乔丹在 Unsplash 上的照片

在成长过程中,我认为失败是一件坏事。我在一个班表现很差——这是一次失败。我在一项活动或一个项目中表现不佳——这是我的错误和我的过错。直到我长大了,我才意识到失败并不总是坏事,错误可以成为发现经验教训的工具。回顾这些事例,那次失败教会了我什么?我该如何接受失败并改进,以便下次做得更好?我可以做哪些改变?在软件和数据科学中,失败有多种形式。有时失败是错过了最后期限。其他时候,失败是解决一个你自己无法解决的错误。

代码评审——每个人都有学习的机会

开发人员可能感到失败或犯了错误的一个常见领域是代码审查。让另一个软件工程师、数据科学家或一般的开发人员查看您的代码可能会很伤脑筋。在过去的工作中,我有一个初级开发人员在代码评审后找到我,说他在参与其他人的代码评审中感觉轻松多了。看到高级团队成员的代码因小错误、最佳实践和一般代码改进而受到批评,令人大开眼界。他再也不用担心他的代码没有堆叠起来,因为他不是唯一一个得到这种评论的人。他还能够参与这些评审,向这些高级成员提供反馈。以下是我在代码评审中获得反馈时喜欢考虑的一些关键问题:

1\. Based on your feedback, what are the key takeaways? What can you learn from your coworkers?
2\. Is there a typical pattern that emerges in your code reviews that you need to look further into? For example, do you often receive feedback that the features you have engineered are too valuable for your analysis or overly complex? If so, how can you learn and grow from this? 
3\. Did anyone mention resources that would be good to look into? If not, could you ask them for recommendations or look into documentation that may be available based on the changes they recommended?

Bug 修复—需要帮助吗?自讨苦吃!

有时候失败是一种感觉。一种感觉,认为自己不够好或能力不足以让事情运转起来。有多少次你发现了一个 bug,花了几个小时调试你的代码,但还是找不到修复方法?但是当你让另一个人看你的代码时,他们可以在几秒钟内发现它!这种感觉可能会令人沮丧,但它可以带来许多经验教训。

第一课是,知道何时寻求帮助。我花了一段时间才意识到这一点,但从那时起它就变得非常有价值。如果你被困在一个问题上,试图修复一个错误,用尽了你所有的资源,寻求帮助。就像前面提到的,帮助可以来自任何人,不仅仅是你的上级。甚至你的下级也可以看待一个问题并提供他们的见解。所以在我寻求帮助之前,我会问自己以下问题:

4\. Did you read all the team documentation and find an answer there? 
5\. If you couldn't find your answer there, did you read the documentation available for the tool, code, algorithm, or other that is publicly available? Does this documentation make sense, and could it help you solve your problem? 
6\. Are there any other resources, such as Stack Overflow, a Google search, a Medium article, or other open community forums that you can leverage that may give you insight into your issue? 

如果你已经用尽了所有的选择,并且试图解决你的问题花费了太长的时间,寻求帮助。不要浪费太多时间试图自己修复。这是一个向你的同事学习并找出如何解决同样问题的绝佳机会。

错过了你的截止日期——为什么?

在我最近工作过的团队中,最短的期限是两周或更短的冲刺周期,最长的期限是你的团队、部门和组织的全年目标和期望。尽管我们在做项目时尽了一切努力来计划和赶上最后期限,但我们有时会错过或达不到目标。因此,与其把这当成一次失败,不如花点时间反思一下为什么错过了截止日期。发生这种情况时,我会考虑以下几个关键问题:

7\. Was the original deadline and work estimation accurately representing what was required for this project? 
8\. Were there major hurdles or blockers that caused the project to be delayed? Did you make this clear to your team, and if not, why not? 
9\. What could you or your team have done differently to keep the project on track? 
10\. Was the work deprioritized in favor of other work? If so, were the roadmap and deadlines updated to reflect such? 
11\. What areas of improvement are essential to note before taking on a similar project? What best practices or process improvements could you implement next time?

最后的想法

也许并不总是这样,但失败是你最好的朋友。失败让你重新评估形势,并从中吸取教训。当我们在学习的时候,我们在成长。一些关注学习而不是失败的好领域包括代码审查、bug 修复和面临最后期限。

你经常在哪些领域看到失败,你如何从中吸取教训?

感谢阅读!我希望你喜欢阅读我所学到的东西。如果你愿意,你可以通过这个链接成为一名灵媒来支持我的写作。

Jupyter Notebook 将您的团队引向歧途的 3 个原因

原文:https://towardsdatascience.com/3-reasons-why-jupyter-notebook-is-steering-your-team-the-wrong-way-abb53cc46823?source=collection_archive---------10-----------------------

意见

从人工智能开发者的角度来看

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

照片由布伦丹·丘奇Unsplash 上拍摄

过去几年见证了 MLOps 实践的出现,因为公司开始意识到,要制作一个 ML 项目,需要的不仅仅是机器学习(ML)模型。有时,这些实践,如确保可重复性、监控和治理,可能比创建模型更复杂。从高层次来看,MLOps 旨在使从开发阶段到生产阶段的过渡更加平稳。这种转换的成功通常与源代码的质量有关。因此,仔细选择有助于开发健壮软件的工具非常重要。

Jupyter 笔记本仍然是许多数据科学团队的首选工具。它用于简单的数据探索,也用于创建数据处理管道和模型训练。一些云解决方案甚至允许您将笔记本电脑部署到生产环境中。我同意这是一个很好的工具,可以探索新的数据集,分析结果,更容易地创建和交互图表。然而,在这篇文章中,我将试着解释为什么 Jupyter Notebook 不适合你,如果你的目标是构建高质量的软件。

它鼓励不良的编码习惯

软件最佳实践之一是将源代码分成多个文件。这使得代码更容易使用、调试和维护。然而,由于将一个笔记本导入到另一个笔记本中是非常有限的,所以整个代码通常都在一个笔记本中结束。这促进了代码的重复,使得代码库难以维护。

此外,代码被安排到单元中,而不是定义具有清晰名称和单一职责的小功能的类。这导致了多个问题。首先,在笔记本电脑的生命周期中,要么单元变得非常长,要么同一部分逻辑分布在多个单元中。例如,您会发现在单元号 5、10 和 17 中处理的预处理逻辑。第二,测试要么受限,要么几乎不可能。在某些情况下,测试包括运行整个笔记本,没有异常意味着测试成功。其他情况下使用一些原始的 pytest 端口,其中笔记本需要包含测试。

最后,生成图的代码通常与代码库的其余部分高度耦合。这种耦合使得理解代码和进行更新变得困难。

虽然我只触及了潜在问题的表面,但很容易看出这会导致严重的长期问题。首先,由于维护占据了软件项目成本的 70%以上,使得代码难以维护将会增加这一比例,或者在最坏的情况下导致完全重写。第二,如果你第一次接触编写源代码是在笔记本上,那么以后要改变这些坏习惯就很难了。

版本控制是一场噩梦

我们都同意版本控制是强制性的,尤其是对于大型团队。所以,你使用的工具不应该妨碍你的项目的正确版本控制,Jupyter Notebook 就不是这样。在引擎盖下,笔记本是包含源代码、绘图数据和 Jupyter 元数据的大型 JSON 文件。这使得版本控制成为一场真正的噩梦,因为:

  • 检查同一文档的两个版本之间的差异是很困难的。你不能依赖 github 来做你的拉取请求(PR),你必须试着找一个第三方库来“尝试”做这件事。
  • 做三路合并是不可能的。您需要打开笔记本并手动进行所有更改。
  • Jupyter 元数据污染了 diff 历史,使得很难区分代码更新和元数据更改,如单元运行顺序。

小工具生态系统

工具在任何现代软件开发环境中都扮演着重要的角色。然而,Jupyter 笔记本电脑要么功能有限,难以使用,要么根本不存在。例如,如果你想使用 pylint ,你需要将你的笔记本导出到一个 python 脚本,然后运行 pylint,之后修复笔记本中的问题并重做。你不能让它像过去 10 年中的任何 IDE 一样运行,这适用于大多数静态代码检查器。此外,像自动完成这样的智能感知功能对于现实世界的项目是不可用的。至于调试,通常用 prints 或原始的 pdb 来完成,或者使用一个扩展来让你有一个可视化的调试器。然而,它并不适用于所有的内核,而且功能非常有限。例如,截至 2020 年 3 月,扩展没有几十年前引入的条件断点。

结论

对于 Jupyter 笔记本用户来说,我知道使用相同的工具进行所有的开发会更容易。然而,我认为你应该为每项任务准备一套合适的工具。你以后会感谢自己的。此外,我知道一些库或工具解决了或将解决我在这篇文章中提到的问题。但是你需要问问你自己,你是否愿意花时间去寻找这些工具,或者使用一些由软件开发人员完善的、开箱即用的工具来为你的项目带来更多的价值。

在你走之前

在 Twitter 上关注我,我经常在 Twitter 上发布关于软件开发和机器学习的消息。

每个数据科学研究生课程都应该包含优化的 3 个原因

原文:https://towardsdatascience.com/3-reasons-why-optimization-should-be-included-in-every-data-science-graduate-program-7ec7a94062b?source=collection_archive---------10-----------------------

领先的学者和行业专家一致认为,将优化添加到数据科学工具包中是就业市场的一个真正优势。

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

照片由丹尼尔·库切列夫Unsplash 上拍摄

为了在毕业后找到数据科学的角色,学生需要完成包括数学、统计学和计算机科学/编程在内的综合应用课程。他们还需要一个坚实的商业环境来学习分析技术,如机器学习。

除了传统的商业课程,数据科学和分析的研究生学位通常会在行业提供的咨询项目中达到高潮,该项目提供解决来自合作公司的真实业务问题的实践经验。这些行业提供的咨询项目可以强调的一个问题是,并非所有的商业问题都可以仅靠机器学习来解决。有些问题需要一个可用于制定数据驱动型决策的最佳解决方案,因此,不仅要有对下一步将会发生什么的预测性见解,还要有企业可以放心实施的值得信赖的指令性行动方案。

数据科学研究生学位课程通常专注于教授预测分析,但并非所有课程都教授学生规范分析(即利用优化(主要规范分析工具)的能力,以找到复杂业务问题的解决方案并做出最佳决策)。

在过去的两个月里,我与正在制定顶级数据科学计划的教授、行业专家和在组织中安置顶级数据科学人才的领导者进行了交谈,探讨了为什么将优化融入学术计划的数据科学工具包是塑造下一代问题解决者的重要组成部分。

我们讨论了新兴趋势、当前如何向数据科学家教授优化,以及向学生介绍优化问题的价值,以便他们能够利用组合解决方案方法,不仅为未来的雇主提供预测性见解,还提供可导致可信决策的规定能力。

我从交谈中获得的见解使我得出结论,为什么优化应该被视为数据科学和分析计划中的一个基本元素,这有三个主要原因:

1。 商业领袖对数据的期望比以往任何时候都高。

企业正在收集比以往更多的关于客户、流程和产品的数据。福布斯估计,近一半的企业要么正在开始新的分析项目,要么在现有项目的基础上继续前进,并强调那些不能快速从数据中获得洞察力(以及后续决策能力)的公司正在落后。

用于优化的应用——一种数据驱动的、规定的分析技术——规模庞大,规定的功能正在影响全球范围内的业务运作方式。各公司使用大量数据为各种重要决策提供信息,从疫苗分发计划、器官捐赠者和接受者的匹配,到全球运输物流和每天超过 10 万次航班的调度。

然而,一些公司在他们的分析旅程中仍然没有达到那个成熟水平。显而易见的是,无论一家公司的分析成熟度处于哪个阶段,企业领导人都比以往任何时候都更了解情况,并对他们的数据有更高的期望。

在讨论优化的广泛使用案例时,Gurobi Optimization 的首席执行官 Ed Rothberg 博士向我提出了一个问题:“人们普遍认识到,机器学习并不能解决所有问题,那么你会怎么做?”他讨论了随着领导者对优化的认识和理解的发展,他从领导者那里听到了什么,他的评估是,最终取决于业务领导者是否认识到优化机会应该优先考虑,以增加业务价值。

根据西北大学兼职教授兼 Coupa 人工智能负责人迈克尔·沃森博士的说法,“企业领导人确实了解优化的价值,但他们可能不了解什么技术实际上导致了优化。他们理解利用数据做出特定决策的价值。”

2.如果公司现在没有规定能力,他们很快就会有了。

考虑到许多复杂的权衡,获得最佳解决方案有助于企业领导者快速自信地采取行动。机器学习模型可以根据历史和实时数据成功预测接下来会发生什么,但它们不会帮助企业就下一步做什么做出最佳或可解释的决策。如果公司没有使用优化,他们很快就会使用。

Gartner 预测到 2022 年,规范分析软件市场将达到 18.8 亿美元(相当于 2017 年的 20.6% CAGR),37%的大中型组织将使用某种形式的规范分析技术。

许多公司仍处于构建分析能力的早期阶段。一些公司有数据科学团队,但还没有超越使用他们的数据进行预测。定量高管猎头公司 Burtch Works 的董事总经理兼创始人 Linda Burtch 分享了她对分析团队未来趋势的看法:“能够获得规定的能力是圣杯,领导层需要相信它,他们需要推动它。公司必须先走后跑,许多这样的团队现在才刚刚开始小跑,所以给它时间,我认为更多的公司会采用这种规范的方法。”

3.没有学习最优化的世卫组织学生可能没有准备好解决公司需要回答的紧迫问题。

当我与专家和学者交谈时,我清楚地知道,几乎所有我联系过的人都有一个相关的故事,关于一家公司向学生团队提供行业提供的咨询问题(以顶点或实习项目的形式),这些学生团队在问题陈述中既有机器学习又有组件。在大多数情况下,这些公司甚至没有意识到这些问题有优化的成分,但是他们确实意识到他们需要一个基于他们提供的数据的决策和实施建议。

行业提供的问题不能仅靠预测或处方来解决,学生们需要结合数学建模来提供解决方案和下一步该做什么的见解。我将重新分享乔治亚理工学院 MS in Analytics 项目的教授和主任 Joel Sokol 博士与我分享的一个故事:“我们有一家公司带着一个研究问题来找我们,他们突然可以访问所有新的数据集,他们希望能够开始将所有这些信息放在一起,但数据集来自不同的来源,并且不一致(重复,不一致的标签等)。).你如何着手匹配数据?回答这个问题有预测部分和规定部分,我们的学生需要考虑他们工具包中的所有模型,以及如何在没有人为区分(预测和规定之间)的情况下使用它们。”

这种故事我听过很多次,但也是我亲身经历过的。我以前是西北大学分析学硕士项目的副主任,在这个项目中,我们要求每一批学生都有两套行业提供的咨询项目。这些项目嵌入到课程中,向我们的学生介绍现实世界的问题解决方案,并提供动手实践的体验,这将有助于他们为数据从业者和数据科学领域的未来领导者做好准备。这些年来,我提交了多个项目,这些项目需要优化,以向公司提供有用的可交付成果,并可以实现。

我很幸运地与一位系主任 T2 博士共事,他认识到数据科学家了解各种分析技术的价值。他支持数据科学学生在计划的早期学习优化,并且是将优化课程作为核心要求提供的先驱之一,这样学生就可以确定问题的正确分析方法并有效地解决它。

Joel Sokol(另一位研究生级数据科学教育的先驱)阐述了这一想法,并解释了他的学生如何在一个本质上跨学科的项目中解决问题:“我们向学生提出业务问题,但我们不会说它是预测性的还是规定性的。学生们需要弄清楚回答问题需要什么数据,以及需要什么模型才能到达他们需要解决问题的地方。”

针对数据科学专业学生的教学优化

数据科学专业的学生天生擅长解决问题。他们通常进入数据科学或分析研究生学位课程,拥有强大的数学背景、编程基础(我们越来越多地将 Python 视为主流编程语言),以及对如何发现数据中有价值的模式的天然好奇心。这些学生有定量的才能和寻找最佳解决方案的欲望,这种能力自然有助于解决优化问题——不管他们是否知道,他们已经在使用利用优化的机器学习技术。

迈克尔·沃森解释说“一个优秀的数据科学家已经懂得数学。他们使用统计学,他们建立的算法离数学建模不远。优化是数据科学家已经使用的许多算法的幕后工作,回归模型使用优化,深度学习嵌入了优化。”

数据科学和分析硕士学位通常需要大约一年的时间来完成,尽管项目可能需要九个月到两年的时间。计划的任务是提供一个课程,为学生在数据科学领域的有利可图的职业生涯做准备。他们通常只有两个学期的课程来为学生做准备,他们需要做出艰难的决定,即什么是学生成为成功的数据科学家所必需的。面对这些艰难的决定,许多程序选择不将优化包含在他们的核心需求中,这是有道理的。Mike Watson 解释说,“大多数学生从未见过,甚至没有听说过优化,所以向他们介绍这种使用数据来做决定的新方法,并实际使用数据来给出答案和解决方案是很重要的,这不同于使用数据来进行预测(这是传统机器学习程序所教授的)。没有优化,学生就错失了机会。”

公司需要解决的各种问题正变得越来越复杂,不仅能够识别优化问题,而且能够为企业领导者提供最佳解决方案,这将是数据科学学生在未来几年进入就业市场的一个优势。Joel Sokol 亲眼目睹了这一成功,并分享道:“优化是我们课程的核心要素之一。这非常适合这个项目,我们的一些校友甚至说这是一个核心优势。他们现在可以采取额外的步骤:既然他们已经很好地理解了事物是如何工作的,并且对将要发生的事情有了很好的预测,他们会怎么做呢?他们是如何据此做出决策的?这项优化工作将真正成为数据科学发展的下一步。”

即使你不是技术团队的一员,你也应该学习 SQL 的 3 个理由

原文:https://towardsdatascience.com/3-reasons-why-you-should-learn-sql-even-if-you-are-not-part-of-a-tech-team-232be317b9d7?source=collection_archive---------22-----------------------

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

约翰·施诺布里奇在 Unsplash 上的照片

作为一名数据分析师,我整天都在写 SQL 查询。我的任务之一是在我公司的数据库和需要获得现成数据的同事之间充当 翻译。提取的数据适合他们的需求,然后他们能够进行自己的分析,并得出面向业务的结论。与对数据库管理知之甚少甚至一无所知的同事一起工作时,我发现他们通常会受益于 SQL 的基本知识——或者在工作中获得这些知识。

如果你处于类似的位置,即与处理公司数据库的数据分析师或技术团队互动,或者如果你认识这样的人,欢迎你!如果您想更多地了解什么是 SQL 以及为什么它在数据处理方面如此重要,那么这篇文章就是为您而写的。

简介:SQ-什么?

SQL 代表结构化查询语言。它是一种编程语言,用于管理存储在关系数据库管理系统(RDBMS)中的数据。在本文中,我将重点关注查询,这是 SQL 中最常见的操作。他们的角色是翻译指令,如“您能给我看一下昨天与这位客户的交易吗?”从(可能非常大的)数据库中提取。

这里有一个例子。假设我公司的数据库由 5 个表组成:

  • “交易”记录了我的公司每天进行的所有交易
  • “卫生产品”和“食品”列出了我们销售的产品
  • “个人客户”和“专业客户”是客户注册

来回答问题*“2020 年 11 月杰克买了什么?”我需要通过组合这五个表格来找到所需的信息。*

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

玛丽·勒费夫尔

那么,为什么要学习 SQL 呢?

1.在数据分析方面变得更加自主

虽然使用 Microsoft Excel 或 Google Sheets 对于有限大小的数据来说已经足够了,但是您可能已经遇到过由于处理的数据量过大而导致电子表格软件死机的情况。事实上,SQL 的第一个优势是,它可以从数据库中提取和处理大量数据,而不必通过逐个打开每个 Excel 表来浏览数据库。很实用,不是吗?

回到前面的例子,你有两个选择来回答这个问题:

  1. 转到每个表,查看可用的字段。为了明确地找到 Jack 和他购买的商品,您可以从这些表中筛选摘录,以找到 Jack 对应的 client_id,以及他购买的商品对应的产品。
  2. 编写一个 SQL 查询(或者使用您最喜欢的数据分析师编写的模板)将所有五个表直接链接在一起。然后在 WHERE 子句中指定搜索条件。

这里的 SQL 查询如下所示:

2.更好地组织你的思想

即使你自己不打算成为一名数据分析师,学习 SQL 也是一个很好的练习,可以更好地理解你公司的数据是如何构成的,以及通过组合各种数据源你可以实现什么。SQL 有一个相当简单的结构(至少与其他编程语言相比),但它可以执行复杂的查询。通过自己编写查询,您将能够检索更多的信息,最重要的是,这些信息将以一种您可以立即用来回答您的问题的方式进行组织。

在你与数据分析师或技术团队的互动中,更好地理解数据库的架构和 SQL 查询背后的逻辑将使你节省宝贵的时间。当表达对数据提取的特定需求时,如果您已经知道您需要什么类型的数据,您将会赢得时间。

以我之前的例子为例,有两种方法可以让你的同事检索你分析所需的数据:

  1. “我需要关于某个杰克的信息,他在 2020 年 11 月购买了一些产品:您能把他所有的购买清单发给我吗?”
  2. “我需要关于个人客户 Jack 的信息,他在 2020 年 11 月购买了卫生用品:您能给我他的购买清单吗?”

你可以想象第二个选项可能会帮助你的同事更快找到答案。为了说明我的例子,这是你得到这个答案的思维过程:

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

玛丽·勒费夫尔

3.发展新的专业技能

根据Stack Overflow2020 年的一项调查, SQL 位列第三大最常用编程语言。也就是说,SQL 已经被广泛传播,而且很可能会继续传播,因为它是用于数据库管理的头号语言。不管你的公司使用什么样的数据库技术(MySQL、PostgreSQL、Microsoft SQL Server……),它们都使用 SQL 或这种语言的衍生物。

正如 Dataquest 解释的那样,根据 2021 年 1 月在 Indeed job portal 上进行的一项分析,SQL 是数据工作中最受欢迎的技能。即使你不打算将职业重点转向全职数据角色,更好地了解这些工作背后的东西也只会有好处,而且它为数据世界或周围的未来机会打开了一扇门。

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

玛丽·勒费夫尔

结论:开始吧!

为了结束这篇文章,我想补充最后一个论点(和一些好消息):学习 SQL 是免费的

其中,MySQL 是一个开源的 RDBMS(见简介),你可以免费下载和安装。然后,您可以开始参加在线课程,或者请您的数据分析师同事就该主题为您提供一个快速入门课程!学习 SQL 有大量免费的在线资源:

现在全靠你了。快乐学习!

你喜欢读这篇文章吗? 成为会员 加入一个不断成长的充满好奇心的社区吧!

https://marie-lefevre.medium.com/membership

为什么应该使用线性回归模型而不是神经网络的 3 个原因

原文:https://towardsdatascience.com/3-reasons-why-you-should-use-linear-regression-models-instead-of-neural-networks-16820319d644?source=collection_archive---------5-----------------------

不要忘记传统的统计学

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

凯西·霍纳在 Unsplash 上的照片

介绍

第一,我不是说线性回归比深度学习好。

其次,如果你知道自己对计算机视觉、图像识别或语音识别等深度学习相关的应用特别感兴趣,那么这篇文章可能与你不太相关。

但是对于其他人,我想给出我的想法,为什么我认为学习回归分析比深度学习更好。为什么?因为时间是有限的资源,你如何分配你的时间将决定你在你的学习旅程中走多远。

因此,我将给出我的两点意见,为什么我认为你应该在深度学习之前学习回归分析。

但是首先,什么是回归分析?

简单来说,回归分析通常与线性回归互换使用。

更一般地说,回归分析是指一套用于估计因变量和自变量之间关系的统计方法。

然而,一个很大的误解是,回归分析仅仅指线性回归, **并非如此。**回归分析中有许多非常强大和有用的统计技术。这引出了我的第一点:

第一点。回归分析更加通用,具有广泛的适用性。

线性回归和神经网络都是在给定一些输入的情况下可以用来进行预测的模型。但是,除了做出预测,回归分析还允许您做更多的事情,包括但不限于:

  • 回归分析让你了解变量之间关系的强度。使用 R 平方/校正 R 平方等统计测量值,回归分析可以告诉您数据中的总可变性有多少是由您的模型解释的。
  • 回归分析告诉您模型中哪些预测因子具有统计显著性,哪些不具有。更简单地说,如果你给一个回归模型 50 个特征,你可以找出哪些特征是目标变量的良好预测者,哪些不是。
  • 回归分析可以给出它估计的每个回归系数的置信区间。您不仅可以估计每个特征的单个系数,还可以获得系数所在的置信水平(例如 99%置信)的系数范围。
  • 还有更多…

我的观点是,回归分析中有很多统计技术,可以让你回答更多的问题,而不仅仅是“给定 X(s),我们能预测 Y 吗?”

第二点。回归分析不是一个黑箱,更容易交流。

在选择模型时,我总是考虑两个重要因素,一是如何简单,二是如何可解释

为什么?

更简单的模型意味着更容易交流模型本身如何工作以及如何解释模型的结果。

例如,大多数商业用户理解最小二乘和(即最佳拟合线)的速度可能比反向传播快得多。这很重要,因为企业对模型中的底层逻辑是如何工作的感兴趣——在企业中,没有什么比不确定性更糟糕了——黑盒是它的同义词。

最终,理解模型中的数字是如何得出的以及如何解释它们是很重要的。

第三点。学习回归分析会让你从整体上更好地理解统计推断。

信不信由你,学习回归分析让我成为了一个更好的程序员(Python 和 R),一个更好的统计学家,并且让我对构建模型有了更好的理解。

为了让您更加兴奋,回归分析帮助我了解了以下内容(不限于此):

  • 构建简单和多元回归模型
  • 进行残差分析并应用像 Box-Cox 这样的变换
  • 计算回归系数和残差的置信区间
  • 通过假设检验确定模型和回归系数的统计显著性
  • 使用 R 平方、MSPE、梅伊、MAPE、PM 评估模型,这样的例子不胜枚举…
  • 使用方差膨胀因子识别多重共线性(VIF)
  • 使用部分 f 检验比较不同的回归模型

这只是我所学到的一小部分东西,我只是触及了皮毛。因此,如果你认为这听起来像一个整洁的演出,我敦促你去看看,至少看看你能学到什么。

怎么可以学习回归分析?

最近,我发现学习一个新话题的最好方法是从学院/大学找课程讲座或课程笔记。令人难以置信的是网上有这么多免费的东西。

特别是,我将留给您两个很好的资源,您可以使用它们开始工作:

https://online.stat.psu.edu/stat501/

感谢阅读!

我希望你觉得这篇文章很有见地!请记住,我的观点是基于我的经验,可能与你的不一致,没关系!如果你对此有共鸣,并同意我的观点,我鼓励你深入这个话题——你不会后悔的。

一如既往,我祝你在努力中好运!

不确定接下来要读什么?我为你挑选了另一篇文章:

又一个!

特伦斯·申

你不应该为你的机器学习之旅担心数学的 3 个理由

原文:https://towardsdatascience.com/3-reasons-why-you-shouldnt-worry-about-math-for-your-machine-learning-journey-e06dff6528d1?source=collection_archive---------48-----------------------

以及如何取得成功

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

图片由标记 _ 摄影来自【Pixabal.com 的

这一切都始于我个人的奋斗

到说实话,从我开始机器学习之旅的第一天起,对数学不够好的恐惧就一直困扰着我。当我在做神经网络的反向传播时试图应用链式法则时,它第一次打动了我。在任务截止日期前,我花了好几天时间才最终弄明白如何计算梯度。伙计,那感觉很难!我几乎还能尝到嘴里的苦涩和艰辛。我不知道,这可能是最简单的部分。当我第一次尝试阅读机器学习论文时,真正的噩梦开始了…🤮

如果你能理解我的经历,那你就去过那里。我今天想告诉你的是:不需要那样,你可以有一个完全不同的角度来接近你的机器学习之旅,而不用太担心数学。让我解释一下。

应用深度学习所需的数学非常有限

在机器学习中,太多人患有冒名顶替综合症,无法弄清模型背后的数学真相。这是可以理解的,当我们知道我们在控制时,我们对自己感到安全和自信。但是不能完全理解数学是一个严酷的提醒,提醒我们还不够。

这在 90%的情况下可能是不必要的,尤其是对于深度学习。还记得我上面提到的反向传播链规则地狱吗?它追逐了我太久,直到有一天,当我在学习 PyTorch 时,我发现了一个叫做’ auto-grad '的东西它让我大吃一惊。这基本上意味着无论你想出什么损失函数,框架都会跟踪它,并自动为你计算梯度。什么?!那为什么我需要手工计算所有的反向链规则呢?

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

Kelly SikkemaUnsplash 上拍摄的照片

而且即使你必须手工完成这些,深度学习所需的基本数学是矩阵乘法和导数微积分。一旦你掌握了这两点(这绝对不难),你在面对大部分挑战时应该会感到自信。其余的更多的是试验什么可行,什么不可行——比如 AutoML 和网格搜索。

🧗Two 语言,山的两边,同一个 Peak🧗‍♀️

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

照片由来自 PixabayPexels 拍摄

答关于机器学习的另一件事是,它要求你会两种语言:编程语言如 Python、R 和数学。有时候,要解决一个挑战,你需要综合的力量,掌握一个肯定会帮助另一个。因此,如果你不是“数学头脑”,所有的希望都不会失去,因为你仍然可以尝试用代码来做它,它一点也不含糊,而且非常“可修补”。不像数学,你总是可以做更多的实验并得到反馈。

在编码领域,当教授递归算法时,最大的障碍是要’信任’简单的递归代码,它们实际上可以解决看似困难的问题。这叫做‘信念的递归跳跃’https://baeddavid.medium.com/taking-the-first-recursive-leap-of-faith-ea5cd9582d94。第一次递归学习通常很难克服不舒服的感觉,即仍然缺少解决问题的代码。这有点不自然,但你只要相信代码,相信算法,让它以优雅的方式展开问题。只有在实践之后,你才能轻松自信地使用递归解决问题。

我感觉深度学习也有类似的东西。大多数框架和一些语言拥有的“自动渐变”特性就是其中之一。你不需要知道如何计算你的损失函数的梯度,只需要相信框架/语言可以做到。也许它应该被称为“信念的自动毕业生飞跃”。不会用汇编写你的 Python 代码你也不会烦恼吧?所以当你不能用手做渐变的时候,为什么要小题大做呢?

你不应该让自己陷入困境🚦

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

照片由 schroederhundPixabay 拍摄

另一个值得注意的点与一般的学习和教育有关。我想把它叫做“不要卡住”当遇到一个问题或挑战时,也许是一个数学方程式,也许是一个 bug,不要让自己陷入其中,把所有的时间都投入到解决它上。相反,后退一步,深呼吸,休息一下,走开,找些方法绕过去。或者暂时忽略它,稍后再回来。你会发现,有了更多的背景,更好的休息,更清晰的观点,问题会看起来不同,解决方案通常会自己出现。所以不要纠结于数学或者其他什么,真的。退一步,看大局。🥾

你应该怎么做?

说了这么多,我想澄清一下,我并不反对学习数学,也不是说数学对你的机器学习之旅不重要。数学无疑是大多数新的有影响力的机器学习研究进展的核心。我刚才说的是不要让对数学的痴迷或对数学的恐惧阻碍你的学习。跟着学习,如果遇到困难就尝试代码,先获得一些直觉。随着时间的推移,你会逐渐理解机器学习的数学部分。数学的学习是必要的,但额外的担心不是。👨‍💻

结论

希望这些提示能帮助你的深度学习之旅,无论是学习新东西还是解决一些棘手的问题。谁知道呢,在解决了一些挑战并看到它的美丽后,你可能会爱上数学,这对你来说永远都不是问题!祝好运,学习愉快!

觉得这篇文章有用?在 Medium 上关注我(李立伟),或者你可以在 Twitter @lymenlee 或我的博客网站wayofnumbers.com上找到我。你也可以看看我下面最受欢迎的文章!

** **

你的机器学习模型表现不佳的 4 个原因

原文:https://towardsdatascience.com/3-reasons-why-your-machine-learning-model-is-garbage-d643e6f0661?source=collection_archive---------18-----------------------

建立更好的 ML 模型的图解方法

作为一名数据科学家,用数据创造影响是你获得报酬的原因,但对于新手来说,抓住创建有影响的机器学习模型的问题似乎有点太令人生畏了。将它们归类到某个总括模式中,可以帮助有效地将优化模型的零碎内容联系起来,并理解真正的瓶颈出现在哪里。分为四个想法,示意图方法应该提供一个更清晰的步骤,以获得一个有影响力的模型。

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

肖恩·朗斯在 Unsplash 上拍摄的照片

培训数据的质量

大多数 ML 工程师都熟悉这句名言,“垃圾进,垃圾出”。当您的模型所训练的数据不能很好地代表实际情况时,您的模型只能执行这么多。我说的“代表”是什么意思?它指的是训练数据群体模拟目标群体的程度;不同类别的比例,或点估计(如均值或中值),以及训练和目标人群的可变性(如方差、标准差或四分位间距)。

一般来说,数据越大,越有可能代表您想要归纳的目标人群。但情况可能并不总是如此,尤其是在抽样方法有缺陷的情况下。例如,假设您想要对从第一标准到第十标准的整个学校的学生群体进行概化,但是 80%的训练数据包含第二标准的学生。如果学校的学生分布与第二标准中的 80%不对应,并且您想要预测的数据实际上很大程度上受不同班级中人口特征的自然差异的影响,则您的模型将偏向第二标准。

为了设计正确的数据收集技术,很好地了解目标人群的分布是至关重要的。一旦有了数据,就要研究数据(探索性数据分析阶段),以确定其分布和代表性。

离群值、缺失值以及完全错误或虚假的数据是您可能需要考虑的一些其他因素。您应该将异常值限制在某个值吗?还是完全移除它们?价值观正常化怎么样?您是否应该包含一些缺失值的数据?还是用平均值或中值代替缺失值?数据收集方法是否支持数据的完整性?这些是在考虑模型之前必须评估的一些问题。数据清理可能是数据收集后最重要的步骤。

无关的特征

“垃圾进,垃圾出”这句话也适用于特性工程。一些特征对预测的权重(影响)会比其他特征大。

相关系数、方差、离差率等度量被广泛用于对每个特征的重要性进行排序。数据科学家新手常犯的一个错误是,他们使用主成分分析来减少内在不连续的维度。我的意思是,技术上你可以,但理想情况下,你不应该。这通常导致假设可变性最高的特性就是影响最大的特性,当然,这不一定是真的。人工编码的特征原本在本质上是分类的,但当编码时,通常不会像连续的特征那样高度可变,因此它们的相关性被低估了。

有时,使用其他已知要素创建新要素比将它们分开会产生更大的影响。通常,具有太多相关性低的特征会导致过度拟合,而具有太少的特征会导致拟合不足。找到特性的最佳组合需要领域的经验和知识。这可能是一个不错的模型和一个近乎完美的模型之间的区别,并且,推而广之,一个不错的 ML 工程师和一个相当好的 ML 工程师之间的区别。

过度拟合和欠拟合

与我们关注数据的前几个问题不同,这一个问题实际上归结为模型使用的算法,尽管通过考虑上面讨论的问题,这些影响仍然可以在一定程度上得到缓解。

过度拟合是指模型与训练数据过于接近,无法推广到目标人群。一般来说,模型越复杂,就越能更好地检测训练数据集中的细微模式。收集的数据可能不总是完全代表目标人群,因此使用更复杂的算法(如深度神经网络)而不是较简单的低阶多项式算法可能是区别所在。但是,对问题使用太简单的模型,模型将不能很好地学习和检测潜在的模式。当然,这被称为欠拟合。

补偿过度拟合的一种方法是施加惩罚,这取决于模型赋予特征的权重与我们在训练前设置的值之间的差异(如果我们希望模型完全忽略该特征,该值也可以为零)。这有效地允许我们在更精细的尺度上控制算法的复杂性,并帮助找到过拟合和欠拟合之间的最佳点。这就是我们所说的模型的正则化,惩罚是一个超参数。它不是模型的一部分,但是影响模型的概括能力,并且在训练之前设置。还有其他方法来找到甜蜜点,如装袋(主要用于随机森林)和助推。

但这并没有结束。在对超参数进行大量调整后,您可能会发现您的模型对测试数据集的预测准确率为 95%。但是现在你冒着过度适应的风险,即组测试数据和模型在部署时可能无法推广到真实世界的数据。对此的常见解决方案是从训练数据集中分割出另一组数据,并在使用不同超参数调整的第一个测试数据集上测试模型后,将其用作验证模型的另一层。三轮拟合通常会产生一个效果很好的模型,但这最终取决于你所拥有的数据的大小和质量,以及手头问题的复杂程度。

缺乏足够的数据

大多数 ML 模型需要 sh*t 色调的数据。除非你有一个只需要一些微调的预训练模型,否则你必须找到一种方法为你的模型提供足够的数据。即使对于像识别橙子和香蕉这样的简单任务,也应该有至少几千个示例图像供模型学习。这是管道中的一个巨大瓶颈。比任何其他因素更重要的是,由于缺乏足够的数据,今天的 ML 模型的效率及其应用的功效被大大抑制了。

这就是为什么像脸书、谷歌和苹果这样的公司如此热衷于从他们的用户那里收集尽可能多的数据(这里不讨论这种做法的道德问题)。裁剪、填充和水平翻转等数据扩充技术对于从可用数据集挤出尽可能多的训练潜力至关重要,但这些技术只能做到这么多。这项来自微软的研究说明了非常多样的 ML 模型如何表现相似,并且与训练数据的大小(字数)有非常强的正相关性。

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

图 1 来自,Banko,m .,& Brill,e .缩放到用于自然语言消歧的非常非常大的语料库。检索时间 2021 年 2 月 16 日。

当然,这并不适用于所有情况,但公司应该重新考虑花费数百万用于模型算法开发和收集越来越多数据之间的权衡。

最终目标是能够:

我)拥有尽可能完美地代表目标人群的数据(又名。更大的数据量和更高的数据质量)

ii)在现实中使用实际影响预测的特征

iii)使用适当复杂程度的模型(又名。它能够学习的详细程度)

iv)微调模型,以匹配或减少问题的实际复杂性和模型复杂性之间的差距

</5-stages-of-learning-data-science-40bca61f11b1>

附言:更多关于数据科学、编程以及生物学家如何在数据革命中导航的简明扼要的文章,请关注我的博客

每分钟都有成千上万的视频被上传,过滤掉它们是很重要的,这样你就只消费高质量的数据。我亲自挑选的,我会把你感兴趣的主题的教育视频发邮件给你。报名这里

感谢您的阅读!

构建数据科学产品组合时要避免的 3 个新手错误

原文:https://towardsdatascience.com/3-rookie-mistakes-to-avoid-when-building-your-data-science-portfolio-6451ccaebf2d?source=collection_archive---------21-----------------------

下面是应该做什么和应该避免什么

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

UnsplashMagnet.me 拍照

你能记得上一次仅仅通过提交简历就找到工作是什么时候吗?没错;技术领域已经被重组到一个高度革命性的标准,雇主不再相信一份充满你的教育背景的经验和成绩的文件(你的简历)。他们想看看你能用你所拥有的技能做些什么或者已经做了些什么。

向你的潜在雇主展示你能做什么,而不仅仅是告诉他们,这对于抓住每一个工作机会来说是非常重要的。

这里有一个问题,这不仅仅是建立一个投资组合——你需要建立一个能让你立即被雇佣的投资组合。大多数数据专业人士在建立投资组合时都会犯很多初级错误。这些错误通常会使他们失去赚钱的数据工作机会。

在本文中,我们将讨论在构建数据科学投资组合时经常犯的错误以及如何避免它们。为了简化事情,我对数据科学专业人士(数据分析师、产品设计师、数据工程师和其他人)的经验进行了研究和个人交流。以及建立销售组合的注意事项。就这样,让我们开始吧!

1。创建网站

除非你是吴恩达,否则你的网站不会有任何流量——尤其是如果你是数据科学新手的话。没有经验,没有人脉,没有人脉。当然,你可以使用一个网站作为投资组合,但为什么不使用一个拥有数百万志同道合的数据科学家的平台呢?

这是一个双赢的局面,你得到现成的流量。这意味着更多人关注你的项目,你可以向更多的雇主展示你的技能和成就。

Github 是一个流行的平台,用于展示各种数据科学项目和经验。对于希望学习和增长数据科学知识的初学者来说,Github 是您的首选起点。有了大量的技术爱好者,尤其是数据科学家,您的工作将很容易被同事、项目团队和经理访问。我敢肯定,这比零流量的网站发展要好。最好是将这种能量引导到在 Github 的其他专业人员中留下印记。你会需要的。

假设你刚刚完成了一个项目,你想创建一个 Github 库,上传一个包含标题、概要、数据集和项目文件的README.md file是非常重要的。

一个好的自述文件应该包含:

  • 您的项目标题。
  • 关于它的内容和发布日期的详细描述。
  • 流程中使用的步骤。
  • 如何运行你的代码?
  • 列出配额和许可证。

你的自述文件应该用简单的上下文来概括你的项目是关于什么的,我喜欢让我的自述文件对技术人员和非技术人员都容易阅读。

大多数数据科学家通常会在简历的项目/经历部分留下 Github 简介的链接。雇主可以看看你做了什么,用了什么工具,你是怎么做的。请记住,要想在该领域的其他专家中脱颖而出,您需要尽可能让您的 Github 简介独一无二且专业。

2。你的数据科学技能没有公开证据

你能部署代码吗?将数据可视化为简单的演示文稿?为数据科学中的基本挑战创建解决方案?有很多才华横溢的数据专业人士,根据经验,以上问题的答案是肯定的。既然你在你的领域很广阔,为什么你不在有共同兴趣的数据科学家之间分享你的知识呢?

强有力的公开证据将为你的数据科学技能提供数据支持。许多数据专业人士和爱好者在陷入分析困境时经常搜索解决方案,或许他们通过你的在线作品获得了帮助,他们很有可能会联系你,讨论其他机会。网络在技术中至关重要。

数据营的高级数据科学从业者,大卫·罗宾逊,讲述了他与一位雇主的经历,这位雇主注意到了他几年前在网上分享的知识。在 Mode Analytics 博客上的采访中讨论这个问题时,他分享了自己是如何在没有提交简历的情况下获得业内第一份工作的。他说,

对我来说,最有效的策略是做公共工作。我在博士后期写了很多博客并做了很多开源开发,这些有助于向公众证明我的数据科学技能。但我获得第一份行业工作的方式是公共工作中一个特别值得注意的例子。在我读博士期间,我是编程网站 Stack Overflow 的活跃回答者,该公司的一名工程师偶然发现了我的一个答案(一个解释 beta 分布背后的直觉的答案)。他对这个答案印象深刻,于是他(通过 Twitter)与我取得了联系,几次面试后,我被录用了。

有些人可能会说这是运气,但这是一个纯粹的意外,

努力+耐心=成功。

内容创作是建立作品集时最被忽视的方面之一。数据科学社区、社交媒体团体、YouTube、Quora 和微博平台都是重要的媒介,你可以利用它们来分享知识、建立追随者并开发你自己的在线数据科学不动产。

有了这些,以下是你可以用来建立投资组合的最佳平台:

卡格尔

Kaggle 是互联网领域最大的数据科学论坛,提供数据科学家展示技能、分享各种数据相关主题的信息、构建和发布数据集所需的各种重要功能。你可以用 Kaggle 做很多事情来丰富你的投资组合。

参加 Kaggle 竞赛并创建有用的模型是显示数据科学家熟练程度的好方法。如果你想建立最高水平的专业精神,作为一名数据科学家在网上露面是非常重要的,Kaggle 是一个免费的社区,可以帮助你以高标准做到这一点。

推特

是啊,就是你用来查地震的那个应用。流行的微博平台是构建健康的数据科学组合的强大工具。Twitter 是一个认识你所在领域的其他专业人士并与之互动的好地方。公司和个人也在他们的 Twitter 页面上分享机会(工作机会、自由职业晋升和会议邀请)。

Tableau 公共

Tableau 是一个数据可视化软件,旨在通过以图形和图表的形式将大量原始数据转换为有用和可读的信息。大多数数据工作需要你对 Tableau 有基本的了解,然后你才能得到一份工作。在 Tableau Public 上显示一些仪表盘会增加你技能的可信度。

我最近发表了一篇关于 Tableau 最佳特性的文章,它将提高你的数据科学和可视化技能。请随意查看,以详细了解 Tableau 软件。

3。包括错误的项目

在广泛的数据科学领域中有许多项目要做,值得一提的是,知道将什么样的项目添加到您的投资组合中是每个数据科学家都需要知道并精确应用的一项非常重要的技能。机器学习、可视化、物联网、人工智能,不胜枚举,大多数情况下,很难知道招聘经理希望看到什么样的项目。

Quora 的数据科学研究员和采访者 William Chen 描述了每个数据专业人员组合中独特项目的类别:

我喜欢那些人们表现出他们对数据感兴趣的项目,而不仅仅是家庭作业。任何种类的期末项目,你探索一个有趣的数据集,发现有趣的结果…努力写下…我真的很喜欢看到真正好的写下人们发现有趣和新奇的事情…有一些可视化和分享他们的工作。

雇主很容易被错误的项目拒之门外——展示完美的项目会让你更接近你的梦想职位。

**非常重要:**将你所有的数据科学工作直接投入到你的投资组合中可能很有诱惑力。确定最能展示你技能的项目。试着包括你为你最大的客户所做的工作,一个复杂但简单的论文,你为一个流行问题创造解决方案的项目。

结论

一份强有力的简历将让你进入办公室,至于面试,一份强有力的作品集将让你作为一名完全合格的数据科学家进入办公室。重要的是和更有经验的专业人士一起参与更多的项目。我总是告诉我的同事:无论你认为你知道什么,你永远也学不会数据科学的所有知识。不断学习,不断建设。

正如大卫·罗宾逊所说,

一般来说,当我评估一个候选人时,看到他们公开分享的东西,我会很兴奋,即使这些东西还没有润色或完成。分享任何东西几乎总是比什么都不分享要好。

你参与的项目越多,你能在作品集里展示的技能就越多。随着你的成长,确保你不断更新你的投资组合。永远不要停止分享知识,即使没有申请,你也会增加自己的知名度和被录用的机会。

资源

http://varianceexplained.org/r/start-blog/

3 个 Seaborn 函数覆盖了(几乎)所有的可视化任务

原文:https://towardsdatascience.com/3-seaborn-functions-that-cover-almost-all-your-visualization-tasks-793f76510ac3?source=collection_archive---------20-----------------------

综合实践指南

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

卢克·切瑟在 Unsplash 上的照片

数据可视化是数据科学不可或缺的一部分。它帮助我们探索和理解数据。数据可视化也是传递信息和交付结果的重要工具。

由于其重要性,在数据科学生态系统中有许多数据可视化库和框架。其中一个流行的是 Seaborn,这是一个用于 Python 的统计数据可视化库。

我最喜欢 Seaborn 的是它巧妙的语法和易用性。它允许创建只有 3 个功能的公共图。

  • Relplot:用于创建关系图
  • 分配图:用于创建分配图
  • Catplot:用于创建分类图

这 3 个功能为创建和定制不同类型的图提供了图形级界面。我们将通过几个例子来理解这些函数的用法。

这些例子将基于一个超市数据集。以下是对它的概述。我已经在 Kaggle 上排除了它的原始版本中的一些列。我们从导入库和读取数据集开始。

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(style='darkgrid')df = pd.read_csv("/content/supermarket.csv", parse_dates=['date'])df.head()

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

(图片由作者提供)

该数据集包含零售企业的销售数据。

重新绘图

relplot 函数用于创建关系图,即线形图和散点图。这些图提供了变量之间关系的概述。

让我们首先创建单价和总价列的散点图。我们指定数据帧和列名。种类参数用于选择绘图类型。

sns.relplot(data=df, x='unit_price', y='total', kind='scatter')

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

(图片由作者提供)

它是一串直线,因为总价等于单价乘以决定直线斜率的数量。

让我们也使用 relplot 函数创建一个线图。我们可以画出每天的总销售额。第一步是按日期对销售额进行分组,然后计算总和。

df_sub = df[['total','date']].groupby('date').sum().reset_index()df_sub.head()

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

(图片由作者提供)

我们现在可以创建线图。

sns.relplot(data=df_sub, x='date', y='total', kind='line',
            height=4, aspect=2)

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

(图片由作者提供)

我们使用高度和纵横比参数来调整绘图的大小。aspect 参数设置宽高比。

显示

displot 函数创建分布图,这些分布图为我们提供了数字变量分布的概况。我们可以用 displot 函数创建直方图、kde 图、ecdf 图和 rug 图。

直方图将数值变量的值域划分为离散的区间,并计算每个区间中数据点(即行)的数量。让我们创建一个总销售额的直方图。

sns.displot(data=df, x='total', hue='gender', kind='hist',
            multiple='dodge', palette='Blues', height=4, aspect=1.4)

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

(图片由作者提供)

hue 参数根据给定列中的不同值来分隔行。我们已经将性别列传递给了色调参数,因此我们可以分别看到女性和男性的分布。

multiple 参数决定不同类别的条形如何显示(“减淡”表示并排)。使用色调变量时,调色板参数用于选择调色板。

这些函数的一个优点是参数基本相同。例如,它们都使用色调、高度和外观参数。这使得学习语法更容易。

kde 图创建了给定变量(即列)的核密度估计,因此我们得到了概率分布的估计。我们可以通过将 kind 参数设置为“kde”来创建 kde 图。

sns.displot(data=df, x='total', hue='gender', kind='kde',
            palette='cool', height=5, aspect=1.4)

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

(图片由作者提供)

猫图

catplot 函数用于创建分类图,如箱形图、条形图、条形图、小提琴图等。使用 catplot 函数总共可以生成 8 个不同的分类图。

箱线图显示了变量在中位数和四分位数方面的分布。这是每个产品线的单价列的方框图。

sns.catplot(data=df, x='prod_line', y='unit_price', kind='box',
            height=6, aspect=1.8, width=0.5)

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

(图片由作者提供)

宽度参数调整框的宽度。

以下是箱线图的结构:

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

箱线图的结构(图像源)

Median 是对所有点进行排序时位于中间的点。Q1(第一或下四分位数)是下半部分的中位数,Q3(第三或上四分位数)是上半部分的中位数。

我们还可以创建一个带状图来检查不同产品线的单价。带状图不使用方框,而是用点来表示每个数据点。因此,它就像一个数字和分类变量的散点图。

让我们为分支和总计列创建一个带状图。

sns.catplot(data=df, x='branch', y='total', kind='strip',
            height=5, aspect=1.3)

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

(图片由作者提供)

点的密度让我们对分布有一个大致的概念。看起来分支 C 在顶部区域有更多的数据点。我们可以通过检查每个分支的平均总额来证实我们的直觉。

df[['branch','total']].groupby('branch').mean() total     
branch
--------------------                              
  A       312.354029                 
  B       319.872711                 
  C       337.099726

C 的平均值高于其他两个分支的平均值。

catplot 函数下的另一种绘图类型是小提琴绘图。这是 plto 和 kde 图的结合。因此,它提供了一个变量分布的概况。

例如,我们可以创建一个 violin 图,该图包含上一个示例中用于带状图的列。我们需要做的就是改变 kind 参数。

sns.catplot(data=df, x='branch', y='total', kind='violin',
            height=5, aspect=1.3)

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

(图片由作者提供)

C 支的小提琴比上面的另外两把粗一点。

结论

relplot、displot 和 catplot 函数可用于生成 14 个不同的图,这些图几乎涵盖了我们通常在数据分析和探索中使用的所有可视化类型。

这些函数提供了一个标准的语法,使得理解它们变得非常容易。在大多数情况下,我们只需要改变 kind 参数的值。此外,定制图的参数也是相同的。

有些情况下,我们需要使用不同类型的地块。但是,我们需要的大部分都在这三个函数的范围内。

感谢您的阅读。如果您有任何反馈,请告诉我。

你的人工智能项目注定要失败的 3 个迹象

原文:https://towardsdatascience.com/3-signs-that-your-ai-project-is-doomed-9e3ab82d9425?source=collection_archive---------5-----------------------

你知道机器学习的开始并不顺利,当…

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

改编自维基百科

“在你做过的机器学习战略咨询中,与哪种产品团队合作最具挑战性?”

在咨询了数百个机器学习项目后,我学会了关注客户有搬起石头砸自己脚危险的早期预警信号。以下是我最喜欢的三个:

  1. 他们是抱有不切实际期望的营销受害者
    **特例:愿意不惜一切代价推出
    特例:无数据(及其他基本要求)
  2. 缺乏对技能多样性的尊重
    *特例:有毒势利
  3. 团队不知道谁是负责人
    *特例:尖头发老板

详情如下。(如果你觉得我写的东西有用,最完美的感谢是转发。)

不切实际期望的头号营销受害者

有很多关于人工智能的炒作和胡说八道,所以当团队从最新的电视节目中直接来找我时()“…但是如果你现在打电话,我们会提供 50 个免费的深度神经网络,你可以组成一个邪恶的组合!”我知道我必须打消各种不切实际的期望。

科幻小说是一个糟糕的老师…但却是销售高手。

如果你认为 ML/AI 很神奇,你做出的项目决策就有不系安全带等同于超速行驶的危险。所有人深呼吸!

ML/AI 更多的是给你的团队一个编程的替代方法,这适合的一部分(不是全部!)任务比传统方法好得多。这既无聊又非常有用…这正是我喜欢它的原因。一个冷静的团队,呃,我的意思是,由价值而不是炫目所驱动的团队更有可能在人工智能领域取得成功。

特例:愿意不惜一切代价发射

有时候,团队并不关心用 ML/AI 解决真实的业务问题。相反,他们是为了视觉:他们希望能够谈论他们的“人工智能业务”他们没有任何标准,也不在乎是否可行。他们只是想推出一些热门的 AI。

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

图片:来源

问题是,他们对自己的目标不诚实。如果他们是,我会帮他们找一个简单的玩具应用,不碰任何太重要的东西,垃圾的话也不会伤害任何人。本质上是成人学生的家庭作业。我甚至会提出一些想法,告诉你如何挑选一个听起来令人印象深刻但又无害的。每个人都会是赢家。

本质上是成人学生的家庭作业。

唉,以我的经验来看,这样的团队很少承认,直到为时已晚。有时候他们自己都不承认。相反,他们选择了一个任务关键型(令人印象深刻)的应用程序,但故意忽略了任何关于确保他们的系统高性能和可靠的谈论。(“哎呀,让它正常工作太繁琐了。我就 在事后设置性能栏吧。”)

如果团队诚实地(至少对自己)说出他们对于 ML/AI 项目的真正目标,并围绕这些目标构建他们的策略,一切都会变得更好。稍后添加营销亮点。

特殊情况:无数据(和其他基本要求)

既然机器学习是神奇的,每个人都在做,你也可以!即使你没有数据!对吗?不对。

你的项目需要满足一堆条件,你才能认真考虑 ML/AI。仔细检查这份包含 22 个项目的清单,看看你的项目是否没有成功的可能。把它想象成你的免费人工智能战略顾问盒。

*http://bit.ly/quaesita_realitycheck

#2 不尊重技能多样性

项目头疼的另一个迹象是缺乏对技能多样性的尊重。事实上,让我告诉你我最不喜欢的问题。而是:“你会如何描述理想的人工智能人?”

不要陷入过度关注在过程中间发挥作用的角色的陷阱。

我非常不喜欢这个问题,因为它假设应用人工智能是一个单人牛仔的游戏,而实际上它是一项团队运动。没有一个员工具备成功所需的所有技能。创建人工智能解决方案需要一个村庄(特别是如果我们谈论的是大规模的任务关键型解决方案),如果你的团队缺少任何所需的技能,整个事情都会崩溃。如果你没有能力与跨学科团队合作,你会在应用人工智能方面遇到问题……因为这是完成工作所需要的。

如果你一直试图雇佣一个人做所有的事情,难怪你会抱怨人才短缺!

我发现,要给那些认为像他们一样的工人是最好的、最聪明的(其他人都是白痴)的人提建议,需要花费我更多的耐心和精力。我遇到过人工智能研究人员,他们似乎认为,我所说的技能多样的工人是指从不同顾问那里获得计算机科学/人工智能博士学位的人。我遇到过完全由工程师组成的团队,他们不知道为什么如果用户体验设计部分由一个 UX 的专业人士处理会更好。(你以为会编码就懂设计?这是什么年代,90 年代?)

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

迷因:来源

一定要赞美你的专家的技能多样性,并确保团队中的每个人至少对团队中其他人的工作有所了解。在这里了解更多关于典型 AI 项目的角色:[ 1 ,[ 2 ,[ 3 ,[ 4

特例:有毒势利

人工智能行业充斥着一种特殊的坏苹果,这种恶霸将人工智能工作者分成两类:合法的喜欢自己的人工智能参与者和几乎不必要的附属品。是的,我在看着你们,AI 研究人员和工程师。你们中的许多人都是可爱的人,他们渴望接受背景不同于自己的同事的不同贡献(如果你花时间指导他们,让他们跟上他们正在努力解决的问题,这是加分的),但你们中的一些人坐在那里抱怨说,没有博士学位的人应该离开你的人工智能草坪。

请停下来。

一个更好的策略是拥抱技能多样性,教会每个人欣赏不同的角色,有效地合作,并鼓励相互尊重。学会欣赏你同事擅长的事情,即使这些事情与你自己的技能不相干。如果你不是为了做一个好人而做,那就为了项目成功而做。与那些与我们不同的人合作会让我们更加强大。如果这听起来像是一派胡言,那就让我把你引向无情理性最冷酷的堡垒:你的经济学教科书。翻开关于比较优势的那一章,开始阅读……它会说完全相同的事情(数学方面,因为常识似乎对你不起作用)。

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

巨美的书呆子群很少对你有好处。图片:来源

在应用人工智能领域有许多不同种类的合法参与者,根据其难度,你的项目可能需要他们。即使你找到一个神奇的独角兽,他拥有所有技能(同时是完美的工程师、完美的机器学习研究员、完美的 UX 设计师、完美的统计学家、完美的产品经理、完美的团队领导、完美的分析师、完美的领域专家、完美的商业决策者,以及所有其他人……集于一身),也会有太多的工作让他们独自去做,他们将被迫专业化。所以马上接受专家吧!你不会坚持雇佣奥运金牌选手帮你搬家具,对吧?好吧,不要做科技等价物。拒绝尊重伦理学家关于伦理的观点,除非他们有第二个计算机科学博士学位(真实故事)是愚蠢的,克服你自己。

不要试图自己做所有的事情,要学会如何检查接力棒是否在你的队友之间正确传递。

要从事应用 ML 工作,你不需要成为机器学习教授。你只需要在你的部分成为一个向导,并且很好地理解你的团队成员做什么(尽管不是你自己如何做)。例如,你的机器学习工程师需要能够理解来自业务领导的请求,他们需要能够评估这些人何时正确地完成了他们的工作,如果有糟糕的请求进来,他们应该阻塞流程。他们不应该屈服于不明智的,冲动的胡说八道。

当劳动力短缺时,人们会挺身而出去填补空缺。花点时间想想什么样的性格不太可能被有毒的势利感所吓倒。

哦,当我谈到这个话题时,有毒的欺凌和势利还有另一个影响:理智的新手被赶出去——被瘫痪的骗子综合症击垮,而不是被你辅导——而无耻的新手却没有被吓住。这就是我和我的朋友们开玩笑地称之为人工智能的第二种冒名顶替综合症(生存偏爱真正的冒名顶替者,所以留在游戏中的人不成比例地是时髦的骗子,他们甚至不明白他们不明白的东西)。邓宁-克鲁格变得如此丑陋,就像 T2 的弗雷迪·克鲁格。我还大胆猜测,这对该领域的多样性努力没有任何好处。

#3 团队不知道谁是负责人

当项目缺少一个熟练的领导者、发起人和决策者时,团队的努力很有可能被浪费掉…或者更糟。

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

这里谁说了算?"图像:来源

*“你们大人呢?”*是当除了产品负责人/ 决策者之外的所有人都出席第一次会议时,每个优秀的人工智能战略顾问都在内心尖叫的东西。

如果谁说了算,我们就走运了。也许那些把老板留在家里的人正在做一些探索/原型制作来节省决策者的时间(值得称赞!)或者也许团队已经进展过了第 1 步(甚至更好)并且正在寻求高级建议。

不幸的是,经常向我寻求建议的人没有考虑到谁将负责项目中决策者的角色。他们希望在他们的作品上洒一些机器学习魔法精灵粉,因为他们所有的朋友都在这么做。啊哦!事实证明,决策者在项目中起着最重要的作用——在此了解更多——所以你不应该在没有决策者的情况下开始。即使你想出了很棒的东西,你的努力也很有可能会白费。

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

图片:来源

特例:头发尖尖的老板

这种情况的一个特例是“领导者”不称职。这种情况有缺席决策者设置的所有乐趣,还有囚犯试图欺骗精神病院给他们钥匙的额外奖励。熟练的领导在 ML/AI 中甚至比在传统软件项目中更重要。想了解更多,请看文章,在这篇文章中,我称 AI 中的尖头发老板为“天启四骑士之一”

感谢阅读!喜欢作者?

如果你渴望阅读更多我的作品,这篇文章中的大部分链接会带你去我的其他思考。不能选择?试试这个:

https://medium.com/hackernoon/the-decision-makers-guide-to-starting-ai-72ee0d7044df

一如既往,您的所作所为决定了您的社区将会听到谁的声音。请在社交媒体上分享好的、有用的文章,这样它就能超越垃圾。无为是杀死一篇文章的最好方法。(哦,你知道 Medium 允许你点击赞按钮 50 次来获得起立鼓掌吗?)

人工智能课程怎么样?

如果你在这里玩得开心,并且你正在寻找一个为初学者和专家设计的有趣的应用人工智能课程,这里有一个我为你制作的娱乐课程:

在这里欣赏整个课程播放列表:bit.ly/machinefriend

与凯西·科兹尔科夫联系

让我们做朋友吧!你可以在 TwitterYouTubeSubstackLinkedIn 上找到我。有兴趣让我在你的活动上发言吗?使用表格联系。*

你可能成为伟大的分析工程师的 3 个迹象

原文:https://towardsdatascience.com/3-signs-you-could-be-a-great-analytics-engineer-fe894fa1457e?source=collection_archive---------14-----------------------

如果你有这些技能,也许是时候尝试一下这个新角色了。

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

伊恩·施耐德在 Unsplash 上拍摄的照片

最近几个月,我看到越来越多的分析工程师的招聘信息。每个公司都希望有人既有数据分析又有工程技能。雇佣一个人是最划算的。

在做了两年数据工程师后,我在 6 个月前成为了一名分析工程师。我从未回头。我很高兴我决定申请一个我从未听说过的职位。它最终成为了我的完美职位。

以下是一些迹象,它可能也是你和你的技能组合的理想角色。

你喜欢参与工程和商业战略。

作为一名数据工程师,我每天都和业务团队一起工作,但我从来没有机会做出实际的业务决策。我正在构建团队在没有我的情况下决定的工具和流程。

老实说,我很幸运能与商业团队互动。这让我对任务交给工程师之前发生的事情有了一些了解。这让我意识到我想成为做出战略选择实施这些选择的人。

我开始思考我每天想要完成的任务,这些任务既包括制定公司如何使用数据的战略,也包括建立处理这些数据的流程。分析工程师的工作描述听起来就像这样。

作为分析工程师,业务团队是您的利益相关者。你每天都和他们互动。你根据你的分析帮助他们指出正确的方向。你们一起工作,为营销、增长和产品决策提供信息并推动决策。

写 SQL 是你最大的超能力。

作为一名分析工程师,你睡觉、吃饭、呼吸 SQL。或许比数据分析师更重要。SQL 是你的 dbt 数据模型的核心。您需要知道编写和运行代码的最有效方式,以便这些模型快速可靠。

在用 dbt 做数据工程师之前,我对 SQL 了解不多。这是我不仅在工作中,而且通过做面试练习题学到的东西。面试问题向我介绍了不同的概念,比如窗口功能,这是我在工作中从未接触过的。你会惊讶于你从他们身上学到了多少。

所以,如果你对 SQL 了如指掌,也不要放弃尝试分析工程师的工作。这是比较容易学的技术技能之一。练习和重复真的能造就完美!

更重要的是,你需要喜欢写 SQL。如果你不喜欢这种语言,你可能会觉得这个角色重复又无聊。就我个人而言,我喜欢写 SQL,所以这对我来说是一种享受。我每天还在学习新的东西,比如[datepart()](/8-sql-date-functions-you-need-to-know-c6c887a8394f)函数。

你在设置系统方面取得了巨大的成功。

最后,如果你喜欢设置系统,你会喜欢成为一名分析工程师。这是什么意思?你从过程和组织中茁壮成长。

您需要构建数据管道,构建数据仓库,设置数据治理实践,并记录数据模型。这些事情中的许多将是公司从一开始就没有实现的事情。你将是那个从头开始建立这些并付诸行动的人。

如果你喜欢做决定,并且对自己的技能有信心,你可以通过这种方式在公司内部产生很大的影响。这是数据驱动型组织的支柱。你能成为建造它的人有多酷?

看到你建立的组织被其他分析师和领导团队所利用,这是非常令人满足的。你作为分析工程师的工作不会被忽视。它阻碍了公司内每个接触数据的人的工作。

结论

虽然作为一名分析工程师,你确实需要某些品质才能成功,但我坚信你会取得自己的成功。如果你知道你想追求这个目标,那就去实现它。投入工作掌握 SQL,学习 dbt,架构数据模型。

分析工程非常适合对工程和商业感兴趣的人。确保你喜欢这两个部分,因为你每天都要和两个团队一起工作。这将给你机会发展你与商业相关的沟通技巧和技术技能。剩下要做的就是申请了!求职愉快!

当你来自另一个领域时,你准备好接受机器学习工作的 3 个标志

原文:https://towardsdatascience.com/3-signs-youre-ready-for-a-machine-learning-job-when-you-ve-come-from-another-field-ffc23a0e0d14?source=collection_archive---------16-----------------------

你永远不会觉得自己准备好了,但有迹象表明是时候了

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

马丁·比约克在 Unsplash 上的照片

从另一个领域过渡到机器学习是艰难的。这不仅仅是因为你必须约束自己自学,还因为有很多东西要学,还有很多我们不知道自己不知道的东西。

例如,我们知道我们必须学习的主要机器学习算法,但我们不知道如何衡量我们是否真的准备好工作了。当我们试图衡量自己的技能时,通常会发生的情况是,我们最终会将自己与已经在该领域工作了 5 年以上的人进行比较。结果如何?压力。

你可能听说过“你永远不会觉得自己准备好了”这句话,这是真的。我同意。但是,有一些非常明显的迹象表明你已经完全准备好开始申请了。m

1.你不觉得有挑战/你觉得无聊

有很多原因会让你感到无聊。可能是你不满足,你不感兴趣,或者你觉得精力充沛,但却无处发泄。

全部有效!

如果你已经可以在考虑 ML ops 最佳实践的同时构建一个机器学习应用程序并将其部署到云服务器,那么你很可能正在遭受上述所有问题的困扰。

工作中一定会有某种成就感。当你不再感受到这种乐趣时,要么是因为你对机器学习并不真正感兴趣,要么是你已经到了不再知道自己不知道什么的地步。

在这种情况下,你需要一个有经验的从业者团队带你更上一层楼。开始申请。

2.你开始质疑自己的方向感

你的方向感让你知道你在哪里,或者该走哪条路,即使在不熟悉的领域徘徊。

宗教人士经常会说缺乏方向是没有目标的结果,在某种程度上,我同意。你不应该等到有了目标感才快乐。

想象一下,如果真是那样,生活会有多悲惨!

当一个人开始质疑他们在机器学习方面的方向感时,通常是因为缺乏对他们已经走了多远的欣赏。

随着你学得越来越多,你越来越难看到你的小进步,这可能会让你觉得你不再学习了——特别是当你把它与你每天都在学习新东西的时候相比时。

假设你满足了你想要的机器学习角色的一般要求,那么是时候申请一份挑战你的工作了,这份工作不同于你单独工作的情况。开始申请。

3.你已经在网上建立了自己的形象

我可以不假思索地列出 15 个你需要在线展示的理由——也许这将是我的下一篇文章。

这里有一个原因:当你从另一个领域过渡到机器学习时,你的简历不会向雇主解释你是谁。

简历只记录了你的技能、以前的工作、证书和成就的历史参考。但是,你是否会被录用取决于招聘经理是否认为你具备在他们的团队中工作的条件,这可以更好地反映你是谁——你在网上的形象可以更好地展示这一点。

如果你已经花了很多时间来建立一个对机器学习非常感兴趣的人的形象,假设你已经满足了技能要求,你就可以开始申请了。

包裹

开始找工作可能是一个可怕的过程。知道什么时候你已经获得了足够的技能来开始申请是很重要的,这样你就不会把你的学习拖得太久。

这些迹象只是一个开始,让我知道我错过了什么其他迹象。

感谢阅读!

如果你喜欢这篇文章,请通过订阅我的免费 每周简讯与我联系。千万不要错过我写的关于人工智能、机器学习和自由职业的帖子。

相关文章

https://medium.com/analytics-vidhya/courses-to-learn-data-science-in-2021-a52e64344e5c </5-things-id-tell-myself-if-i-had-to-learn-machine-learning-all-over-again-3feeb31a9b55> [## 如果我必须重新学习机器学习,我会告诉自己的 5 件事

towardsdatascience.com](/5-things-id-tell-myself-if-i-had-to-learn-machine-learning-all-over-again-3feeb31a9b55)

2021 年新手磨练 Python 技能的 3 个简单问题

原文:https://towardsdatascience.com/3-simple-questions-to-hone-python-skills-for-beginners-in-2021-f12da38f83cf?source=collection_archive---------20-----------------------

破解数据科学面试

初级数据科学家的逐步改进

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

比尔·杰伦在 Unsplash 上的照片

对于初级数据科学家来说,用 Python 编码可能令人望而生畏。相信我,我也经历过。有一次,我在 Leetcode 上绞尽脑汁想出一道简单的关卡题,几个小时毫无进展。

在过去的一年里,我被刻意训练用 Python 编码。我最大的收获是知道什么时候应该进入下一阶段,用更高级的问题挑战自己!如果我们停留在舒适区,练习旧的和熟悉的代码,就没有改进的空间。

要想在 Python 编程方面出类拔萃,我们必须掌握基础知识,并快速进入下一阶段!在今天的帖子中,我列出了我们应该升级的三种情况。

正如你们许多人所知,掌握 Python 已经成为我新的日常事务。它教会了我如何更好地编码,也教会了我个人的成长和学习。我很快会写更多关于这个话题的文章。

TL;速度三角形定位法(dead reckoning)

  • 当我们必须计算每个元素(键)的值时,Python 字典就派上了用场。
  • 使用弹出和推送操作,这样我们就不必更改数据类型。
  • 尽可能采用数学公式。

问题 1:微软和亚马逊的优秀配对数量

-给定整数 num 的数组。
-如果 nums[i] == nums[j]和 i < j.
则一个对(I,j)称为好的-返回好的对的数量。
-https://leetcode.com/problems/number-of-good-pairs/

走过我的思维

微软和亚马逊在他们的数据科学采访中包括了这个问题。我们应该返回等于特定位置要求(i

想到的第一个直觉是使用嵌套的 for 循环(又名,残暴的力量)来迭代序列,并最终返回计数。

解决方案 1:野蛮的力量&一个嵌套的 for 循环

4

它起作用了,但是很慢。一个 for 循环就足够了,更不用说嵌套的 for 循环了,它的时间复杂度是 O(N)。如果迭代次数很大,我们将会遇到运行时间问题。

新手程序员应该寻找更好的替代方案。

解决方案 2:字典和散列表

在这种情况下,字典是存储数据的更好的数据类型,因为它具有键值对属性。初学者可能知道什么是字典,但是很少能够利用键值特性。

我们将元素视为键,将出现次数视为值:对于每一次新的遇到,值增加 1,如果是第一次,则设置为 1。

4

只有一个时间复杂度为 O(N)的 for 循环。快多了!

完整的 Python 代码在我的 Github 上有。

问题 2:阿姆斯特朗数,由亚马逊

-k 位数字 N 是阿姆斯特朗数当且仅当每个数字的 k 次方之和为 N.
-给定一个正整数 N,返回 true 当且仅当它是阿姆斯特朗数。
-https://leetcode.com/problems/armstrong-number/

走过我的思考

亚马逊问这个问题。这是一个典型的数学问题。关键是要按照说明,决定这个数字是否符合标准。

一种简单的方法是将一个整数转换成一个字符串,然后遍历整个字符串,如解决方案 1 所示。

解决方案 1:使用 int()更改数据类型

True

这是一个可以接受的解决方案,但有时公司会设置额外的限制。例如,如果我们不能使用 int()转换数据类型,我们该怎么办?

试试 pop 和 push 操作!

解决方案 2:弹出和推送

弹出和推送操作是在不采用高级数据类型(例如,堆栈/数组)的情况下迭代字符串/整数的聪明方式。

一个简单的例子是合适的。

# pop operation
pop = number % 10 # step 1: obtain the last digit
number /= 10 # step 2: the remaining part without the last digit

# push operation 
temp = rev * 10 + pop 
rev = temp 

让我们看看这个问题是如何解决的。

True

while 循环非常棒。它在不改变数据类型的情况下对数字进行迭代。只有一个问题:我们在 while 循环中改变了 num 的原始值,并使用 num 的副本 num1 进行比较。

我的Github上有完整的 Python 代码。

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

Frans VledderUnsplash 上拍摄的照片

#问题 3:计算素数,作者 FAANG

-计算小于非负数的素数的个数,n .
-https://leetcode.com/problems/count-primes/

走过我的思考

令人惊讶的是,每个 FAANG 公司都问过这个问题。我保证如果我们不知道捷径,它会绊倒我们。

老实说,我的第一反应是迭代这个范围,直到感兴趣的数目,如果它是一个质数,就把它算进去。

解决方案 1:野蛮武力效率不高

3

从理论上讲,如果数量很小,比如我们的例子中的 7 个,这将是可行的。但是对于大值,它超出了运行时间。如果您很好奇,可以将这个数字设置为 100,000,然后运行上面的代码。需要几个小时,甚至几天才能得到结果。

这就是为什么 FAANG 会问一个后续问题:你能改进算法吗?

是的,我们可以!我们可以借助一个数学公式来计算素数的个数,直到一个数。

解决方案 2:厄拉多塞筛

我不知道厄拉多塞的筛子是什么,发现这个网站很有用(链接)。

9592

基本思想是构造一个列表,并将所有值设置为 True,除了前两个位置 0 和 1 不是素数。然后,我们用厄拉多塞的筛公式来判定非素数的位置。最后,我们计算列表的总和。在 Python 中,布尔值 True 等于 1,False 等于 0。因此,sum(primes)返回素数的总数,直到数字 n。

得到结果只需要几秒钟,而不是几天。

我在过去的面试过程中没有遇到过这个问题,不确定如果我们不知道公式会发生什么。面试官能给你一些提示吗?请在评论中让我知道。

我的Github上有完整的 Python 代码。

外卖食品

  • 学习是一个过程,一个只要我们不断练习,不断实践,每个人都能变得更好的过程。
  • 如果我们必须使用嵌套的 for 循环,请检查更好的替代方案。一本字典,也许?
  • 读取字符串/整数有两种方式:1。更改数据类型;2.弹出和推送操作。
  • 数学总是有用的。使用智能公式来减少运行时间。

Medium 最近进化出了它的 作家伙伴计划 ,支持像我这样的普通作家。如果你还不是订户,通过下面的链接注册,我会收到一部分会员费。

https://leihua-ye.medium.com/membership

我的数据科学面试序列

</5-python-coding-questions-asked-at-faang-59e6cf5ba2a0>

喜欢读这本书吗?

请在 LinkedInTwitter 上找到我。

还有,看看我其他关于人工智能和机器学习的帖子。

增强 Python 代码能力的 3 种简单方法

原文:https://towardsdatascience.com/3-simple-ways-to-empower-your-python-code-5897b42dbf28?source=collection_archive---------29-----------------------

编程;编排

让你的 Python 代码简洁高效的简单技巧!

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

SpaceXUnsplash 上拍摄的照片

Python 内置方法永远是最好的!

Python 程序员使用它们快速编写干净高效的代码。以一种更具 Pythonic 风格的方式。

在这里,我将讨论我在 1 分钟或更短时间内掌握的 3 个最强大(但很少使用)的技巧。

我说的干净高效的代码 是什么意思??

易于理解、易于修改、灵活处理错误和执行速度更快的代码!⚡️

让我们跳进来吧!

。get()获取 Python 字典项

停止⚠️现在使用方括号,以访问字典项目。

假设,你有一本如下的字典。

my_dict = {'first_name': 'Michaela',
           'last_name': 'Kraushaar',
           'age': 36,
           'job': 'Pfleger',
           'country': 'Antarktis'}

而且你想访问键的值——countrymy_dict[‘country’]会工作的最好。

但是,如果你提到的键在字典里不存在呢??

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

字典中的关键字错误|按作者排序的图像

就像上面的例子一样,试图访问键的值— *city,*将抛出一个KeyError并中断程序的执行。

当然,这可以使用try — except语句来处理,但是看你自己如何快速的使用***.get()**方法。*

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

dictionary.get(key)与 dictionary[key]在 Python | Image by Author 中

。得到(钥匙)才是金科玉律!🏆

如果字典中没有这个键,这个字典方法将简单地返回None

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

Python 中的 dictionary . get(key )|作者图片

**.get()**方法不仅保持代码整洁、易于理解,还能随时处理KeyError

最重要的是,如果字典中没有这个键,方法.get()允许您自由设置要返回的值*。*

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

如果字典|按作者排序的图像中不存在关键字,则获取所需的值

这个值不仅限于字符串或数字,你还可以使用一个函数作为默认值。

在 for 循环中枚举()

通常,我们需要迭代一个范围或 iterable,比如 list、dictionary,同时处理每个条目的索引。

根据我的观察,人们倾向于在 for 循环中使用range(len(iterable))

然而,使用enumerate(iterable)非常有效,因为它跟踪 iterable 的每一项及其索引。♻️

下面是如何使用这两者的快速概述!

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

如何在 Python | Image by Author 中迭代范围

range(len(mylist))enumerate(mylist)产生完全相同的结果,但是后者使代码更加简单。

E 代表列举,E 代表优雅!!!🏆

使用enumerate(mylist)的另一个好处是,你可以完全自由地决定何时开始索引!

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

从特定编号开始索引|按作者排序的图片

此外,enumerate()还可以用来生成索引和项目元组,如下所示。

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

按作者在 Python 循环|图像中生成索引项元组

f-strings 来连接和打印字符串

f-string 或格式化的* 字符串文字format() 方法的更简单实现。🏆*

这种 f 字符串在要格式化的字符串的开头有一个字母***f*** ,在字符串中有多个占位符***{}*** 。看看下面,

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

Python 中的 f 字符串|作者图片

这里有一些用 Pythonic 方式编写代码的奇妙的字符串方法。

* [## Python 中五个必须知道的字符串方法

towardsdatascience.com](/five-must-know-string-methods-in-python-e97925d12eec)*

总结一下,

这些都是小事,但是可以让你的代码干净、易于修改并且高效运行。此外,这些技巧通过轻松处理错误来避免意外的代码中断。

现在,你可以通过 在这里报名 成为媒介会员,阅读我和其他作家发表的所有故事。如果你这样做,我会得到一小部分你的费用,没有额外的费用给你。欢迎加入我的电子邮件列表,了解我写作的最新进展。

📚我这里有更多有用的文章→

*1\. [5 Most Powerful One-Liners You Should Know in Python Programming](/5-most-powerful-one-liners-you-should-know-in-python-programming-c9d49a89b7f3?source=your_stories_page----------------------------------------)
2\. [4 Awesome Pandas Methods To Quickly Analyze Any Dataset](/4-awesome-pandas-methods-to-quickly-analyze-any-dataset-65d2252af6e8?source=your_stories_page----------------------------------------)
3\. [3 (and Half) Powerful Tricks To Effectively Read CSV Data In Python](/3-and-half-powerful-tricks-to-effectively-read-csv-data-in-python-c4699a4f9d07?source=your_stories_page----------------------------------------)
4\. [3 Time-Saving Python Tricks](/3-time-saving-python-tricks-a017f4215aeb?source=your_stories_page----------------------------------------)*

感谢您的阅读和投入时间!

在开始第一份数据科学工作前获取经验的 3 个简单方法

原文:https://towardsdatascience.com/3-simple-ways-to-get-experience-before-your-first-data-science-job-7e977320c5bd?source=collection_archive---------18-----------------------

没有工作经验如何获得数据科学工作

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

Icons8 团队Unsplash 上的照片

获得一份数据科学的工作并不容易。大多数公司通常要求应聘者在该领域至少有两年的工作经验。这使得大多数人闯入数据科学变得极其复杂。

然而,有一些方法可以让你自己获得真实世界的数据科学经验。您只需要专注于解决数据科学家在工作中遇到的问题、任务和项目。

有大量的教程教你成为一名数据科学家需要学习的东西,但是只有很少的资源让你自己去实践它们。这就是我收集大量资源的原因,这些资源将帮助你发展每个数据科学家都应该具备的技能,并获得你需要的经验。

1.解决 SQL 问题

SQL 是可以帮助你在不同岗位找到工作的技能之一,数据科学家也不例外。

对于那些还在学习 SQL 基础知识的人(或者像我一样 SQL 技能生疏的人),在模式有数千个教程可供选择。在那里,您可以学习大量的 SQL 概念,如何时使用 SELECT、WHERE、CASE 等。

在解决下面列出的实际 SQL 问题之前,一定要学习 SQL 的基础知识。

基本练习

不同的网站提供不同数据库管理系统(PostgreSQL、MySQL、SQL Server 和 Oracle)的免费 SQL 练习。他们将通过订阅计划锁定答案,但也可以选择查看其他人的解决方案。

  • 黑客排名(hacker rank):提供各种不同难度的挑战。每个挑战都有一个问题陈述和 SQL 编辑器(DB2、MySQL、SQL Server 和 Oracle ),您可以在其中编写和提交您的解决方案。
  • 这是我最喜欢的一个,因为它免费提供了 500 多个 SQL 和 Python 的数据科学编码问题。与 HackerRank 不同,Stratascratch 给出了如何解决一个练习的提示,并显示了预期的输出。不幸的是,它只支持 PostgreSQL。

SQL 问题

Mode 有一个叫“SQL 分析训练”的板块,里面有实用的 SQL 问题。它们比前面提到的参考资料中的任何练习都更完整,这很好,因为它们类似于您作为数据科学家将看到的现实生活中的 SQL 问题。

一些 SQL 问题包括:

  • 调查用户参与度的下降
  • 了解搜索功能
  • 验证 A/B 测试结果

2.使用熊猫解决数据科学家经常面临的任务

熊猫是每个数据科学家都需要具备的必备技能。为什么?数据科学家在清理、争论和准备建模数据时使用熊猫。通过解决这些任务,你可以获得真实世界的经验。事实上,数据科学家几乎 80%的时间都花在收集、清理和准备数据上

熊猫练习

在这里你会发现很多基本的熊猫练习,以及其他用于数据科学的 Python 库的练习。请记住,熊猫不是一个孤岛——有时你会将 Numpy 与熊猫一起使用来解决问题。

一旦你解决了基本的熊猫练习,检查一下这个仓库,里面有更具挑战性的练习来练习熊猫。与第一种选择不同,这种回购侧重于熊猫演习。在那里,您可以找到说明、没有代码的解决方案以及有代码和注释的解决方案。该存储库涵盖了过滤、排序、分组、可视化、时间序列等方法。

解决数据科学任务

在你成功完成所有练习后,我建议你用熊猫项目来挑战自己。熊猫大部分覆盖的一个数据科学任务是数据清洗,所以去 Kaggle ,搜索任何你想要的数据集,用熊猫来清洗。

例如,您可以检查这个网飞电影和电视节目数据集,然后通过删除或替换丢失的数据、去除离群值、删除重复项、规范化文本等方式对其进行清理。如果你想知道我是如何清理这个数据集的,看看我做的这个指南

3.解决一个数据科学项目

在找到工作之前获得现实生活中的数据科学经验的最好方法是解决一个项目。让我们来看看你应该解决的不同类型的项目。

卡格尔项目

你可能知道, Kaggle 是最好的机器学习和数据科学社区之一。在那里,你会发现数以千计的免费数据集以及一些常见数据科学项目的解决方案。该解决方案通常包括现实世界中的数据科学任务,如清理数据、争论、挖掘数据、构建训练集和改进算法。

这里有一些在 Kaggle 中解决的项目,它们帮助我在我的第一份数据科学工作之前获得了现实生活中的经验。

**客户流失预测:**在商业中“流失”代表客户停止与某个实体做生意的比率。由于其与公司的相关性,客户流失预测被用于许多行业(电信、银行等)。

在这个 Kaggle 项目中,我们的任务是通过预测客户是否会流失来防止银行客户流失。

数据集及源代码:银行客户流失预测

文本分类:文本分类包括将预定义的类别分配给自由的开放式文本。这方面的一些应用是情感分析、主题标记和垃圾邮件检测。有二元文本分类(例如,垃圾邮件与非垃圾邮件、积极情绪与消极情绪)和多类文本分类。

如果你需要一些灵感,这里有两个分步指南来解决文本分类项目:

在这些指南中,你会找到解决这两个项目的数据集。

解决自己的项目

解决 Kaggle 项目并把它们写进简历是好的,但你知道什么更好吗?解决一个你热爱的项目。

选择一个你非常喜欢的主题(例如,金融、健康、体育),然后使用你所有的数据科学技能来解决它。陈述问题和应该回答的问题,收集数据,然后用你在 Python、机器学习、统计学、数学方面的知识去解决那个问题。

一个独特的项目将帮助你脱颖而出。例如,我构建了一个预测足球比赛结果的简单模型。在采访中,由于我对足球的了解,我更容易谈论我的见解、局限性和解决这个项目的方法。

在下面的文章中,你会发现 5 个项目的例子。

</5-solved-end-to-end-data-science-projects-in-python-acdc347f36d0>

与 3k 以上的人一起加入我的电子邮件列表,获取我在所有教程中使用的 Python for Data Science 备忘单(免费 PDF)

如果你喜欢阅读这样的故事,并想支持我成为一名作家,可以考虑报名成为一名媒体成员。每月 5 美元,让您可以无限制地访问数以千计的 Python 指南和数据科学文章。如果你使用我的链接注册,我会赚一小笔佣金,不需要你额外付费。

https://frank-andrade.medium.com/membership

每个数据科学家都应该知道的 3 项软技能

原文:https://towardsdatascience.com/3-soft-skills-every-data-scientist-should-know-f6f44a6bd2e4?source=collection_archive---------15-----------------------

意见

深入了解数据科学的专业方面

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

Unsplash【1】上拍摄的气候现实项目。

目录

  1. 介绍
  2. 利益相关者关系
  3. 问题陈述定义
  4. 成果交流
  5. 摘要
  6. 参考

介绍

教育项目,无论是在线课程,甚至是一篇文章,还是本科和研究生项目,都经常忽视数据科学的 专业 方面。当然,学习高度复杂的机器学习算法和模型部署非常重要,但作为专业数据科学家或更面向客户的数据科学家,数据科学的其他一些方面也特别重要。顾客也不一定是指产品的顾客,而是你公司的顾客,就像利益相关者一样。话虽如此,我们还是来讨论一下每个数据科学家在从数据科学教育专业的学生转变为专业数据科学家时应该知道的三项关键软技能。

利益相关者关系

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

活动创作者Unsplash【2】上的照片。

这一点既是一种技能,也提醒你,作为一名数据科学家,你不是一个人在工作。软技能本质上是与沟通相关的技能,不同于其他技能,如 Python 或更具体的、与他人无关的技能。

你将不得不习惯于和公司里过多的其他人交流。大多数情况下,项目是由利益相关者领导的,利益相关者是您公司中的一个人,他提出了要求,因此组织了一个团队,通常由数据科学家、产品经理(大多数情况下是利益相关者自己)、数据工程师、软件工程师和基于您正在从事的项目的专家组成。

话虽如此,以下是一些在你的公司运用这种技能的可行方法:

  • 将数据科学术语分解成任何人都能理解的内容

例如,这是一个向利益相关者解释数据科学的很好的例子

—“让我们为我们的模型使用一个监督的 CatBoost 回归算法来预测目标变量

太好了—“我们可以利用过去的数据输入我们的算法,这将有助于预测未来的价值

  • 通过参加围绕产品和研究的会议,而不仅仅是数据科学会议,致力于关系本身
  • 熟悉公司 KPI(关键绩效指标),因为数据科学的许多目标是从您将构建的模型的效果来改进这些 KPI。例如,熟悉至少 5 到 10 个关键绩效指标,如clicks per useraverage time to drive等。—这些通常取决于公司,而有些则更通用,可适用于大多数公司。了解公司的语言也很重要,KPI 是该语言的主要术语之一。

问题陈述定义

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

Jac AlexandruUnsplash【3】上拍照。

既然你已经和你的利益相关者建立了关系,你就能更好地和他们一起定义问题和解决方案。涉众很可能不知道算法是如何工作的,因为那不是他们的工作,对他们也不重要,但是他们需要知道what the predictions arehow often等等。话虽如此,我将给出另一个对你和涉众都有用的问题陈述的很好的例子。

——“使用数据科学团队的机器学习算法,可以更容易地预测电影中人数的利用率,因此我们应该尝试计算以前的统计数据,以了解有多少人将观看电影

那么,它有什么问题呢?

  • 在表述问题时,不要给出可能的解决方案——这会限制机会
  • 太长了
  • 很难看出实际的问题是什么
  • 有时,利益相关者会提供一个冗长的、措辞复杂的解决方案,而实际的数据科学模型只是解决方案的一部分

太棒了——我们不知道有多少人会去看一部特定的电影

这有什么不对?

  • 是的,大多数时候,简单的措辞是最好的
  • 现在,我们来看看解决方案,例如算法,并讨论可能的数据或特性
  • 它很容易突出或隔离我们不知道的东西——问题

总的来说,尽你所能,看待问题的最好方法是用最简单的术语来定义它。当然,你可以在此基础上更进一步,变得更具体,但从更一般的开始会让所有相关方更容易真正理解为什么需要帮助来解决某个特定问题,也许不仅仅是数据科学家可以帮助解决这个问题。

成果交流

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

Unsplash【4】上由 Adeolu Eletu 拍摄的照片。

类似于上面的技能趋势,我们想把重点放在与沟通相关的你可以改进的软技能上。例如,保持事物简单易懂是成为一名成功的数据科学家的关键。不要试图抛出复杂的数学和令人困惑的统计数据,而是关注模型的结果如何影响业务。

以下是在交流数据科学模型结果时需要考虑的一些事项:

  • 模型的一般影响是什么?
  • 该模型的生产成本是多少?
  • 目标是什么,这个模型达到目标了吗?
  • KPI( s )的增长百分比是多少?例如,“由于这种数据科学模型,对于 80%的人来说,我们能够预测电影院中的人数在± 10 人以内”。
  • 使用可视化图形或更多来描述你的结果,最简单的是最好的

最重要的是记住你的模型对业务的影响,包括时间、金钱、产品和可伸缩性等概念。

摘要

这三项技能通常不是教出来的,而是在您的数据科学职业生涯中学习到的。也就是说,如果你已经是一名数据科学家,那么事先研究这些概念,并在当前公司改进它们,不仅对你自己有利,最终对你工作的公司也有利。

总而言之,以下是每个数据科学家都应该知道的三项关键的、软性的专业技能:

* Stakeholder Relationship* Problem Statement Definition* Results Communication

我希望你觉得我的文章既有趣又有用。如果你同意或不同意这些技巧,请在下面随意评论。为什么或为什么不?你还能想到哪些在学习数据科学时经常被忽视的技能?你通常如何练习较少的技术技能,取而代之的是更注重软技能的技能?感谢您的阅读!

请随时查看我的个人资料、 马特·普日比拉 等文章,也可以在 LinkedIn 上联系我。

参考

[1]照片由气候现实项目Unsplash(2017)上拍摄

[2]2018 年活动创建者Unsplash 上的照片

[3]图片由 Jac AlexandruUnsplash(2020)上拍摄

[4]Adeolu Eletu 在 Unsplash 上拍摄的照片,(2015)

Python 熊猫复制警告设置的 3 种解决方案

原文:https://towardsdatascience.com/3-solutions-for-the-setting-with-copy-warning-of-python-pandas-dfe15d62de08?source=collection_archive---------3-----------------------

永远不要忽略警告。

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

照片由 NeONBRANDUnsplash 拍摄

如果你曾经对熊猫进行过数据分析或操作,你很有可能至少遇到一次SettingWithCopy警告。

当我们尝试使用链式索引进行赋值时,会出现此警告,因为链式索引具有固有的不可预测的结果。

以下是链式索引的样子:

df[df["column_a" > 5]["column_b"]

第一部分筛选 a 列中的值大于 5 的行,第二部分从筛选的数据框中选择 b 列。

问题是这种链式索引可能会返回一个视图或副本。

如果是视图,那么我们所做的更改也会反映在原始数据框中。例如,以下代码将更新原始数据框。

df[df["column_a" > 5]["column_b"] = 5

但是,如果返回的是副本,则不会在原始数据框中进行更改。

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

查看与复制(图片由作者提供)

这就是熊猫在出现这种暧昧情况时会警告我们的原因。

在这篇文章中,我们将讨论导致SettingWithCopy警告的 3 种解决方案。

先来看一个给我们警示的真实案例。我创建了一个包含 7 行 4 列的样本数据框。

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

df(作者图片)

我想将不在产品组 PG2 中的产品价格降低 50%。这是我想到的第一个解决方案。

df[df["product_group"]!="PG2"]["price"] = df[df["product_group"]!="PG2"]["price"] * 0.5SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.

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

df(作者图片)

由于链式索引和所选产品的价格没有变化,我们收到了一个警告。

解决方案 1

第一种选择是使用 loc 方法。

df.loc[df["product_group"]!="PG2", "price"] = df.loc[df["product_group"]!="PG2", "price"] * 0.5df

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

df(作者图片)

我们现在可以看到数据框中的价格变化。

loc 方法允许在单个步骤中进行筛选和选择,因此不会出现链式索引。

解决方案 2

另一种方法是 where 函数,它可用于根据条件更新值。

where 函数的工作方式如下:

  • 它接受条件和值
  • 当条件为真时,它保持原始值
  • 当条件不成立时,它用给定值更新原始值

下面的代码片段没有改变产品组 PG2 中产品的价格,但是将其他产品的价格减半。

为了保存数据框中的更改,将 inplace 参数设置为 true。

df["price"].where(
   df["product_group"]=="PG2", df["price"] * 0.5, inplace=True
)df

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

df(作者图片)

解决方案 3

我们还可以使用替换功能来更新数据框中的值,而不会出现SettingWithCopy警告。

假设我们需要将产品组 PG4 更改为 PG14。这是一个给我们警告的解决方案。

df[df["product_group"]=="PG4"]["product_group"] = "PG14"dfSettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.

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

df(作者图片)

我们收到了警告,而且值也没有更新。

以下是应用于列而不是数据框的略有不同的版本。

df["product_group"][df["product_group"]=="PG4"] = "PG14"dfSettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.

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

df(作者图片)

我们仍然得到警告,但是值被更新了。这就是为什么我们不应该相信链式索引并且永远不要忽略这些警告的原因。

以下代码片段使用 replace 函数执行此任务。

df.replace({"product_group" : "PG4"}, "PG14", inplace=True)df

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

df(作者图片)

任务完成,没有任何错误!

结论

警告可能没有错误那么重要,因为它们不会停止代码的执行。您可以选择忽略错误并继续。

然而,你可能会得到意想不到的结果。因此,了解警告的根本原因并解决它是非常重要的。

如果你还不是中级会员并计划成为其中一员,我恳请你使用以下链接。我将收取你的一部分会员费,不增加你的额外费用。

https://sonery.medium.com/membership

感谢您的阅读。如果您有任何反馈,请告诉我。

成功数据迁移的 3 个步骤

原文:https://towardsdatascience.com/3-steps-for-a-successful-data-migration-9de8e7f1671c?source=collection_archive---------17-----------------------

行业笔记

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

Patrick ForeUnsplash 上拍摄

迁移是数据团队最常见的计划之一。但殊不知,它们是复杂兽。他们总是比他们需要的时间更长,涉及许多不同的团队,并且他们是超级可见的——不仅对用户,对高管也是如此。当迁移正在进行时,每个人都很焦虑。而且,总有一个正在进行或即将开始。

在我的职业生涯中,我自己就是一名数据工程师,与数百名数据工程师合作过。我学到的与数据工程团队质量相关的一件事是他们在迁移方面做得有多好

**我发现*数据工程团队如何处理迁移可以很好地代表数据工程团队的质量。***我将深入探讨我见过的优秀数据工程团队为确保成功迁移而采取的 3 个关键步骤:

  1. 确定迁移的复杂性和顺序
  2. 迁移和测试 1 级表
  3. 为下游所有者提供工具并启动涟漪迁移

这些步骤中的每一步都可以是一篇独立的博文,但是为了保持连贯性,我试图在一篇博文中解决它们。

迁移通常基于推动他们进行迁移的公司内部或外部发生的事情。迁移是彻底的,因为成功是与消灭某些东西联系在一起的,而不仅仅是移动某些东西。在大多数迁移中,完成 90%是不够的,甚至 100%也是不够的,为了迁移成功,你真的必须淘汰一些旧的东西。

以下是数据团队迁移的一些常见原因,以及每种情况下的成功表现:

  1. 从一个数据仓库到另一个数据仓库的大规模迁移,通常是为了降低成本、整合、提高可伸缩性或可靠性。成功:上一个仓库没有活动。
  2. 由于“上游”决策,从一个数据源迁移到另一个数据源。一个常见的例子是,一家公司从 Hubspot 迁移到 Salesforce,因为他们的 CRM 和所有下游销售分析渠道、仪表盘和指标都需要更新。另一个常见的例子是将上游服务从一个整体“分解”为多个微服务。这些微服务最终拥有自己的数据库,这导致了新的分解数据源,数据仓库 ETL 需要在这些数据源上重建,当然。成功:对旧数据的零查询。

事实证明,杀死一个东西比树立一个新的东西要难得多。这正是迁移如此困难和复杂的原因。

这是我见过的伟大的数据工程团队在进行迁移时采取的 3 个步骤。

步骤 1 —确定迁移的复杂性和顺序

迁移的复杂性

任何迁移的第一步都是了解它有多复杂。是 2 周、2 个月还是 2 年的迁移?与迁移复杂性最接近的代理由所讨论的数据源的两个因素决定:

  1. 您拥有多少级别的数据资产?
  2. 总共有多少数据资产是建立在数据源上的?

数据资产可以是表格、仪表板等。

换个角度来看,如果你有一个类似下面的谱系图,这些因素是:

  1. 图表的深度是多少?
  2. 图中有多少个节点?

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

作者图片:谱系图

迁徙顺序

优秀的数据工程团队对于他们选择的迁移顺序是深思熟虑的。在上面这样的谱系图中,您仍然必须选择首先迁移哪个“分支”。

在决定首先选择哪个分支的顺序时,伟大的团队会考虑以下三个最常见的类别:

  1. 成本 —我们将首先迁移最昂贵的数据。
  2. 使用影响 —我们将最后迁移最常用的数据集,以减少对用户的影响。
  3. 风险 —我们将首先迁移风险最小的数据。例如,让我们保存最后迁移的核心财务指标,因为它们是从外部报告的。

迁移很容易,只要你不用担心依赖性。

这让我想到了迁移中最困难的部分。一旦选择了要迁移的分支,就必须确定现有数据的使用方式。

Level-1 用法意味着只有数据的叶级消费者,如仪表板、表上的即席查询。 Level-2 用法意味着在该表上构建了其他表,这些表具有仪表板和正在其上运行的即席查询。

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

作者图片:数据使用水平

一个捕获数据谱系的自动化数据目录可以帮助您更好地了解您的使用级别。

呈现该谱系图的数据目录至少应该能够自动捕获这三种关系:

  1. 表级沿袭
  2. 基于表格构建的仪表板/报告
  3. 过去 30 天内用户的名称以及他们运行的条件查询的数量

很高兴拥有(不是必须拥有):

  • 列级沿袭——这很难以高粒度和高精度来捕获,并且许多迁移都不需要。
  • 关于使用什么过程/ETL 来生成下游表的更多信息。

列级沿袭还有其他的用例,比如满足监管需求或取消列。然而,对于本文开头描述的大型迁移,我发现表级别的沿袭已经足够了。

步骤 2 —迁移和测试 1 级表

在大多数组织中,您将有不止一个级别的使用。第一步总是首先迁移这些一级表。在一些组织中,没有进行真正的 ETL/ELT。在这种情况下,这一步是不行的。

这里有两种常见的情况:

  1. 上游变化被“吸收”,或者
  2. 上游的变化被“泄露”

测试

如果新表应该等同于旧表,那么进行数据测试就很重要。一个好的数据质量产品能够描述旧数据和新数据,突出行数、分布、最小值、最大值、平均值等方面的差异。您通常希望并行运行这两个作业(至少 2 周),以确保配置文件在这段时间内处于某个上限内。

步骤 3 —为下游所有者提供工具,并启动涟漪迁移

移民会产生连锁反应。优秀的数据工程团队对此有着清晰的理解,并且能够在两个方向上构建反馈循环来协调迁移。

一旦完成了 1 级表的迁移,就该通知下游用户数据了。有 3 种可能的下游消费者:

  1. 桌子上的仪表板
  2. 数据的特殊查询程序
  3. 派生的下游表

对于每一类下游消费者,您正在将下游迁移的责任传递给他们。这意味着:

  • 下游仪表板所有者需要迁移他们的仪表板,以使用新的数据源。
  • 数据的特别查询者将需要查询新的数据源,而不是旧的数据源。
  • 下游表所有者需要迁移他们的 ETL 作业,以便从新的数据源读取数据。

下游表所有者的最后一种情况是最有趣的,因为要么他们的表将吸收这种变化,而不需要通知他们下游的任何人。或者,他们的 ETL 作业或表将无法吸收这种变化,他们将触发自己的连锁反应,要求他们的数据消费者进行迁移。

优秀的数据工程团队为下游消费者提供工具,让他们知道他们的数据的用途,这样他们就可以执行他们的部分迁移。

下游表格和仪表板

通常,数据工程团队将归档一个 JIRA,它与他们的数据目录集成在一起。这将为下游表或仪表板所有者归档票证。

如果需要,仪表板所有者可以更新他们的仪表板。由于不再需要它们,他们最终往往会弃用它们。

下游表所有者必须做与 1 级所有者相同的事情。他们要么吸收变化,要么泄漏变化。如果他们吸收了变化,他们关闭票。如果他们泄露了零钱,他们就为他们的下游消费者创造了门票。他们可以使用相同的目录和 JIRA 集成为下游用户创建票证。

临时查询器

虽然 JIRA 票对下游的仪表板和表所有者很有效,但对那些专门查询数据的人就不太有效了。即使新的数据用户通过空闲消息或电子邮件得到通知,他们也很容易错过这些细节。

记录迁移的状态很重要,这样那些错误地使用错误数据的人可以被礼貌地重定向到新的数据。

做到这一点的一个好方法是在您的数据目录工具中放置一个横幅,如下所示:

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

作者图片:表格上的横幅,宣布已迁移的表格

例如,**如果一个新用户在他们的数据目录中偶然发现了一个旧表及其过时的文档,他们将通过横幅通知新版本的表存在,并被重定向到使用该表。**类似于亚马逊在产品新版本上市时通过横幅通知用户的方式。

驯服野兽

迁徙不必像它们看起来那样复杂。有许多方法可以确保顺利迁移,它们只需要一点额外的爱和关心。上面的四个步骤是我见过的数据工程团队驯服迁移这头野兽的最常见的方法,其核心是血统的力量以及它如何转变您团队的方法。因为在 it 的核心,拥有快速了解数据中上游和下游依赖性的能力是成功迁移的最重要的方面之一。

要阅读更多类似的帖子并保持联系,请在 Twitter 上关注我 或通过订阅 这里 接收每月简讯。

在 Azure 上构建和部署 NLP 模型作为微服务的 3 个步骤

原文:https://towardsdatascience.com/3-steps-to-build-and-deploy-your-nlp-model-as-a-microservice-on-azure-426ca77c66df?source=collection_archive---------25-----------------------

在 Azure 上部署 ML 模型最简单最便宜的方法

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

布鲁斯·马斯在 Unsplash 上的照片

在花费无数时间训练您的模型之后,您现在需要使它可用于其他应用程序或服务。

根据您部署到云的方式,这个过程可能需要几个小时或几分钟。更重要的是,您的部署选择应该基于您的可伸缩性和预算需求。

在这里,我将展示一种直接使用 Python 代码(而不是构建容器)将 NLP 模型作为微服务部署到 Azure 的快速方法。

本教程适用于任何 ML 模型,而不仅仅是 NLP。

我将展示的设置可能是现有的最简单的设置之一,并且维护这些设置的成本最小

开始之前,请确保做好以下准备:

  1. 创建一个有效订阅的 Azure 帐户:如果你还没有一个有效订阅的帐户,你可以为 Azure 创建一个新帐户,并获得两周的试用期。
  2. 安装 Azure CLI :我们将使用命令在 Azure 上创建资源(而不是使用 Azure Portal UI)。这种方法具有最强的可维护性,因为我们为自己创建的每个资源都编写了脚本,这使得进化和复制变得更加容易。点击此处查看如何安装 Azure CLI。
  3. 安装 Azure Functions 核心工具:在将我们的微服务部署到 Azure 之前,我们将在本地创建和测试一切,而不花一分钱。Azure Functions 核心工具将为设计、开发、测试、运行和调试 Azure 功能提供本地开发体验。点击此处查看如何安装。

下面我们将经历以下三个步骤:

1\. Create and test an Azure function locally
2\. Create the resources on Azure
3\. Deploy the function to Azure

1.在本地创建并测试 Azure 函数

理想情况下,我们希望在部署到 Azure 之前在本地测试所有东西。本地测试让我们确保一切正常,不会花不必要的钱在线调试。尽管如此,使用 Azure 上的“应用洞察”等监控工具仍然是值得的,也是必要的,以确保你的应用程序平稳运行。但是这超出了本文的范围。

下面,首先,我们使用终端创建并激活 python 环境。然后我们在本地创建一个 FunctionApp 项目,将多个函数组织在一起。最后,我们创建由 HTTP 请求触发的函数getSentiment

*# Create and activate an environment*
python3 -m venv .venv
source .venv/bin/activate*# Create a FunctionApp Project Locally*
func init --worker-runtime python*# Create a Function*
func new --name getSentiment --template "HTTP trigger" --authlevel anonymous

现在,我们可以编辑文件getSentiment\__init__.py中的函数,添加以下代码(针对您的型号进行修改):

上面创建的函数将接收一个text参数,并返回从拥抱脸的模型“DistilBERT base uncase fine tuned SST-2”获得的相应情感分析的输入文本。

由于我们已经为上面的代码添加了几个库,请确保按如下方式更新您的requirements.txt文件:

然后,在我们上面创建的环境中安装库:

pip install -r requirements.txt

现在我们已经准备好在本地测试这个功能了。为此,您需要运行:

func start

您应该在终端中得到类似这样的输出:

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

“func start”命令的输出示例。图片由作者提供。

所以我们可以访问上面列出的 URL,传递参数text来测试模型。例如:

[http://localhost:7071/api/getSentiment](http://localhost:7071/api/getSentiment)?text=I%20really%20like%20bananas

输出应该是:

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

本地函数的输出示例。图片由作者提供。

现在一切都按预期在本地运行,我们可以在 Azure 上创建所需的资源并部署我们的微服务。

2.在 Azure 上创建资源

您可以通过 Azure 门户点击每个资源并选择设置来完成以下步骤。但这很难维持。所以,一般来说,建议使用脚本。

因此,下面,我们在终端中运行几个命令来创建以下资源,这是在 Azure 上部署功能所需的最少资源:

  • 资源组:资源组只是为 Azure 解决方案保存多个相关资源的一种方式。
  • 存储帐户:Azure 存储帐户集中了数据对象,比如 blobs、文件共享、队列、表和磁盘。它为存储提供了一个独特的命名空间。我们将使用标准类型(最便宜的),主要推荐用于文件、blobs 和表。
  • function app:function app 是一种资源,它将各种功能组合成一个逻辑单元,便于管理、部署、扩展和资源共享。我们将使用最基本的消费计划来托管功能 app,并指定创建的存储帐户。
*# Login to your Azure Account from the Command Line*
az login*# Create a Resource Group*
az group create --name rgSENT --location westus*# Create a Storage Account*
az storage account create --name stracc2sent --location westus --resource-group rgSENT --sku Standard_LRS*# Create a FunctionApp*
az functionapp create --name **nlpfuncsa** --resource-group rgSENT --os-type linux --consumption-plan-location westus --storage-account stracc2sent --functions-version 3 --runtime python --runtime-version 3.9

请注意,我使用了**nlpfuncsa**作为 FunctionApp 的名称。此名称在 Azure 上必须是唯一的,因此请为你的应用使用不同的名称。如果上面的命令返回Operation returned an invalid status ‘Conflict’,这可能就是原因。所以请确保为您的 FunctionApp 使用不同的(且唯一的)名称

3.将功能部署到 Azure

最后,我们可以使用以下命令将本地项目的代码部署到在 Azure 上创建的 FunctionApp:

func azure functionapp publish **nlpfuncsa**

由于距离较远,此过程需要一段时间。最终,您应该会得到以下结果:

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

将功能部署到 Azure 后的输出示例。图片由作者提供。

现在你可以访问上面列出的 URL,传递参数text来测试你的模型。例如:

[https://nlpfuncsa.azurewebsites.net/api/getsentiment](https://nlpfuncsa.azurewebsites.net/api/getsentiment)?text=I%20really%20like%20bananas

输出应该与我们在本地看到的一样:

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

已经部署在 Azure 上的函数的输出示例。图片由作者提供。

就是这样。现在您已经将 NLP 模型部署到 Azure 上了。这里是 Github 仓库,所有代码都提交给 Azure。

如果你想删除你创建的所有东西,去 Azure 门户,找到“资源组”,点击创建的资源组(如果你完全按照这个帖子,应该是“rgSENT”),然后点击“删除资源组”。由于所有创建的资源都在同一个资源组下,执行上述操作将删除所有内容。

如果你喜欢阅读这样的故事,并想支持我成为一名作家,可以考虑注册成为一名媒体会员。每月 5 美元,你可以无限制地阅读媒体上的故事。如果你用我的链接注册,我会赚一点佣金。

确保在任何公司成为成功的新数据工程师的 3 个步骤

原文:https://towardsdatascience.com/3-steps-to-ensure-success-as-a-new-hire-data-engineer-at-any-company-e28ad470e914?source=collection_archive---------26-----------------------

办公时间

祝贺你获得了数据工程师的职位!现在怎么办?

TL;文末博士。

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

照片由拉兹万·苏驰Unsplash 上拍摄

我从事数据工程已经四年了,很高兴看到这股浪潮已经兴起。有影响力的人(从 YouTube 到 LinkedIn top voices)和公司已经开始认识到,如果他们认真对待扩大分析并让数据为他们服务,而不是相反,那么在聘用数据工程师之前聘用数据科学家的重要性(* 插入存储神秘数据的预算,并在基础架构迁移之间关心它们)。

就像现在这样,数据工程技术栈似乎已经尘埃落定,Hadoop/Cloud 用于数据存储(和仓储),Spark/Databricks 用于数据处理,Airflow 用于数据管道编排(虽然如果您的管道封装在微服务中,可以与生产中的其他微服务一起使用,这可以扩展到 Kubernetes),最后但同样重要的是,Python/SQL/Scala 用于编写管道和数据模型本身。

但是,谁知道呢,随着 dbt 的出现,向 ELT 的范式转变日益成为现实,以及分析工程师这一新兴角色的出现,也许这一切会在下一个 5 年内再次改变?

那你会怎么做?立志成为一名数据工程师有什么意义?

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

对塞巴斯蒂安·拉米雷斯的礼貌

在这四年中,我看到了对技术要求的过度强调,以及不切实际的、期望的多年经验。

虽然我理解在寻找合格候选人时查看技能清单的简单性,但这种清单应该更加轻松,因为即使是招聘经理也可能不知道高级管理层希望在下个季度“试用”什么工具,或者现有的数据基础设施是否正在恶化,以至于很快就要迁移到新的技术体系。(关于这一点,你如何积累 5 年以上的特定技术?)

在这篇文章中,我希望我们所有人都从紧张的技术要求和“我如何去学习所有这些”的无限循环中休息一下。我喜欢从商业角度来探讨对数据工程师的需求,而不是一头扎进辩论哪种编程语言最适合分析,或者密集地编写一个传输没人需要的数据的高性能管道,所以我将向你展示三个关键步骤,当你加入任何规模的公司时,作为一名数据工程师,你应该专注于这三个步骤

注意:下面提到的“系统”可以指微服务,可以是也可以不是数据管道,没错,电子表格,虽然技术上不正确,也算。

这一切都是通过业务密钥联系在一起的!

在数据建模领域,业务键有一个更严肃的名字,叫做“主键”。这些主键可以是足以标识表中唯一记录的单个字段,也可以是基本上只是多个重要字段组合起来标识唯一记录的组合键,或者是基于多个重要字段的唯一组合的无意义、编号或散列字段的代理键。

您可能已经猜到了——这些重要的字段是您的业务密钥。

业务关键字可以是上游系统(例如,跟踪订单的应用程序或电子表格)决定的递增整数、订单日期、具有某种约定的客户 id(例如,您可以判断出 CAN001 是来自加拿大的客户),或者散列登录会话 ID。

不管是什么,理解业务关键通常是理解系统集成、报告准确性和使世界(公司)运转的关键组件的一半。

如果已经有主题专家可以指导您浏览表,那么识别业务键可能是轻而易举的事情,但是如果数据集非常新颖,有一些确定的方法可以识别它们,方法是计算表(如果存在分区的话)中的行数,以及如果您SELECT DISTINCT它们(或者如果您仍然想查看其余的数据,请尝试row_number())具有相同行数的字段。这些业务关键字中的 NULL 值或空值会使这些记录无效,如果它们数量很大,您需要与系统管理员联系以进行补救。

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

Unsplash 上由 Aniyora J 拍摄的照片

为了更进一步,您可以尝试将数据集 A 与包含相同字段的数据集 B 连接起来,比如说,业务关键字 Y。如果您成功地将它们连接起来,因为业务关键字 Y 下的所有值都可以在数据集 B 中找到,那么您就知道您已经确定了两个相关的表,这两个表很可能是由两个不同的系统或报表生成的。如果你还没有成功加入他们(部分没有找到任何价值),那么,这就是你被雇用的原因!是时候深入挖掘所生成的值的逻辑了,并确定是否有一种由业务逻辑支持的方法来重新生成您在数据集 a 的业务键 Y 中看到的值。

也许如果一个业务键被称为“业务胶”,它会更容易被炒作,而“胶”无疑更能描述业务键的作用。它们识别每个真实的记录,并用于清除重复的记录。它们支持“join”操作和查找,因此它们间接地向您展示了两个业务键是 1:1 还是 1:N 关系(请不要是疯狂的 N:M 关系。这意味着该表需要一些重构)。他们的转换逻辑很少被干涉,因为这可能意味着对生成它们的系统或报告进行重大的修改。

因此,第一步,一旦你获准访问新公司的数据基础设施,就开始浏览你的团队定期维护的表格,最重要的是,确定它们之间的联系。准备好记笔记,因为你的大脑可能只能记下三个商业关键词之间的关系。

高粒度有利于消化

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

照片由本·怀特Unsplash 上拍摄

我相信这不是你第一次听到将数据与食物进行比较,因为 Cassie Kozyrkov 的微波类比对我们理解整个数据科学学科有很大帮助。

前 5 分钟进行微波类比

你如何知道你面前的数据集是否是原始的(最细粒度的)?

如果你没有跳过这一节之前的部分,你已经有一半的答案了。也就是说,如果您的数据集有业务关键字,那么这几乎总是您可以获得的最细粒度的数据,除非有另一个系统来进一步细分它(例如,因为一个订单可以拆分为多个发货,所以一个发货编号可以汇总为一个订单编号)。

使用业务关键字深入了解最细粒度的数据以及在一个时间窗口内预期有多少真实记录,可以让您对数据质量进行强大的控制,并灵活地更改您的数据策略或业务模型。您将知道您的基线,比如当前被跟踪的指标或指标的每日行数,并从那里开始比较。

以装运号与订单号为例,假设您的公司只与一家运输公司合作(运输 A ),当装运号=订单号时,事情就简单多了。但是,随着业务的增长和疫情的出现,运输 A 不再能够完成所有订单,您开始与第二家运输公司(运输 B)合作。高级管理人员协商了一笔交易,这一切都很好,直到你不能非常准确地向高级管理人员报告装运 B 已经完成了多少次装运,因为你仍然在忙着将装运数量从一个公司分割到另一个公司。

谨慎的方法是了解在一个时间窗口内(每小时/每天/每周)装运 A 通常履行了多少订单,影响决策者同意一个可扩展的装运号约定,该约定可以很容易地将不同的装运公司识别为更新的业务关键字,并且随着装运 B 履行更多订单,通过监控一个时间窗口内每个订单号+装运号的记录计数来跟踪“新常态”。

假设运输 A 通常每周装运 100,000 个订单(您的基线),在运输 B 开始后,似乎运输 B 现在完成了 40,000 个订单,而运输 A 完成了其余的 60–70,000 个订单。现在,下游汇总报告甚至有了一个新的指标,您可以跟踪每个订单,有多少发货是通过发货 A 与发货 B 完成的(例如,一个 5 件商品的订单,3 件由 A 发货,2 件由 B 发货),而无需对原始表进行任何结构性更改。

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

马库斯·考夫曼在 Unsplash 上的照片

让我们试着加入一两个“数据灾难”。想象一下,shipping A 的服务器出现故障,因此他们报告他们的订单完成量为 50K。如果您没有深入了解交易装运表和装运 A 的装运编号惯例来进行行计数,最初可能不会明显看出装运 A 的数据不准确,并会让指挥链中的某个人标记此“数据问题”。想象一下,再过一个月,您的订单数量猛增到每周 30 万,您的老板虽然很兴奋,但考虑到数据灾难的最后一幕,他还是小心翼翼地让您检查这 30 万订单是否是一笔真实的交易。记住基线数字,并且能够根据业务键进行查询(让我们希望业务键也全部正确生成),那么您很快就可以与您的老板确认 30 万订单不是由于重复记录,而可能是疫情的影响。

第二步,熟悉广为流传的商业智能报告,但更熟悉汇总或汇总到这些报告中的底层原始数据。你可以以后再感谢自己。

我明天能拿到数据吗?

如果这是你在工作中最喜欢的问题,请在下面评论。

有多少次你在脑海中回应道:“嗯,那真的不取决于我…”?

事实上,它并不真正依赖于一个数据工程师或分析师来完成一份报告,因为底层原始数据可能来自不同的数据源,这些数据源以不同的频率刷新数据。最重要的是,每次在数据人员准备交付某些东西之前,他们都必须花一些时间来检查所请求的时间窗口中的可用数据,根据前面提到的业务关键字验证数据,确认最近没有对数据进行更改,或者某个更改是否会影响报告。

销售报告可能看起来很惊人,但结果是产品维度表已经过时半年了,因此在此期间发生的新产品发布没有包括在该报告中,导致严重的漏报。

更新生成成本报告所需的三个表的批处理作业发生在不同的时间,坦率地说,顺序是错误的,因此当您连接这三个表时,您看到的记录数量比应该看到的要少(两个表提供了一整天的记录,但一个表由于更新顺序错误,只提供了当天最后两个小时的记录)。实际上,即使您知道这个表中的业务键,以及它的粒度类型,您也不会注意到这一点。您只需注意批处理作业的顺序是否合理。

我可以一直举这些例子,但是我在这里要强调的是“时间”是数据工程中最棘手的变量。

https://www . Reddit . com/r/perfect loops/comments/9lg tid/a _ synchronized _ passes/

“时间”作为一个变量可以以多种方式表现出来,一种是字面上的定义,如作业运行的时间窗口,无论是批处理还是实时流,另一种是作业运行的频率,还有一种是作业在不同系统上运行的顺序(如果您立即想到 DAG,就向您致敬)。

第三步,熟悉数据到达每个表的速度,这将使您能够告知数据消费者,数据的新鲜程度取决于其后台更新频率和您最后一次查询数据的时间,这确实是一项将您与其他数据专业人员区分开来的专业技能。

结束语

四年前,我几乎不知道“数据工程”这个术语,但我更感兴趣的是获得一致、可信的数据,而不是从口头传播的“好”数据中获得商业见解。四年后,尽管我获得了处理大数据的最先进技术堆栈的全面实践经验,但我仍然需要努力工作,以确保数据准确反映业务现实。然而,旅程仍在继续,每年都有新的支持软件解决现有设置无法解决的挑战或业务差距。

没有应用的技术在帮助企业利用数据达到新的高度方面有什么用?

无论哪种“it”技术现在对大数据处理来说是流行的,我都坚信这三个主题将会继续存在,因为我已经看到它们是所有公司的永恒主题,这些公司只依赖于电子表格、电子表格加半生不熟的内部关系数据库,甚至是本地 Hadoop 或云中的复杂数据仓库。

他们都在试图解决同一个问题——理解他们自己的数据并加以利用。您从这三个步骤中获得的知识将使您能够很好地面对运营火灾(例如,崩溃的服务器导致数据丢失)、未来项目(例如,从以前认为不相关的数据源到仪表板的新聚合管道)和不断变化的数据策略(例如,您认为不必要的新数据收集应用程序,因为类似的数据源已经存在)。

TL;博士,

第一步。每个表都有一个业务键。识别它(或它们),理解它们包含什么值,并使用它们将表粘合在一起。

第二步。最细粒度的表(原始表)总是有业务键。非常了解他们的结构,尤其是指标(计数、$$、评级)。获得一个基线数字。

第三步。时间是至关重要的。数据源可以在不同的时间、频率或以错误的顺序更新。前两步不能完全帮助您保持数据的新鲜。

祝你好运,带路吧!

2 周内获得 AWS 云从业者认证的 3 个步骤

原文:https://towardsdatascience.com/3-steps-to-get-aws-cloud-practitioner-certified-in-2-weeks-or-less-772178f48249?source=collection_archive---------4-----------------------

通过 AWS 认证验证您的云计算专业知识

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

JESHOOTS.COMUnsplash 上拍照

内容

AWS 认证简介
第一步:AWS 电子学习模块
第二步:AWS 白皮书和网站
第三步:YouTube 练习题
可选资源
关于考试

AWS 认证简介

亚马逊网络服务(AWS)是最受欢迎的云平台之一,他们从全球数据中心提供一套广泛的全功能服务。根据这些服务,AWS 提供认证来帮助专业人员验证这些按需云计算技能。

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

AWS 提供的认证类型|亚马逊网络服务标志是 Amazon.com 公司或其附属公司在美国和/或其他国家的商标|来源: AWS 认证

千里之行始于足下,本指南介绍了如何迈出 AWS 认证之旅的第一步,从基础云从业者考试开始。

AWS 认证云从业者( CLF-C01 )考试的目的是验证个人对 AWS 平台的理解和知识,包括云架构原则、云经济学、可用的产品和服务以及其他方面,如安全性和价值主张。记住所有这些,让我们开始管理考试的3–2–1****计划:3关键步骤, ≤2 周, 1 考试尝试。

步骤 1 — AWS 电子学习模块

— — — —
所需时间:6–7| 费用:免费 — — — —

AWS 自己提供的在线电子学习模块经过精心规划和交付,使概念易于理解。内容被组织成小块,涵盖云计算和 AWS 提供的服务背后的关键思想。最棒的是,它是免费的!

我喜欢他们用咖啡店作为所有模块的简单类比,因为这使得理论更容易理解和可视化。

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

泰勒·尼克斯在 Unsplash 上的照片

转到 AWS 云从业者基础在线学习页面,访问在线学习内容。如果您之前没有创建个人亚马逊帐户,您需要创建一个。

第一步的游戏计划是按顺序完成每一课,如果可能的话做笔记。虽然视频播放时间总共是 6 个小时,但你至少要花两倍的时间。这是考虑到反复观看和复习课程的因素。

对于完全不熟悉云计算的人来说,我认为你应该在 6 天内每天花 2-3 个小时来很好地理解内容。如果你已经对云计算概念有了一些基本的了解(比如接触过 GCP 等其他服务),那么所需的时间会更短。

另一个技巧是以更快的速度观看视频(例如 1.5-2 倍),这样可以优化花费的时间。

作为对阅读这篇文章的感谢,我分享我根据课程和文字记录整理的笔记。你可以在我的 GitHub 页面 这里找到笔记

步骤 2 — AWS 白皮书和网站

— —
所需时间:2–3| 费用:免费
—————

在从步骤 1 中获得 AWS 服务的主要概念的良好基础之后,是时候接触 AWS 必须提供的更多产品和服务了。我发现这一点很重要,因为考试倾向于测试你的 AWS 产品的功能。通过 AWS 提供的白皮书,您可以很好地了解这套服务。以下是推荐阅读的白皮书:

白皮书可能会很长,所以我实际上并没有全部读完,因为它对我来说太乏味和耗时了。我认为最重要的是快速浏览一下,找出您以前在电子学习模块中没有遇到过的服务(步骤 1)。对于您不熟悉的服务,请简要阅读白皮书中相应的章节,对它们的功能有一个基本的了解。

如果您想对 AWS 平台有更深入的了解,请随意完整阅读文档,以便进一步增加您的信心和第一次尝试通过考试的机会。

让你熟悉各种产品的另一个资源是浏览官方的 AWS 网站。通过这样做,您应该能够很好地了解可用的服务。

步骤 3 — YouTube 练习题

— — — —
所需时间:2–3| 费用:免费
— — — —

现在是检验你的知识的时候了。有几个资源提供收费的练习题,但我避开了它们,因为 YouTube 上已经有很多免费的练习题。这是我在准备过程中观看的 4 个视频(以 2 倍的速度观看):

  1. 我的训练
  2. 测试准备训练
  3. 免费云培训
  4. 数字云培训

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

照片由克里斯蒂安·威迪格Unsplash 上拍摄

请确保在查看答案之前尝试了这些问题。如果你在 YouTube 上进一步浏览,你肯定会遇到更多这样的视频,所以也可以随意观看。此外,请点击查看 AWS 的官方样题。

可选资源

如果你想要一个有指导的在线课程,让你以一种系统的方式完全准备好,你可以在 Udemy 上查看一些付费课程。我并没有报名参加这些课程,但是我在 Udemy 上看了一下,觉得这些课程看起来结构良好,并且有额外的练习题。

完成这些课程可能会使准备过程比两周稍长,但是,嘿,这不是一场比赛,所以如果你需要的话,花更多的时间。

关于考试

已经有很多资源描述了考试过程,所以我就不深究了。您可以查看以下内容,了解更多信息:

相反,我将分享一些基于我个人经验的技巧。

  • 请确保至少提前 40 分钟,因为监考服务的设置可能需要一段时间才能完成。
  • 90 分钟内要回答 65 个问题。这实际上是足够的时间让你完成考试。因此,一定要花时间仔细阅读问题,避免匆忙通过考试。你也应该有足够的时间再次浏览(和编辑)你所有的答案,所以请在提交之前这样做。
  • 如果你在家参加考试,确保没有持续的(或潜在的)干扰。例如,让你的家人/室友知道你将参加监考,并提醒他们在 90 分钟的时间内不要干涉。

结论

在本指南中,我分享了如何准备 AWS 认证云从业者考试的 3 个步骤。由于每个人都有不同的学习偏好,这里的建议既不确定也不详尽。尽管如此,它仍然应该为你参加考试提供坚实的准备,并在你第一次尝试时通过考试。凭借本指南中列出的资源(即步骤 1-3),我第一次尝试就获得了 920/1000 分(及格分数为 700/1000 分)。我非常有信心你也能做到。

再一次,请不要介意我从 AWS 课程和抄本中收集的笔记。

在你走之前

欢迎您来到**,与我一起踏上数据科学学习之旅!**点击此媒体页面,查看我的 GitHub ,了解更多令人兴奋的数据科学内容。同时,祝你考试顺利!

💔-steps-to-get-tableau-desktop-specialist-certified-in-2-weeks-abbef25778de>

两周内获得 Tableau 桌面认证的 3 个步骤

原文:https://towardsdatascience.com/3-steps-to-get-tableau-desktop-specialist-certified-in-2-weeks-abbef25778de?source=collection_archive---------6-----------------------

获得 Tableau 专家认证,展示您的数据可视化技能和产品知识

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

威廉·艾文在 Unsplash 上的照片

内容

——Tableau 认证简介
——Tableau 桌面设置
——第一步:Tableau 免费培训视频
——第二步:Tableau 白皮书
——第三步:在线练习
——关于考试

Tableau 认证简介

Tableau 软件是市场上最受欢迎的视觉分析平台之一。Tableau 专注于商业智能,使用户能够轻松探索和管理数据,并快速发现和分享见解。鉴于它在各行各业的广泛应用,获得 Tableau 认证肯定会帮助你脱颖而出。

前端用户很可能会在工作中使用 Tableau Desktop ,所以我将重点讨论桌面认证。特别是,我将深入研究基础认证,即所谓的 Tableau 专家认证

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

3 个 Tableau 桌面认证可用|图片来源:Tableau 网站(经许可使用)

记住所有这些,让我们开始管理考试的学习计划: 3 关键步骤, 2 周, 1 考试尝试。

Tableau 桌面设置

为了最好的准备(如果你没有付费的 Tableau 订阅),我建议你使用 14 天试用版的 Tableau Desktop (从这里下载)而不是 Tableau Public。

如果您已经用完了试用期,请考虑使用其他电子邮件地址再次注册。只有当你准备好执行这个为期两周的学习计划时,安装试用版才是最理想的。

注意:如果你碰巧是学生,Tableau 通过Tableau for Students program向认证机构的学生提供为期一年的免费许可证。

步骤 1: Tableau 免费培训视频

— —
所需时间:8–9| 费用:免费 — — — —

首先,为了高效备考,了解专科考试考的都是哪些概念很重要。考试中测试的技能列表可以在考试准备指南中找到。

Tableau 提供了一系列广泛的 免费培训视频 ,这些视频将构成步骤 1 的基础。这些小视频是解决技能测试的绝佳课程,最棒的是,它是免费的!

这一步是最重要的(也是最密集的),因为它涉及从基础开始的在线课程和实践。幸运的是,为了通过考试,你不需要完成培训页面上的所有章节。以下是你需要关注的 7 个章节:

  1. 入门 (3 个视频— 34 分钟)
  2. 连接数据 (11 段视频— 72 分钟)
  3. 视觉分析 (26 个视频— 144 分钟)
  4. 仪表盘和故事 (8 个视频—40 分钟)
  5. 计算 (16 个视频— 65 分钟)
  6. Tableau 为什么要这么做? (4 段视频— 22 分钟)
  7. 如何进行 (10 个视频— 39 分钟)

为了充分利用这一点,我强烈建议你在整个课程中自己练习重新制作图表,而不是被动地观看视频。动手实践绝对是关键

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

布雷特·乔丹Unsplash 上拍摄的照片

虽然总的视频播放时间是 7 个小时,但我会加倍时间,因为你需要花时间练习你所学的。通过每天分配 2 个小时来学习这些课程,你应该能够在 9 天的时间内完成 7 个章节。

完成所有课程后,务必再次参考考试准备指南的“技能测试”部分,以检查您是否熟悉考试中测试的概念。

步骤 2: Tableau 白皮书

— —
所需时间:1–2| 费用:免费 — — — —

完成第一步后,我们现在可以花些时间做些更简单的阅读。针对该考试的白皮书是可视化分析最佳实践——指南。可以直接从 这个链接 下载。

因为考试包括与可视化最佳实践相关的多项选择题(MCQ ),所以快速阅读本白皮书将有助于解决这些问题。

这里有一个如何阅读冗长文件的提示。当您浏览白皮书时,请关注文档左侧中以蓝色斜体显示的部分标题和副标题以及总结要点。如果你有兴趣了解某个特定主题的更多信息,你可以继续阅读该特定部分的全文。

第三步:在线练习(Udemy)

— —
所需时间:2–3| 费用:~ $14 — — — — —

现在是时候接触真正的考试问题了。虽然有几个 YouTube 视频和网站提供免费的样题,但我没有发现它们的质量令人满意。为了找到练习题的好资源,我花了一点钱进入了这个 Udemy 课程: Tableau 专家认证准备 (注意:这个帖子不是赞助的)。

本课程的关键是获得340】自评分 全程练习考试(附带解答)。虽然本课程确实有关于 Tableau 概念的视频,但我发现步骤 1 中的免费视频质量更好。尽管如此,我还是以两倍的速度观看了 Udemy 视频,作为一种有效的修订。

在完成这三次模拟考试后,你会对自己在哪些概念上有所欠缺有一个更好的认识。这些模拟练习考试也有助于模拟考试环境,让您更好地准备参加实际考试。我强烈建议你参加 3 个模拟考试中的每一个,就像它们是真正的交易一样,即不要分心,全神贯注,在时间限制内工作。

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

埃弗里·埃文斯在 Unsplash 上拍摄的照片

最后,官方的备考指南也附带了一些样题,所以你也可以看看。

关于考试

Tableau 网站备考指南提供了大量关于考试的信息,所以请务必参考它们了解详情。一般来说,60 分钟内要完成 30 个 mcq,及格分数为 70%,费用为 100 美元。它将在已经安装了 Tableau 软件的虚拟机中进行。请点击查看考试设置。

我想分享一些考试的小技巧:

  • 确保您的互联网连接处于最佳状态。尽管我的连接通过了考试设置的基本要求,但我发现虚拟化的 Tableau 软件相对滞后,这使我在参加考试时感到相当困难。
  • 确保在房间内参加考试时没有干扰(即通知你的家人/室友避免在考试期间进入房间)
  • 60 分钟将很可能是绰绰有余的时间来完成考试,所以没有必要慌张,当你遇到一个困难的问题。在回到之前难倒你的那个问题之前,你总是可以转移到其他问题上。
  • 尽早参加考试,因为连接监考人的时间可能会比预期的长

结论

在这篇文章中,我分享了通过 Tableau 桌面专家考试的 3 步学习计划。仅用上面 3 个步骤中列出的资源,我就能在第一次尝试中获得 90%的分数。我非常有信心你也能做到。

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

作者图片

在你走之前

欢迎您**加入我的数据科学学习之旅!**点击此媒体页面,查看我的 GitHub ,了解更多精彩的数据科学内容。同时,祝你考试顺利!

💔-steps-to-get-aws-cloud-practitioner-certified-in-2-weeks-or-less-772178f48249> https://medium.com/datadriveninvestor/using-ensemble-regressors-to-predict-condo-rental-prices-47eb7c3d5cd9

实施自助 BI 的 3 个步骤

原文:https://towardsdatascience.com/3-steps-to-implement-self-service-bi-8681d1ca6329?source=collection_archive---------45-----------------------

如何实施数据驱动的文化

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

池祥Unsplash 上拍照

构建数据驱动的文化不会就这样发生——它需要持续的关注和有目的的决策。在这里,我想提一下构建自助式商务智能平台需要考虑的三个最重要的因素。

构建可靠的数据平台

在现代企业分析方法中,IT 部门和业务部门携手合作。IT 部门建立了一个可信数据或内容的中心环境,让业务用户能够访问这些数据,输入他们的问题,并获得他们需要的答案[1]。数字化转型的基石之一是现代数据和分析平台。在即用型云服务的帮助下,ELT 和自助 BI 工具等新模式以及敏捷方法公司(尤其是中小型公司)可以在更短的时间内构建数据分析平台,从而能够更加专注于业务需求[2]。在这里,稳定的数据集成和可扩展的云服务是基本前提。一个以面向客户的方式工作的敏捷的 IT 部门完成了整个事情。

需求管理支持

在构建新的数据驱动型文化的过程中,任命领导者来推动这一变革至关重要。数字化的核心目标是产生新的数字产品理念、基于数据的商业模式以及提高内部流程效率。为了实现这些目标,公司自身以及外部数据源的分析、使用和商业化发挥着重要作用。公司被迫重新思考他们通常的模拟商业模式,检查他们的数字潜力,并相应地改变他们[3]。

变更管理

分析文化需要员工乐于使用的强大分析平台。该平台必须易于整个组织的部署、管理和扩展。它还必须提供 It 所需的安全性和治理。一旦合适的平台到位,下一步就是人员和流程。在任何重大的组织变革中,一个经常被忽视的方面是对参与其中的每个人的努力表示感谢。花点时间给那些接受和实施改变的人积极的反馈。它改善了气氛,对整个过程的成功起着关键作用。当然,除了让人们参与进来,广泛的培训也是必要的,以便在处理这些数据分析平台和自助 BI 工具时能够产生积极的感觉,最重要的是,增加价值。

摘要

总之,建立数据驱动的文化并不复杂。只需三个简单的步骤,就可以创建与数据集的自主交互:一个可靠的数据平台,需要管理支持和成功的变更管理。当这些特性被考虑并正确实施时,您应该会获得一个成功的自助 BI。

资料来源和进一步阅读

[1] Marc Rueter,《自我服务文化是如何形成的----自我服务文化分析---- 2003 年)

[2]微软,借助现代数据平台释放数据的全部力量

[3] Michael Rachinger,Romana Rauter,Christiana Ropposch,Wolfgang Vorraber,Eva Schirgi,数字化及其对商业模式创新的影响(2018),《制造技术管理杂志》

通过谷歌云专业数据工程师考试的 3 个步骤

原文:https://towardsdatascience.com/3-steps-to-pass-google-cloud-professional-data-engineer-exam-83a312788452?source=collection_archive---------2-----------------------

在 1 个月内通过考试,提高您在谷歌云平台(GCP)的技术专长

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

图片由专业数据工程师认证上的作者提供

问题陈述

有不少关于如何通过上述考试的指南,但它们要么是过时的,要么是有太多的步骤和建议要遵循。我想我会分享我通过这个考试的 3 个步骤,以帮助那些和我处境相同的人。这些步骤对我来说非常有效,我确信它非常适用于你,无论你是刚刚开始学习谷歌云平台中的数据工程,还是因为专业原因想要获得这个证书。在我们开始之前,这是我在 1 个月前开始准备工作之前真正想要完成的两件事:

  1. 在准备的 1 个月内通过考试 (duh)。(我全职工作,所以 1 个月对我来说是一个合理的时期)
  2. 记录并重复使用的知识,以应用于工作或其他项目。(这一点很重要,因为我在空闲时间会上很多在线课程,过一段时间后,我往往很难记起在哪里学了什么)

工具和成本

这些是我使用的工具,其中大部分是免费的,但这些类不是。你可能会说,有其他免费或更便宜的方法,但我个人更喜欢为更好的服务支付一点溢价,有时以节省我的一些时间。

工具:

  1. 笔记 app : 观念 。我一直在使用很多记笔记的应用程序,如 EverNote、OneNote 和 Confluence,直到今年我发现了 concept,从那以后再也没有回头看。
    费用:免费
  2. 学习平台: 谷歌认证专业数据工程师,由蒂姆·贝瑞云大师担任。我选择了一个云专家平台,因为我通过了 AWS 云从业者考试,之前使用了那里的课程之一,我发现那些课程真的很有帮助。我也用 Coursera 做了不少 Google 云平台相关的数据工程的课程,但是我觉得都没有这个有效。费用取决于你需要多长时间,但让我们根据 1 个月的时间来估计。
    费用:每月 35 美元,新注册 7 天免费试用
  3. 考试本身: Google 专业数据工程师 。它由 50 道选择题组成,总时长 2 小时。根据你所在的位置,你可以在网上或考试中心进行考试。谷歌不会告诉你与 AWS 相比你得了多少分,所以你只知道你要么通过,要么失败。我真的希望这里的所有读者都能获得通行证,不管你是按照我的步骤还是按照你自己的方式来做:)
    费用: $200 美元
  4. 模拟考试: Google 专业数据工程师考试 by ExamTopics 。模拟考试与实际考试非常相似,所以强烈建议任何人都来做,尤其是当你快没时间的时候!它实际上是免费的,但我最终支付了贡献者访问权,因为免费版本将要求机器人每 10 个问题左右检查一次,这对我来说有点烦人,它分散了我对考试问题本身的注意力。
    费用:免费或 16.99 美元/月或 23.99 美元/年。

如果你排除 200 美元的考试费,总成本加起来只有 35 美元,因为总成本=免费(概念)+ 35 美元(1 个月+ 7 天的云专家)+免费(如果你不介意机器人检查的考试题目)= 35 美元。这是基于我们将在 1 个月零 7 天内完成课程的假设。

我相信,基于上面的工具,你们中的大多数人现在已经知道这三个步骤是什么了,但是让我来详细地介绍一下每一个步骤。

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

图片由memegenerator.net

3 个步骤

第一步:制定系统的训练计划

作为一名工程出身的人,我喜欢以非常系统和结构化的方式做事,尽管我的思维倾向于以其他方式行事,所以有一个结构化的计划对我来说是实现上述目标所必需的。就我个人而言,我发现获得所有这些认证最困难的部分,无论是 AWS、GCP、Azure 还是任何其他专业认证,都是学科。我们周围不断的干扰,如社交媒体或频繁的通知,真的阻止了我以我希望的速度前进。为了消除我的分心,我为我生活中做的许多事情设定了一个想象的时间表**,这总是让我感到有点压力,这样我就可以减少社交媒体消费,并将我的注意力转移到需要我立即关注的事情上。我在这次考试中使用了同样的策略,记得我们的目标是在准备的 1 个月内完成这次考试吗?因此,我查阅了上面提到的课程的所有教学大纲。根据教学大纲,我为每周计划我的想象目标,这样我就可以在目标时间内完成它。我是全职工作,我的大脑通常在每个工作日结束时完成,所以如果可能的话,我只计划在周末学习这个认证,除非我不能在之前的周末达到目标时间表。我的目标是每周 8 小时**,周六 4 小时,周日 4 小时。为什么是 4 个小时?这只是我每天可以做的深度专注的小时数,你可以根据自己的情况做相应的调整,但相信我,周末 3-4 小时的深度专注确实需要一定程度的纪律,以免分心去做其他事情,所以我建议你从合理的小时数开始。让我们来看看我的实际认证时间表:****

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

作者在准备时间表上的图片

**我在 idea 中创建了一个时间表来预测和跟踪我的进展。基本上时间表是**基于上面介绍的课程中的所有课 ExamTopics 的模拟考试。如你所见,总时间略多于 32 小时,这与我在 1 个月内每周工作 8 小时的目标相符。时间栏是学习程序本身估计的时间,我通常以 1.5 或 2 倍的速度播放视频,所以我倾向于花费比估计时间更少的时间,有时我会坚持一些实用教程,所以时间结果大致相等。目标完成日期是最重要的一栏,确保你在开始学习之前填满它,因为想象中的时间表将确保你始终在正确的轨道上。我会努力在目标完成日期前完成这些课程,如果我的大脑允许我“说服”自己,我会提前完成这些课程,这会让你感觉良好,并大大提高你的士气:)

我还在下面创建了一个进度表,因为在线课程确实显示了你已经完成了多少,我也根据我的进展写了一些评论,以保持我自己的进步,而不是半途而废。

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

作者关于进度跟踪的图片

一个快速提示:如果你像我一样有时喜欢拖延,但决心在 1 个月内完成认证,只需通过尽早支付 200 美元来预订和锁定考试日期。为了确保我能按时完成,我比想象的截止日期提前一周预定了考试日期。如果你愿意,你可以提前一个月做:)你会惊讶地发现,你仍然能够在自己设定的紧张的最后期限内完成并通过考试。****

步骤 2:使用概念作为文档门户

还记得我们的第二个目标吗,那就是记录下我们学到的东西,并在必要时重复使用?idea 非常方便地记录下我从课程中学到的所有知识,而无需从头再看一遍视频。由于我在公司也是一名专业的数据工程师,当我不得不做出设计选择或偶然发现我记得从视频课程中学到的东西时,这些笔记非常方便。我的团队不到 6 个月前才开始使用谷歌云平台,这些课程帮助我加快了学习速度。你可能会和我争论记录我从视频中学到的东西是浪费时间,因为我们总是可以稍后重放视频,理论上你可以以两倍的速度浏览视频并做模拟考试。然后,你仍然会用最少的努力和时间通过考试。你是绝对正确的,但就我个人而言,我不想为了获得认证而支付 200 美元,忘记所有事情,比如说 6 个月。我不得不再次浏览所有的视频来回忆我的学习。在概念中,有一个功能叫做 切换 ,这是我一直以来最喜欢的功能!它使我能够在一页中压缩大量信息,也迫使我的大脑在我点击切换按钮浏览内容之前进行一些主动回忆。让我们看看我是如何组织所有内容的:

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

作者在课程内容上的图片

你可以看到,我在笔记中大量使用切换,我会将笔记分成不同的部分,并在中途暂停课程视频,以便写下笔记或捕捉视频截图来节省时间。不幸的是,我不会在随后的切换中显示实际内容本身,因为我不希望一个云专家团队在我未经他们同意的情况下分享课程内容。

在观念中整理了所有这些帮助我在考试前有效地复习了所有重要的主题,建立了我的信心,也帮助我专业地完成了实际工作!

第三步:做两次模拟考试

我强烈建议任何计划参加该认证的人参加考试主题的模拟考试。我在考试前一周开始练习。它分为两个主题,即主题 1 和主题 2。话题 1 有 163 个问题,而话题 2 有 78 个问题。与主题 2 相比,实际考试中的大多数问题与主题 1 中的问题非常相似。如果时间不够,您可以跳过主题 2,只关注主题 1。实际考试中不再有案例研究问题,所以你也可以跳过这些问题。就我个人而言,我完成了主题 1 和主题 2,因为主题 2 中的问题通常更简单,我可以在练习中很快回答它们。顺便说一下,不要完全相信 exam topics提供的解决方案,因为一些官方答案是错误的,请看看讨论以更好地了解实际答案和背后的推理。我通读了所有的讨论,更好地理解了为什么某些答案没有多大意义。

像往常一样,当我做模拟考试时,我使用我最喜欢的概念应用程序,因为我想把我所有的进步都放在一个地方。我一次做了 50 个问题,浏览了所有的讨论,标记了我的问题并理解了哪里出错了,然后重复直到我完成了所有的 241 个问题。

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

模拟考试中作者的图片

在实际考试的前一天,我重新做了 241 道题每轮 50 道题,并找出了我第二次仍做错的题!幸运的是,在第二次尝试时,我能够答对 227/241 道题,所以这些知识确实深入我的脑海。

结论

我花了很多时间浏览不同的在线课程,有时还努力回忆一些知识。这些是我如何在通过认证的同时加强学习的方法。你可以运用同样的策略,不仅仅是在 GCP 认证上,而是在你计划将来要做的任何认证上!这是我在 1 个月内获得认证的 3 件事:

  1. 制定系统的训练计划
  2. 使用概念作为文档门户
  3. 做两次模拟考试

你可以根据你的时间和你真正想从认证中得到的东西做相应的调整。我真诚地希望你能够用这些技巧通过考试并且将这些知识应用到你的工作或副业项目中!如果你采纳了上面列出的一些建议并最终通过了考试,请随意评论!我还在 Youtube 上做了一个视频这里是对上面概述的每一个步骤的更深入的探讨,如果你有时间的话,请随意观看。祝你好运,万事如意!我将用一句我非常喜欢的话来结束这篇文章:****

为了实现任何值得拥有的东西,你必须全心全意地去做。弗兰克·劳埃德·赖特

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值