TowardsDataScience 博客中文翻译 2019(五百零五)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

数据科学家犯的十大统计错误

原文:https://towardsdatascience.com/top-10-statistics-mistakes-made-by-data-scientists-2d58ccf12ab1?source=collection_archive---------4-----------------------

数据科学家是“比任何软件工程师更擅长统计,比任何统计学家更擅长软件工程的人”。在数据科学家犯的十大编码错误中,我们讨论了统计学家如何成为更好的编码员。在这里,我们讨论编码人员如何成为更好的统计人员。

每个例子的详细输出和代码可以在 github交互式笔记本中找到。代码使用数据工作流管理库 d6tflow ,数据与数据集管理库 d6tpipe 共享。

1.没有完全理解目标函数

数据科学家希望建立“最佳”模型。但是情人眼里出西施。如果您不知道目标和目标函数是什么,以及它是如何表现的,那么您就不太可能构建出“最佳”模型。fwiw 的目标可能甚至不是一个数学函数,而是改进一个商业度量。

解决方案:大多数 kaggle 赢家花大量时间理解目标函数,以及数据和模型如何与目标函数相关联。如果您正在优化一个业务指标,请将其映射到一个适当的数学目标函数。

示例 : F1 分值通常用于评估分类模型。我们曾经建立了一个分类模型,它的成功取决于它正确出现的百分比。F1 分数具有误导性,因为它显示模型在大约 60%的时间里是正确的,而实际上它只有 40%的时间是正确的。

f1 0.571 accuracy 0.4

2.没有一个假设,为什么有些东西应该工作

通常,数据科学家希望构建“模型”。他们听说 xgboost 和 random forests 效果最好,所以让我们使用它们。他们阅读深度学习,也许这将进一步改善结果。他们在没有查看数据,也没有形成哪种模型最有可能最好地捕捉数据特征的假设的情况下,就抛出模型来解决问题。这也使得解释你的工作变得非常困难,因为你只是随机地向数据扔模型。

解决方案:看数据!了解其特征,并形成一个假设,即哪个模型最有可能捕捉到这些特征。

:不需要运行任何模型,仅仅通过绘制这个样本数据,你就已经可以有一个强烈的观点,x1 与 y 线性相关,x2 与 y 没有太大的关系。

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

3.在解释结果之前不看数据

不查看数据的另一个问题是,您的结果可能会受到异常值或其他工件的严重影响。对于最小化平方和的模型来说尤其如此。即使没有异常值,您也可能会遇到不平衡的数据集、截断或缺失的值,以及其他各种您在课堂上没有看到的真实数据的奇怪现象。

解决方案:太重要了,值得重复一遍:看数据!了解数据的性质如何影响模型结果。

:有异常值,x1 斜率从 0.906 变为-0.375!

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

4.没有一个简单的基线模型

现代的 ML 库几乎把它变得太简单了……只要改一行代码,就可以运行一个新的模型。另一个。另一个。误差指标在减少,调整参数——太好了——误差指标在进一步减少……有了所有的模型,你可以忘记预测数据的愚蠢方式。如果没有这个天真的基准,你就没有一个好的绝对比较来衡量你的模型有多好,它们可能都很差。

解答:预测一个值的最笨方法是什么?使用最近的已知值、(滚动)平均值或某个常数(如 0)建立一个“模型”。将您的模型性能与零智能预测猴子进行比较!

:对于这个时间序列数据集,model1 一定比 model2 好,MSE 分别为 0.21 和 0.45。但是等等!仅取最后一个已知值,MSE 就下降到 0.003!

ols CV mse 0.215
rf CV mse 0.428
last out-sample mse 0.003

5.不正确的样品外测试

这可能会让你的职业生涯脱轨!你建立的模型在 R&D 看起来很棒,但在生产中表现糟糕。你所说的将创造奇迹的模式正在导致非常糟糕的业务结果,可能会使公司损失$m+。这很重要,除了最后一个错误,所有剩下的错误都集中在这上面。

解决方案:确保你已经在真实的样本条件下运行了你的模型,并且明白什么时候它会表现良好,什么时候表现不好。

示例:样本内随机森林比线性回归好得多,mse 为 0.048,而 ols mse 为 0.183,但样本外随机森林比线性回归差得多,mse 为 0.259,mse 为 0.187。随机森林训练过度,在实际生产中表现不佳!

in-sample
rf mse 0.04 ols mse 0.183
out-sample
rf mse 0.261 ols mse 0.187

6.不正确的样本外测试:对整个数据集应用预处理

你可能知道强大的 ML 模型会过度训练。过度训练意味着它在样本内表现很好,但在样本外表现很差。所以你需要意识到训练数据会泄露到测试数据中。如果您不小心,任何时候您进行特征工程或交叉验证时,训练数据都可能混入测试数据中,并夸大模型性能。

解决方案:确保你有一个真正的测试集,没有来自训练集的任何泄漏。特别要注意生产使用中可能出现的任何依赖于时间的关系。

例子:这种情况经常发生。在将整个数据集分为训练和测试之前,对其进行预处理,这意味着您没有真正的测试集。在将数据分成训练集和测试集之后,需要单独应用预处理,以使其成为真正的测试集。在这种情况下,两种方法之间的 MSE(混合样本外 CV mse 0.187 对真实样本外 CV mse 0.181)并没有那么大的不同,因为训练和测试之间的分布特性并没有那么大的不同,但情况可能并不总是如此。

mixed out-sample CV mse 0.187 true out-sample CV mse 0.181

7.不正确的样本外测试:横截面数据和面板数据

你被教导交叉验证是你所需要的。sklearn 甚至为你提供了一些便利的功能,让你觉得你已经检查了所有的选项。但是大多数交叉验证方法都是随机抽样的,因此您可能会在测试集中使用训练数据,这会提高性能。

解决方案:生成测试数据,使其准确地反映您在实际生产使用中进行预测的数据。特别是对于时间序列和面板数据,您可能需要生成自定义的交叉验证数据或进行前滚测试。

:这里有两个不同实体(如公司)的面板数据,它们在横截面上高度相关。如果您随机分割数据,您会使用测试期间实际上没有数据进行准确预测,夸大模型性能。您认为您通过使用交叉验证避免了错误#5,并发现随机森林在交叉验证中比线性回归表现得好得多。但是运行一个前滚样本外测试来防止将来的数据泄露到测试中,它的表现又差了很多!(随机森林 MSE 从 0.047 到 0.211,高于线性回归!)

normal CV
ols 0.203 rf 0.051
true out-sample error
ols 0.166 rf 0.229

8.决策时不考虑哪些数据可用

当您在生产环境中运行模型时,它会得到您运行模型时可用的数据。该数据可能与您在培训中假设的数据不同。例如,数据的发布可能会有延迟,因此当您运行模型时,其他输入已经发生变化,您正在使用错误的数据进行预测,或者您的真实 y 变量不正确。

解决方案:做一个推出样品前向测试。如果我在生产中使用了这个模型,我的训练数据会是什么样的,即你有什么数据来进行预测?这是您用来进行真正的样品外生产测试的训练数据。此外,想想如果你按照预测行事,在决策时会产生什么结果?

9.轻微过度训练

你花在数据集上的时间越多,你就越有可能过度训练它。您一直在修补功能和优化模型参数。你用了交叉验证,所以一切都很好。

解决方案:在你完成模型构建后,试着寻找数据集的另一个“版本”,它可以作为真实样本外数据集的替代。如果你是一名经理,故意隐瞒数据,使其不被用于培训。

示例:将数据集 1 上训练的模型应用到数据集 2 上,结果显示 MSEs 增加了一倍多。它们还能被接受吗…?这是一个判断电话,但你的第四个结果可能会帮助你决定。

first dataset
rf mse 0.261 ols mse 0.187
new dataset
rf mse 0.681 ols mse 0.495

10.“需要更多数据”的谬论

与直觉相反,通常开始分析数据的最佳方式是处理数据的代表性样本。这允许您熟悉数据并构建数据管道,而无需等待数据处理和模型训练。但是数据科学家似乎不喜欢这样——数据越多越好。

解决方案:从一个小的代表性样本开始,看看你是否能从中获得一些有用的东西。还给最终用户,他们能用吗?是否解决了真正的痛点?如果不是,问题可能不是因为你的数据太少,而是你的方法。

有关更多详细信息,请参见 github交互式笔记本中每个示例的输出和代码。

成为 Rockstar 数据科学家的 13 大技能

原文:https://towardsdatascience.com/top-13-skills-to-become-a-rockstar-data-scientist-faf2f97e655d?source=collection_archive---------1-----------------------

这将你与优秀的数据科学家区分开来

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

一周前,我在 LinkedIn 上问了这个问题:

是什么将优秀的数据科学家与 rockstar 数据科学家区分开来?

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

[Question on LinkedIn](http://What separates a good data scientist from a rockstar data scientist?)

令人惊讶的是,我得到了来自不同行业的许多顶级数据科学家的巨大回应,他们都分享了他们的想法和建议-我觉得非常有趣和实用。

为了更多地了解优秀数据科学家和 rockstar 数据科学家之间的主要区别,我一直在互联网上搜索…直到我在 KDnuggets 上找到了的这篇文章。

所以我收集了所有的信息,列出了成为一名 rockstar 数据科学家的技能。

实际上,一个数据科学家不可能具备下面列出的所有技能。但在我看来,这些技能是 rockstar 数据科学家不同于优秀数据科学家的地方。

在本文结束时,我希望您会发现这些技能对您作为数据科学家的职业生涯有所帮助。

我们开始吧!

🚀成为 Rockstar 数据科学家的 13 大技能

1.教育

数据科学家受过高等教育,88%的人至少拥有硕士学位,46%的人拥有博士学位,尽管有明显的例外,但通常需要非常扎实的教育背景才能培养成为数据科学家所需的知识深度。要成为一名数据科学家,你可以获得计算机科学、社会科学、物理科学和统计学的学士学位。最常见的研究领域是数学和统计学(32%),其次是计算机科学(19%)和工程学(16%)。这些课程中的任何一个学位都将为你提供处理和分析大数据所需的技能。

完成学位课程后,你还没有完成。事实是,大多数数据科学家都有硕士学位或博士学位,他们还接受在线培训,学习一项特殊技能,如如何使用 Hadoop 或大数据查询。因此,您可以报名参加数据科学、数学、天体物理学或任何其他相关领域的硕士学位课程。您在学位课程期间学到的技能将使您能够轻松过渡到数据科学。

除了课堂学习,你可以通过开发应用程序、创建博客或探索数据分析来实践你在课堂上学到的东西,从而让你学到更多。

在我看来,只要你能完成工作,硕士或博士是可选的。在大多数行业工作范围内,只要你能够解决业务问题,你就不需要做研究和部署尖端和新颖的机器学习模型。

👉🏻有用的免费资源电子书:成为专业数据科学家的 74 个秘密

2.r 编程

对这些分析工具中的至少一种有深入的了解,对于数据科学 R 通常是首选的。r 是专门为数据科学需求而设计的。你可以用 R 来解决你在数据科学中遇到的任何问题。事实上,43%的数据科学家正在使用 R 来解决统计问题。然而,R 有一个陡峭的学习曲线。

这很难学,尤其是如果你已经掌握了一门编程语言。尽管如此,互联网上有很好的资源可以让你开始学习 R,比如 Simplilearn 的 R 编程语言数据科学培训。对于有抱负的数据科学家来说,这是一个很好的资源。

3.Python 编码

Python 是我通常在数据科学角色中看到的最常见的编码语言,还有 Java、Perl 或 C/C++。对于数据科学家来说,Python 是一种很棒的编程语言。这就是为什么 O’Reilly 调查的 40%的受访者将 Python 作为他们的主要编程语言。

由于 Python 的多功能性,您可以将它用于数据科学过程中的几乎所有步骤。它可以接受各种格式的数据,您可以轻松地将 SQL 表导入到您的代码中。它允许你创建数据集,你可以在谷歌上找到你需要的任何类型的数据集。

通过阅读以下书籍,您可以了解更多关于 Python 的基础知识以及如何在数据科学中使用 Python:

4.Hadoop 平台

尽管这并不总是必需的,但在许多情况下,这是首选。有蜂巢或者猪的经验也是一个很强的卖点。熟悉诸如亚马逊 S3 这样的云工具也是有益的。CrowdFlower 对 3490 份 LinkedIn 数据科学工作进行的一项研究将 Apache Hadoop 列为数据科学家第二重要的技能,有 49%的评级。

作为一名数据科学家,您可能会遇到数据量超过系统内存或者需要将数据发送到不同服务器的情况,这就是 Hadoop 的用武之地。您可以使用 Hadoop 将数据快速传递到系统中的各个点。这还不是全部。你可以使用 Hadoop 进行数据探索、数据过滤、数据采样和汇总。

5.SQL 数据库/编码

即使 NoSQL 和 Hadoop 已经成为数据科学的一个重要组成部分,仍然希望候选人能够用 SQL 编写和执行复杂的查询。SQL(结构化查询语言)是一种编程语言,可以帮助您执行添加、删除和从数据库中提取数据等操作。它还可以帮助您执行分析功能和转换数据库结构。

作为一名数据科学家,你需要精通 SQL。这是因为 SQL 是专门为帮助您访问、交流和处理数据而设计的。当你用它来查询一个数据库时,它给你洞察力。它有简明的命令,可以帮助您节省时间,减少执行困难查询所需的编程量。学习 SQL 将帮助你更好地理解关系数据库,提升你作为数据科学家的形象。

6.阿帕奇火花

Apache Spark 正在成为全球最受欢迎的大数据技术。它和 Hadoop 一样是一个大数据计算框架。唯一的区别是 Spark 比 Hadoop 快。这是因为 Hadoop 读写磁盘,这使得它更慢,但 Spark 将其计算缓存在内存中。

Apache Spark 是专门为数据科学设计的,有助于更快地运行复杂的算法。当你处理大量数据时,它有助于分散数据处理,从而节省时间。它还帮助数据科学家处理复杂的非结构化数据集。您可以在一台机器或一群机器上使用它。

Apache spark 使数据科学家能够防止数据科学中的数据丢失。Apache Spark 的优势在于它的速度和平台,这使得它可以轻松地执行数据科学项目。借助 Apache spark,您可以执行从数据获取到分布式计算的分析。

7.机器学习和人工智能

大量的数据科学家并不精通机器学习领域和技术。这包括神经网络、强化学习、对抗学习等。如果你想从其他数据科学家中脱颖而出,你需要知道机器学习技术,如监督机器学习、决策树、逻辑回归等。这些技能将帮助您解决基于主要组织成果预测的不同数据科学问题。

数据科学需要应用机器学习不同领域的技能。Kaggle 在其一项调查中显示,一小部分数据专业人员能够胜任高级机器学习技能,如有监督的机器学习、无监督的机器学习、时间序列、自然语言处理、离群点检测、计算机视觉、推荐引擎、生存分析、强化学习和对抗学习。

数据科学涉及处理大量数据集。你可能想熟悉 机器学习

8.数据可视化

商业世界经常产生大量的数据。这些数据需要转换成易于理解的格式。比起原始数据,人们更自然地理解图表和图形形式的图片。一个习语人说“一幅画胜过千言万语”。

作为一名数据科学家,你必须能够借助 ggplot、d3.js 和 Matplotlib、Tableau 等数据可视化工具实现数据的可视化。这些工具将帮助您将项目的复杂结果转换成易于理解的格式。问题是,很多人不理解序列相关或 p 值。你需要直观地向他们展示这些术语在你的结果中代表了什么。

数据可视化为组织提供了直接处理数据的机会。他们可以迅速掌握洞察力,这将有助于他们抓住新的商业机会,并在竞争中保持领先。

特别是,我写了一篇文章来谈论数据可视化的重要性以及如何用数据创造更好的故事。

9.非结构化数据

数据科学家能够处理非结构化数据至关重要。非结构化数据是不适合数据库表的未定义内容。示例包括视频、博客帖子、客户评论、社交媒体帖子、视频源、音频等。它们是堆在一起的沉重的文本。对这些类型的数据进行排序是困难的,因为它们不是流线型的。

由于其复杂性,大多数人将非结构化数据称为“黑暗分析”。处理非结构化数据有助于您理清对决策有用的见解。作为一名数据科学家,您必须能够理解和操作来自不同平台的非结构化数据。

10.好奇心

“我没有特别的天赋。我只是强烈好奇。”

——阿尔伯特·爱因斯坦

毫无疑问,你最近到处都能看到这个短语,尤其是当它与数据科学家相关时。Frank Lo 描述了它的含义,并在几个月前发布的客座博客中谈到了其他必要的“软技能”。

好奇心可以被定义为获取更多知识的欲望。作为一名数据科学家,您需要能够提出有关数据的问题,因为数据科学家花费大约 80%的时间来发现和准备数据。这是因为数据科学领域是一个发展非常迅速的领域,您必须学习更多知识才能跟上步伐。

您需要通过在线阅读内容和阅读有关数据科学趋势的相关书籍来定期更新您的知识。不要被互联网上飞来飞去的大量数据淹没,你必须知道如何理解这些数据。好奇心是作为一名数据科学家取得成功所需的技能之一。例如,最初,您可能看不到您收集的数据中有多少洞察力。好奇心将使你能够筛选数据,找到答案和更多的见解。

11.商业头脑

要成为一名数据科学家,你需要对你所在的行业有一个扎实的了解,并且知道你的公司正在试图解决什么样的业务问题。就数据科学而言,除了确定企业应该利用其数据的新方法之外,能够辨别哪些问题对企业来说是重要的解决方案也是至关重要的。

要做到这一点,您必须了解您所解决的问题会如何影响业务。这就是为什么你需要了解企业是如何运作的这样你就可以把你的努力引向正确的方向。

12.通讯技能

寻找强大数据科学家的公司正在寻找能够清晰流利地将他们的技术发现翻译给非技术团队(如营销或销售部门)的人。数据科学家除了了解非技术同事的需求以便适当地争论数据之外,还必须通过用量化的见解武装他们来使企业能够做出决策。

除了使用公司理解的相同语言,你还需要通过使用数据故事来沟通。作为一名数据科学家,你必须知道如何围绕数据创建一个故事情节,让任何人都容易理解。例如,呈现一个数据表不如以讲故事的形式分享这些数据的见解有效。用讲故事的方式将有助于你恰当地向你的雇主传达你的发现。

交流时,注意你分析的数据中包含的结果和价值。大多数企业主不想知道你分析了什么,他们感兴趣的是它如何积极地影响他们的业务。学会专注于通过沟通传递价值和建立持久的关系

13.协力

数据科学家不能独自工作。你必须与公司高管合作制定战略,与产品经理和设计师合作创造更好的产品,与营销人员合作开展更好的转化活动,与客户端和服务器软件开发人员合作创建数据管道并改善工作流程。你将不得不与组织中的每个人合作,包括你的客户。

本质上,您将与您的团队成员合作开发用例,以便了解解决问题所需的业务目标和数据。您需要知道处理用例的正确方法、解决问题所需的数据,以及如何将结果转换并呈现为每个相关人员都可以轻松理解的内容。

最后的想法

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

(Source)

感谢您的阅读。

如果你被所需的技能弄得不知所措,这完全没关系(我也是!).

归根结底,这些技能并不是成为数据科学家的必备条件,但与其他典型的数据科学家相比,它们肯定会让你与众不同。

我知道你不是典型的。

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

关于作者

阿德蒙德·李 目前是东南亚排名第一的商业银行 API 平台 Staq 的联合创始人/首席技术官。

想要获得免费的每周数据科学和创业见解吗?

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

[## 阿德蒙德·李

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

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

数据可视化中的 16 种图表类型

原文:https://towardsdatascience.com/top-16-types-of-chart-in-data-visualization-196a76b54b62?source=collection_archive---------2-----------------------

看看下面的仪表盘,你知道有多少种图表吗?

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

From FineReport

在信息爆炸的时代,越来越多的数据堆积起来。然而,这些密集的数据是不集中的,可读性较差。所以我们需要数据可视化来帮助数据容易被理解和接受。相比之下,可视化更直观,更有意义,使用合适的图表来可视化数据是非常重要的。

在这篇文章中,我将介绍数据可视化中的 16 种图表类型,并分析它们的应用场景,以帮助您快速选择显示数据特征的图表类型。

注:文中所有图表均取自数据可视化工具 FineReport ,个人下载完全免费。

1.柱形图

柱形图使用垂直列来显示类别之间的数字比较,列数不能太多(如果列数太多,轴的标签可能会显得不完整)。

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

From FineReport

柱形图利用柱的高度来反映数据的差异,人眼对高度差异比较敏感。局限性是只适用于中小规模的数据集。

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

From FineReport

应用场景:分类数据对比

2.条形图

条形图类似于柱形图,但条形图的数量可能相对较多。与柱形图相比,其两个坐标轴的位置发生了变化。

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

From FineReport

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

From FineReport

应用场景:数据比较(类别名称可以长一点,因为 Y 轴上有更多的空间)

3.折线图

折线图用于显示连续时间间隔或时间跨度内的数据变化。它的特点是倾向于反映事物随时间或有序类别的变化。

需要注意的是,折线图的数据记录数应大于 2,可用于大数据量的趋势对比。并且在同一个图上最好不要超过 5 条折线。

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

From FineReport

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

From FineReport

应用场景:数据量随时间变化的趋势,序列趋势对比

4.对比图

面积图是在折线图的基础上形成的。它用颜色填充折线图中折线和轴之间的区域。颜色的填充可以更好的突出趋势信息。

面积图的填充颜色要有一定的透明度。透明度可以帮助用户观察不同系列之间的重叠关系。没有透明度的区域将导致不同的系列相互覆盖。

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

From FineReport

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

From FineReport

应用场景:序列比率,时间趋势比率

5.圆形分格统计图表

饼图广泛应用于各个领域,用来表示不同分类的比例,并通过弧线来比较各种分类。

饼图不适合多个系列的数据,因为随着系列的增加,每个切片都变小,最后大小区分不明显。

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

From FineReport

饼状图也可以做成多层饼状图,显示不同分类数据的比例,同时也反映出层次关系。

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

From FineReport

应用场景:数列比,数列大小比较(玫瑰图)

6.散点图

散点图在直角坐标系中以点的形式显示两个变量。点的位置由变量的值决定。通过观察数据点的分布,我们可以推断变量之间的相关性。

做散点图需要大量数据,否则相关性不明显。

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

From FineReport

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

From FineReport

应用场景:关联分析、数据分发

7.泡泡图

气泡图是一种多元图表,是散点图的变体。除了 X 轴和 Y 轴代表的变量值之外,每个气泡的面积代表第三个值。

我们要注意的是,气泡的大小是有限的,过多的气泡会使图表难以阅读。

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

From FineReport

应用场景:分类数据对比,关联分析

8.测量

数据可视化中的仪表是一种物化图。刻度代表公制,指针代表尺寸,指针角度代表数值。它可以直观地表示一个指标的进度或实际情况。

该量表适用于区间对比。

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

From FineReport

也可以做成环型或管型,标明比例。

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

From FineReport

应用场景:时钟、比率显示

9.雷达图

雷达图用于比较多个量化变量,比如看哪些变量有相似的值,或者是否有极值。它们还有助于观察数据集中哪些变量的值较高或较低。雷达图适用于展示工作表现。

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

From FineReport

雷达图还具有堆叠柱形图样式,可用于分类和系列之间的双向比较,同时也表示比例。

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

From FineReport

应用场景:维度分析、序列比较、序列权重分析

10.构架图解

框架图是以树形结构的形式呈现层次结构的可视化手段,它清晰地显示了层次关系。

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

From FineReport

应用场景:层级显示、流程显示

11.矩形树形图

矩形树形图适用于呈现具有层次关系的数据,可以直观地反映相同级别之间的比较。与传统的树形结构图相比,矩形树形图更有效地利用了空间,并具有显示比例的功能。

矩形树形图适用于显示具有权重关系的层次结构。如果不需要体现比例,框架图可能更清晰。

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

From FineReport

应用场景:加权树数据,树数据比例

12.漏斗图

漏斗图显示了每个阶段的比例,直观地反映了每个模块的大小。适合比较排名。

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

From FineReport

同时,漏斗图也可以用来对比。我们横向排列多个漏斗图,数据对比也很清晰。

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

From FineReport

应用场景:数据排名、比率、标准值比较

13.单词云图表

单词云是文本数据的可视化表示。它是由词汇组成的云状彩色图形。它用于显示大量文本数据,可以快速帮助用户感知最突出的文本。

单词云图要求数据量大,数据的区分度比较大,否则效果不明显。并且它不适合于精确分析。

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

From FineReport

应用场景:关键词搜索

14.线条图

甘特图直观地显示了任务的时间安排、实际进度以及与要求的比较。所以管理人员可以很容易地了解一项任务(项目)的进展。

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

From FineReport

应用场景:项目进度、状态随时间的变化、项目过程

15.地图

地图分为三种类型:区域地图、点地图和流程地图。

(1)区域地图

区域地图是一种使用颜色来表示地图分区上某个范围的值的分布的地图。

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

From FineReport

应用场景:数据对比和分发

(2)点地图

点地图是一种通过在地理背景上绘制相同大小的点来表示数据地理分布的方法。

点的分布便于把握数据的整体分布,但在需要观察单个具体数据时就不适合了。

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

From FineReport

应用场景:数据分发

但是如果你用气泡代替点,那么点地图不仅可以显示分布,还可以大致比较每个区域的数据大小。

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

From FineReport

(3)流程图

流图显示流出区域和流入区域之间的交互数据。通常用连接空间元素几何重心的线来表示。线条的宽度或颜色表示流量值。

流动地图有助于说明地理迁移的分布,动态流线的使用减少了视觉混乱。

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

From FineReport

应用场景:数据的流动、分布和比较

16.热图

热图用于指示地理区域中每个点的权重。除了地图作为背景层,你也可以使用其他图像。热图中的颜色通常是指密度。

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

From FineReport

应用场景:区域访问,热度分布,各种东西的分布

终于

以上是数据可视化中 16 种常用的图表类型。如果你想开始数据可视化,我建议你从学习制作这些基本图表开始,用一个像 FineReport 这样简单易用的工具练习。

可能有人会觉得基础图表太简单原始,倾向于使用更复杂的图表。但是,图表越简单,越容易帮助人们快速理解数据。这难道不是数据可视化最重要的目的吗?所以请不要小看这些基础图表。因为用户对它们最熟悉。只要它们适用,就应该优先考虑。

您可能也会对…感兴趣

初学者如何设计酷的数据可视化?

业务仪表盘初学者指南

4 数据地图在商业分析中的应用

原载于 2019 年 7 月 22 日http://www.finereport.com

20 大码头安全提示

原文:https://towardsdatascience.com/top-20-docker-security-tips-81c41dd06f57?source=collection_archive---------3-----------------------

瞄准安全!

这篇文章充满了帮助你安全使用 Docker 的技巧。如果你是 Docker 新手,我建议你先看看我以前的文章,关于 Docker 概念,Docker 生态系统Docker 文件瘦身图片流行命令,以及 Docker 中的数据。

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

你需要对 Docker 的安全性有多担心?看情况。Docker 内置了明智的安全特性。如果您使用的是官方 Docker 映像,并且不与其他机器通信,您就没有太多需要担心的。

然而,如果你在生产中使用非官方图像、服务文件或运行应用程序,那么情况就不同了。在这些情况下,你需要对 Docker 安全有更多的了解。

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

Looks safe

您的主要安全目标是防止恶意用户获取有价值的信息或造成破坏。为此,我将在几个关键领域分享 Docker 安全最佳实践。在这篇文章结束时,你会看到超过 20 个 Docker 安全提示!😃

在第一部分中,我们将重点关注三个方面:

  • A 门禁管理
  • 法师安全
  • 秘密的管理

想出首字母缩写 AIM 来帮助你记住它们。

首先,让我们看一下限制容器的访问。

访问管理—限制权限

当您启动一个容器时,Docker 会创建一组名称空间。命名空间防止容器中的进程看到或影响主机中的进程,包括其他容器。名称空间是 Docker 将一个容器与另一个容器隔离开来的主要方式。

Docker 也提供私有容器网络。这可以防止容器获得对同一主机上其他容器的网络接口的特权访问。

因此,Docker 环境在某种程度上是隔离的,但对于您的用例来说,它可能还不够隔离。

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

Does not look safe

良好的安全性意味着遵循最低特权原则。你的容器应该有能力做它需要做的事情,但除此之外不能有更多的能力。棘手的是,一旦你开始限制哪些进程可以在一个容器中运行,这个容器可能就不能做它应该做的事情了。

有几种方法可以调整容器的权限。首先,避免以 root 身份运行(如果必须以 root 身份运行,则重新映射)。第二,用--cap-drop--cap-add调整能力。

避免 root 和调整功能应该是大多数人限制特权所需要做的。更高级的用户可能需要调整默认的 AppArmor 和 seccomp 配置文件。我将在我即将出版的关于 Docker 的书中讨论这些问题,但是为了防止这篇文章膨胀,我将它们排除在外。🎈

避免以 root 用户身份运行

Docker 的默认设置是让映像中的用户以 root 身份运行。很多人没有意识到这有多危险。这意味着攻击者更容易获得敏感信息和您的内核。

作为一般的最佳实践,不要让容器以 root 用户身份运行。

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

Roots

“防止来自容器内部的特权提升攻击的最佳方式是将容器的应用程序配置为以无特权用户的身份运行。”——DockerDocs

您可以在构建时指定一个不同于 root 的用户 id,如下所示:

docker run -u 1000 my_image

-- user-u标志可以指定用户名或用户标识。userid 不存在也没问题。

在上面的例子中, 1000 是一个任意的、无特权的用户标识。在 Linux 中,通常保留 0 到 499 之间的 userids。选择一个大于 500 的 userid,以避免作为默认系统用户运行。

不要从命令行设置用户,最好在您的映像中从 root 更改用户。那么人们就不必记得在构建时更改它。只需在您的映像中将用户 Dockerfile 指令放在需要 root 自带功能的 Dockerfile 指令之后。

也就是说,先安装你需要的包,然后切换用户。例如:

FROM alpine:latest
RUN apk update && apk add --no-cache git
USER 1000
…

如果您必须以 root 用户的身份在容器中运行流程,请将 root 用户重新映射到 Docker 主机上权限较低的用户。参见对接文件

您可以通过改变功能来授予用户所需的权限。

能力

能力是允许的过程的捆绑。

使用--cap-drop--cap-add通过命令行调整功能。最好的策略是用--cap-drop all放弃一个容器的所有特权,用--cap-add重新添加需要的特权。

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

Stop or go

您可以在运行时调整容器的功能。例如,要放弃使用kill来停止容器的功能,您可以像这样删除默认功能:

docker run --cap-drop=Kill my_image

避免给进程赋予 SYS_ADMIN 和 SETUID 特权,因为它们被赋予了很大的权力。向用户添加这种能力类似于授予 root 权限(避免这种结果就是不使用 root 的全部意义)。

不允许容器使用 1 到 1023 之间的端口号更安全,因为大多数网络服务都在这个范围内运行。未经授权的用户可以监听诸如登录和运行未经授权的服务器应用程序之类的事情。这些编号较低的端口需要以 root 用户身份运行,或者被明确授予 CAP_NET_BIND_SERVICE 功能。

要了解容器是否有特权端口访问,可以使用 inspect 。使用docker container inspect my_container_name将向您显示关于您的容器的已分配资源和安全配置文件的许多细节。

这里是 Docker reference 了解更多特权。

和 Docker 中的大多数东西一样,最好在一个自动的、自我文档化的文件中配置容器。使用 Docker Compose,您可以在服务配置中指定如下功能:

cap_drop: ALL

或者您可以在 Kubernetes 文件中调整它们,如这里讨论的。

Linux 功能的完整列表在这里

如果你想对容器特权进行更细粒度的控制,可以在我即将出版的书中查看我对 AppArmor 和 seccomp 的讨论。订阅我的电子邮件简讯以便在有消息时得到通知。

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

Closed road

访问管理—限制资源

限制容器对内存和 CPU 等系统资源的访问是一个好主意。如果没有资源限制,容器可以用尽所有可用的内存。如果发生这种情况,Linux 主机内核将抛出内存不足异常并终止内核进程。这会导致整个系统崩溃。你可以想象攻击者如何利用这些知识来关闭应用程序。

如果在同一台机器上运行多个容器,明智的做法是限制任何一个容器可以使用的内存和 CPU。如果你的容器内存不足,那么它就会关闭。关闭你的容器会导致你的应用崩溃,这可不好玩。然而,这种隔离保护了主机不会耗尽内存,也保护了主机上的所有容器不会崩溃。这是件好事。

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

Wind resource

Docker Desktop CE for Mac v2.1.0 有默认的资源限制。您可以在 Docker 图标->首选项下访问它们。然后点击资源选项卡。您可以使用滑块来调整资源限制。

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

Resource settings on Mac

或者,您可以从命令行限制资源,方法是指定--memory标志或简称为-m,后跟一个数字和一个度量单位。

4m 表示 4 兆字节,是最小容器内存分配。一兆字节(MiB)略大于一兆字节(1 兆字节= 1.048576 MB)。文档目前是不正确的,但是希望在你读到这篇文章的时候,维护者已经接受了我的修改。

要查看您的容器正在使用哪些资源,请在新的终端窗口中输入命令[docker stats](https://deploy-preview-9237--docsdocker.netlify.com/config/containers/runmetrics/)。您将看到正在运行的容器统计数据定期刷新。

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

Stats

在幕后,Docker 使用 Linux 控制组(cgroups)来实现资源限制。这项技术经过了实战考验。

点击了解更多关于 Docker 资源限制的信息。

图像安全

从 Docker Hub 抓取图像就像邀请某人到你家一样。你可能想要故意的。

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

Someone’s home

使用值得信赖的图片

图像安全的第一条规则是只使用你信任的图像。你怎么知道哪些图片是可信的?

很有可能流行的官方图片相对安全。这样的映像包括 alpine、ubuntu、python、golang、redis、busybox 和 node。每个网站都有超过 1000 万的下载量和大量的关注。🔒

Docker 解释:

Docker 赞助了一个专门的团队,负责审查和发布官方图片中的所有内容。该团队与上游软件维护人员、安全专家和更广泛的 Docker 社区合作,以确保这些图像的安全性。

减少你的攻击面

与使用官方基础映像相关,您可以使用最小基础映像。

内部代码越少,出现安全漏洞的几率就越低。较小、不太复杂的基础图像更透明。

比起你的朋友的图像依赖于她的朋友的图像依赖于另一个基础图像,在高山图像中看到发生了什么要容易得多。短的线更容易解开。

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

Tangled

类似的,只安装自己实际需要的包。这减少了您的攻击面,加快了您的图像下载和图像构建。

需要签名的图像

您可以通过使用 Docker 内容信任来确保对图像进行签名。🔏

Docker 内容信任阻止用户使用标记图像,除非它们包含签名。可信来源包括来自 Docker Hub 的官方 Docker 图像和来自用户可信来源的签名图像。

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

Signed

默认情况下,内容信任被禁用。要启用它,请将 DOCKER_CONTENT_TRUST 环境变量设置为 1。从命令行运行以下命令:

export DOCKER_CONTENT_TRUST=1

现在,当我试图从 Docker Hub 下载我自己的未签名图像时,它被阻止了。

Error: remote trust data does not exist for docker.io/discdiver/frames: notary.docker.io does not have trust data for docker.io/discdiver/frames

内容信任是将痞子拒之门外的一种方式。点击了解更多关于内容信任的信息。

Docker 通过图像内容的加密校验和来存储和访问图像。这可以防止攻击者造成图像冲突。这是一个很酷的内置安全功能。

管理秘密

您的访问受到限制,您的图像是安全的,现在是时候管理您的秘密了。"

管理敏感信息的规则 1:不要把它放进你的映像中。在代码库、日志和其他地方找到未加密的敏感信息并不困难。

规则 2:也不要为你的敏感信息使用环境变量。任何能把docker inspectexec跑进集装箱的人都能找到你的秘密。任何以 root 用户身份运行的人也可以。希望我们已经配置好了,这样用户就不会以 root 身份运行,但是冗余是良好安全性的一部分。日志通常也会转储环境变量值。你不希望你的敏感信息泄露给任何人。

Docker 卷更好。它们是访问 Docker 文档中您的敏感信息的推荐方式。您可以将卷用作内存中的临时文件系统。卷消除了docker inspect和日志记录风险。然而,根用户仍然可以看到这个秘密,任何能够进入容器的人也可以看到。总的来说,卷是一个很好的解决方案。

比卷更好的是,使用 Docker 秘密。秘密是加密的。

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

Secrets

一些 Docker 文档声明你只能在 Docker Swarm 中使用秘密。尽管如此,你可以在 Docker 中使用秘密而不用 Swarm。

如果您只需要图像中的秘密,您可以使用 BuildKit。对于构建 Docker 映像,BuildKit 是比当前构建工具更好的后端。它大大减少了构建时间,并且有其他好的特性,包括构建时秘密支持。

BuildKit 相对较新——Docker Engine 18.09 是附带 BuildKit 支持的第一个版本。有三种方法可以指定 BuildKit 后端,这样现在就可以使用它的特性了。将来,它将是默认的后端。

  1. export DOCKER_BUILDKIT=1将其设置为环境变量。
  2. DOCKER_BUILDKIT=1启动你的buildrun命令。
  3. 默认情况下启用 BuildKit。用{ "features": { "buildkit": true } }将/etc/docker/daemon . JSON中的配置设置为 true 。然后重启 Docker。
  4. 然后,您可以在构建时使用带有--secret标志的秘密,如下所示:

docker build --secret my_key=my_value ,src=path/to/my_secret_file .

其中您的文件将您的秘密指定为键值对。

这些秘密不会存储在最终图像中。它们也被排除在映像构建缓存之外。安全第一!

如果您需要在运行容器中使用您的秘密,而不仅仅是在构建图像时,请使用 Docker Compose 或 Kubernetes。

使用 Docker Compose,将 secrets 键-值对添加到服务中,并指定机密文件。帽子提示到栈交换答案为 Docker 编写秘密提示,下面的例子是改编自。

带有秘密的 docker-compose.yml 示例:

version: "3.7"

services:

  my_service:
    image: centos:7
    entrypoint: "cat /run/secrets/my_secret"
    secrets:
      - my_secret

secrets:
  my_secret:
    file: ./my_secret_file.txt

然后用docker-compose up --build my_service照常开始作曲。

如果你用的是 Kubernetes,它支持秘密。头盔-秘密可以让 K8s 中的秘密管理更加容易。此外,K8s 具有基于角色的访问控制(RBAC),Docker Enterprise 也是如此。RBAC 使团队的访问机密管理更易管理,更安全。

使用机密的最佳实践是使用诸如 Vault 之类的机密管理服务。 Vault 是 HashiCorp 提供的一项服务,用于管理对秘密的访问。它也限制了秘密的时间。更多关于 Vault 的 Docker 图像的信息可以在这里找到。

AWS Secrets Manager 和其他云提供商的类似产品也可以帮助您在云上管理您的秘密。

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

Keys

记住,管理你的秘密的关键是保密。绝对不要把它们放进你的图像或者变成环境变量。

更新内容

与任何代码一样,保持映像中的语言和库是最新的,以便从最新的安全修复中受益。

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

Hopefully your security is more up to date than this lock

如果您在映像中引用基础映像的特定版本,也要确保它是最新的。

与此相关的是,您应该保持 Docker 版本的更新,以获得 bug 修复和增强,从而允许您实现新的安全特性。

最后,让您的主机服务器软件保持最新。如果您运行的是托管服务,这应该是为您完成的。

更好的安全性意味着保持更新。

考虑一下 Docker 企业

如果您有一个由一群人和一堆 Docker 容器组成的组织,那么您很可能会从 Docker Enterprise 中受益。管理员可以为所有用户设置策略限制。所提供的 RBAC、监控和日志记录功能可能会使您的团队更容易进行安全管理。

有了 Enterprise,你还可以在 Docker 信任的注册表中秘密托管你自己的映像。Docker 提供内置的安全扫描,以确保您的图像中没有已知的漏洞。

Kubernetes 免费提供了部分功能,但是 Docker Enterprise 为容器和图像提供了额外的安全功能。最棒的是, Docker Enterprise 3.0 于 2019 年 7 月发布。它包括 Docker Kubernetes 服务与“明智的安全默认值”。

其他提示

  • 不要以-- privileged的身份运行容器,除非你需要在 Docker 容器中运行 Docker 这样的特殊情况——并且你知道你在做什么。
  • 在你的 docker 文件中,支持 COPY 而不是 ADD。添加自动提取压缩文件,并可以从网址复制文件。COPY 不具备这些能力。尽可能避免使用 ADD,这样就不会受到远程 URL 和 Zip 文件的攻击。
  • 如果您在同一服务器上运行任何其他进程,请在 Docker 容器中运行它们。
  • 如果您使用 web 服务器和 API 来创建容器,请仔细检查参数,以便不会创建您不想要的新容器。
  • 如果您公开一个 REST API,用 HTTPS 或 SSH 保护 API 端点。
  • 考虑与码头工人安全工作台进行一次检查,看看你的集装箱在多大程度上遵循了他们的安全准则。
  • 仅将敏感数据存储在卷中,不要存储在容器中。
  • 如果使用联网的单主机应用程序,不要使用默认的桥接网络。它存在技术缺陷,不建议用于生产。如果您发布一个端口,桥接网络上的所有容器都可以访问。
  • 使用加密 HTTPS 证书进行服务。在这里可以看到 NGINX 的例子。
  • 当您只需要读取卷时,以只读方式装载卷。在这里看到几种做这个的方法。

摘要

你已经看到了许多使你的码头集装箱更安全的方法。安全没有设置-它和忘记它。它需要保持警惕,以保持您的图像和容器的安全。

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

Keys

考虑安全性时,请记住目标

  1. A 访问管理
  • 避免以 root 用户身份运行。如果必须使用根目录,请重新映射。
  • 放弃所有功能,添加那些需要的功能。
  • 如果您需要细粒度的权限调优,请深入研究 AppArmor。
  • 限制资源。

2.法师安全

  • 使用官方的、流行的、最简单的基础图片。
  • 不要安装你不需要的东西。
  • 要求对图像签名。
  • 随时更新 Docker、Docker 图像和其他与 Docker 相关的软件。

3.秘密的管理

  • 使用秘密或卷。
  • 考虑像 Vault 这样的秘密管理器。

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

Bullseye!

保持码头集装箱安全意味着以安全为目标。

不要忘记更新 Docker、你的语言和库、你的图像和你的主机软件。最后,如果你作为团队的一员运行 Docker,考虑使用 Docker Enterprise。

我希望这篇 Docker 安全文章对您有所帮助。如果你有,请在你最喜欢的论坛或社交媒体渠道上与他人分享,这样你的朋友也可以找到它!👏

你有其他 Docker 安全建议吗?如果有,请在评论中或在 Twitter @discdiver 上分享。👍

如果你有兴趣在我的难忘的 Docker 书发布时得到通知,那就注册我的邮件列表

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

我写关于 Python、数据科学、人工智能和其他技术主题的文章。如果你对这些感兴趣的话,可以在 Medium 上看看它们。

安全快乐!😃

来自《走向数据科学》编辑的注释: 虽然我们允许独立作者根据我们的 规则和指南 发表文章,但我们并不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

最常用的 20 个 Git 命令

原文:https://towardsdatascience.com/top-20-most-frequently-used-git-commands-part-1-5f8c9212509f?source=collection_archive---------12-----------------------

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

嘿,你是新来的吗?如果是的话,你已经迟到了,你应该昨天就知道了。但是不要担心,现在还不算太晚。

甚至我们大多数人都听说过 Git,但是仍然有许多人可能不知道如何使用它。在本指南结束时,您将知道 Git 中几个最常用的命令。

Git |简介

Git 是一个分布式版本控制系统(DVCS ),用于跟踪源代码中的变化,但是它也可以用于跟踪任何一组文件中的变化。

  • 中央版本控制系统(CVCS)
  • 分布式版本控制系统(DVCS)
  • Git 命令

版本控制系统

版本控制系统是对文档、计算机程序、大型网站和其他信息集合的更改的管理。市场上有许多版本控制系统,但通常分为两类,即中央版本控制系统和分布式版本控制系统。

中央版本控制系统(CVCS):

中央版本控制系统(CVCS)是某处(可能在服务器上)的单个存储库或项目副本,开发人员将他们的更改提交到该存储库中。同时,对这个存储库所做的更改对其他开发人员也是可见的。

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

Image by http://guides.beanstalkapp.com

分布式版本控制系统(DVCS):

分布式版本控制系统(DVCS)也是一个版本控制系统,其中每个开发人员的硬盘上都有完整的代码库和完整的版本历史。在没有上传到服务器之前,任何人都看不到对此本地存储库所做的更改。

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

Image by http://guides.beanstalkapp.com

Git 术语

  • **存储库:**存储库是存储和管理数据的中心位置。
  • **提交:**提交是永久保存更改的操作。
  • Staging Area: Staging 是 git 中提交流程之前的一个步骤。也就是说,git 中的提交分两步执行:准备和实际提交
  • 推送:****git 推送命令用于将本地存储库内容上传到远程存储库。
  • Pull:****git Pull命令用于从远程存储库获取和下载内容,并立即更新本地存储库以匹配该内容。
  • **远程服务器:**远程服务器是一种不在局域网上的服务器,它为全球的用户提供数据服务。
  • **分支:**分支就像你的项目的目录,里面包含了所有的文件。Git 存储库总是创建默认的分支,称为主分支。
  • **克隆:**克隆是创造某物的复制品的过程。

我们将看到一个如何将本地存储库推送到远程服务器的实例。我会演示给你看,现在我们开始吧。

第一步

首先移动到您的项目所在的目录,因为我的项目位于 PycharmProjects/git_commands 中,所以现在打开您的终端并运行下面的命令到达那里。

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

如果你想看到你的项目目录中的文件,然后输入下面的命令。

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

As you can see there is only single file inside my git_commands folder.

第二步

一旦你进入你的项目目录,现在我们将在 Bitbucket 上创建我们的远程存储库,你可以使用 Github 来代替。现在打开你的浏览器,输入 bitbucket,如果你没有 Bitbucket 账户,那么你必须创建一个。点击此链接 bitbucket 创建账户或登录 bitbucket。

要创建新的存储库,请单击+按钮并选择存储库

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

现在给你的库命名,就像我给 GitTutorial 一样,你可以给任何你想要的名字。然后点击高级设置,选择你正在使用的语言,一切保持原样,最后点击创建库。您将看到新的存储库将在您的 Bitbucket 帐户上创建。创建存储库后,您的帐户将如下所示。

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

Repository created with name GitTutorial

第三步

git config: 使用 git config 命令设置系统的全局变量。 git config 命令是一个方便的功能,用于在全局或本地项目级别设置 Git 配置值。转到您的终端,键入下面的命令如下。

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

git Config

git init: 该命令用于初始化系统上的本地存储库

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

git init

git remote: 这个命令用于将您的本地存储库连接到远程服务器。

现在,我们将添加我们的远程存储库的连接,以便我们可以将我们的代码库推送到 Bitbucket。现在,从 Bitbucket 复制远程存储库的链接,并将其粘贴到终端。

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

**git 状态:**该命令列出了所有必须提交的文件。如下图所示, calculator.py 标记为红色,表示该文件尚未提交,需要提交。

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

git add:****git add命令将工作目录中的更改添加到登台区。它告诉 Git 您想要在下一次提交中包含对特定文件的更新。在我的例子中, calculator.py 文件被添加到暂存区。如果您有多个文件要添加,那么您可以使用 **git add *** 。

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

git add

git commit:gitcommit命令用于将您的更改保存到本地存储库。git commit-m[键入提交消息]

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

git commit

git log: 这个命令用来告诉我们提交记录。请参见下图,只有一次提交,这就是为什么它只显示“初始提交”消息以及提交内容的 SHA1 40 字符校验和。

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

git log

如果您重新运行 git commit 命令,它会告诉我们,自从上次提交以来,我们没有对文件进行任何更改,所以没有什么要提交的。

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

git branch: 如果您在终端中运行这个命令,那么它将显示所有的分支,默认情况下它只有主分支。下图中 master 前面的星号*表示您目前在 master 分支机构中。如果您想要创建新的分支,那么您可以运行 git branch [branch name]。在我的例子中,我创建了名为子主的分支。

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

git branch

git checkout: 该命令用于切换分支。即使创建新分支后,你仍然在分支中。如果你想在分支之间切换,你可以运行 git checkout【分支名称】命令。正如您在下图中看到的,我们从分支切换到子主分支,子主前面的星号( ***** )告诉我们当前在子主分支中。

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

Switched from master branch to sub-master branch

git push:****git push命令用于将本地存储库内容上传到远程存储库。推送是将提交从本地存储库转移到远程存储库的方式。在下图中,我们的本地存储库已经被复制到远程存储库。

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

git push — f origin master

正如你在给定的图片中看到的“calculator.py”文件成功上传到 Bitbucket 存储库,它只有一个功能。现在我们将修改这个文件,并向它添加更多的函数,然后我们将看到这个文件如何在我们的远程服务器上更新。让我们开始吧。

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

“Calculator.py” is on the remote server now

如果您现在运行 git status 命令,它会告诉您自上次提交以来,您对文件做了一些更改。如您所见,Calculator.py 文件是修改后的文件。

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

现在,我们将再次重复相同的过程,将此更改推送到我们的远程服务器。我们将把这个文件从项目目录添加到临时区域,然后提交更改,最后我们将推送它。

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

Code pushed to the server.

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

Bitbucket Repo

git show: 该命令显示指定提交的元数据和内容变化。

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

git clone: 该命令用于将存储库从远程服务器克隆到本地机器。

要使用这个命令,我建议您在系统上的任意位置创建新文件夹,然后运行 git clone 命令。如你所见,我在桌面上创建了一个名为 git_clone 的新文件夹。现在,从 Bitbucket 复制远程存储库 URL,并将其粘贴到终端。

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

现在打开 git_clone 文件夹,您将看到项目下载到文件夹中。

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

git pull: 这个命令获取并合并远程服务器上的更改到您的工作目录中。要使用这个命令,请转到 git_commands 目录,然后运行 git pull 命令。正如你所看到的,我们的项目已经是最新的,所以没有新的获取和合并。

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

**git 复位:**该命令用于撤销对 Git repo 状态的本地更改。

git diff: 该命令显示尚未暂存的文件差异。

git stash: git stash 用于临时存储修改后的文件。

**git 复位:**该命令用于撤销对 Git repo 状态的本地更改。

这个命令从你的工作目录中删除这个文件,并且分阶段删除。

**git 标签:**该命令用于给指定的提交赋予标签。

git merge: 该命令将指定分支的历史合并到当前分支中。

资源:

  • Git 源代码

[## git/git

Git 源代码镜像——这是一个只发布的库,所有的拉请求都会被忽略。请跟随…

github.com](https://github.com/git/git)

  • 源代码树

[## 用于 Mac 和 Windows 的免费 Git GUI

作为我们新的比特桶空间站管理员,你需要有条理。当你为你的空间站制作文件时…

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

总结

  • CVCS 将其所有项目文件保存在一个地方。并且在进行项目时需要在线。
  • DVCS 工作在分布式模式,每个开发人员从远程服务器克隆项目,并在他们的本地机器上工作,所以他们不需要在线。
  • 合并命令允许我们上传、下载和合并我们的项目。

我希望你喜欢读这篇文章,你也可以访问我的 网站 ,在那里我会定期发布文章。

订阅 我的邮件列表,直接在您的收件箱中提前获得我的文章,或者关注我自己在 Medium 上发表的文章The Code Monster以完善您的技术知识。

了解你的作者

希曼舒·维尔马毕业于印度勒克瑙的 APJ 阿卜杜勒·卡拉姆大学博士。他是 Android & IOS 开发人员、机器学习和数据科学学习者、金融顾问和博客作者。

如果你有一个严厉的老板,三条建议

原文:https://towardsdatascience.com/top-3-advices-if-you-have-a-strict-boss-cb934f6befed?source=collection_archive---------24-----------------------

我希望我能早点知道的经验教训

我数据科学实习的真实故事

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

当我试图开始我的数据科学之旅时,我尝试了许多方式来提交我的简历,只是为了一个开始数据科学实习的机会。然而,无论我如何努力,由于缺乏专业技能,我仍然无法进入那个领域。

我很难过。

在我快要放弃的时候,朋友分享了一个全职的数据科学实习,叫我去试一试。

我答应了!

一定,我会试试!

那真是我成功的大好机会。尽管我刚刚递交了简历,甚至还没有接到面试的电话,但我已经开始准备了。几天后,我收到了我渴望已久的电子邮件。采访是在几周后进行的。

面试那天,我准备了很多项目来给面试官留下深刻印象,但最后,面试官的主要关注点变成了寻找一个对学习有很好态度的人。

你说得对,我得到了实习机会,这段经历的确成为我一生中最难忘的实习经历。

给了我一台 mac 台式机,我甚至不知道如何使用 Mac,但我很感激,给了我足够的时间来学习。你想知道我第一个月的经历吗?我可以告诉你,在我的第一个月,我所做的只是开始熟悉自己使用 mac,mac 终端,并阅读文档,希望让自己有一个良好的开端。

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

是的,实际上我在第一个月并没有非常努力地工作,这就是为什么我觉得我在第二个月几乎无法生存。我开始接受大量的工作,为了完成给定的任务,我开始被逼得很紧。我仍然记得,在我第二个月的每一天,我都需要至少工作到凌晨 12 点,非常努力地修复抓取整个网站时给定任务的所有错误(那时我完全是一个网络爬行新手),希望我能够达到他或她的期望。

作为一个人,休息是必不可少的,很快,我开始感到筋疲力尽。我觉得我总是背着一块大石头,这让我觉得只想在家休息一下。我的大脑不断告诉我退出,“这只是一个实习,退出吧!”。

经过一年的工作经验,以下是我想与你们分享的前三条建议或想法!

如果一个老板愿意把你推到极限,他或她被认为是一个好老板。

不是每个老板都愿意花精力去培训或督促你。你的老板没有责任培训你,他或她可以让你做一些简单的工作,这样他或她就有更多的时间专注于他或她的工作。

此外,如果你的老板不仅愿意推动你,而且在你希望在职业生涯中拥有的领域也非常强大,那么一定要珍惜这个机会。

例如,也许你是一家公司的数据科学家,你希望提高自己的技术技能。然而,你的老板更擅长使用 powerpoint/Excel 提供数据见解,那么你也许可以考虑为你的职业生涯做出改变。

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

更严格的老板会迫使你更加独立

在我实习期间,我每天只有两次提问的机会。此外,我的老板要求我在问任何问题之前至少连续搜索 2 小时的答案。起初,我真的很沮丧,但渐渐地我能理解老板的意图,把我塑造成一个能独立工作的人。

有时候,我被分配了一项任务,要在一天结束前完成,但实际上,我的大部分时间都用在了连接服务器上。这是因为他们的服务器位于新加坡之外,他们有自己的 Bash 脚本来连接服务器。给的任务已经很有挑战性了,再加上你大部分时间都用来连接服务器,这的确会让你变得更有压力。

如你所知,解决问题的技能是这个行业非常需要的技能之一。拥有这项技能一定会让你成为一个很抢手的人。

不要害怕你严厉的老板,要更加积极主动

这是我的老板在我的实习结束后给我的建议之一——要更加积极主动。

你可能会想,什么?

我的老板已经这么严格了,而我没有多少时间来完成我的任务,你却告诉我要更加积极主动?

不要等着你的老板给你如何解决任务的指示,你应该更积极主动地测试你的一些方法或目的你的老板一些你认为可行的解决方案,然后寻求指导。

相反,这不仅会减少老板要做的工作,还会展示你解决问题的能力。

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

最后的想法

真的希望这篇文章将有利于你在任何方面。请记住:

不要挑工作。选一个老板。你的第一个老板是你事业成功的最大因素。—威廉·拉杜切尔

如果你的老板是一个严格的老板,不要害怕,相反,要更加积极主动,尽可能多地学习。我向你保证,你会发现你在短时间内提升自己的速度有多快!

关于作者

Low 魏宏是 Shopee 的数据科学家。他的经验更多地涉及抓取网站,创建数据管道,以及实施机器学习模型来解决业务问题。

他提供爬行服务,能够为你提供你所需要的准确和干净的数据。你可以访问 这个网站 查看他的作品集,也可以联系他获得的抓取服务

你可以在 LinkedInMedium 上和他联系。

[## 低微红—中等

在媒体上阅读低纬鸿的作品。数据科学家|网络搜集服务:http://datainfinite.mystrikingly.com/…

medium.com](https://medium.com/@lowweihong?source=post_page-----c934d55f9c9a----------------------)

你不知道的熊猫的三大功能(大概)

原文:https://towardsdatascience.com/top-3-pandas-functions-you-dont-know-about-probably-5ae9e1c964c8?source=collection_archive---------2-----------------------

我以前写过关于熊猫的文章,原因很明显——它是一个用于数据分析甚至数据可视化的惊人的库。前一篇文章介绍了一些您应该经常使用的函数,因为它们:

  • 会让你的代码保持干净
  • 不会让你重新发明轮子

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

Photo by Tanner Boriack on Unsplash

如果你错过了它,这里有一个链接,这样你就可以在有时间的时候保存它:

[## 你应该更经常使用的 3 个熊猫功能

停止重新发明轮子。说真的。

towardsdatascience.com](/3-pandas-functions-you-should-be-using-more-often-696b41e8d7ca)

然而,在今天的帖子中,我想把注意力转移到几个更有用的功能上,这些功能让我觉得自己在工作中完全是个白痴。你可能会问,这是为什么。嗯,我很懒,在我写代码之前我不喜欢谷歌,所以我甚至不知道这些功能的存在。

最后的结果至少可以说是令人沮丧的。我成功地实现了所需的逻辑,但代价是几个小时,一把新的白发,当然,还有许多不必要的代码。

为了避免同样的事情发生在你身上,请继续阅读。

idxmin()和 idxmax()

是的,我知道我在过去已经报道过这些,但是它们是这篇文章的本质。你先不理解这几个就不会理解第二个有用的功能,那就言归正传吧。

简而言之,这些函数将返回所需条目的 ID ( 索引位置)。假设我创作了以下熊猫系列:

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

并希望找到最小和最大项目的索引位置。当然,仅仅通过观察不难发现这一点,但是你绝不会(我是说绝不会)在你的项目上有这么少的数据点。

这意味着您需要利用 idxmin()idxmax() 函数的能力,让我们看看如何实现:

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

请记住,这些函数将返回最小/最大值第一次出现的索引。

ne()

这个对我来说是一个大发现。不久前,我在工作中处理一些时间序列数据,遇到了第一个 n 观测值为 0 的问题。

为了简单起见,想想你可能已经买了东西,但一段时间内没有消费掉。该物品在您手中,但由于您没有使用它,在给定日期的消费为 0。因为我只对你真正开始使用这该死的东西时的用法感兴趣,***【ne()***就是那个拯救了你的功能。

让我们考虑下面的场景。你有一个 Pandas DataFrame 对象,它的一些观察值在开始时为 0:

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

现在 ne() 要做的是,如果当前值不是您指定的值(假设为 0 ),则返回 True ,否则返回 False :

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

这本身没多大用处。你还记得我说过你需要知道 idxmax()来理解这一点吗? 好吧,我没有说谎,你可以从上面的代码链 idxmax() :

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

所以在索引位置 6,我们有第一个非零观测值。这又一次没有给你提供多少价值。好的一面是,我们可以使用该信息对数据帧进行子集化,以仅显示从项目第一次使用时开始的值:

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

当你处理时间序列数据的时候,这就派上用场了。

nsmallest()和 nlargest()

我猜你可以从名字中推断出这两个函数是关于什么的。假设我创建了下面的 DataFrame 对象:

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

为了好玩,让我们假设这 5 个是在编写测试后观察到的分数。您有兴趣找出哪 3 名学生表现最差:

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

或者哪三个学生表现最好:

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

这两个函数是像***sort _ values()***这样的函数的绝佳替代品。

在你走之前

随着时间的推移,我相信我会遇到更多值得在文章中提及的节省时间的功能,所以你肯定会看到更多这样的帖子。同时,请在评论区分享你最喜欢的熊猫功能。

感谢阅读。保重。

喜欢这篇文章吗?成为 中等会员 继续无限制学习。如果你使用下面的链接,我会收到你的一部分会员费,不需要你额外付费。

[## 通过我的推荐链接加入 Medium-Dario rade ci

作为一个媒体会员,你的会员费的一部分会给你阅读的作家,你可以完全接触到每一个故事…

medium.com](https://medium.com/@radecicdario/membership)

你不知道(可能)的 4 大 Numpy 函数

原文:https://towardsdatascience.com/top-4-numpy-functions-you-dont-know-about-probably-28fcd5d7174f?source=collection_archive---------6-----------------------

在今天的文章中,我想讨论几个我日常用于数据分析的基本 Numpy 函数。无论如何,这不是一个全面的列表,但它足以让你开始,我相信它们会很适合你。

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

Photo by Nadine Shaabana on Unsplash

我甚至不知道自己思考了多少次*“我需要实现的东西并不那么简单,不可能存在预建的函数”。我常常是错的。Pure Numpy 是如此强大,我将冒险让你不知道它所提供的一切。*

我以前写过一些很棒但不太为人所知的熊猫的功能,它们将为你节省大量时间,所以如果你每天都在使用熊猫,一定要看看这些功能:

[## 你不知道的熊猫的三大功能(大概)

为我节省了大量时间和挫折的功能

towardsdatascience.com](/top-3-pandas-functions-you-dont-know-about-probably-5ae9e1c964c8)

所以,事不宜迟,让我们开始吧。您需要的唯一导入是 Numpy:

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

哪里()

where() 函数将从数组中返回满足特定条件的元素。下面我们用一个例子来探讨一下。

我将声明某种等级的数组(实际上是任意的):

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

您现在可以使用 where() 来查找所有大于 3 的成绩:

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

注意它如何返回索引位置

派对不止于此,朋友,你可以提供两个额外的参数:

  • 第一个将替换满足给定条件的值
  • 第二个当然会替换那些不满足条件的

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

因为我想保持文章的简洁,我认为这将会给你足够的时间继续自己的探索。

argmin(),argmax(),argsort()

好吧,这些花哨的名字是怎么回事?

这里没有什么特别的东西,但是如果你不想自己实现这个逻辑的话,这三个函数会非常适合你。

argmin() 函数将返回最小值的索引。在我们之前使用的同一个数组上,它将返回最小值的索引位置:

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

您猜对了, argmax() 会执行相反的操作—返回最大值的索引:

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

另一个漂亮的函数是 argsort() ,它将返回一个排序数组的索引。这在很多情况下都会派上用场:

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

交叉 1d()

***intersect 1d()***函数将做的是,它将返回两个数组的交集,即两个数组中的公共项。与前面的函数不同,它不会返回索引位置,而是返回实际值。

首先,让我们声明两个有一些共同元素的数组:

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

现在,您可以使用上面提到的函数来查找共有元素:

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

allclose()

最后,但绝不是最不重要的,是 allclose() 函数。如果两个数组中的项在容差范围内相等,它将返回 True。它将为您提供一种检查两个数组是否相似的好方法,在某些情况下,手动实现这两个数组是很痛苦的。

首先,我将声明两个列表,并确保各个项目的差异在任何地方都不大于 0.2:

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

如果我现在调用公差为 0.1 的 allclose() 函数,它应该返回 False:

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

但是如果我决定将阈值改为 0.2,它应该返回 True:

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

在你走之前

很多次,我都有(有时仍然)重新发明轮子的罪恶感。人们很容易认为你的问题是独一无二的,没有人想到要创造一个函数来解决它。虽然在某些情况下这可能是真的,但更多的时候,当你为过去几个小时一直手动实现的东西找到一个预制函数时,你会觉得自己像个十足的傻瓜。

确保你意识到你正在使用的图书馆的力量,它们如此受欢迎是有原因的。

感谢阅读。保重。

广泛用于数据可视化的五大 BI 工具

原文:https://towardsdatascience.com/top-5-bi-tools-that-you-must-use-for-data-visualization-7ccc2a852bd3?source=collection_archive---------5-----------------------

**商业智能(BI)——**这个话题在商业领域已经讨论了很长时间。几乎所有类型的企业都相信好的商务智能工具的潜力,并使用它们来改善他们的业务。随着商业智能现象的兴起,先进的商业智能工具和技术被大量引入。这使得市场上为客户提供了许多潜在高效的 BI 工具。

今天,我将分享商业智能领域顶级玩家的详细信息,这意味着用于数据可视化的顶级 BI 工具。让我们从数据可视化的介绍开始讨论。

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

什么是数据可视化?

**术语商业智能是指用于收集、整合、可视化和分析原始数据的工具和技术的统称。在当今时代,随着自由流动数据量的不断增加,高效的 BI 工具对于充分利用隐藏在原始和未处理数据中的知识至关重要。

数据可视化在整个商业智能动态中扮演着至关重要的角色。简单来说,数据可视化是给定数据集的图形化表示。基于文本的数据以图表、图形、表格、信息图、地图等形式可视化。在可视化的帮助下,可以发现数据中的新见解和隐藏模式。

数据可视化的目的是检测不同数据集之间的模式、趋势和相关性,否则无法从简单(非图形)形式的数据中进行研究。它帮助用户更好地了解市场现状,评估客户需求。此外,企业可以通过新的战略和技术来发展,以增强和促进他们的业务。这正是所有数据科学软件公司专注于使其 BI 工具在数据可视化功能方面表现最佳的原因,因为它有助于揭示巨大的原始数据库中隐藏的信息。

用于数据可视化的顶级 BI 工具

让我们从讨论 2019 年数据可视化的顶级 BI 工具开始。我们将讨论 BI 领域的主要参与者,如微软 Power BI* 、 TableauQlikViewQlik Sense 。这些 BI 工具被 Gartner 的《2019 年分析和商业智能平台魔力象限》( Gartner 发布的调查系列)列在不同的类别中。*

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

  1. 画面

Tableau 是一个新时代的数据分析和商业智能平台,为用户提供灵活性和易用性。Tableau 的核心优势被认为是其交互式仪表盘、快速响应和实时数据分析功能。它提供引人注目的图形(可视化)来形象地表示您的数据集。从根本上说,Tableau 提供了数据提取、处理、表示和与他人共享最终报告/仪表板/工作表的所有必要功能。

Tableau 受欢迎的主要原因是其易于拖放的功能,可以创建可视化效果。它比其他 BI 工具更快,而且非常直观,是一款完美的自助式 BI 工具。它还提供了与大量数据和大数据源的连接,如 Oracle、Teradata、SAP HANA、MongoDB、Excel、文本文件、JSON、Google Cloud、SQL、Hadoop、Amazon Redshift 等。

连接到这些数据源不需要购买连接器许可证。此外,Tableau 是为所有类型的用户设计的,不需要任何特定的技能或知识。企业中所有类型的用户都可以轻松执行所有数据分析和可视化功能。

推荐你去探索这个 Tableau 教程系列 获取 Tableau

画面特征

  • 询问数据
  • Tableau 准备指挥
  • 适用于 iOS 和 Android 的 Tableau mobile
  • 连接器和连接
  • 数据共享
  • 安装和部署
  • 设计视图和可视化

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

下面给出了一个Tableau dashboard的一些数据可视化示例。****

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

2。微软 Power BI

微软 Power BI 是一个强大的数据可视化工具,非常受欢迎。这是一个基于云的软件,有两个版本;动力匕桌面动力匕移动。微软 Power BI 以其易于使用的数据准备和数据可视化功能而闻名。Power BI 附带了许多可视化功能,如 自定义可视化 ,使用自然语言创建可视化,拥有 Cortana 个人助理等。

Microsoft Power BI 提供与各种数据源的连接,如 Oracle、IBM、SQL Server、Salesforce、Google analytics、Azure DevOps、Excel、文本文件、JSON、Zendesk、Mailchimp 等。除此之外,借助使用 web 服务的直接连接,与大数据源的集成也很容易。

在短短 4 周内学会关于力量的一切 BI

看看一些示例微软 Power BI 应用使用不同种类的可视化。****

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

微软 Power BI 的特性

  • 访问内部和基于云的数据源
  • 直观和图形丰富的可视化
  • 对复杂情况的快速响应
  • 移动兼容性
  • 轻松洞察(仪表板、报告等。)组织内的共享
  • 将数据报告和仪表板发布到 web
  • 帮助和反馈按钮
  • 模式指示器
  • Power BI Desktop 提供信息丰富且直观的报告

你必须详细探究这些 异能匕的特性

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

3. QlikView

根据 Gartner 2019 年魔力象限报告,QlikView 是领先的 BI 工具 之一。QlikView 提供内存存储功能,可快速收集、整合和处理数据。报告使用可视化工具生成,数据之间的关系由 QlikView 软件自动导出。换句话说,QlikView 是一个数据发现工具,有助于创建用于数据分析的动态应用程序。

QlikView 主要是一种数据发现工具,因此它具有一些独特的数据可视化功能。数据发现是用户驱动的对数据集中的模式和趋势的搜索。它通过提供图形、表格、地图等视觉辅助帮助用户理解和看到这些模式。QlikView 的独特之处还在于其灵活性、内存功能和协作辅助功能。

看看一些使用不同可视化方式的 QlikView 应用示例。

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

QlikView 的功能

  • 独特的数据发现和全局搜索
  • 交互式可视化
  • 合作
  • 对数据的绝对控制
  • 安全的工作环境
  • 灵活性和集成
  • 一致的报告

升级技能的最佳时机— 向专家学习 QlikView

4。Qlik 感应

Qlik Sense 也是一款流行的数据分析和可视化软件。它的核心是一个相关的 QIX 引擎。该引擎使用户能够链接和关联来自不同来源的数据来执行分析。Qlik Sense 作为一个数据分析平台,面向从非技术用户到技术用户的广大用户。

Qlik Sense 更侧重于数据可视化,因为它具有增强的图形。但是,在 QlikView 中,您可以通过脚本以多种技术方式操作数据。如果您使用 Qlik Sense 的动机是以尽可能好的图形来可视化和分析数据,那么您做出了正确的选择。

Qlik Sense 为用户提供了很大的灵活性,因为他们可以通过自助式可视化和分析执行完全独立的操作。此外,它们可以由 Qlik Sense 的认知引擎进行自动机器引导分析。Qlik Sense 使用关联模型,用户可以自由探索大量复杂的数据,并从中获得直观的见解。从 Qlik 的角度来看,集成来自多个来源的大型数据文件是可能的。客户端可以在中央集线器上共享数据应用程序和报告。除此之外,他们还可以共享安全的数据模型,导出数据故事等。来提升他们的业务。

看看一些使用不同类型可视化的 Qlik Sense 应用程序示例。

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

学习 Qlik Sense 成为商业智能大师

Qlik Sense 的特性

  • 联想模型
  • 智能可视化和分析
  • 自助创建
  • 集中式共享和协作
  • 数据叙述和报告
  • 应用移动性
  • 数据准备和整合
  • QIX 引擎
  • 企业治理和可扩展性

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

5。SAP Lumira

SAP Lumira 也在十大商务智能工具中占有一席之地。根据 Gartner 的 2019 年分析和商业智能平台魔力象限, SAP Lumira 被归类为具有巨大潜力的前瞻性 BI 工具。SAP Lumira 是一款自助式数据可视化和分析工具,以其易用和直观的应用程序而闻名。SAP Lumira 提供丰富的交互式可视化,如表格、图形、图表、地图、信息图等。

根据使用目的,SAP Lumira 有两个版本;SAP Lumira 的发现版和设计师版。在 Discovery edition 中,您可以创建自助式数据可视化,并将其直接发布到 SAP BusinessObjects BI 工具。而在 Designer edition 中,您可以使用这些自助式可视化来创建详细的分析应用程序。****

SAP Lumira 是一个用户友好的工具,有一个主屏幕,所有数据源都可以在这里找到。输入控件,以便用户可以自由地处理应用程序。应用程序屏幕提供了使用导入的数据创建可视化和应用程序的单一平台。用户可以访问实时数据,如治理数据、宇宙数据、云数据、元数据、来自大数据源的数据等。

看看一些 SAP Lumira 应用程序的例子,它们使用了不同的可视化技术。

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

将 SAP Lumira 连接到 SAP HANA

由于 SAP HANA 是一种内存数据库技术 ,来自它的数据被带入 SAP Lumira,供用户进行数据可视化和分析。SAP Lumira 使用 JDBC 连接(即 OLAP 连接)直接连接到 SAP HANA。SAP HANA 和 SAP Lumira 之间的通信使用的语言是 SQL。

您可以将 SAP Lumira 连接到 SAP HANA,以使用存储在 HANA 数据库中的数据。要连接到 SAP HANA 数据库,请转到 SAP Lumira 的文件菜单,通过建立连接来添加新数据集。将 SAP Lumira 连接到 SAP HANA 的完整步骤在单独的教程“连接 SAP Lumira 和 SAP HANA ”中给出。请参考。**

一旦您与 SAP HANA 建立了连接并从中导入数据集,您就可以在 Lumira 中创建许多可视化效果。您可以从一系列可视化图形中进行选择,如饼图、条形图、树形图、环形图、热图等。

SAP Lumira 的特性

  • 使用低级 JavaScript 编程轻松开发数据可视化应用程序。
  • 基于模板的数据可视化仪表板指导设计。
  • 通过网络和移动平台访问 Lumira 应用程序。
  • 嵌入式可视化和可定制的扩展。
  • 集成来自多个数据源的数据。
  • 集成 SAP BusinessObjects BI 分析工具。
  • 创建临时报告和仪表板
  • 讲故事

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

虽然,Power BI,Tableau,Qlik Sense,QlikView 是截至 2019 年领先的数据分析和可视化 BI 工具。

BI 领域还有其他工具,如 ThoughtSpotSisenseSalesforceLookerDomoSAP (SAP Lumira) 等。证明了它们作为数据可视化的完美 BI 工具的潜力。在不久的将来,市场上将会出现数十种新的商务智能工具。这将为客户提供具有高级 BI 功能的广泛选项。

希望你喜欢阅读这篇文章。

你需要知道的五大数据分析方法

原文:https://towardsdatascience.com/top-5-data-analysis-methods-you-need-to-know-e83f95cae355?source=collection_archive---------13-----------------------

数据分析中,数据分析思维是基于框架的指南。在分析问题的时候,我们需要很多技巧和工具。就像在中学一样,你可以用公式法、完成平方、平方根的提取或因式分解法来解二次方程。数据分析中也有一些技术,我们可以在一些常见的分析场景中使用。并且它们可以在将来构建数据分析模型时有所帮助。

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

在本文中,我们将分享五种常用的数据分析方法:公式法、比较法、象限法、80/20 法则、漏斗分析法。我们经常组合使用它们。

注意:这些方法主要偏向于思维层面,是基于业务问题对数据的探索性分析。它们不同于专业统计学中的数据处理方法。

1.公式法

所谓公式法,就是用公式对某一指标的影响因素进行分解。

例:用公式法分析某产品销量低的原因。

  • 产品销售额=销售量*单价
  • 销量=渠道 A 销量+渠道 B 销量+渠道 C 销量+ …
  • 渠道销量=用户数*订单率
  • 用户数量=曝光率*点击率

第一步:寻找产品销售的影响因素。是销量太低还是价格设定不合理?

第二步:找到影响销量的因素。分析每个渠道的销量。和之前的销售对比一下,找出异常的。

第三步:分析影响渠道销售的因素。是用户数低还是订单率低?如果订单率低,就要看渠道的广告内容是否与产品的实际受众相匹配。

第四步:分析影响点击的因素。是曝光度不够还是点击率太低?如果点击率低,你需要优化活动。而曝光度与渠道有关。

为此,公式法是对问题的层次分析。它将影响因素逐级分解。

2.比较法

比较法是对两组或多组数据进行比较,是数据分析中最常用的方法。

我们知道孤立的数据是没有意义的,我们通过比较看到差异。人们通过比较一些直接描述事物的变量,如长度、数量、高度、宽度等,得到比率、增长率、效率等指标。

比较法可以发现数据变化的规律。下图是 A 公司和 B 公司的销售对比,虽然 A 公司的销售普遍有所增长并且高于 B 公司,但是 B 公司的增速高于 A 公司,即使 B 公司后期增速下滑,最终销售也是迎头赶上。

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

3.象限法

通过划分两个或多个维度,我们用坐标来表示数值,这就是象限法。象限法是基于战略驱动的思想。我们经常在产品分析、市场分析、客户管理和商品管理中使用它。

例如,下图是广告点击的四象限分布。

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

如果一个广告获得高转化率( CVR )和高点击率( CTR ),说明它的目标受众是相对精准的。

如果点击率高,CVR 低,这意味着大多数点击的人是被广告本身吸引的。低 CVR 表明广告的目标人群与产品的实际受众不匹配。

高 CVR 和低点击率表明广告的受众和产品的实际受众更加一致。问题是广告的内容需要优化,才能吸引更多人点击。

我们可以放弃低 CVR 和低点击率的广告。

用象限法分析具有相同特征的事件,可以找到问题的共同原因。在上面的广告案例中,观察第一象限的事件,可以总结出有效的推广渠道和策略。第三和第四象限可以排除一些无效的推广渠道。同时可以针对不同象限建立优化策略。

4.八二十分法则

80/20 法则也被称为 帕累托法则 。它是以其创始人,意大利经济学家维尔弗雷多·帕累托的名字命名的。他注意到,当时意大利 80%的财富掌握在 20%的人口手中。在数据分析中,我们可以理解为 20%的数据产生 80%的效果。我们需要挖掘这 20%的数据。

它通常与排名相关,前 20%被视为有效数据。80/20 法则分析关键部分,适用于任何行业。找到重点,发现它们的特点,然后思考如何让剩下的 80%转化到这 20%来提高效果。

通常,它将用于产品分类,以衡量和建立 ABC 模型。比如一个零售企业有 500 个 SKU(库存单位),那么哪些 SKU 是重要的?这就是商业运作中分清主次的问题。

通常的做法是使用产品的 SKU 作为一个维度,并使用相应的销售额作为一个基本指标来对这些销售指标进行排名,并计算每个 SKU 的累计销售额占总销售额的百分比。比如我们可以把他们分为 3 类:A 类(< 70%),B 类(70%-90%),C 类(90%-100%)。可以根据自己的实际情况调整百分比。

ABC 分析模型不仅可以用来划分产品和销售,还可以用来划分客户和利润。比如哪些客户为公司贡献了 80%的利润?如果这部分客户占 20%,那么在资源有限的情况下,你知道要重点维护这 20%的客户。

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

5.漏斗分析

漏斗分析是一个漏斗图,有点像倒金字塔。这是一种简化的思维方式。我们经常在分析变化和某些过程时使用它,比如新用户的开发、购物转化率等等。

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

上图是一个经典的营销漏斗,展示了从获取用户到最终转化为购买的全过程。漏斗模型将整个购买过程分成几个步骤。然后它用转化率来衡量每一步的表现,最后通过异常的数据指标找到有问题的那一步。这样就可以优化步骤,提高整体购买的转化率。

漏斗模型的核心概念可以分为分解和量化。比如分析电商的转化,我们要做的就是监测每个层级的用户转化,找到每个层级的可优化点。对于没有按照流程走的用户,我们专门构建他们的转化模型,缩短路径,提升用户体验。但是,单一的漏斗分析是没有用的。我们应该把它与其他方法结合起来,如与历史资料的比较。

数据分析工具

使用数据分析方法的好处是,它提供了一个思维框架,帮助你建立对事物和问题的观点。既然有了思维框架,我们还需要有效的工具来实现真正的数据分析,像 TableauPython 。这里推荐一款免费的数据分析工具 FineReport ,供大家练习。这是一个集成了数据显示(报告)和数据输入(填充)的 BI 报告&仪表板软件。成功入选《Gartner 全球市场指南》,成为中国唯一入选的厂商和产品,与微软、SAP、Oracle 等国际巨头一同上市。

FineReport 允许您通过简单的拖放操作创建复杂的报告。接下来,我将向您展示一些使用 FineReport 的数据分析场景。

销售分析

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

实时订单监控

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

营销分析

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

人口流动分析

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

如果你对 FineReport 感兴趣,可以去官网免费下载。还有针对 FineReport 初学者的帮助文档。

您可能也会对…感兴趣

数据分析师需要掌握的 6 项关键技能

2019 年你不能错过的 9 个数据可视化工具

制作销售仪表盘的分步指南

新手如何设计酷炫的数据可视化?

原载于 2019 年 4 月 25 日【http://www.finereport.com】

值得关注的 5 大数据治理框架工具

原文:https://towardsdatascience.com/top-5-data-governance-framework-tools-to-look-out-for-8d753ab314de?source=collection_archive---------9-----------------------

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

了解数据治理

数据被誉为 21 世纪的石油,组织最终意识到数据不再是个人之间交换的信息包。现在,个人是有机体,在他们不断创造的无底数据海洋中游泳!

事实上, 95%的 C 级高管已经在使用数据来形成他们的商业战略。有鉴于此,全球各地的公司已经意识到拥有一个正式的数据治理系统的重要性,这实质上是一种处理公司数据的系统方法。

它提供了一个策略、协议、程序和指标的结构来帮助公司规避风险和责任,并提供了一套工具来挖掘数据以实现其最大价值。此外,它还可以控制如何使用、存储和操作数据。它帮助组织中的每个人有效地、高效地、负责任地使用数据。

为什么需要数据治理工具?

随着数据及其应用对组织变得至关重要,保护数据资产完整性的数据治理工具也变得越来越重要。

虽然成功的数据治理计划的确是建立在业务运营人员的仔细规划和宝贵见解之上,但数据治理工具与任何其他因素一样重要,甚至更重要。以下是数据治理工具如何帮助您:

∇授权决策

∇提高了数据质量

∇简化了主数据管理

∇高级数据互操作性

∇高级数据血统

量身定制的数据治理政策至关重要

没有一种数据治理策略能适合所有组织。决策者、数据专家和业务运营部门的成员需要通力合作,定制符合特定组织数据要求的数据治理策略。

大约 49%的组织认为人为错误是数据不准确的主要原因,这使得所有部门的参与对这些政策的成功至关重要。决定数据治理决策的一些重要因素包括:

∇内部功能要求

∇数据收集方法。

∇数据的质量和规模

∇商业目标

∇数据存储框架

∇自动化程度

创建适合您组织的数据治理策略的第一步是根据所需的功能和分析能力为各种数据操作设计框架。

一旦确定了框架,决策者和各种利益相关者需要达成一致。只有当框架有益并为不同的跨职能合作伙伴带来价值时,才能实现这一点。

一旦数据治理策略的广泛目标最终确定,您需要开始寻找适合您的框架和数据操作的数据治理工具。让我们来看看一些关键的数据治理工具,以及它们如何对您的组织有所帮助:

1。

Collibra 被誉为企业范围的数据治理工具,以自动化数据操作和让跨职能团队保持一致而闻名。虽然事实上没有解决方案能够真正满足所有组织的需求,但 Collibra 已经过定制,以满足具有不同数据治理策略的各种框架的需求。

Collibra 提供的语义搜索功能是一个令人惊叹的功能,这使它比市场上的传统数据治理工具更具优势。治理和数据管理任务可以实现自动化,从而提高工作流的效率和可靠性。有了 Collibra 提供的预建集成模板,团队可以以简化的方式轻松链接到数据湖和元数据。

2。 TALEND

Talend 将其数据治理工具定义为可信数据的统一云平台。从元数据管理到改进的数据血统,这种数据治理工具有很多优点。不仅如此,这个数据治理工具还简化了数据的云集成。为了向您的数据操作团队介绍和熟悉该工具,您甚至可以使用该工具的免费开源版本。

****3。IO-TAHOE

IO-TAHOE 是另一个很棒的数据治理工具,可以最大化数据治理活动的产出。使用该工具可以验证数据质量,并发现新的信息来源。数据可视化及其发现的高度自动化带来了数据操作的高度互操作性,从而简化了组织中的信息流。当您的框架使用这种数据治理工具时,还可以确保遵守 GDPR、多德-弗兰克和 CCAR 等关键法规。

4。 IBM

IBM 提供的数据治理解决方案对您的组织来说是一个真正的陷阱。这个工具最大的优点是它能够灵活地适应各种数据治理策略,这对于许多拥有来自多个跨职能团队的多个数据入口的组织来说是一个障碍。

IBM 的这个解决方案的另一个重要特性是数据编目。这些数据目录由机器学习算法驱动,可以更快地收获元数据和培养数据资产。其安全基础设施由 IBM 的尖端技术提供支持,您可以放心地保护您用户的数据和隐私。

****5。

Informatica 为合规性和数据治理提供了快速解决方案,可以在内部或云中实施。它提供了强大的数据沿袭和历史的可视化,主动监控数据质量的主数据仪表板和数据安全的动态屏蔽。它还提供了检测和保护敏感客户数据、管理 GDPR 数据风险以及确保联系信息最新、准确和完整的功能。

当遵守 GDPR 等法规是您的数据治理框架的最终目标时,Informatica 被誉为终极工具。除此之外,该工具还提供了强大的可视化和改进的数据沿袭,从而提高了数据操作的效率。

Informatica 对数据质量的主动监控有助于您的框架在处理最复杂的数据湖时表现良好。由于在创建这些解决方案时对数据安全性给予了特别关注,因此可以确保您的数据治理框架适合保护客户数据。

总之

从元数据收集到您期望的数据安全级别,从数据存储实践到您采用的数据可视化技术,这些因素中的每一个都决定了您应该选择哪种工具。

这是市场上最好的 5 种数据治理框架工具。为您的数据治理框架选择正确的工具与其说是关于工具,不如说是关于了解您自己的数据治理策略的目的和目标。

回答的前 5 个数据科学面试问题

原文:https://towardsdatascience.com/top-5-data-science-interview-questions-answered-8f2b874ecee?source=collection_archive---------34-----------------------

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

Image source

当你开始下一次数据科学面试时,确保你知道这 5 个面试问题的答案。

  1. 监督学习和无监督学习有什么区别? 有监督学习和无监督学习是机器学习的两大类别。两者之间的主要区别是,在监督学习中有一个目标变量,或一个已知的输出来预测,而在无监督学习中没有。出于这个原因,用于监督学习的数据被称为有标签的,用于无监督学习的数据被称为无标签的。比方说,您正在处理一个选民数据集,包括邮政编码、收入、家庭规模、政党登记以及此人是否在上次选举中投票。你可以建立一个监督学习模型来预测如果这个人在上次选举中从所有(或一些)其他特征中投票。或者,您可以使用所有(或部分)功能构建无监督学习模型,以生成有关投票者的新信息,例如按投票者类型创建聚类。
  2. 什么是假设检验?
    假设检验是一种统计推断;换句话说,它是一个获取样本信息的工具,用来对相应的总体做出判断。在假设检验中,你正在检验的假设被称为零假设,大多数时候它只是一个什么都没发生的想法。一个很好的类比是美国的刑事司法系统:“在被证明有罪之前是无辜的。”另一种选择是另一种假设,如果你愿意的话,是“有罪的”;这是一些已经发生的想法。根据假设检验的类型,零假设和替代假设看起来会非常不同,但举个例子,我们可以说零假设是指居住在加利福尼亚的人的平均身高与居住在纽约的人的平均身高相比没有差异。在这种情况下,另一个假设是存在差异。每种类型的假设检验看起来都有一点不同,但是结果总是一个p-值,或者如果零假设为真,你将得到你的数据(或者更极端的数据)的概率。通常,阈值 0.05 用于 p 值。如果比较加州和纽约平均身高的假设检验结果是 0.1 的p-值,这意味着如果假设人口身高没有差异,则有 10%的机会获得更极端的数据。这并不罕见,不足以得出加州和纽约人口的平均身高存在差异的结论。另一方面,如果假设检验的结果是 0.02 的p-值,则只有 2%的数据为极端值或更极端(假设人口身高没有差异),因此我们可以得出结论,加州和纽约人口的平均身高存在统计学上的显著差异。
  3. 为什么拥有培训和测试数据很重要?
    在进行监督学习模型建立和评估的过程中,拥有训练数据和测试数据是很重要的。在监督学习中,第一个重要的想法是使用一些数据来教授模型模式。模型根据这个数据集,即训练数据来学习这些模式。但总体目标不是在已知信息的基础上建立最佳模型;它是建立一个模型,可以接受新的或看不见的数据,并根据以前学习的模式做出预测。这个新数据就是测试数据。简而言之,模型需要训练数据来学习和构建模式,测试数据对于查看模型根据新数据进行预测的效果是必要的。
  4. 描述偏差-方差权衡。
    偏差-方差权衡是建立和评估监督学习模型时要考虑的现象。偏差是对模型预测目标的糟糕程度的一种度量。方差是衡量模型对新数据进行归纳的能力有多差的指标。偏差-方差权衡是当偏差低时,方差高,当偏差高时,方差低。当偏差较低且方差较高时,模型在预测所见数据方面做得如此之好,以至于它过度适应该数据,而不能很好地响应新信息。另一方面,当偏差较高且方差较低时,模型不能很好地预测目标,并且过于一般化(即拟合不足),以至于它对看不见的数据的表现大致相同。理想情况下,模型处于偏差-方差权衡的“最佳点”,不会过拟合或欠拟合。
  5. 什么是敏感度,如何计算?
    敏感度是一个可以用来评估二元分类模型的度量。例如,假设您有一个模型,它根据一些特征预测某人是否患有癌症。如果我们认为阳性类别是患有癌症的人,而阴性类别是没有患癌症的人,那么我们正确预测某人患有癌症的模型是真正的阳性,而我们正确预测某人没有患癌症的模型是真正的阴性。如果模型预测某人患有癌症,但他们没有,这是假阳性或 I 型错误。如果模型预测某人没有患癌症,但他们患了,这是假阴性或 II 型错误。在这种情况下,假阴性更糟糕,因为这个人将无法接受治疗。为了最大限度地减少模型中的假阴性数量,我们希望优化灵敏度,或模型的真实阳性率(有时也称为“召回”)。灵敏度是真阳性与所有阳性的比率;换句话说,灵敏度是真阳性除以真阳性和假阴性之和。例如,如果我们有 90 个真阳性病例和 10 个假阴性病例,我们的灵敏度将为 0.9。

你还遇到过哪些数据科学面试问题?下面补充一下。面试愉快!

A/B 测试中的五大统计错误

原文:https://towardsdatascience.com/top-5-mistakes-with-statistics-in-a-b-testing-9b121ea1827c?source=collection_archive---------5-----------------------

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

A/B 测试(也称为在线控制实验)被广泛用于评估网站和移动应用程序的拟议更改的影响,并作为管理与此类更改相关的风险的工具。许多软件供应商在该领域与转换率优化人员、登录页面优化专家、增长专家、产品经理和数据分析师使用的定制测试平台竞争。

然而,尽管该领域相对成熟,但使用 A/B 测试统计数据仍存在一些普遍的错误。它们的影响从降低测试的效率从而增加成本,到使 A/B 测试的结果变得无用(或者更糟——完全误导)。我将讨论 5 个最常遇到的高影响问题,讨论为什么我认为它们很普遍,并提供一些解决它们的方法。

错误 1:没有测试你的 A/B 测试设置

如今,测试是发布一个成功的网站或应用程序的最小变化的先决条件,然而,通常 A/B 测试设置本身避免了这种审查。

不应该!

它是一个软件(准确地说,是几个相互关联的部分),和其他软件一样容易出现问题。如果它不可靠或不按预期工作,出于某种原因,它的输出将不可信。如果 A/B 测试平台不能按照规范工作,那么 A/B 测试的核心功能——作为防止破坏业务的用户体验的最后一道防线——将会部分或完全受损。

简而言之,问题在于不适当的随机化、测试组之间的用户分配或跟踪会使任何 A/B 测试结果不可靠。这是因为用于评估数据的统计模型需要满足一定的假设才能工作。常见的假设是观测值的独立性、同质性和某些分布假设(如正态性)。

危害是用错误指定的模型进行 A/B 测试的结果将是不准确的或误导的。基于这种测试做出的决策不仅会损害业务结果,而且还会在它们周围获得一种确定性的氛围(“我们已经测试过了,这没问题”),这样以后通过观察分析发现的任何问题都不太可能归因于测试的变化。

这种错误盛行的原因是几乎没有任何商业工具提供对违反统计假设的内置检测。除了谷歌、微软和亚马逊等公司使用的一些系统之外,我在实践中看到的许多定制系统都是如此。另一个原因可能是,统计工具的输出常常被认为是不容置疑的,这是因为对检验统计假设的必要性缺乏认识。

一些解决方案包括:

1。)测试发射前严格的质量保证流程。它可以帮助检测各种跟踪问题、可能影响结果的技术问题(例如,仅仅由于测试交付过程,变体的交付比控制慢 500 毫秒),以及简单的中断测试体验。

2。)后数据,可以执行拟合优度测试来检查实际分配比率是否符合指定的分配比率。例如,我们可以使用 50/50 目标分配计划 A/B 测试的以下结果:

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

结果——变异体优于对照组,p 值:0.02——可信吗?为了找到答案,我们可以进行卡方拟合优度测试。此类测试的低 p 值表明预期分配和实际分配不匹配。这就是有人所说的样本比例不匹配 ( 克鲁克等人 2009 (pdf)德米特列夫等人 2017 (pdf) )

这个特定测试的结果明确指出了一个问题(计算):

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

如此小的 p 值意味着它极不可能观察到我们实际得到的分配。这并没有告诉我们到底是什么问题。这种样本比率不匹配可能是由于不适当的随机化、分配程序的问题、跟踪问题或这些问题的组合造成的。需要进一步的调查来确定罪魁祸首,但至少我们知道存在问题,并且结果不可信。

**3。)**可执行常规 A/A 测试以确保标称和实际错误率(尤其是 I 型错误率)匹配。可以对 A/A 测试数据进行正态性和其他假设的统计测试,以确保这些假设适用于使用该特定测试设置进行的测试。前面提到的 Crook 等人题为“在网络上运行受控实验时要避免的七个陷阱”的论文中的第 8.2 点是关于 A/A 测试的很好的入门。

错误 2:测量错误的指标

我在我的书《在线 A/B 测试中的统计方法》中花了相当多的篇幅来解释统计和测量工具应该如何调整以适应一个人所面临的业务问题,而不是相反。

原因是,在许多情况下,我看到了相反的情况:衡量一个人拥有的数据,而不是一个人需要的数据。在这种情况下,无论采取什么措施都不足以回答提出的业务问题。然而,它经常被呈现出来,好像这正是我们所需要的。

问题是,所使用的指标常常无法回答正在接受测试的业务问题。转换率并不总是正确的指标。当转化的商业价值存在差异时,它当然不应该是您使用的唯一指标。

原因,我认为,部分是习惯,部分是易用性和方便性。大多数 A/B 测试工具支持各种比率的统计模型,因为这些模型操作简单。大多数仍然不支持或有限支持连续的度量标准,如每用户平均收入差异(ARPU)或平均订单价值(AOV),尽管这些对于回答与电子商务相关的典型业务问题是必不可少的。像 Google Analytics 这样的报告工具也缺乏对大多数连续指标的统计计算的适当支持。

另一个原因可能是需要更大的样本量,加上的额外开销,需要估计历史数据的标准偏差,以便计算所需的样本量/统计功效;对于基于二项式变量(如转换率差异)的指标,这一步要简单得多。

危害用一个简单的电子商务例子就很容易说明。如果测试变体的业务目标是增加商店的收入,这通常会转化为每个用户平均收入的增加。在其他条件相同的情况下,如果商店的人均收入增加,收入就会增加。

每个用户的平均收入由两部分组成,即转换率和平均订单价值(ARPU = CR x AOV)。仅测量转换率而忽略平均订单价值很容易导致实施一种变体,这种变体虽然提高了转换率,但实际上损害了业务,因为较低的 AOV 最终会降低 ARPU。由于度量标准选择不当,测试结果可能会与预期效果完全相反。

上例的解决方案是基于 ARPU 的测试。这是一个简单的解决方法,但是在实践中可能不那么容易,因为这可能需要将软件供应商转换为那些基于 ARPU*的支持报告和统计计算的供应商。

如上所述,当从 CR 切换到 ARPU 时,预期的测试持续时间将不可避免地增加,这是因为 ARPU 相对于 CR 的方差增加,CR 是其组成部分之一。然而,这通常是让你的商业问题得到正确回答的合理代价。

*作为一名软件供应商,我理解为什么整个行业在提供对持续指标的适当支持方面行动缓慢——产品对最终用户来说变得更加复杂,存储持续数据更加昂贵,而且需求还不太大。然而,在 www.analytics-toolkit.com的一些基本统计计算器中提供对这些指标的支持已被证明是有用的,我们正在努力将其扩展到我们的高级统计工具中。我鼓励其他人以我们为榜样。

错误 3:使用双尾检验

如果你没有听说过双尾检验和单尾检验,或者双边假设和单边假设,你并不孤单。除非你已经深入研究了统计数据,否则你可能根本不会面对这个问题,因为大多数时候所使用的测试类型并不是立即可见的,可能只会在技术参考或手册中提到。在定制平台中,这可能更不明显。

篇幅不允许我在这里深入讨论单尾检验和双尾检验的问题,但是如果你想更深入地研究——我已经揭穿了围绕这个问题的一些常见的神话,并在这里简要地陈述了单尾检验的情况,在我的和 OneSided 项目的一系列文章中有更详细的描述。

如果你不想陷入细节,理解这一切都是关于将手头的业务问题与被测试的统计假设对齐就足够了。通常,我们希望控制实施劣质解决方案的风险,或者有时控制实施不比我们现有的更好的东西的风险。

因此,我们在在线 A/B 测试中面临的大多数业务问题都是“我们希望得到某种保证,体验 B 比用 X 度量的 A 更好”。这些恰当地转化为一个侧假设,从而成为一个尾检验。我们很少,如果有的话,问这样的问题“我们想要一些保证 B 不等于 A,无论如何”,这确实需要一个尾检验。更难得的是,与前一个答案相比,我们愿意付出代价来获得与前一个答案同样精确的结果。

***因此,*的问题是,双尾检验的统计模型与手头的业务问题不一致。

其流行的原因是许多统计工具专门或默认执行双尾计算。如果我们深入到问题的当前状态的原因,讨论将变得非常深入,但结果是,许多最终用户仍然幸福地没有意识到这个问题。

使用双尾检验的危害是由于报告的不确定性测量(p 值、置信水平等。)明显高估实际不确定性——通常约 100%;如果工具报告的误差概率为 0.1%或 10%,实际上是 0.05%或 5%。这再次发生,由于提出的问题和测试的统计假设之间的不一致。

此外,与具有相同参数而非不同假设的单尾测试相比,双尾测试需要大 20%到 60%的样本量(更多用户,因此 A/B 测试持续时间更长)。

这里的解决方案看你的具体情况。如果你的统计工具已经默认为单尾计算,那么就继续使用它们。如果它们同时支持双尾和单尾计算,则切换到单尾(单侧)选项。如果它们只支持双尾计算,还是有解决方案的——只要感兴趣的参数的误差分布是对称的,你需要做的就是不确定性估计的一半。

因此,如果它是一个 p 值,并且报告的双侧 p 值为 0.1,只需除以 2 即可得到 0.05 的单侧 p 值。如果是以置信水平报告的,比如说 90%,那么简单地将 100%-90%除以 2,并将其加到报告的水平上。所以 90%两面就变成了 90% + (100%-90%)/2 = 90% + 5% = 95%。如果误差分布是不对称的,那么我假设您已经在使用足够先进的工具来根据请求计算单尾值。

如果您不确定使用哪种计算方法,请阅读技术手册或参考资料,或者联系供应商的支持人员。如果是定制的解决方案,请查阅其手册或与其开发人员合作,以确定采用哪种类型的计算。

错误 4:高估了 A/B/n 测试的样本量

A/B/n 检验——对照一个以上的检验变量对控制进行检验的检验——是另一个经常出错的领域,无论是在计算统计估计值方面,还是在估计实现特定显著性和最小感兴趣效应的目标功效所需的样本量方面。在这里我将重点讨论后一个问题。

问题在于,通常每个测试组的样本量是为简单的 A/B 测试计算的,然后乘以测试变量的数量加 1,得到 A/B/n 测试的样本量。

考虑这种情况:A/B/n 测试有 4 个变量与对照(A/B/C/D/E)。一个简单的计算是从估计 A/B 测试每组需要 24,903 个用户开始。因此,对于 A/B/C/D/E 测试,用户总数就是 5 x 24,903 = 124,515。

然而,在现实中,使用这些参数进行 A/B/C/D/E 测试只需要 95,880 个用户(总数),或者说比天真计算少 23%。

发生这种情况的原因是大多数免费的样本大小计算器,也许还有一些付费的,只支持一个变量相对于一个控制变量的计算。更糟糕的是——有些人声称支持 A/B/n 测试的计算,但实际上只是执行上面显示的简单计算。因此,这很容易成为这个错误的牺牲品。

危害是相当明显的——由于样本量计算中的高估,测试计划的时间比需要的时间长得多。业务损失是由于错过了早期实现 winners 的机会,以及由于用劣质变体运行测试的时间超过了必要的时间而错过了销售。

解决方案是使用适当的样本量计算。使用 Dunnet’s test 的样本量计算会产生最佳测试,因为它们考虑了 A 与 B、A 与 C、A 与 D 等比较的相关性。基于 Holm-Bonferroni 方法的计算是可以接受的,尽管它们会导致略微次优的测试。

Analytics-Toolkit.com 的样本量计算器提供为在线 A/B 测试量身定制的付费解决方案(可免费试用)。这个样本量计算器是完全免费的,也使用了邓尼特的,但是学习操作界面可能更具挑战性。如果你更喜欢使用 R,那么检查一下 DunnettTests 包

错误 5:不正确地使用置信区间

在评估和交流在线 A/B 测试的结果时,我看到了许多使用置信区间的错误,但有三个特别突出。

第一个与上面讨论的问题有关——单尾和双尾测试。除了这里它转化为使用单边和双边区间的问题。

我认为,大多数时候,人们感兴趣的是查看值,低于这些值的参数值可以在某种置信水平 XX% 下被排除。这也是通常解释区间的方式——比如,在观察下面从 2%到 5%的双侧 95%置信区间时,可以说低于 2%的值可以排除 95%的置信度。

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

但是,这是不正确的!事实上,在这个特定的例子中,我们可以以 95%的置信度排除低于 3%的值。这是通过计算正确的单边区间实现的,范围从 3%到正无穷大。如果我们要无限多次构建这个区间,95%的时间其下限将低于我们试图估计的参数的真实值(例如转换率的差异)。

因此,如果您希望限制两侧的值,请使用双边区间,但是当您声称某个特定方向上的区间外的值可以以给定的置信度排除时,您需要构建一个单边区间,而不是双边区间。如果您的软件不支持单侧区间,出于某种原因,只需构造一个具有两倍不确定性的区间,例如 90%双侧置信区间的下限正好是 95%单侧置信区间的下限(对于具有对称误差分布的参数)。

关于置信区间的第二个错误我在 A/B 测试(包括主要供应商的测试)中看到了很多,就是每个测试组的区间估计的报告和使用,而实际上感兴趣的参数是组均值/比例之间的差异。

人们经常会看到类似左图的东西或一个“爱好者”

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

分布图达到相同的效果(分布图可以在同一 x 轴上,也可以重叠,这是一回事)。从这样的陈述中得出的逻辑是,由于变异体的区间和对照的区间之间存在一些重叠,我们不能得出变异体在期望的置信水平下优于对照的结论。

这种逻辑是完全不正确的,因为在上面的例子中,比例相对差异的置信区间通常不包括零,这意味着在指定的置信水平下,差异可以被接受为非零。这样使用区间肯定会导致高估 A/B 测试结果的不确定性。

我看到几乎普遍犯的第三个错误是将为绝对差异计算的置信区间界限天真地转换为相对差异的界限。例如,转换率从 0.0015 到正无穷大的绝对差异的 95% CI 计算如下:

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

以 10%的基线转换率,下限将被转换为 1.5%,并且声称可以以 95%的置信度排除小于 1.5%的差异。

通过计算比例相对差异的正确置信区间,可以证明这是不正确的(科哈维等人,2009 年,第 154-155 页(pdf) )。在这个例子中,它的跨度从-2.9%到正无穷大,这意味着在 95%的置信水平下不能排除-2.9%以上的差异。在这种特殊情况下,构建适当的区间也会逆转测试的结果:在 95%的置信水平下,变体不再被认为优于对照。

如果您有兴趣更详细地讨论绝对差异区间和相对差异区间之间的差异,以及可以预期的误差程度,所有这些都附有大量的模拟结果,请查看这篇关于百分比变化置信区间的文章

我希望你会发现这个相当详细的概述和在线 A/B 测试中使用统计方法的 5 个最常见错误的解决方案是有用和实用的。这些是我作为顾问和工具供应商在日常实践中看到的代价高昂的错误。我真的认为我们应该看到更少的这种情况,特别是考虑到它们中的大多数是多么容易避免。

2020 年必备的五大数据科学技能

原文:https://towardsdatascience.com/top-5-must-have-data-science-skills-for-2020-a5a53226b168?source=collection_archive---------7-----------------------

*“R、Python、SQL 和机器学习”*长期以来一直是一个数据科学家的标准工作描述。但随着该领域的发展,这已不足以在就业市场上保持竞争力。

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

Update your skills for the 2020 data job market!

数据科学是一个竞争激烈的领域,人们正在快速积累越来越多的技能和经验。这催生了机器学习工程师的蓬勃发展的工作描述,因此我对 2020 年的建议是,所有数据科学家都需要成为开发人员。

为了保持竞争力,请确保为新工具带来的新工作方式做好准备。

为了保持竞争力,请确保为新的工作方式和随之而来的工具做好准备。

1.敏捷

敏捷是一种组织工作的方法,已经被开发团队广泛使用。数据科学的角色越来越多地由最初的技能组合是纯软件开发的人担任,这导致了机器学习工程师的角色。

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

Post-its and Agile seem to go hand-in-hand

越来越多的数据科学家/机器学习工程师被作为开发人员来管理:在现有的代码库中不断改进机器学习元素。

对于这种类型的角色,数据科学家必须知道基于 Scrum 方法的敏捷工作方式。它为不同的人定义了几种角色,这种角色定义确保了持续改进和顺利实施。

2.开源代码库

Git 和 Github 是开发者在管理不同版本软件时很有帮助的软件。它们跟踪对代码库所做的所有更改,此外,当多个开发人员同时对同一个项目进行更改时,它们增加了协作的便利性。

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

GitHub is the way to go

随着数据科学家的角色变得越来越侧重于开发,能够处理这些开发工具变得非常关键。Git 正成为一项严肃的工作要求,习惯使用 Git 的最佳实践需要时间。当你独自一人或者当你的同事是新同事时,开始使用 Git 是很容易的,但是当你加入一个有 Git 专家的团队,而你还是一个新手时,你可能会比你想象的更加困难。

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

Git is the real skill to know for GitHub

3.工业化

在数据科学领域,我们思考项目的方式也在发生变化。数据科学家仍然是用机器学习回答商业问题的人,一如既往。但是数据科学项目越来越多地被开发用于生产系统,例如作为大型软件中的微服务。

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

AWS is the biggest Cloud Vendor

与此同时,高级类型的模型越来越需要 CPU 和 RAM 来执行,尤其是在使用神经网络和深度学习时。

就数据科学家的工作描述而言,越来越重要的是,不仅要考虑模型的准确性,还要考虑项目的执行时间或其他工业化方面。

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

Google also has a cloud service, just like Microsoft (Azure)

4.云和大数据

虽然机器学习的产业化正在成为数据科学家的一个更严重的制约因素,但它也成为了数据工程师和整个 it 的一个严重制约因素。

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

A famous comic (source: https://www.cyberciti.biz/humour/dad-what-are-clouds-made-of-in-it/ )

如果数据科学家可以致力于减少模型所需的时间,IT 人员可以通过转向更快的计算服务来做出贡献,这些服务通常通过以下一种或两种方式获得:

  • 云:将计算资源转移到外部供应商,如 AWS、微软 Azure 或谷歌云,可以非常容易地建立一个非常快速的机器学习环境,可以远程访问。这要求数据科学家对云的功能有一个基本的了解,例如:在远程使用服务器而不是自己的计算机,或者在 Linux 而不是 Windows / Mac 上工作。

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

PySpark is writing Python for parallel (Big Data) systems

  • 大数据:更快的 IT 的第二个方面是使用 Hadoop 和 Spark,这些工具允许同时在许多计算机(工作节点)上并行化任务。这要求作为数据科学家使用不同的方法来实现模型,因为您的代码必须允许并行执行。

5.自然语言处理、神经网络和深度学习

最近,数据科学家仍然认为 NLP 和图像识别仅仅是数据科学的专门化,并不是所有人都必须掌握。

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

You will need to understand Deep Learning: Machine Learning based on the idea of the human brain

但是图像分类和 NLP 的使用案例越来越频繁,甚至在“常规”业务中也是如此。目前,对这种模型没有起码的基本知识已经变得不可接受。

即使您在工作中没有直接应用这些模型,动手项目也很容易找到,并且可以让您理解图像和文本项目所需的步骤。

祝你在提高技能的同时好运,不要犹豫,继续关注更多!

成为更好的软件工程师的 5 大技巧

原文:https://towardsdatascience.com/top-5-tips-to-become-a-better-software-engineer-86ca3056a0e8?source=collection_archive---------17-----------------------

从好奇的新手到经验丰富的寻求答案的瑞典人,这个快速指南是为你准备的。

A video version of this article, if you’re more of a visual learner 😃

成为软件工程师的艺术是一个在连续迭代中不断完善的过程。这篇文章是为那些刚刚起步的人,那些好奇的人,或者那些决定提高技能的人准备的,大胆地投入到令人惊讶的软件世界中去吧!

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

Learning how to code is a continual process, you never stop. It’s an upward spiral. Emphasis on the spiral.

你不会仅仅学习 12 周、6 个月或 2-4 年,然后就“完成”了。你在不断成长。从我 7 岁开始,我就一直致力于在机器中模拟人脑。当然,我一个人做不到。我们需要建立一支由志同道合的混合技术专家组成的队伍,他们积极寻求理解人脑和机器如何计算信息。在这个更大的计划中的一小步是指导我的伙伴们,建设者们,修补者们和梦想家们成为更好的软件工程师。

这里是我的五大技巧,可以帮助你成为一名更好的软件工程师。

学习如何使用数据结构和算法

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

不仅要知道它们是什么,还要知道如何使用它们,为什么使用它们,以及一种方法相对于另一种方法的利弊。比如链表和数组有什么区别?二分搜索法的优点是什么,你什么时候使用它?你知道如何识别现实世界中的问题何时可以映射为动态规划问题吗,比如著名的 0-1 背包问题,或者最长公共子序列?

了解计算机网络基础知识

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

Photo by Denys Nevozhai on Unsplash

令我非常惊讶的是,很多人不知道他们的代码是如何与外部世界相连的。一些你应该问自己的问题…

  • 你写的软件是如何与外界连接的?
  • 你知道 WiFI 和局域网是怎么工作的吗?
  • UDP 和 TCP 有什么区别?
  • 当您将信息从一台设备传输到另一台设备时,开放系统互连中的 7 层如何处理数据?
  • 劳动力如何在路由器和主机等组件之间分配?
  • 或者说,不同并发协议之间的分工是怎样的,那些并发协议是什么?

了解 Linux 或 UNIX 的基础知识

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

到目前为止,UNIX 已经存在了 30 多年,了解如何在命令行中使用 Linux 或 UNIX 将有助于您变得更加高效。

  • 你知道它是什么插座吗?
  • 杀死一个进程?
  • 什么是线程?
  • 你能正则表达式吗?

学习数据库的基础知识

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

虽然我们不指望您是数据库专家,但是您应该知道如何编写简单的 SQL 查询来访问数据集中的数据。你将编写以某种方式操纵数据的软件,所以你至少应该明白如何导入数据。

有一个成长的心态

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

你应该知道,什么是“时尚”的字母汤总是在变化。你应该随时准备学习新的语言,当你学得更多的时候,你会意识到语言之间的共同点通常比不同点多。

例如,Clojure 和 Haskell 实现非常适合函数式编程。相比之下,面向对象编程(OOP)范例在 Python、Java 和 Ruby 中得到广泛应用。

然而,在 1990 年,FORTRAN、COBOL 和 C++是“流行”语言的主导者。

所以每当你认为“我永远学不会那个”的时候,停止它。立即停止这种想法。

你不“只是一个 webapp 的家伙”或“只是一个后端的家伙。”你会有你的专长,你最喜欢的领域。然而,就像我的老朋友达尔文曾经说过的有机体和适者生存,

永远不是最强大的生物赢得了进化的游戏。总是那些适应性最强,对变化最敏感的人。

所以,你也需要相信你可以学到任何东西,你可以不断成长。

好了,朋友们,这是我认为对一个软件工程师来说最重要的五个建议。当然,我也在沿着这个不断向上的螺旋前进。有时我会从头开始重建我的知识。其他时候,我可以立即行动,因为我以前见过类似的问题或模式。有时,我也会碰壁,不得不回到我最初的原则。

在你看来,你认为最重要的软件工程师技能是什么?请在下面的评论中留下你的想法。

2021 年 6 大数据分析工具

原文:https://towardsdatascience.com/top-6-data-analytics-tools-in-2019-4df815ebf82c?source=collection_archive---------2-----------------------

谈到数据分析工具,我们总是有疑问。这么多数据分析工具有什么区别?哪个更好?我应该学习哪一个?

虽然这是一个老生常谈的话题,但是真的很重要,我也一直在努力追寻这个终极问题的答案。如果你去网上搜索这方面的相关信息,很难看到公正的观点。因为评测某个数据分析工具的评测者可能是从不同的角度,带着一些个人的感受。

今天,让我们抛开这些个人感受。而我也在尽量客观的和大家谈谈我个人对市面上数据分析工具的看法,供大家参考。

我一共选择了三种类型的 6 个工具。接下来让我逐一介绍。

1.擅长

具有各种强大的功能,如表单创建、数据透视表、VBA 等。,Excel 的系统庞大到没有任何分析工具可以超越,保证了人们可以根据自己的需求来分析数据。

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

但是,有些人可能认为自己对计算机编程语言非常精通,不屑于使用 Excel 作为工具,因为 Excel 无法处理大数据。但是你想想,我们日常生活中使用的数据是否超出了大数据的极限?在我看来,Excel 是一个多面手。它最适合小数据,通过插件它可以处理数百万的数据。

综上所述,基于 Excel 强大的功能和用户规模,我的看法是它是一个不可或缺的工具。想学数据分析, Excel 绝对是首选。

2.商务智能工具

商业智能是为数据分析而生的,而且是在非常高的起点上诞生的。目标是缩短从业务数据到业务决策的时间,用数据影响决策。

Excel 的产品目标不是这样的。Excel 可以做很多事情。你可以用 Excel 画一个课程表,做一个调查问卷,或者当计算器用,甚至可以用来绘图。如果你掌握了 VBA,你也可以做一个小游戏。但这些并不是真正的数据分析功能。

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

IMGUR, MICHELLEASAURR

但是 BI 工具是专门做数据分析的。

以 Power BI、FineReport、Tableau 等常见 BI 工具为例。你会发现它们是按照数据分析流程设计的。首先是数据处理、数据清理,然后是数据建模,最后是数据可视化,它使用图表演示来识别问题并影响决策。

这些是数据分析的必经之路,在这个过程中也有一些员工的痛点。

例如,清理数据的重复性和低附加值工作可以通过 BI 工具来简化。

如果数据量很大,传统工具 Excel 无法完成数据透视表。

如果我们用 Excel 做图形显示,编辑图表,包括颜色和字体设置,都要花很多时间。

这些痛点正是 BI 工具可以为我们带来改变和价值的地方。

现在我们来对比一下市面上比较流行的三款 BI 工具:Power BI、FineReport、Tableau。

1) Tableau

Tableau 的核心本质其实就是 Excel 的数据透视表和数据透视图。可以说,Tableau 敏锐地察觉到了 Excel 的这一特性。它较早进入 BI 市场,并将这一核心价值发扬光大。

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

从发展历史和目前市场反馈来看,Tableau 更擅长可视化。我不认为这是因为它的图表有多酷,而是它的设计、颜色和用户界面给我们一种简单清新的感觉。

这确实像 Tableau 自己宣传的,投入大量学术精力研究人们喜欢什么样的图表,如何在操作和视觉上给用户极致的体验。正如 Tableau 所宣传的那样,他们的团队投入了大量的学术精力来研究人们喜欢什么样的图表,以及如何在操作和视觉上给用户带来极致的体验。

此外,Tableau 还增加了数据清洗功能和更多智能分析功能。这也是 Tableau 可以预见的产品开发优势。

2) 异能匕

Power BI 的优势在于商业模式和数据分析能力。

Power BI 之前是 Excel 的插件,发展并不理想。所以它走出了 Excel,发展成了 BI 工具。Power BI 作为后来者,每个月都有迭代更新,追赶速度非常快。

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

Power BI 目前有三种许可方式:Power BI 免费版、Power BI 专业版和 Power BI 高级版。就像 Tableau 一样,其免费版的功能也不全。但是个人用也差不多够了。而 Power BI 的数据分析是强大的。它的 PowerPivot 和 DAX 语言允许我以类似于在 Excel 中编写公式的方式实现复杂的高级分析。

3) FineReport

FineReport 的独特之处在于,它的自助式数据分析非常适合商业用户。通过简单的拖放操作,您可以使用 FineReport 设计各种风格的报表,轻松构建数据决策分析系统。

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

From FineReport

FineReport 可以直接连接各种数据库,自定义各种样式制作周报、月报、年报,方便快捷。其格式类似于 Excel 的界面。包括报表创建、报表权限分配、报表管理、数据录入等功能。

此外,FineReport 的可视化功能也非常突出,提供了多种仪表盘模板和多个自主开发的可视化插件库。

价格方面,个人版 FineReport 完全免费,所有功能开放。

3.R & Python

RPython 是我要说的第三类工具。虽然像 Excel 和 BI 工具这样的软件已经尽最大努力设计来考虑数据分析的大多数应用场景,但它们本质上是定制的。如果软件没有设计一个功能,或者为一个功能开发一个按钮,你很可能无法用它们来完成你的工作。

编程语言对此有所不同。它非常强大和灵活。你可以写代码做任何你想做的事情。比如 R 和 Python 就是数据科学家不可或缺的工具。从专业角度来说,它们绝对比 Excel 和 BI 工具强大。

那么有哪些是 R 和 Python 可以实现,而 Excel 和 BI 工具很难实现的应用场景呢?

1)专业统计分析

R 语言方面,最擅长统计分析,比如正态分布,用算法对聚类进行分类,回归分析。这种分析就像用数据做实验。它可以帮助我们回答以下问题。

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

From Google

比如数据的分布是正态分布,三角分布还是其他类型的分布?离散的情况是怎样的?是否在我们想要达到的统计可控范围内?不同参数对结果的影响有多大?而且还有假设模拟分析。如果某个参数发生变化,会带来多大的影响?

2)个体预测分析

例如,我们想要预测消费者的行为。他会在我们店里呆多久?他会花多少钱?我们可以查到他的个人信用状况,根据他的网上消费记录,做出贷款额度。或者我们可以根据他在网页上的浏览历史推送不同的项目。这也涉及到目前流行的机器学习和人工智能的概念。

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

结论

以上对比说明了几款软件的区别。我想总结的是,真实的就是合理的。Excel、BI 工具或编程语言有重叠的功能,但也是互补的工具。每种方法的价值取决于正在开发的应用程序的种类和当前的情况。

在你选择一个数据分析工具之前,你必须先了解你自己的工作:你是否会使用我刚才提到的应用场景。或者考虑一下你的职业方向:是走向数据科学还是商业分析。

您可能也会对…感兴趣

8 个最佳报告工具&改善您业务的软件

2021 年最受欢迎的 5 款商业智能工具

9 个你不能错过的数据可视化工具 20 21

数据可视化中前 16 种图表类型

数据可视化中排名前 10 的地图类型

制作销售仪表盘的逐步指南

KPI 仪表板的前 7 种图表类型

原文:https://towardsdatascience.com/top-7-chart-types-for-kpi-dashboards-287fb84a8874?source=collection_archive---------16-----------------------

KPI 已经成为各种商业组织的重要考核体系和方法,并贯穿于各种商业活动中。如何使用合适的可视化图表呈现实际结果和关键指标,实现实时监控,也一直是商业分析,乃至各种商业智能系统关注的焦点。

在今天的文章中,我总结了 KPI 仪表盘常用的 7 种图表类型,希望对你有用。

(注:本文所有图表和仪表盘均采用数据可视化工具 FineReport 制作,个人下载完全免费。)

1。数字文本

显示 KPI 最简单的方法是直接以文本形式列出数字。好处是非常直观。而且特别适合显示销售总额、营业额、财务分析利润总额、毛利率等核心指标。

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

From FineReport

这种图表类型的用法简单明了。但不建议列出多个数据,因为比较困难,数据之间缺乏关联性。此外,不同的颜色可以用作数字文本风格的区分。

2.单词云图表

词云图是一种直观显示数据频率的形式。它能在视觉上突出出现频率高的“关键词”,形成“关键词云层”,从而过滤掉大量的文本信息,让浏览者一目了然地抓住重点。

比如你汇报工作的时候,可以用几个突出的词来表达一年工作中最突出的点,形成“2019 关键词云”。

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

From FineReport

3.仪表板

仪表板可用于指标值的进度分析,以显示计划和实际结果之间的比较。为了同时显示,您可以使用多个仪表板。

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

除了刻度盘之外,还有一个百分比仪表盘,类似于甜甜圈图。这种图表类型的优点是可以清楚的看到数据的范围和大小,但是无法观察趋势变化是最大的缺点。

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

From FineReport

4.散点图

散点图用于显示不同数据点之间的关系,并比较不同时间段的趋势。效果如下图。

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

5.多系列折线图

多系列折线图用于查看同一区域内指标的趋势,可以直观的看到趋势对比。具有 KPI 的折线图可以同时显示多个数据系列,并自动计算差异率。

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

6.组合图表

组合图是多个图表的组合,如折线图、柱形图、饼图等。

让我们看一个折线图和堆积柱形图组合的例子。

在下面的组合图中,订单数量和再订购数量被累加,并与库存数量进行比较。如果累计总订单数量大于库存数量,则表明需要补货。

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

7.动态图表

最后,我将重点介绍 KPI 仪表板中常用的动态图表。上面说的 KPI 图表都是基本图表。其实要做一个清晰酷炫的 KPI 仪表盘,必须使用更高级的动态图表,让你的关键指标更加突出,更加醒目。

现在,我们来看看 FineReport 的几张动态图。

目录齿轮

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

定时齿轮

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

动态指示卡

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

发光仪表盘

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

GIS 点地图

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

说到这里,您可能想看看这些图表在 KPI 仪表板中的实际应用。所以我在 FineReport Demo 里找了几个仪表盘模板给你参考。

项目管理仪表板

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

投资管理系统

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

银行仪表板

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

公路监控仪表板

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

对了,如果想了解更多的图表类型,可以看看这篇文章: 数据可视化中的 16 大图表类型

您可能也会对…感兴趣

2019 年 6 大数据分析工具

初学者财务报表分析指南

2019 年你不能错过的 9 款数据可视化工具

数据可视化十大地图类型

GitHub 上的 7 大数据科学课程

原文:https://towardsdatascience.com/top-7-data-science-course-repositories-on-github-11a47e4b8dc2?source=collection_archive---------8-----------------------

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

Photo by Carlos Muza on Unsplash

GitHub 是广为人知的最著名的版本控制库之一。在里面,你可以找到几乎无数的多种编程语言的公共项目。它让您可以轻松地与团队成员和全球的开发人员协作。你们可以一起从这些项目中学习,也可以为这些项目做出贡献。

GitHub 的一个伟大之处在于,你也可以把它作为搜索引擎来寻找你可以从中受益的伟大项目和资源。

许多教师或技术讲师使用它来发布他们的课程,包括课程笔记、作业、幻灯片和其他可供学生使用的材料。

他们公开并免费发布,这样每个人都可以访问,包括那些没有正式参加这些课程,但有兴趣学习并从中受益的人。

以下是在 GitHub 上发布资料的 8 门最受欢迎的数据科学课程的列表。排名分别基于每个存储库的分叉数量。

1.斯坦福 TensorFlow 教程(4072 个分叉)

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

这个与斯坦福的 CS 20 课程相关联:深度学习研究的 TensforFlow】课程。课程网站上有详细的教学大纲、幻灯片和课堂讲稿。讲师用的是 python 3.6 和 TensorFlow 1.4.1。

以下是对课程的描述:

TensorFlow 是谷歌研究人员开发的一个强大的机器学习开源软件库。它有许多预构建的功能来简化构建不同神经网络的任务。TensorFlow 允许在不同的计算机之间分配计算,以及在一台机器内分配多个 CPU 和 GPU。TensorFlow 提供了一个 Python API,以及一个文档较少的 C++ API。在本课程中,我们将使用 Python。

本课程将涵盖深度学习研究中 Tensorflow 库的基础知识和当代用途。我们旨在帮助学生理解 TensorFlow 的图形计算模型,探索它必须提供的功能,并学习如何构建和构造最适合深度学习项目的模型。通过本课程,学生将使用 TensorFlow 建立不同复杂性的模型,从简单的线性/逻辑回归到卷积神经网络和递归神经网络,以解决诸如单词嵌入、翻译、光学字符识别、强化学习等任务。学生还将学习构建模型和管理研究实验的最佳实践。

2.Coursera 上的深度学习专业化(3,352 个分叉)

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

这是一个由一名学生创建的知识库,他发布了 Coursera 深度学习专业的编程作业和解决方案。

它不是一个装满课程或学习资源的存储库。不过可以用来稍微好一点理解深度学习相关的一些概念。将您的解决方案与该存储库中提供的解决方案进行比较也很有用。

以下是你可以找到编程作业和提问的课程列表:

  • 课程 1:神经网络和深度学习
  • 课程 2:改进深度神经网络:超参数调整、正则化和优化
  • 课程 3:构建机器学习项目
  • 课程 4:卷积神经网络
  • 课程 5:序列模型

3.实用 RL:野外强化学习课程(3368 叉)

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

以下课程有英语和俄语的在线版本,但在高等经济学院教授俄语。

已经进行了 9 周,存储库还包含额外的材料,可供现场参加课程或只想在线学习的学生使用。

这是一门侧重于实用机器学习的课程,涵盖如下主题:

  • 简介。我们周围的问题。决策过程。随机最优化,交叉熵方法。参数空间搜索与动作空间搜索。
  • 基于价值的方法。打折奖励 MDP。基于价值的方法。价值迭代。政策迭代。打折奖励失败。
  • 无模型强化学习。q-学习。萨莎。策略外算法与策略内算法。n 步算法。TD(λ)。
  • **深度学习回顾。**深度学习 101。它附带了一个研讨会,介绍 pytorch/tensorflow,使用 convnets 进行简单的影像分类
  • **近似(深)RL。**无限/连续状态空间。价值函数近似。收敛条件。多重代理诡计;经验重放,目标网络,双/决斗/自举 DQN 等。
  • 探索。语境强盗。汤普森抽样,UCB,贝叶斯 UCB。探索基于模型的 RL,MCTS。探索的“深度”启发法。
  • **政策梯度方法。**基于政策的动机、政策梯度、对数导数技巧、强化/交叉熵方法、方差缩减(基线)、优势行动者-批评家(包括 GAE)
  • 序列模型的强化学习。顺序数据的问题。循环神经网络。时光倒流。消失&爆炸渐变。格鲁·LSTM,《渐变裁剪》
  • 部分观察到 MDP。 POMDP 简介。POMDP 学习(有记忆的代理)。POMDP 规划(POMCP 等)
  • **先进的基于政策的方法。**信任区域策略优化。NPO/PPO。确定性政策梯度。DDPG
  • 基于模型的强化学习& Co. 基于模型的强化学习,一般规划,模仿学习和逆向强化学习
  • 逆 RL 和模仿学习。这门课没有教的所有东西

4.深度学习与 Tensorflow 的创造性应用(1341 个分叉)

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

这门课程Kadenze 学院利用 TensorFlow 课程创造性应用深度学习的作业和讲稿。

本课程包括以下几个部分:

  • 会议 1:张量流简介
  • 会议 3:无监督和有监督的学习
  • 会议 4:视觉化和幻觉化的表现
  • 会议 5:生成模型

该存储库还包含大量关于安装和开始使用所需工具的文档。

5.数据科学 Coursera (714 分叉)

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

这个存储库是由一位名叫 Michael Galarnyk 的数据科学硕士学生准备的。他创建了这个存储库来记录他在约翰霍普金斯大学 Coursera 数据科学课程中的经历,作为他在加州大学圣地亚哥分校项目的补充。

这个 GitHub 库包含每周的相应目录,以及每个课程的博客帖子。

以下课程与相应的回购和博客相关联:

6.Udacity 的机器学习工程师 Nanodegree 斯坦福用于视觉识别的卷积神经网络(69 叉)

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

已经有许多 GitHub 仓库与 Udacity 的机器学习工程师 Nanodegree 相关,这个带有一个有用的自述文件。

它有关于如何使用内容的信息,与课堂材料相关的超链接,以及对学生有用的附加链接,如 Andrej Karpathy 的博客,Andrew Trask 的博客等。

当学生完成作业后,他们会被邀请在知识库中分享他们的解决方案,以便其他人可以查看并从中受益。

7.Hadoop 和 MapReduce 介绍(47 个分支)

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

这个存储库与 Udacity 的 Hadoop 和 MapReduce 入门课程相关。

它包含源代码和问题集,以及演示设置方法的有用的自述文件、输入和输出数据文件的文档以及课程的问题集,并提供 Python 和 Java 的解决方案。

这只是根据叉子的数量列出的一些最受欢迎的课程。有许多其他的存储库可以作为有用的资源来学习和受益。

快乐学习!

感谢您抽出时间阅读。

请关注我的 推特

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值