TowardsDataScience 2023 博客中文翻译(九十六)

原文:TowardsDataScience

协议:CC BY-NC-SA 4.0

数据科学家:首先是问题解决者,其次是算法魔术师

原文:towardsdatascience.com/data-scientists-problem-solvers-first-algorithm-wizards-second-93daa031d131

观点

拿着锤子,看到的每样东西都是钉子

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

·发表于Towards Data Science ·阅读时间 5 分钟·2023 年 3 月 10 日

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

图片由谢尔盖·秋伊科拍摄,刊登于Canva

最近,我有机会与澳大利亚一家大型政府机构的数据科学团队会面。从我所了解的情况来看,该团队由高度熟练的数据科学和机器学习专家组成。然而,在我们的交谈中,我不禁注意到数据科学家们有一个共同的主题。他们似乎更愿意讨论预测人类行为的最新算法,而不是讨论和定义他们试图解决的核心问题。

这个经历突显了我在数据科学领域看到的一个常见问题:把一切都视为数据科学问题的倾向。这就像是拿着锤子,看到的每样东西都是钉子。尽管算法和高级技术可以是强大的工具,但数据科学家应该首先是问题解决者,这一点至关重要。

在这篇文章中,我打算阐明问题解决技能在数据科学中的重要性,以及为什么它们应该优先于算法技术。我还将讨论在提出数据科学解决方案时理解组织准备情况的重要性,以及数据科学家如何引领组织走向更加数据驱动的未来。

1. 成为问题解决者的的重要性

数据科学有潜力提供有价值的见解并解决复杂的问题。然而,当数据科学家把一切都看作数据科学问题时,他们可能会过于关注数据和算法,而忽视了他们试图解决的现实世界问题。这可能导致解决方案不完整或无效。

为了避免这种陷阱,数据科学家应该优先考虑解决问题。他们应首先了解他们试图解决的问题、相关的利益相关者以及业务背景。只有这样,他们才能确定最佳的数据科学应用方法,以有效地解决问题。

例如,假设一家公司正在经历高客户流失率。数据科学家应首先调查流失的根本原因,而不是立即应用机器学习算法来识别最可能流失的客户。他们可能会进行客户访谈,分析反馈调查,并检查社交媒体数据以识别常见主题。掌握这些信息后,他们可以提出一个解决方案,解决流失的根本原因,同时利用数据科学预测哪些客户最可能流失,以及哪些留存策略最有效。

通过首先成为问题解决者,数据科学家可以创建为组织提供实际价值的解决方案。他们可以解决问题的根本原因,提供可行的见解,并对公司成功产生有意义的影响。

你是小型组织中唯一的数据科学家吗?

具有资源 fulness、利益相关者管理和持续学习

towardsdatascience.com

2. 理解组织对高级数据科学解决方案的准备程度

尽管数据科学具有巨大的潜力,但重要的是要理解并非所有组织都准备好采用最先进的数据科学算法或解决方案。在某些情况下,像数据透视表这样的简单解决方案可能更为合适。

在提出数据科学解决方案时,考虑组织的准备情况至关重要。这涉及到理解组织的文化、基础设施和资源。例如,假设组织缺乏支持先进算法的必要基础设施或没有数据驱动的文化。在这种情况下,它可能还没有准备好采用最先进的数据科学解决方案。

在这些情况下,重要的是从简单的解决方案开始,并逐步过渡到更高级的解决方案。例如,数据科学家可以建议一个简单的数据可视化或报告工具,以帮助组织更好地理解其数据,然后再过渡到更高级的机器学习算法。

通过逐步推进的方法,我们可以与利益相关者建立信任,并以符合组织需求和能力的方式展示数据科学的价值。这有助于为未来更高级的数据科学解决方案创造一个更具接受度的环境。

## 数据科学家:如何推销你的项目和你自己

遵循这一公式来制定完美的电梯陈述

towardsdatascience.com

3. 引领数据驱动组织的旅程

当我们加入一个组织,尤其是当组织处于数据转型的早期阶段时,我们有机会引导我们的组织变得更加数据驱动。这涉及到了解采用数据科学解决方案的障碍,并努力克服这些障碍。

数据驱动决策最显著的障碍之一是对数据科学潜力的缺乏理解。许多利益相关者可能不清楚数据科学如何帮助他们解决问题和做出更好的决策。我们的工作是教育利益相关者数据科学的潜力,以及它如何帮助他们实现目标。

另一个障碍是组织内缺乏数据素养。这可以通过培训计划和教育举措来解决,帮助利益相关者理解如何使用数据来做出决策。

最后,可能存在数据驱动决策的文化障碍,比如对数据缺乏信任或偏好基于直觉的决策。这些障碍可以通过数据讲故事和其他技术来解决,帮助利益相关者看到数据驱动决策的实际价值。

通过在解决这些障碍中担任领导角色,数据科学家可以帮助他们的组织变得更加数据驱动,取得更多成功。正如我们之前讨论的,这可能涉及从简单的解决方案开始,逐步构建到更先进的数据科学解决方案。最终目标是创造一种文化,使数据被视为宝贵的资产,数据驱动的决策成为常态。

## 数据科学项目中有效利益相关者管理的 3 个关键方面

不能忘记我们仍然需要与人合作

towardsdatascience.com

尽管数据科学是一种强大的工具,但在提出解决方案时,重要的是以解决问题的心态来对待它,并且在建议方案时要考虑组织的准备情况。作为数据科学家,我们有责任教育利益相关者,并引导我们的组织朝着更加数据驱动的方向发展。这包括解决数据驱动决策中的文化和组织障碍,从简单的解决方案开始,逐步构建更先进的数据科学解决方案。通过这样做,我们可以创建真正为组织提供价值的解决方案,并对其成功产生有意义的影响。

[## 通过我的推荐链接加入 Medium - Ilro Lee

阅读 Ilro Lee 的每一篇故事(以及 Medium 上成千上万其他作者的故事)。您的会员费直接支持 Ilro…

ilro.medium.com](https://ilro.medium.com/membership?source=post_page-----93daa031d131--------------------------------)

数据共享挑战:隐私和安全问题

原文:towardsdatascience.com/data-sharing-challenges-privacy-and-security-concerns-ca436543a323?source=collection_archive---------15-----------------------#2023-02-01

实施数据共享时的隐私和安全挑战

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

·

关注 发表在 Towards Data Science ·11 分钟阅读·2023 年 2 月 1 日

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

隐私与安全:数据共享的最大挑战 — 图片来自 Castor

数据共享可以为公司带来 许多好处,但也伴随着一系列问题。公司常常面临的两个主要问题是隐私安全。我们将在这一系列关于数据共享的第三篇文章中讨论这些概念。

没有人真正喜欢讨论这些话题。我会首先承认,这些话题并不是最令人兴奋的事情。但相信我,花几分钟时间关注它们是值得的。这可以帮助你的公司避免数百万美元的罚款

尽管数据共享带来了巨大的好处,但它可能与隐私和安全原则相矛盾。

数据共享是关于给业务团队提供访问数据的权限,以帮助他们做出基于数据的决策。让我们回顾一下数据共享的原则:

  • 每个人都应该能够访问他们所需的数据,而不仅仅是某些角色或职位。

  • 应该没有障碍阻止人们获取他们需要的数据。

  • 数据应该以一种组织和结构化的方式进行整理,使任何人都能访问、理解和使用它。

因此,认为隐私和安全与这些原则相冲突是自然的。隐私是关于赋予个人对其个人信息的控制权。安全则是保护信息不被未经授权的访问。这两个概念可能在数据共享时看似相矛盾。

如果你认为自己不受隐私和安全规则的影响,再想想吧。所有处理个人数据的公司都会受到影响。

更重要的是,这些规则通过严格的法规得以执行,例如欧洲的通用数据保护条例 (GDPR)和美国的加州消费者隐私法案(CCPA)

根据像 GDPR 和 CCPA 这样的法律,仅仅遵守是不够的,你还必须能够证明这一点!这就是问责原则。如果你不能展示你遵守规则,你将被认为是不合规的。而且,我们知道,不合规会带来巨额的代价。

本文探讨了在避免隐私和安全相关风险的同时实施数据共享。文章分为三个部分:

  1. 处理隐私风险及其管理方式。

  2. 安全问题以及如何缓解这些问题。

  3. 演示合规性和问责原则。

‍1. 隐私

当我们分享个人身份信息(PII)时,想要保持隐私是很自然的。隐私就是对信息共享、共享对象以及原因的控制。

个人信息包括我们的姓名、社会安全号码、电子邮件、邮寄地址和 IP 地址。保护这些数据对于防止从不便(如垃圾广告)到真正的威胁(如身份盗窃)的侵扰是非常重要的。

GDPR 和 CCPA 中最广泛认可的隐私规则被称为目的限制。根据这一规则,你应该仅为了特定、明确且合法的目的处理 PII。你必须在收集数据之前向数据主体说明这些目的。

这一原则确保收集的数据始终用于其指定目的。

假设你是一家零售商,收集客户地址用于产品配送。根据目的限制原则,你只能将这些数据用于产品配送。你没有权利将其用于其他目的,如营销活动。

当涉及数据共享时,我们如何确保数据仅用于其预期目的?当数据对更广泛的受众开放时,跟踪其使用情况可能会变得困难。利益相关者往往不知道数据收集的具体原因。没有这些知识,遵守规则可能会很困难。

此外,数据共享增加了 PII 数据潜在暴露点的数量。这为潜在的隐私侵犯(如身份盗窃)和对个人信息的控制丧失打开了大门。你对数据的开放程度越高,利益相关者利用数据进行恶意目的的机会就越多。

解决方案:文档与数据共享协议

在深入解决方案之前,重要的是要注意数据共享并不意味着对 PII 数据的无限制访问。

PII 数据应仅暴露给需要查看的人。

我们将在稍后的访问控制管理部分讨论这些内容。

本节讨论隐私问题和确保有访问权限的人将数据用于预期目的。

这里有两个重要步骤可以帮助你避免组织内的数据滥用。

1. 管理数据访问

数据访问可能导致潜在的滥用,因为员工和分包商可能会获取他们不应拥有的机密或敏感信息。

有不同的方法来管理组织中的数据访问:

  • 实施二次认证措施:验证单个用户的身份至关重要,以便准确知道是谁试图登录系统。在员工使用共享账户(如管理员或 root)时,这变得更加复杂。在这些情况下,实施二次认证方法非常重要。

  • 引入双因素认证:凭证盗窃仍然是安全漏洞的一个普遍原因。双因素认证通过要求用户不仅提供他们知道的东西(如凭证),还需要他们拥有的东西(如智能手机)或是(如生物识别数据)来改善用户身份验证。

  • 分配特定的用户角色或访问属性到每个账户: 一旦用户身份经过验证,可以通过分配特定的用户角色或访问属性到每个用户账户来实现细粒度的访问管理。

2. 教育你的员工

不要忽视员工教育在防止数据滥用中的影响。

教育员工的最佳方式是将数据安全信息纳入整体公司政策中。一项全面的政策作为内部程序和标准的可靠信息来源,包括网络安全。这是一种有效的方法,可以教育新员工了解他们可以和不可以如何处理公司数据。

另一种解决方案是数据文档化。对 PII 数据进行适当的文档记录是确保数据以道德和合法方式处理的重要步骤。

文档化涉及识别 PII 数据并在数据库中标记。你应该指定数据收集的目的,以及你将使用数据的具体用途。

为每个 PII 字段提供正确的背景信息可以确保每个人都知道它的用途。这样,各团队在访问数据时可以在目的限制原则下合法使用。

假设你在数据集中有一个标记为“电子邮件地址”的列。对于这个列,重要的是要包含数据使用的详细说明。这可能包括如下声明:“电子邮件地址,仅用于产品配送”

这确保了利益相关者使用数据的目的符合预期,而不是用于任何未经授权的活动。

一旦你的业务团队已经设置好可以轻松访问文档化数据,保持系统运作的另一种方法是设立一个数据共享协议 (DSA)。正如Piethein Strengholt所述,DSA 是一个具有法律约束力的合同,列出了数据共享和使用的所有条款和条件。

它概述了将共享哪些类型的数据、共享的原因以及如何保护这些数据。它还列出了每个人的责任,包括数据使用的任何限制,以及如果事情没有按计划进行会发生什么。这些协议在研究、商业和政府中被广泛使用。它们是确保每个人都遵守规则并将数据用于预定目的的绝佳方式。

2. 安全

安全是关于实施保护个人信息的措施。

PII 数据需要防止未经授权的访问、使用、披露、干扰、修改或销毁。

GDPR 中的一个重要安全规则是完整性原则。它规定,个人数据必须受到保护,防止未经授权的访问、更改或销毁。

实施数据共享就像是打开了洪水闸门,带来了多种潜在威胁,如黑客攻击或恶意软件。访问数据的人越多,未经授权方获取数据的机会就越多。而且,当数据被共享时,它可能还会存储在多个位置,使得监控变得更加困难。

即使公司的 IT 系统像金库一样坚固,数据共享仍可能带来安全风险。这是因为尽管强大的 IT 系统可能能够抵御外部威胁,但它可能无法防止内部威胁,例如内部泄露。

数据共享可能是一项棘手的业务。访问数据的人越多,你公司系统中的潜在弱点就越多。但这并不意味着一切都要悲观。即使数据受到更多人的关注,仍然可以在确保数据安全和合规的同时保护数据。这只是需要采取正确措施以保护数据。

解决方案:访问控制和数据最小化

在数据共享时,关键是找到访问与安全之间的正确平衡。一方面,你要确保正确的人可以访问他们完成工作所需的信息,另一方面,又不想让任何人都能随意进入。这就是访问控制数据最小化发挥作用的地方。

  • 访问控制旨在确保只有合适的人才能访问数据。这个话题在前面章节中已经讨论过。

  • 数据最小化是另一个关键部分。其核心在于将共享的数据量保持在最低限度。与其分享所有数据,不如退一步思考哪些信息对各团队执行任务是真正必要的。一般来说,你可以在数据集中移除或遮蔽 PII 列,而不影响利益相关者。只分享必要的数据,可以将流动的 PII 信息量保持在最低水平。

访问控制数据最小化一起使用时,它们可以帮助你与更多人共享数据,同时保持数据的安全性和符合安全法规的要求。它们可以共同确保你的数据安全,同时向需要的人提供访问。

实践这一点的最佳方法是使用数据共享平台。可以把它看作是一个虚拟的“文件柜”,你可以在其中存储和分享你的数据给合适的人。这些平台通常配备了内置的访问控制,因此你可以确保只有那些应有访问权限的人才能看到数据。此外,它们通常还具有强大的安全措施,以保护你的数据免受错误人员的侵害。

通过使用数据共享平台来管理访问控制和数据最小化,你可以与更多人共享数据,同时保持其安全并符合安全法规。这就像一个组合锁,既能保护数据的安全,又能使数据对需要的人可用。这是一个双赢的局面。

3. 责任:如何证明合规性?

如前所述,如果你不能证明你遵守了规则,那么你会被视为违反规则。这是数据法规如 GDPR 和 CCPA 中责任原则的基本理念。负责任意味着能够证明你遵循所有法规并确保个人数据安全。

责任原则规定,公司必须能够展示他们已采取适当的技术和组织措施,以满足法规下的义务。

想象一下,你是一个组织,监管机构正在进行审计以检查谁访问了敏感数据以及他们对这些数据做了什么。如果没有适当的流程,你将陷入困惑,试图弄清楚数据的使用情况。

为了证明符合通用数据保护条例(GDPR),你可以采取以下措施:

  1. 进行数据保护影响评估(DPIA) — DPIA 是一种风险评估,帮助你识别、分析和减轻数据处理活动的隐私风险。它表明你已采取必要措施,以确保你的数据处理符合 GDPR。

  2. 保留处理活动记录 — 你必须保留所有数据处理活动的记录,包括处理的数据类别、处理目的、数据保留期限等。查看你的数据谱系也可以帮助你证明符合规定。数据谱系,也称为数据家谱,是追踪数据在整个生命周期中的起源和流动的能力。它让你能够看到数据的来源、去向以及去过的地方。这意味着你可以轻松追踪谁访问了这些敏感数据,何时访问的,以及他们对数据做了什么。

  3. 实施适当的技术和组织措施 — 您必须实施适当的技术和组织措施来确保个人数据的安全,例如加密、访问控制和防火墙。这些措施帮助您证明您已采取必要步骤来保护个人数据。

  4. 任命数据保护官(DPO) — 如果您的组织处理大量个人数据或进行定期和系统的数据主体监控,您必须任命一名 DPO。DPO 可以通过提供专家建议、培训和支持,帮助您证明您对 GDPR 的合规性。

  5. 定期进行隐私审计 — 定期进行隐私审计有助于评估您对 GDPR 的合规性,并识别需要改进的领域。它们还表明您致力于保护个人数据并保持对 GDPR 的合规性。

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

数据血缘示例 — 图片由 Castor 提供

结论

虽然数据共享可以为公司带来显著的好处,但它也带来了一系列问题,特别是在隐私和安全方面。

隐私是关于控制信息的共享、共享对象及其原因,而安全性则是指保护数据免受未经授权的访问、更改或破坏。

管理隐私和安全风险可以通过实施一些关键策略来实现。为了保护个人信息,重要的是投资于适当的文档并建立明确的数据共享协议。此外,实施访问控制和遵循数据最小化实践可以帮助减少安全风险并确保敏感信息的安全。我们在下面的图片中总结了这些信息。

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

处理隐私与安全 — 图片由 Castor 提供

公司必须遵守严格的法规,如 GDPR 和 CCPA,以保持数据的安全和保护。问责原则还规定,公司必须能够证明其合规性。

然而,借助适当的工具和实践,公司可以在尊重安全性和隐私规则的同时有效管理数据共享。

关于我们

我们介绍了利用数据资产时涉及的所有过程:从 现代数据堆栈 到数据团队组成,再到数据治理。我们的 博客 涵盖了从数据中创造实际价值的技术和非技术方面。

在 Castor,我们正在为 Notion、Figma、Slack 一代构建数据文档工具。

想了解更多?联系我们 我们将为您展示一个演示。

最初发布于 https://www.castordoc.com.

数据讲故事基础:数据科学家和 AI 从业者的核心策略

原文:towardsdatascience.com/data-storytelling-101-essential-strategies-for-data-scientists-and-ai-practitioners-b6843891ec8d

向同事和客户展示枯燥无味的数据的时代已经结束!

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

·发布在 Towards Data Science ·13 分钟阅读·2023 年 1 月 10 日

发掘数据讲故事的力量,将你的职业生涯提升到新的高度!在这篇文章中,你将学习如何利用数据讲故事来吸引观众,让你的信息深入人心,并从竞争中脱颖而出。

无论你是经验丰富的专家还是刚刚起步,这些技巧将帮助你将数据转化为引人入胜的叙事,从而推动结果。通过阅读本文,你将获得一个框架,将数据讲故事的关键要素融入你的下一次演示、提案或提议中。

但你为什么需要关心呢?

作为一名 AI 或数据从业者,你将技术概念和数据见解转化为易于理解的术语的能力对于赢得利益相关者的支持和推动项目成功至关重要。

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

交叉口上的一个人 - 图片由作者在(Canva Text-to-Image)创建

你正站在两条道路的交汇处;道路#1 尽是从数据中提取的见解和智慧,而道路#2 则是项目利益相关者、业务经理以及那些决定你命运的人(有点戏剧化,但你明白了)。

为了确保利益相关者理解技术需求、附加值以及数据科学团队工作的影响,数据科学家、数据工程师和机器学习(ML)工程师必须有效沟通。你本质上控制着这两条道路交汇处的流量。

本文旨在:

  • 在数据科学和机器学习的背景下引入讲故事技巧

  • 提供培养讲故事技能的技巧

  • 强调有效讲故事在数据科学中的好处

  • 提供一个框架,你可以采用这个框架在各种场景中融入讲故事的元素,例如向非技术性利益相关者展示数据集。

数据驱动的讲故事

我们首先提出问题:

卓越讲故事的要素是什么?

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

照片由Product School提供,来源于Unsplash

为了理解数据讲故事的力量,让我们看一个案例研究,展示一个讲述良好的数据故事的关键元素。通过分析一个实际的例子,你将更好地理解有效的数据讲故事的样子,以及如何在你的工作中使用这些技巧。

作为背景,这篇文章的作者使用数字、数据和信息来阐述全球普遍问题的影响以及缺乏行动的负面后果。在这种情况下,利用数据讲述特定的故事,使所呈现的问题变得真实,同时也使提出的解决方案变得既切实又可实现。

在这篇文章中,作者利用数据将全球问题生动呈现,并使提出的解决方案变得切实可行。通过使用数字、数据和信息来说明这些问题的影响及不作为的后果,作者有效地讲述了一个故事,使所呈现的问题变得真实,解决方案也变得可以实现。

解剖一个用数据讲述的好故事

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

图片来自 Canva

随着全球人口继续增长,特别是在非洲,我们看到了一系列后果,包括经济繁荣、收入差距扩大和财富分配不均。人口规模的增加对一个国家、地区或大陆可能产生各种影响。

Ashley Kirk,曾是《电讯报》的数据记者,在文章非洲在 100 年后的模样中讨论了人口规模的增加对非洲经济的意义。

Ashley 从拉各斯、达喀尔和开罗等主要城市的视角,利用数据和动态可视化将非洲的持续变革生动呈现。讲故事的方式不仅在战略上构建了任何优秀数据驱动叙述的基本结构,还将事实信息、轶事、数据、图表和图形无缝结合,创造出引人入胜且信息丰富的主题叙述。

文章的开头部分描述了情况的背景和要点:

“非洲能否将其庞大的人口增长转化为经济发展和生活质量的提升?”

开篇部分提供了背景并为主要观点奠定了基础,而事实信息和关键日期、数字以及第一手陈述则使叙事扎根于现实中。图表和图形帮助可视化非洲主要城市的转变,突出显示人口增长、教育水平和预期寿命等关键数据点。

文章的中段深入探讨了这些城市面临的冲突和问题,利用数据、轶事和个人经历来描绘挑战和机遇的复杂图景。最终,这篇文章展示了数据实践者如何利用数据讲述一个强有力的人性化故事,与读者产生共鸣。

数据科学中的讲故事不仅仅是呈现事实和数字——它是关于创建一个与观众产生共鸣的相关且卓越的叙事。这就是为什么 Ashley 的文章包含了来自焦点城市中个人的亲身经历和轶事,为数据驱动的分析增添了人性化的色彩。

在整篇文章中,Ashley 还结合了专家访谈,以提供额外的背景和理解这些变化如何影响人们的生活。

Ashley 的文章提出了许多问题,但通过讨论已经实施或正在提议的解决方案,最终达到了高潮。机构采取行动解决教育、气候和冲突等问题的存在,增强了 Ashley 对读者的叙事。

在下一节中,我们将为你提供一个逐步框架,帮助你构建自己的数据驱动故事,以便在下一个演示、文章或视频中有效地向利益相关者展示你的发现。

数据科学讲故事的有效框架

故事讲述的成功可以归结为三个关键要素:背景、叙事和数据。将这些元素结合起来,可以创建一个引人入胜的故事,打动你的观众并推动你的议程。无论你讲述的是事实还是虚构的故事,这些组件都是构建有意义、数据驱动的叙事的必需要素。

有效的数据故事讲述依赖于三个关键要素:背景争议解决方案。这些元素在下面的图像中进行了说明,并为构建引人入胜的故事奠定了基础。在本节中,我们将探讨这些关键组件,并了解如何使用它们来提升你的数据故事讲述技巧。考虑到这些组件作为基本要素,显而易见的是,实践者如何将它们与其他方法结合起来,以创建一个用数据讲述的引人入胜的故事,并提升他们的数据故事讲述技能。

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

讲故事组件的示意图:背景、争议和解决方案 — 作者图

#1. 背景

有效的数据讲述的第一步是设定背景。没有背景信息,数据可能会令人困惑和误导,导致项目取消和商业损失。

这就是为什么为你的数据提供背景如此重要——它有助于赋予数字意义,并使你的观众更好地理解当前的问题或主题。记住,仅凭数据不足以提供可操作的见解或有意义的解决方案。必须包括其他支持性元素,使你的数据真正具有意义和影响力。

故事讲述中的背景信息是为了强化、支持和揭示从数据样本中提取的关键发现,从而提供视角。 这可以通过多种方式实现,包括使用演员、轶事、可视化、数据标签、图表等。目标是让观众更好地理解数据收集的背景及其与大局的关系。通过包括这些强化材料,你可以帮助你的观众理解数据,并看到你的发现的重要性。

“2021 年,英国销售了 305,300 辆插电式电动车,同比增长约 140%。” — Statista, acea.auto

上述材料很吸引人,但这些数据在整体上意味着什么?没有背景或个人经历,理解这一数字的意义可能很困难。这就是故事讲述的作用。通过使用轶事、可视化和其他支持材料,我们可以赋予数据意义,并帮助观众更深入地与数据连接。让我们用一个名叫詹姆斯的演员来说明这一点。

作者说明:请注意,以下故事是虚构的,用于说明本文所要表达的观点。

“2020 年 2 月,詹姆斯在 M24 高速公路上通勤时,收听了他的早间广播节目《UK today》。节目中的讨论集中在激进分子对石油公司抗议的不断增加,以及向公众普及气候变化的意识。詹姆斯印象深刻的一句话是:“英国的碳足迹是全球平均水平的两倍,这意味着在个人层面上,我们在英国排放的碳气体比地球上大多数人都要多。”

这个说法让詹姆斯记忆犹新,他决定采取行动,或者至少做出自己的贡献。詹姆斯回忆起曾听同事谈论电动车,尽管当时因为缺乏兴趣而没有在意。但现在,詹姆斯的兴趣激增,经过对购买大众 ID.3 所需定金的调查,他做出了购买的决定。于是他购买了一辆。到 2021 年中,詹姆斯拥有了一辆电动车。詹姆斯并不是唯一一个决定采取行动的人;还有数百万名英国居民也采取了行动。无论是通过增加回收努力、减少电力和天然气使用还是购买电动车。英国公众对气候变化影响的意识促进了 2021 年电动车销售的增长。因此,2021 年销售的电动车数量超过了 300,000 辆,比去年增长了一倍多。而詹姆斯就是新电动车车主之一。如今,英国在电动车销售数量方面已成为领先国家之一。”

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

“未来主义风格的男人给电动车充电” — 图片由作者提供于 MidJourney

增加的背景信息使用了角色和轶事,使初始数据点更具生命力。图表和图示也是提供背景的重要工具,如下图所示。

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

图表显示了 2021 年选定欧洲国家的插电式电动车销售量。来源:欧洲;Statista;各类来源(国家汽车制造商协会);ACEA;2021(CC BY-ND 4.0)

#2. 争议

讲故事中的争议是你故事的反派,而解决方案则是迎接挑战的英雄。理解争议为需要解决的问题、冲突或难题会更容易。这是你故事的推动力,也是为什么需要解决方案的原因。没有争议,就不需要解决方案,你的故事就会变得平淡。因此,在构建基于数据的叙事时,明确识别争议以及你的解决方案如何解决它。这将帮助你创建一个引人入胜、富有影响力的故事,与观众产生共鸣。

让我们继续创建一个争议,以有效讲述一个故事,并有效地推动初始数据点的重点:

2021 年,英国销售了 305,300 辆插电式电动车,相比去年增长了约 140%。”

“英国是一个化石燃料的净进口国,这些燃料用于能源和电力生产。化石燃料驱动我们的交通、电子和技术服务,甚至是依赖化石燃料能源输出的家庭用品。问题在于,英国决心在 2050 年前显著减少对化石燃料的依赖。因此,问题是英国如何减少化石燃料消耗并转向低碳能源来源。除此之外,化石燃料是气候变化的重大贡献者,导致全球气温升高和极端天气。”

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

未来主义的图像描绘了化石燃料使用和依赖对世界产生负面影响的场景 — 图片由作者提供于 MidJourney

#3. 解决方案

解决方案是你基于数据讲述故事的核心——它是数据存在的目的,也是背景和争议的原因。在 Ashley Kirk 的文章中,解决方案结合了旨在改善非洲经济的因素的倡议和行动。它包括基础设施发展、改善安全、现代化和国际援助。

解决方案可以有多种形式,例如重新配置现有系统、实施新方法、提高对教育材料的认知。

在数据驱动的故事中展示解决方案时,重要的是要直接、明显和难忘。模糊的解决方案可能会引发更多问题,并削弱你的信心和呈现效果。清晰、可操作的解决方案允许后续步骤,并帮助你的计划在竞争激烈的领域中脱颖而出。是时候不再把自己当作个体,而是将自己视为通过每个项目完成销售自己及其服务的公司。

让我们根据我们正在构建的初步数据点和解决方案将要解决的争议来完成解决方案的制定。以下是初步数据点和争议的提醒。

数据点:

“2021 年,英国售出了 305,300 辆插电式电动车,同比增长约 140%。”

争议:

“英国是一个化石燃料的净进口国,这些燃料用于能源和电力生产。化石燃料驱动我们的交通、电子和技术服务,甚至是依赖化石燃料能源输出的家庭用品。问题在于,英国决心在 2050 年前显著减少对化石燃料的依赖。因此,问题是英国如何减少化石燃料消耗并转向低碳能源来源。除此之外,化石燃料是气候变化的重大贡献者,导致全球气温升高和极端天气。”

以下是提议的解决方案:

“詹姆斯减少碳足迹的旅程始于意识。公众对化石燃料依赖问题及其对环境的损害的认识是实现英国到 2050 年减少化石燃料依赖的国家目标的第一步。为了覆盖像詹姆斯这样的更多人群,我们提议扩展 WWF 碳足迹应用程序,加入 AI 驱动的功能,实现基于历史数据和预测的能源需求的家庭能源消耗预测。这个扩展计划将需要 1 亿英镑的资金,并将在项目批准后一年向公众发布。”

再次说明,我提出的解决方案是虚构的,仅用于说明目的。为了明确,提出的解决方案引用了故事,使其更易记忆。我包括了有关项目成本和时间表的信息,以显示它的直接性。如果我们愿意,我们可以轻易发现我快速整理的这个虚构解决方案中的缺陷,但你应该从中得到的是构成一个理想解决方案的元素:难忘和简单明了。

“数据讲述既是一门艺术,也是一门科学,作为 AI/数据从业者,我们可以将其拆解成易于遵循的步骤。正如广泛讨论的,一个引人注目的数据驱动故事应包括以下组件:

  1. 背景 — 为你的叙述奠定基础并提供一些背景信息。

  2. 争议 — 讨论与背景相关的问题。

  3. 解决方案 — 最终,解释和讨论能够解决或缓解所识别问题的解决方案。

将这些部分整合在一起

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

图片由 Mourizal Zativa 提供,来源于 Unsplash

总结一下,这是你在编写数据驱动故事时可以遵循的框架:

  1. 开头部分:以一个突显争议影响或解决方案价值的事实陈述开头。用几段文字扩展,介绍和解释背景。

  2. 中间部分:在背景中介绍和扩展争议。使用轶事、事实、数据、图表和图解来说明问题。然后,介绍并扩展有关解决方案的争议。使用轶事、事实、数据、图表和图解展示提出的解决方案的影响和附加价值。

  3. 结束部分:总结时,通过对比现实情况来展示没有解决方案的负面后果和拥有解决方案的好处。包括一个行动呼吁作为下一步,概括用数据讲述的故事的期望结果。

结合有效的数据驱动故事所需的关键组件、元素和考虑因素,你将得到下方所示的图表。

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

讲故事的组件、元素和考虑因素的完整图示 — 图片由作者提供

当我们在争议和解决方案的旁边提供背景时,我们创建了一个强大的三位一体,帮助个人理解问题、感到有动力去解决问题,并知道如何采取行动。

通过将数据进行情境化并用背景信息支持关键消息,我们可以创造出一个更具信息性和参与感的公众。无论是通过轶事、可视化还是数据标签,目标是提供增强数据驱动故事影响力和理解的背景。

摘要

随着公司、社会和世界变得越来越数据驱动,我们将看到对人工智能可解释性和数据简化的需求上升。所有层次的 AI 和数据行业从业者和专业人士需要培养数据讲故事的技能,以弥合技术领域、数据集和技术与非技术利益相关者、客户以及广泛社会之间的理解差距。

你的数据讲故事之旅并不会在这里结束。还有许多其他方面的技能培养未在本文中涉及,如通过数据可视化、设计考虑、文档等来提升数据讲故事的演示和提案。然而,本文中的三个步骤将为你提供一个坚实的基础,帮助你开始建立数据讲故事的技能。

下一步是将本文中的学习应用到你的下一个项目、实践或组织中。我将在接下来的文章中深入探讨增强数据讲故事演示材料的内容。

希望你觉得这篇文章有用。

要与我联系或找到更多类似于本文的内容,请执行以下操作:

  1. 支持我的写作 通过成为推荐的 Medium 会员

  2. 订阅我的YouTube 频道

  3. 订阅我的播客 Apple Podcasts | Spotify | Audible

  4. 订阅我的电子邮件列表 以获取我的新闻通讯

接下来阅读什么 👇🏾

## Ken Jee 的 数据科学职业建议

关于在人工智能和数据领域内学术及职业路径的建议

towardsdatascience.com

本文的一个版本已发布在 Nvidia 数据科学博客

数据讲故事与动态词云

原文:towardsdatascience.com/data-storytelling-with-animated-word-clouds-1889fdeb97b8

动态词云将经典词云转换为动态可视化。了解更多关于在 Python 中讲述数据故事的信息。

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

·发表于 Towards Data Science ·阅读时间 5 分钟·2023 年 11 月 22 日

来源:AnimatedWordCloud 库。图片由作者提供。

引言

动态词云展示了 n-gram(连续文本样本项的序列)随时间变化的绝对频率,以视频文件中的一系列图像呈现。 它给予在源文本中出现频率较高的词语更多的重要性。n-gram 的显示越大越粗体,它在文本中出现的频率就越高。它基于经典词云的直观逻辑,并为可视化添加了时间视角。

由于如今许多文本数据集作为多个时期的文本观察被收集,如何可视化数据随时间的变化成为一个特别的挑战。与其为多个不同的时期制作汇总表或图表,不如准备一个 MP4 视频,讲述故事,吸引观众,并为展示增添“哇”的效果。

本文将描述如何在 Python 中从文本数据生成动态词云。以下是AnimatedWordCloud 库的一些独特功能:

  • 提供所有拉丁字母语言的 n-gram 频率可视化

  • 从标点符号、数字和 NLTK 停用词列表 中清理文本数据集

  • 生成每年或每月的 n-gram 频率。

图片 1. 经济学研究趋势的动态词云

如何使用

要使用该库,请遵循以下步骤:

1. 安装

为项目创建一个新的 Python 3.8 虚拟环境,以避免任何依赖冲突。AnimatedWordCloud 依赖 Python 3.8,因为其可视化 要求。要使用 pip 安装,请使用:

pip install AnimatedWordCloud

在 Pycharm 社区版中进行了测试。建议使用此 IDE,并在 .py 文件中运行代码,而不是在 jupyter notebook 中。

2. 生成帧

我们将关注欧洲中央银行(ECB)的沟通,并了解银行委员会成员在 1997–2023 年期间讨论的概念。数据集来自 ECB 网站,发布时具有灵活的 许可

数据包含 2846 行,并具有 NaN 值,AnimatedWordCloud 可以有效处理。数据如下所示:

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

图片 2. ECB 演讲数据集

让我们导入数据。

import pandas as pd

data = pd.read_csv('dataset.csv')

然后导入 animated_word_cloud 方法。

编辑 2023 年 12 月:AnimatedWordCloud 已不断更新新参数。查看 PiPy 以获取当前版本。

它提供以美国 (MM/DD/YYYY) 或欧洲风格 (DD/MM/YYYY) 日期和时间格式读取数据。它在输入时自动清理数据中的标点符号和数字。它还可以移除 NLTK 语料库中语言的标准停用词列表。

from AnimatedWordCloud import animated_word_cloud

animated_word_cloud(text=data['contents'],  # Read text column
          time=data['date'],                # Read date column
          date_format = 'us',               # Read dates in US date format
          ngram=1,                          # Show individual word frequencies
          freq='Y',                         # Calculate yearly frequencies
          stopwords=['english', 'french',   # Clean from English, French,
                     'german', 'spanish'])  # German and Spanish stop words

该代码每个周期生成 90 个 PNG 帧,并在工作目录中创建一个 .postprocessing/frames 文件夹来存储这些图像。

3. 从图像创建视频

最后一步是将单独的帧制作成视频文件。此步骤将在未来版本中自动化,但目前:

这里 下载 ffmpeg 文件夹和 frames2video.bat 文件,并将其放入 postprocessing 文件夹中。接下来,运行 frames2video.bat,这将生成一个 wordSwarmOut.mp4 文件,这是所需的输出。

图片 3. 欧洲中央银行家演讲的动画词云

让我们通过中央银行家的视角讲述欧元区的故事:

  • 1999 — 2002 年期间,关键主题是欧元引入 (“加入”、 “欧元”)

  • 2003 — 2006 年间,银行家们主要讨论了标准货币政策实施问题 (“货币”、 “金融”、 “市场”、 “政策”)

  • 在即将到来的金融危机中,2008 — 2012 年的关键主题是 “流动性”、 “危机” 和 “银行”

  • 重要时期出现在 2021 年,COVID-19 经济影响 (“大流行”) 和乌克兰战争导致通货膨胀成为主要话题。

这些发展对任何对欧元历史感兴趣的人来说都是显而易见的。但呈现这些信息是一项具有挑战性的任务。例如,我们可以使用(1)关键词的 n-gram 频率分析,并生成多个关键词频率表,或(2)显示一个热图(或一个矩阵图),x 轴上为时间段,y 轴上为单词,矩阵中的项为单词频率。另一种选择(3)是为每个时期生成多个词云。这些方法都不适合较大的数据集,而动态词云为传递信息提供了另一种选择。

实际应用

该库主要用于演示教学。文本挖掘现在与经济学、政治学或商业等其他学科相融合,教师、分析师和学生现在可以使用一种不同、更具吸引力的方式来呈现事实。

  • 你是一位对科学历史感兴趣的历史学家吗?那么,尝试从像Constellate这样的平台下载文本数据集,如文章标题或期刊摘要,准备一个视频文件,并告诉你的学生 AI 在已发表研究中的历史。从 1900 到 2018 年的经济数据研究趋势分析项目可能会为你提供一些灵感,我们在这篇文章中有描述。

  • 你想展示你的营销团队客户对你产品的看法吗?那就使用来自外部平台(如 Amazon)的产品评论,解释客户提到的词汇。是*“快速”“交付”,还是“好”“棒”?还是频繁出现的词汇是“差”“坏”“质量”*?讲述一个故事以传达信息,并观察其随时间的变化。

我们与 Jarko Fidrmuc 和 David Štrba 合作的早期 TDS 文章概述了词云如何用于总结探索性文本数据分析。以动态形式展示文本数据集的结构,可以更好、更易理解地呈现时间序列数据。

其他有趣的应用案例,如使用 X-tweets 对COVID-19 相关讨论美国总统辩论进行建模,可能在学士论文或研讨会论文中也很值得检查。

技术说明

WordsSwarm项目中,Michael Kane开发了用于库中词频动画的核心框架。AnimatedWordCloud是我创建的一个Apache-2.0 许可证项目,使代码能够高效地处理各种拉丁字母语言的文本数据集。

它使用了我早期的一个项目,𝐀𝐫𝐚𝐛𝐢𝐜𝐚库,用于处理(文本清理和词频汇总)。它依赖于一些比较古老的可视化需求,这些需求非常适合这个项目。PyBox2D用于群体中单词的物理和碰撞检测。Pyglet(跨平台窗口和多媒体库)以及PyGame用于创建动画。

它显示了绝对词频,但会对数据进行缩放,以便在不同大小的数据集上显示词云。通过这种方式,词频较大的数据集会被一个常数缩放,从而使词云仍然可以在视频中显示。它处理缺失值,并且使用ftfy来处理乱码错误。

另一方面,AnimatedWordCloud可能在 Jupyter Notebook 和其他 IDE(如 Pycharm)中运行时会遇到困难。我将在下一个版本中查看这些不足之处。在未来的版本中,AnimatedWordCloud还将提供双字频率,以便更详细地查看人们在文本中讨论的叙述和主题。同时,我还将扩展库的文档。

PS: 让我知道它在你的项目中效果如何!😃

如果你喜欢我的工作,你可以 请我喝咖啡 并支持我的写作。你也可以订阅我的 邮件列表 以获得我新文章的通知。谢谢!

数据流处理令人兴奋:在跳入之前你需要了解的事项

原文:towardsdatascience.com/data-streaming-is-exciting-what-you-need-to-know-before-jumping-in-e233e192337b

数据流处理适合你的业务吗?需要考虑的关键事实

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

·发表于 Towards Data Science ·阅读时间 5 分钟·2023 年 2 月 27 日

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

照片由 Stephen LeonardiUnsplash 上提供

流数据是数据领域中一个令人兴奋的领域,近年来受到了极大的关注。由于这种兴奋,开源项目的领域变得非常拥挤。许多技术使流数据处理变得比以往更简单:Kafka、Flink、Spark、Storm、Beam 等技术已经在市场上存在多年,并建立了坚实的用户基础。

“让我们做流处理。”

对于数据专业人士来说,这是一个不可避免的话题。然而,在有人告诉你关于流数据之前,我们应该退一步,用一个简单的问题与自己再次确认:我在这个用例中需要流数据吗? 在深入了解之前,让我们面对这个故事中的流数据事实。

流数据

在我们查看流数据的事实之前,让我们先看看什么是流数据。Hadoop 为处理大规模数据集奠定了基础,并赋予了数据专业人士设计更复杂的数据处理工具的能力。

Tyler Akidau 于 2013 年发表的关于 MillWheel: Fault-Tolerant Stream Processing at Internet Scale 的论文为现代流数据奠定了基础,并激发了像 Apache Flink 这样的流处理框架。

泰勒著名的 Streaming 101Streaming 102 以及他的书籍 Streaming System 提供了流处理数据的广泛背景。

当我使用“流处理”这个术语时,你可以安全地假设我指的是一个为无限数据集设计的执行引擎,仅此而已。 — 泰勒·阿基道

让我们遵循泰勒的确切定义,并在整个故事中关注无限数据。

Kappa 与 Lambda 架构

我们都熟悉 Lambda 架构 — 我们使用两个独立的数据处理系统:批处理和流处理,重复编写类似的逻辑并处理相同的数据。流处理用于推测,批处理用于准确性和完整性。

另一方面,我们有 Kappa 架构。我们有一个单一的管道运行,无需重复代码,并利用 Kafka 实现可重放的操作,以便在需要准确性和完整性时使用。

总的来说,Kappa 是一个设计良好的系统的好想法。然而,这样的系统需要将数据处理视为首要任务。

流处理数据并非灵丹妙药。

不久前,对数据处理有一种印象,即“流处理数据是灵丹妙药”,我们都将转向流处理数据。批处理被视为过时的。

一段时间后,人们意识到流处理数据并不是解决问题的灵丹妙药,反而可能会使情况更糟:

  • 流处理不足以生成完整的数据分析数据集。由于数据的迟到或处理错误,仍然需要批处理来弥补这一缺口。

  • 流处理和批处理通常讲的是不同的语言。流处理通常使用 Java、Scala 和 Go 运行,配合 Apache Flink / Kafka Stream 等框架。批处理则通常使用 Python、SQL 和 R 运行,配合 Apache Spark / SQL 引擎等框架。为批处理和流处理重复相同的逻辑是一个麻烦。这是运行 Lambda 架构时最具挑战性的问题之一。

流处理数据的权衡

数据自然是以流处理的方式出现的。最初,批处理似乎不适合解决数据问题,但批处理因其几十年来的声誉而有其存在的理由。批处理是一种简化的哲学,用于解决复杂的问题。

批处理和流处理之间存在显著的权衡。

完整性与推测

许多数据源不可避免地会产生延迟;主要是你的数据分析包括多个数据源。批处理在处理数据完整性方面表现出色,可以在一切准备好后延迟处理。

另一方面,数据流可以通过等待额外的时间,即在内存中保持数据几个小时或一天,来实现这一目标,这样做是昂贵的。流处理也可以提供完整的数据集,但需要上游数据生成器的配合,以解决数据整合和额外延迟的问题。

你的用例的准确 SLA

你需要你的流处理系统处理数据的速度有多快?你的用例可以接受多少延迟?许多 ETL 批处理管道是每天处理的。这对你的业务来说是否太慢了?许多用例受服务水平协议(SLA)的限制。与广告或日间交易不同,几个小时的延迟不会阻止公司正常运营。

流数据不容易维护

迟到的数据

对于任何数据处理系统来说,一个不可避免的事实是:数据到达迟缓。一个设计良好的系统有时可以规避这个问题,但只是偶尔。

在批处理过程中,迟到的数据不是一个大问题,因为数据处理的时间远晚于事件日期,并且 SLA 的要求不严格到分钟或小时。那些从事批处理的人对数据将在 24 小时或更长时间内到达的期望较低。

流处理不是“万无一失”的解决方案——像水印这样的概念为我们处理迟到的数据提供了额外的缓冲。然而,水印是另一种将数据保存在内存中的方式。内存不是免费的:在进一步的点上,水印必须推进,你决定丢弃记录或将其发送到死队列,以便另一个过程重新处理——批处理。

24/7 维护

维护流处理应用程序是很有挑战性的。与批处理不同,你在停机窗口中可以放松,决定是否修复一个错误或喝杯咖啡。

在流数据处理过程中,需要 24/7 的监控和最小的停机时间。你的值班团队必须监控并修复潜在的数据问题,以保持管道的运行。流处理可能听起来很令人兴奋,但作为维护流处理管道的数据工程师,值班需要付出很多努力。

连接数据的复杂性要高得多。

在流处理中,与多个流的数据连接并不是简单的。在批处理时,通过将一组标准键与两个有界表连接,连接非常简单。在流处理中,必须仔细考虑两个无界数据集如何连接。

一个更大的问题出现了:我们如何知道是否还有需要考虑的传入记录?Tyler 的Streaming 102提供了一个很好的示例来演示这一点。简而言之,在不同流之间连接数据比批处理复杂得多。

最后思考

在采用流处理应用程序之前,了解你的用例是否适合流处理是至关重要的。

以流式方式处理数据是令人兴奋和吸引人的。

然而,激动的背后是成本。批处理更为直接,并且已被历史认可数十年。在盲目进入数据流处理之前,理解其优缺点应当被仔细评估。

我希望这个故事对你有所帮助。本文是我的工程与数据科学故事系列中的一部分,目前包括以下内容:

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

Chengzhi Zhao

数据工程与数据科学故事

查看列表53 个故事外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

你也可以订阅我的新文章或成为推荐的 Medium 会员,享受 Medium 上所有故事的无限访问。

如果有问题或评论,请随时在本故事的评论区留言,或通过LinkedinTwitter与我直接联系。

数据,优化:如何构建更好的产品、工作流程和团队

原文:如何优化数据:构建更好的产品、工作流程和团队

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

·

关注 发表在 Towards Data Science · 发送至 通讯 · 3 分钟阅读 · 2023 年 8 月 24 日

尽管有许多公司的出现和工具的普及,这些公司的唯一目的是帮助数据从业者实现他们职业的承诺,但可用数据与有用数据之间的差距证明是非常难以弥合的。

事情是怎么发展的呢?可能的罪魁祸首有很多——从过时的基础设施到沟通障碍以及利益相关者的不一致——事情走向岔路的方式也很多。幸运的是,还有一些基本原则可以帮助数据团队变得更加高效:明确的、可衡量的目标以及简化的默认设置是我们发布的数据管理文章中的共同主题。

为了帮助你逐步进入这个偶尔棘手的话题,我们精选了一些优秀的近期贡献,这些作者根据自己的宝贵经验分享了见解和建议。有些文章解决了个体贡献者层面的问题,而其他文章则处理了跨组织的数据操作简化挑战。它们共同的特点是对使团队和项目更顺利运行持有冷静、务实的态度。让我们深入探讨一下吧。

  • 云数据服务的出现对无数公司来说是一个游戏规则改变者。然而,Barr Moses指出,向云端基础设施的迁移并不总是伴随必要的思维转变以适应新的更好的工作流程——但对于那些寻求“现代工具、顶尖人才和最佳实践之间的对齐”的组织而言,改变是触手可及的。

  • 这可能听起来有些违反直觉,但Robert Yi提供了一个有力的案例避免让团队过于僵化地以数据驱动。根据他在 COVID-19 大流行初期的混乱经验,Robert 认为我们应当始终“考虑不同的决策情境”,并根据我们所处的具体环境来利用数据(或不利用)。

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

图片由Amelia Bartlett提供,来自Unsplash

  • 设计数据项目可能是一项令人生畏的任务:这通常涉及与可能对数据不如你熟悉的合作伙伴打交道,繁琐的工具集成,以及相互竞争的优先事项。Radmila M.提倡**采用定制的“问题陈述工作表(PSW)方法”**以保持事情的整洁和专注。

  • 从混乱的数据沼泽到过于复杂且难以驾驭的技术栈,公司总能找到各种方式来降低数据的价值。Michał Szudejko 综述了 当前组织挑战的现状,并概述了应对这些挑战的广泛策略:“没有一种正确的方法,但开始这个旅程是值得的。”

从深思熟虑的解释到引人入胜的副项目,在 TDS 上总有许多杰出的文章等你发现;以下是我们作者的一些精选文章:

  • Hennie de Harder 分享了一篇开眼界的(且易于理解的)文章,介绍了 时间复杂性和 NP-困难性的数学基础。

  • 想要详细而耐心的技术教程吗?通过跟随 Cesar Flores 的最新文章,了解 如何构建一个带有记忆微服务的对话代理。

  • 对于 分类问题的初学者友好介绍 和 CatBoost 梯度提升决策树,不要错过 Caroline Arnold 的新文章。

  • 我们可以从个人数据中学到什么? Jeff Braun 的深入探讨提供了从积累数据的公司那里请求数据的技巧,以及生成专业和个人见解的思路。

感谢你对我们作者的支持!如果你喜欢在 TDS 上阅读的文章,考虑 成为 Medium 会员 —— 这将解锁我们的全部档案(以及 Medium 上的所有其他帖子)。

直到下一个 Variable,

TDS 编辑部

数据团队作为支持团队

原文:towardsdatascience.com/data-teams-as-support-teams-2bb1f1ed31b?source=collection_archive---------11-----------------------#2023-01-05

改善沟通、减少摩擦并帮助企业获胜

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

·

关注 发表在 Towards Data Science ·7 分钟阅读·2023 年 1 月 5 日

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

图片由 Annie Spratt 提供,来源于 Unsplash

在最近的一次部门会议中,我向我们的副总裁提到了我们数据团队的一个痛点。我们的客户似乎不知道或不在乎他们的请求给我们带来了多大的负担。大多数从事数据工作的人都曾与利益相关者讨论过,要求的工作量是几天甚至几周的工作,但期望却认为这是微不足道的。此外,在付出了大量努力后,我们发现最初的请求要么是不必要的,要么与客户的实际问题无关。我的论点是,数据团队与客户之间存在激励不匹配的问题。

我的副总裁有不同的观点。他建议我们的业务伙伴应该专注于他们最擅长的领域,当他们需要数据来执行他们的愿景时,他们应该向我们提出请求。他们不应该决定他们需要的东西是否“过于昂贵”或“过于耗时”。

我的副总裁说得也有道理。我怀疑任何使用过内部服务组织如人力资源、法律、IT 或采购的我们,都没有考虑过我们请求的复杂性或成本。申请贷款的收入证明可能需要多长时间?替换我坏掉的笔记本电脑需要什么?这些问题完全由各自的组织吸收,企业整体运行也因此更高效。

尽管考虑了这一切,我仍然无法摆脱数据是不同的这种感觉。我并不是说数据作为一个领域通常比其他支持功能更困难、更有价值或更复杂;恰恰相反,我认为由于这个领域相对不成熟,很多过程和概念仍然缺失或半成品。总体而言,我认为数据团队往往有弱的操作模型,支持可疑的价值主张。在核心上,存在两个缺陷:数据模型和分析价值主张。

数据建模

我非常喜欢Chad Sanderson,他不断推动企业优先考虑数据建模,这是我核心信念之一。需要明确的是,数据建模总是存在的;无论是共享的(在数据仓库或数据湖中完成)还是个人的(在单个报告或仪表板中)都是根本问题。缺乏核心数据模型导致对业务有多个理解,这种情况会导致团队之间的错位。

此外,缺乏明确定义的语义,使得数据与其支撑的业务过程之间的关系变得极其难以理解。即使是经验丰富的分析师也可能花费大量时间尝试理顺过程、数据和分析输出之间的错位。当大多数公司处理数十个或数百个来源,其中许多是外部维护的,并且所有这些都有独立(操作)的数据模型时,我们经常无法描绘出业务的连贯图景,难道不奇怪吗?

合理的数据建模是产品(适用时)、运营和数据团队之间的复杂工作。大多数企业对这一关键要素投资不足,甚至完全忽视。我们没有在前期做出协作决定,而是在后期做出个别决定;工程师和分析师的时间被用于为每个资产、报告和仪表板重新发明轮子。作为数据专业人员,我们感受到这种痛苦,而我们的客户也因为糟糕(或不存在)的时间价值体验到这种痛苦。

分析的价值主张

依我经验,许多客户不知道数据能回答什么问题,更重要的是,他们不知道如何将业务成果与数据资产联系起来。XY 问题¹ 在与数据团队交流时成了商业团队的共通语言。

在一定程度上,核心数据模型的缺失加剧了我们客户的困惑。他们对数据看起来“必须”是什么样子(通常但并不总是很合理的假设),因为他们不是生活在表格和管道中的人,所以他们经常是错的。即使我们的客户知道存在哪些数据资产,他们也不一定有专业知识去理解它们是否可以应用于他们的具体用例。

作为一个行业,我们面临的更棘手的问题是,我们对于分析输出的价值有着非常脆弱的理解,而且我们对于任何特定输出所产生的价值又了解更少。我们“知道”将数据提供给企业是有价值的(看看 FAANG+的成功),而且有研究表明利用数据的公司比其同行更有效²,但具体的机制却知之甚少。

基本上,我们的客户从来没有真正有机会提出好的要求,至少没有持续地这样做。他们也不应该(也不需要)了解他们组织的数据资产的细节,和专家一样,他们对于他们想要的报告是否真正带来了实际的商业价值一无所知。他们可以整天要求报告,但不会有人知道数据团队的时间是否合理利用。这种缺乏反馈循环令数据团队感到沮丧,也会让客户觉得他们没有得到他们所要求的东西:不是因为交付物与规范不符合,而是因为所要求的交付物本身其实从一开始就无法创造价值

数据不是信息

所有这些痛苦的核心是非常简单的事情。数据不是信息。数据不是洞察力。我见过很多商业人士花费大量宝贵的时间尝试做他们自己的数据分析。盯着电子表格不停地进行数据透视和过滤并不能产生价值。

Robert Yi 有一篇关于对齐的精彩文章³,比我能做的更好地覆盖了这个话题,但我还是想尝试添加一些想法。数据资产深深陷入了只有专家才能成功导航的背景中。数字从来不仅仅是数字,这就是为什么分析工作具有欺骗性难度。就像试图跟随一张地图,却发现有些地方的道路未被标出,而有些地方则有错误的道路。“哦,对了。旧主楼两年前已经退役了,但我们决定将其保留在地图上,以便你理解为什么主街会有这样的走向。”旅行者将会陷入困境。

我们最终会得到这些模糊的地图,因为(混合比喻)制作过程特别混乱。分析是一个非常复杂的过程,其中 1)业务获取信息(预订、账单、购买)2)这些信息通过产品和企业系统编码为数据(账户对象上的记录,库存表中的记录)3)这些数据最终提取到分析数据存储中,并重新组装为信息。最后一步总是更多的是艺术而非科学。

这是一场我们做得相当糟糕的电话游戏。语义在过程中丢失了。当我们尝试将不同来源的对象模型结合起来时,我们未能理解它们之间的重要区别。人类会随着时间调整业务流程中的细微偏差,但我们的分析系统却不会。

但我们可以做一些事情,我对未来充满乐观。特别是,我认为我们应该关注以下几点:

  1. 改进我们对哪些分析活动能驱动价值的理解。研究机构是这一部分的一部分,但在此期间我们可以进行大量的实地工作。正如产品公司进行实验以将功能与价值(减少流失、扩展)联系起来一样,数据团队也应该开始投资于实验框架。我们需要知道我们的数据产品是受欢迎的(来自客户反馈)和有价值的(来自指标)。

  2. 改进我们的数据模型。通过将我们的核心数据资产与业务更紧密地对齐,我们可以更敏捷地回答客户的问题。由于分析通常依赖时间,能够在几天内而非几周内提供答案是提供大量价值和没有任何价值之间的区别。

  3. 改善我们的客户关系。我们需要提醒自己,客户在寻求帮助时不应期望理解我们极其复杂的系统。他们不能因为分析尚未解决而受到责备。与此同时,他们需要更加参与我们的工作及其挑战。我们不能仅仅翻白眼说,“这是一大堆工作,”他们也不能在我们详细说明时心不在焉:“因为你要求的领域只存在于我们四个账单系统中的一个。”

  4. 改进我们的操作模式。我们需要开发系统以便在客户请求的纷扰中识别有价值的数据工作,有效地沟通需求,并在交付中增加问责制和反馈。我们需要赋予客户提出正确问题的能力,确保我们正在处理重要的事情,并确保我们交付的内容提供了价值,如果没有,能够辨别出流程中出现了什么问题:仅仅是一个“坏”请求?需求不充分?需求理解错误?工作质量差?

结论 — 团队中没有“我”(也没有数据中的“我”)

尤其在这些困难时期,当我们看到我们的同行失败时,很容易指责并感到沮丧。归根结底,我们都是一体的。数据团队希望我们的公司成功,这意味着我们需要我们的业务伙伴成功。同样,他们也关心我们的成功。我们都需要提醒自己,我们在同一个团队中,面临相同的挑战,并在克服这些挑战中各自扮演角色。

参考文献

[1] 维基百科贡献者,XY 问题(2022 年 12 月 11 日),维基百科,自由百科全书

[2] Weill, Peter 和 Woerner, Stephanie L., 仪表板的回报(2022 年 1 月),MIT CISR 研究简报第 XXII-1 号

[3] Yi, Robert,沟通是关于对齐的(2022 年 12 月),Win with Data

数据告诉我们“是什么”,而我们总是寻求“为什么”

原文:towardsdatascience.com/data-tells-us-what-and-we-always-seek-for-why-66da7dc3f24d

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

照片由凯莉·西克马Unsplash上拍摄

《为什么的书》第一章和第二章,“与我共读”系列

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

·发表于Towards Data Science ·9 分钟阅读·2023 年 11 月 8 日

在我的上一篇文章中,我启动了“与我共读”书友会,探索犹太·珀尔的《为什么的书》。我想感谢每一位表现出兴趣并报名参加俱乐部的朋友。我希望我们能通过一起阅读和分享见解,深入理解因果关系。两周后,正如承诺的,我将分享我从前两章中获得的一些关键点。

在这两章中,犹太·珀尔首先解释了因果性阶梯,并回顾了因果理论的发展历史。我们将进一步深入探讨这三个层级。

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

因果性阶梯源自于犹太·珀尔

第一层级:关联

回到 1800 年,从 Galton 到 Pearson,当他们试图理解人类如何继承遗传特征时,他们发现相关性在科学上是足够的。毕竟,“数据即科学的一切”。对他们来说,因果关系只是相关性的一种特殊情况,永远无法证明。另一方面,相关性足够强大,可以解释为什么较高父亲的儿子比人口平均值更高。基于相关性的预测模型通过识别最具预测性的变量来对目标进行预测,即使在许多情况下这可能没有意义。例如,一个国家的人均巧克力消费量与其诺贝尔奖获奖者人数之间有强烈的相关性。显然,吃更多巧克力不会增加你获得诺贝尔奖的机会,而一个国家的财富更可能是这里的混杂因素。我们可以找到很多类似的例子,这些例子并未提供有意义和科学的信息。当面对这些发现时,Pearson 将其视为“虚假的”相关性。

除了“虚假的”相关性外,还常常发现总体中的相关性在子群体中发生反转。例如,在测量颅骨长度和宽度之间的相关性时,单独在男性和女性群体中测量时,相关性微不足道。然而,合并性别组时,这种相关性是显著的。这种情况在存在混杂因素时很常见,我们称之为辛普森悖论。

[## 被称为“辛普森悖论”

我们因为失去而变得更好

zzhu17.medium.com](https://zzhu17.medium.com/the-so-called-simpsons-paradox-6d0efdca6fdc?source=post_page-----66da7dc3f24d--------------------------------)

尽管存在这些不足,基于相关性的预测模型在静态设置中仍能取得不错的准确度。统计学家们开发了许多复杂的模型来从数据中提取洞见。随着数据样本的增加和算法的复杂化,我们可以构建出不错的模型来预测销售、客户流失/保留等。然而,当面对新情况时,基于相关性的模型由于缺乏历史数据,无法做出可信的预测。为了保持良好的性能,模型开发者必须不断地向模型提供越来越多的数据,明确涵盖所有现有情况,这总是滞后于新的设置。正如 Pearl 所写:

任何在因果关系阶梯的第一级运作的系统都不可避免地缺乏灵活性和适应性。

第 2 层:干预

超越“看到它是什么”,我们正在向“改变它是什么”迈进。如果我提高这个产品的价格,这个产品的销售会有什么变化?如果我停止给这位客户优惠,他还会继续订阅吗?第 2 层的问题不能再通过基于相关性的模型来回答。例如,当我们使用观察数据找出价格和销售之间的过去相关性时,这可能会受到宏观经济情况、其他产品的销售和价格等因素的偏倚。观察数据显示的是许多因素对销售的组合影响,而不是价格对销售的纯粹影响。这些因素中的一些可以被观察和量化,但有些很难量化,这使我们无法获得纯粹的影响。

第一个到达第 2 层的研究者是塞沃尔·赖特,他绘制了第一个路径图,展示了导致豚鼠毛色的因素。该图不仅列出了所有因素,还指导了如何估计每个因素的强度。要回答第 2 层的问题,除了第 1 层收集的数据,我们还需要因果假设,如赖特的路径图。下图展示了赖特提出的因果图,用于估计豚鼠的出生体重。

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

作者提供的图像,参见《为什么的书》

因果图的好处在于我们可以隔离每个因素的影响。例如,孕期对出生体重的纯粹影响是什么?即使有些因素我们无法量化或未被观察到,我们可以提出与不可量化因素密切相关的其他因素,并在因果图中适当地估计它们的影响。工具变量的概念源于此。

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

作者提供的图像

然而,尽管赖特在 1920 年代提出了这种因果图的想法,但这个理论从未被主流接受。朱迪亚将这种情况与伽利略声称地球围绕太阳旋转的情况进行了比较。反对意见来自于“数据在所有情况下优于意见和解释”这一规范。毕竟,数据是客观的,而意见是主观的。然而,正如朱迪亚所写:

关于因果关系,一点智慧的主观性比任何量的客观性更能揭示现实世界。

事情直到 1960 年代才开始发生变化,当时经济学家和社会学家开始使用结构方程模型(SEM)。这些模型将因果关系嵌入线性代数中。在结构方程中,有些变量被指定为内生变量,这些变量与目标因果相关,而其他变量被称为外生变量。包括内生变量有助于解决绘制因果结论时的混淆问题。唯一的缺点是这些模型中存在的因果关系是非方向性的。因此,它仍然无法解决像“是否 y 导致 x 而不是 x 导致 y”这样的问题。

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

图片由马库斯·乌尔本茨提供,来自Unsplash

在突破数据主导的理论中的另一步进展是贝叶斯理论的出现,它提供了一种将观察数据与主观先验知识相结合的客观方法。贝叶斯统计以主观的先验信念开始,例如硬币不公平,然后通过收集新证据——多次抛掷硬币——不断修正信念。如果我们看到正面大约出现一半的时间,则修改信念认为硬币应该是公平的。由于主观性的包含,因果理论从贝叶斯概率开始,然后绕了一大圈,这个故事将在接下来的章节中分享。

第 3 层:反事实

信不信由你,回到我们的智人祖先,他们在计划猛犸象狩猎时,已经在心中有一个关于狩猎成功率的心理因果模型:

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

作者所指的图片参见《为什么的书》。

心理模型展示了成功率的不同原因,这就是想象力发生的地方。它帮助我们的祖先通过对模型进行局部调整来尝试不同的情境。例如,如果我们增加猎人的数量,成功率能提高多少?如果猛犸象的体型比平常大,我们需要增加多少猎人以保持相同的成功率?想象力的能力使我们达到了因果关系的最高层级,即第 3 层。

尤瓦尔·赫拉利在他的《人类简史》中定义了认知革命,它表现为描绘虚构生物的能力。斯塔德尔洞穴的狮子人雕像由考古学家发现,展示了智人新发展出的能力,想象一个不存在的“半人半狮”的生物。想象能力使人类与其他生物区别开来,就像制造反事实将人类智力与动物和人工智能区分开来一样。

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

图片来源于 Mohamed NohassiUnsplash

反事实与数据之间的关系尤其复杂,因为数据是事实,而反事实是想象。数据无法告诉我们在一个某些已观察事实被简单否定的虚拟世界中会发生什么。另一方面,因果模型可以通过帮助我们推理可能发生的事情来引导我们。在商业世界中,这些“如果”代表了最具盈利性的问题——如果我提高了价格,产品销售会发生什么?正确回答这些问题将指导我们自信地做出任何决策。

数据告诉我们“什么”,而我们找出“为什么”。我们大多数人都听说过《创世纪》中提到的伊甸园。当上帝发现亚当藏在园中时,发生了以下对话:

上帝: 你吃了我禁戒的那棵树上的果子吗?

亚当: 你给我做伴侣的女人,她给了我树上的果子,我就吃了。

上帝(对夏娃): 你做了什么?

夏娃: 蛇欺骗了我,我就吃了。

上帝问 什么,但他们回答 为什么。上帝要求 事实,但他们回答 解释。 他们的直觉是,命名原因会缓解他们行为的后果。数据是客观的事实,人类主观地解释这些数据以得出结论并指导进一步的行动。寻找“为什么”在“什么”背后的意义 是人类智慧的本能,而这正是人工智能所缺乏的。没有因果结构——即人类主观思维过程的紧凑表示——人工智能无法具备人类水平的智慧。没有这些,人工智能模型仅仅是在获得类似动物的能力,就像我在我的 上一篇文章 中给出的猫的例子。

这就是我想分享的《为何的书》第一个和第二个章节的内容。第一章和第二章通过介绍因果性阶梯和整个理论的发展历史奠定了书的基础。我预见到后续章节将包含更多技术细节和行业应用。别忘了 订阅我的邮件列表 来参与后续讨论:

我分享的内容还有很多细节。像往常一样,我非常鼓励你阅读、思考并分享你在这里或在你的个人博客文章中的主要收获。

感谢阅读。如果你喜欢这篇文章,请不要忘记:

参考

《为什么的书》 由朱迪亚·珀尔撰写

因果性阶梯照片:

[1] 机器人照片由 Rock’n Roll Monkey 提供, Unsplash

[2] 猫照片由 Raoul Droog 提供, Unsplash

[3] 干预照片由 British Library 提供, Unsplash

[4] 人类下棋照片由 JESHOOTS.COM 提供, Unsplash

你是数据票务处理者还是决策制定者?

原文:towardsdatascience.com/data-ticket-takers-vs-decision-makers-a6cf957b507a?source=collection_archive---------1-----------------------#2023-06-02

反应型与主动型数据团队的特点与价值

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

·

关注 发表在 Towards Data Science ·9 分钟阅读·2023 年 6 月 2 日

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

图片由作者提供。

从根本上说,世界上有两种不同类型的数据团队。一个是对组织的需求作出反应的团队,另一个是主动引导组织满足其需求的团队。

前者有帮助,但只是一个成本中心。后者是价值创造者。在当前经济条件下,你希望成为哪一种?

这并不是说数据团队不应该解决票务问题或处理临时请求。我们彼此都要负责,健康的组织需要相互配合。

但尽管有其缺陷,现代数据堆栈以其速度和规模为数据团队提供了前所未有的机会来设定议程和塑造组织的命运。

这里有四种方式,我见过数据领导者抓住机会并从后台过渡到前台。

喧闹的轮子 vs. 组织优先级

我还没有遇到过一个数据团队的能力超出其利益相关者需求。工作的性质要求无情的优先排序。

一些数据领导者会陷入根据谁最吵或哪个领域请求最多来集中时间和资源的陷阱。虽然这稍微偏离了字面上的“处理请求”,但让“市场决定”有其合理的理由。

毕竟,推理是,那些最频繁和密集地请求数据的人,是否会真正善加利用,并从数据团队投入的时间中获得最大价值?

不对。

首先,这种方法将所有数据价值创造的责任交给那些非数据专家的人。其次,最重要的利益相关者,你的组织的客户,无法直接通过 Slack 向你的分析师“快速提取一些数据。”

在理想情况下,数据团队会评估和衡量每个主要数据用例的价值。他们会根据任务的投资回报率做出纯粹理性的决策。

在现实世界中,这种黑白分明的数学在试图计算仪表盘和数据素养倡议的价值时会很快崩溃。我对数据领导者的建议是紧密关注收入、客户和组织目标。

这就是网络安全公司 Drata 的数据副总裁Lior Solomon在他曾经的 Vimeo 数据领导角色以及目前角色中所做的。

在 Vimeo,他通过密切跟踪和确保业务指标数据的质量,能够优先考虑数据资源并合理分配预算。由于 Vimeo 即将上市,准确监控业务指标对公司增长和成功至关重要。

在 Drata 的要求不同。他在构建数据堆栈时是从零开始,数据不像在 Vimeo 那样面向客户。在这种情况下,他将注意力集中在快速、切实的成果上,例如与市场部门合作提高广告活动绩效。

他还紧密围绕 Drata 的使命,帮助客户尽快达到完全合规,通过构建系统来分析和监控哪些控制措施阻碍了不同客户群体实现完全合规。

跟踪指标 vs. 设定指标

数据票据处理员由他们的消费者告知关键指标。他们被要求开发跟踪这些指标变化的报告。团队的职责是创建和维护仪表盘和视图。

数据决策者将仪表盘的创建和维护视为必要的门槛,然后暂时放置,以腾出空间进行价值生成活动。

“我的座右铭是,我不希望通过我生成的报告数量来衡量我的价值,因为那样我就会变成 IT 的一个延伸,”Lior 说。

“我们的数据使命声明与 Drata 的使命相一致:‘我们的使命是建立网络信任’,”他强调道。“我们致力于将数据作为一种强大的工具,用于在我们的组织和整个数字领域中培养信任和可靠性。通过利用数据的潜力,我们努力促进透明度、安全性和问责制,最终为我们的客户和合作伙伴建立一个值得信赖的环境。”

为了实现这一目标,Alex Tverdohleb(福克斯网络数据服务副总裁)等数据领导者优先建立数据自服务基础设施。几年前,我的团队与 Alex 坐下来讨论了他自己在建立数据团队方面的经验

“如果你考虑一个集中化的数据报告结构,过去你是提交一个请求,等待你的轮次,到你得到答案的时候,往往已经太晚了,”Alex 说。“我们提供数据源,并保证其可信赖性……所以请随意使用它。”

主动的数据领导者不是建立报告指标的团队,而是建立发现和实验业务新增长驱动因素(指标)的团队。他们从“发生了什么?” 转变为 “为什么会发生?” 和 “如果我们这样做,我们认为会发生什么?”

数据领导者可以帮助他们的团队开始这一过渡的一个方法是将每一个临时请求视为增加价值的机会,这一点John Steinmetz(医疗保健调度和资质管理公司 Shiftkey 的数据与分析副总裁)深知其要义。我去年有幸与 John 交谈过,讨论了他在建立更积极的数据团队方面的经历

“我也给我的团队一个任务:不要仅仅满足于给利益相关者他们要求的内容。总是要给他们更多,”他说。“我告诉我的团队,当他们收到临时请求时,不要只是满足于给利益相关者他们要求的内容——要搞清楚他们为什么需要这些数据,给他们他们要求的内容,并提供一条你认为能更好地解决他们问题的信息。随着时间的推移,他们会把你看作不仅仅是一个列表的提供者。”

报警问题与警示利益相关者

这是我经常看到的场景。糟糕的数据传递给公司领导,甚至更糟,传递给客户。请求从上而下传达:“这些数字为什么看起来有点奇怪?”

火警演练时间到!团队中最优秀的数据工程师和系统专家被抽调出他们的项目来排查和分析根本原因。几天之后,仍未找出具体原因,大家又回到各自的项目中,等待下周的火警演练。

我还听到数据领导者讲述他们的收件箱经常被数据消费者的问题填满。实际上,那些消费者已经充当了手动数据监控者,并向数据团队中的每一个人发出警报,这些警报现在变成了工单。

随着工程资源越来越分散,团队在数据测试上花费的时间也越来越少,这个故事变得越来越常见。

主动的数据领导者不仅会优先处理,而且还会衡量他们的团队在多大程度上是第一个知道任何数据质量问题的人。他们认识到两点:1) 数据信任是他们最重要的货币,每一个未被标记的问题都是从他们的账户中提取的一笔钱,以及 2) 这可能是数据团队被视为问题还是解决方案之间的区别。

一位财富 500 强公司的数据领导者这样向我描述了从反应性到主动的数据质量过渡:

“我们每天发送报告,以更新高管关于业务各个方面的情况。如果这些报告中的数据有误,我会在早上第一时间听到这件事,这是一种最糟糕的开局方式…[最近],我收到了一条量警报,并迅速给[业务利益相关者]发送了电子邮件,仅仅说,‘我们现在有问题,但我们正在解决中。请暂时不要发送你的日报。’她对我们积极主动的举措非常感激。这是一个[业务利益相关者]知道我们支持她的时刻。感觉很好——我觉得自己是在提供服务,而不仅仅是解决她的问题。”

这一过渡需要一些前提条件。数据团队需要有一个数据质量监控系统;一种理解事件将如何影响组织内的内容和人员的方法;以及通知这些利益相关者的过程。快速的 Slack 提醒可以完成这项工作,但我见过的最好的解决方案是通过数据可观测性/数据目录集成或定制构建的解决方案在 BI 仪表板上放置通知。

顶尖的数据团队会在‘首个知情’的速率之上,与利益相关者合作提前定义所需的可靠性水平(什么实际构成事件)并在数据 SLA中明确这些期望。

成本与投资

被动的数据团队报告他们的输出,通常用技术术语框定。例如,“我们已经建立了 X 条数据管道,”或者“我们已将延迟减少了 25%。”他们以相同的方式提出预算请求。“我们需要 X 以便做 Y。”

结果,团队被视为成本中心,他们的预算请求(现在甚至包括人员需求)被视为需要最小化的非必要项。在首席财务官的压力下,“如果他们真的需要这个”,他们要么放弃这个计划,要么转向拼凑各种零散的开源解决方案,如同弗兰肯斯坦的怪物。

这可能迅速变成一个恶性循环,因为被动的数据团队花费更多时间——实际上超过 50%——来保持他们的弗兰肯斯坦基础设施的功能性,而不是增加价值。他们变成了数据水管工,而不是数据工程师。

根据Adam Woods,数字广告平台 Choozle 的首席执行官,数据团队在尝试采取更主动的方式时,应考虑他们的技术决策如何影响团队生产力——最重要的是,如何推动业务增长。

“我理解转向开源的本能,但实际上我在使用[某些现代数据堆栈工具]时拥有更低的拥有成本,因为管理负担非常小,而且生态系统配合得很好,”Adam 说道。“我们能够将开发人员和数据库分析师原本花在担心更新和基础设施上的时间重新投入到构建卓越的客户体验中。”

主动的数据领导者没有成本,他们只有投资。 两者之间的区别在于,投资是有可追溯性的,并且有回报。虽然对于更广泛的平台或基础设施投资,两者都可能难以计算,但主动的数据领导者会在实施前后花时间建立商业案例。

对于许多公司而言,预算不是给予的,而是赢得的。 因此,这些数据团队几乎总是有足够的资源,因为 CFO 理解这一项目项的背景,“通过使我们的面向客户的机器学习模型更准确来提高 5%的收入。”

积极的数据团队还通过关注业务价值来确保这些投资获得回报。更多时候,这意味着通过向客户展示数据来实现数据的货币化。

数据团队应该与其合作,而不是为其建设。

请不要把这些例子误认为是对你的业务利益相关者下达命令的许可。 了解何时领导,何时跟随是有帮助的——与业务团队合作并共同引领前进更为出色。

如果你觉得这篇文章有帮助,并希望我进一步探讨孤岛与平台、使能与强制、囤积与策划以及其他那些刚刚错过的积极数据团队的例子,请告诉我。

在此之前,我给你留一句话,这反映了我对数据领导者的最常见建议:对客户影响要有执着。前 Gitlab 数据与分析高级总监 Rob Parker 对此了解颇深。事实上,Gitlab 将其公司手册开源,以确保客户对他们的愿景、业务优先级和 KPI 有全面的了解。

Rob 说:“作为一个嵌入在业务中、没有直接影响或与客户互动的团队,很容易忽视我们工作的意义。所以我们尽量考虑我们客户的客户。我们已经能够从典型的接单者转变为在为业务构建可扩展和可靠的解决方案的过程中成为值得信赖的业务合作伙伴。”

那么,你会选择哪条路?

联系 Barr 在 LinkedIn 上 **以表达你的挫败感、发送数据搞笑图或分享你在应对这一危机过程中的经历。总是很高兴联系

现代数据科学家的数据版本控制:你不能忽视的 7 个 DVC 概念

原文:towardsdatascience.com/data-version-control-for-the-modern-data-scientist-7-dvc-concepts-you-cant-ignore-bb2433ccec88

数据科学中一种必备实践的详细插图指南

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

·发表于 Towards Data Science ·11 分钟阅读·2023 年 5 月 25 日

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

图片由我使用 Midjourney 制作。

2020 年 5 月 31 日

多么美好的一天啊!我正坐在车里听着Data Beats FM,这时一个广告引起了我的注意。

数据科学家们对软件工程师羡慕已久。虽然纯粹的软件工程师——我们戏称他们为邪恶的编程巫师——在可信赖的 Git 下轻松处理代码提交和分支,我们却常常不得不与巨大的数据集和 ML 模型搏斗,让 Git 无法招架。但不用担心,DVC 以闪亮的铠甲出现了…

我把音量调高,脸上带着好奇的表情。

DVC 以其卓越的能力,解放了成千上万的数据科学家摆脱 Git 在处理那些似乎无论如何都无法有效版本控制的大文件时的挣扎(Git-LFS 简直糟糕透了)。

我此时面带微笑。

现在是告别疯狂删除和重新上传数据以规避 Git 大小限制的日子的时候了。有了 DVC,我们终于可以恢复理智,自信地推进我们的数据驱动工作。

你本可以数清我的所有牙齿。

免费查看请访问…

我进入了隧道,信号丢失。几乎喜极而泣,我在隧道出口处立即停车,拿出旅行中的 MacBook。我在搜索框中输入 DVC 并…

这段文字摘自一位虚构数据科学家的虚构日记。日记中详细描述了使用 DVC 进行数据版本控制的乐趣,以及它如何巧妙地解决了 Git 在处理大文件时的难题。

我决定跳过那部分,展示其余内容,其中我们的虚拟朋友解释了八个最重要的 DVC 概念,没有自尊的数据科学家是无法忽视的。我必须说,这些解释非常精彩 😃

让我们继续阅读。

0. DVC 作为版本控制系统

当你开始使用 DVC 时,它并不是一个版本控制系统。相反,它模仿 Git 对大文件的功能,同时作为一个与 Git 并行运行的元数据管理工具。

DVC 并不是直接处理大量数据集和 ML 模型(大型资产),而是为它们生成元数据文件占位符。这些轻量级文件允许你在开始用 Git 跟踪它们时进行伪跟踪。

比如,假设你刚刚编写了一个脚本来应用图像增强,从而增加了图像数据集中的样本数量。

由于 DVC 已经为包含你的图像的文件夹创建了一个占位符文件,它会及时检测到操作并相应地更新元数据文件。随后,由于 Git 正在跟踪那个元数据文件,它也会识别到这个变化。

通过这种方式,大文件的修改可以成为你的 Git 提交和历史的一部分,而不会导致 Git 崩溃。

稍后会详细讲解。

1. 跟踪和未跟踪文件

当在一个 Git 跟踪的仓库中初始化 DVC时,文件可以被分类为三类。

类别 0 包含仅由 Git 使用 git add filename 命令跟踪的文件。DVC 与这些文件无关。通常,它们包括源代码文件(.py.jl.R 等)、配置文件(.ini.cfg.yaml.json)、文档文件(Markdown、README 和其他文本格式)或测试文件。

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

图片由我提供

类别 1 包括 .gitignore 文件中列出的文件。这些是 Git 永远不会跟踪的文件。

在类别 2 中,我们有 DVC 跟踪的文件,这些文件是使用 dvc add asset 命令的结果。

作为一个例子,我们考虑一个名为 tuned.joblib 的模型文件和存储在 images 文件夹中的图像数据集。一旦你执行 dvc add images tuned.joblib,该文件和文件夹都会被 DVC 监控,并添加到 .gitignore 文件中,以防止意外的 Git 跟踪。

此外,还会生成两个 .dvc 扩展名的新文件:images.dvctuned.joblib.dvc

这些轻量级的元数据文件属于类别 0,这意味着你应该使用 git add images.dvc tuned.joblib.dvc 命令跟踪它们。

类别 2 中典型的文件包括笔记本(可能包含视觉和表格,导致文件较大)、数据集(如图像、视频、音频、CSV、parquets、数据库等)和 ML 模型。

最后,在类别 3 中,我们有可选的 .dvcignore 文件。类似于 .gitignore 文件,你可以使用它们来指定 DVC 永远不应该跟踪的文件。

2. .dvc 文件

.dvc文件使用 YAML 1.2文件格式,这是一种对所有编程语言友好的数据序列化格式。

正如我之前提到的,DVC 为每个用 DVC 跟踪的文件或文件夹创建一个轻量级的.dvc文件。

当你查看images.dvc的内容时,你将看到以下条目:

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

图片由我提供

最有趣的部分是md5。MD5 是一种流行的哈希函数。它接受任意大小的文件,并使用其内容生成一个固定长度的字符字符串(在我们的例子中是 32 个字符)。

这些字符可能看起来随机,但如果你多次重新运行哈希函数在文件上,它们将始终保持相同。但是,即使文件中的一个比特发生变化,生成的哈希值也会完全不同。

DVC 使用这些哈希(也称为校验和)来区分两个文件是否相同、完全不同或是同一文件的不同版本。

例如,如果我将一个新的假图片添加到images文件夹中,images.dvc中的 MD5 哈希值将会不同:

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

图片由我提供

如前所述,你应该用 Git 跟踪所有.dvc文件,这样对大型资产的修改将成为你 Git 提交和历史记录的一部分。

$ git add images.dvc

了解更多关于.dvc文件如何工作的内容,请参考DVC 用户指南此页面

3. DVC 缓存

当你在一个大型资产上调用dvc add时,它会被复制到一个特殊的目录中,称为 DVC 缓存,位于.dvc/cache下。

缓存是 DVC 在不同版本下保持数据和模型原始记录的地方。当前工作目录中的.dvc文件可能显示最新的或其他版本的大型资产,但缓存将包含自你开始用 DVC 跟踪它们以来,所有资产的不同状态。

例如,假设你将一个 1 GB 的data.csv文件添加到 DVC 中。默认情况下,该文件将同时出现在你的工作区和.dvc/cache文件夹中,占用两倍的空间(2 GB)。

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

图片由我提供

任何后续通过dvc add data.csv跟踪的更改都会在.dvc/cache中创建一个新版本的data.csv,并占用另外一个 GB 的内存。

所以,你可能会问——这不是效率非常低吗?答案是肯定的!至少对于单个文件来说是如此,但我们将在下一部分看到缓解这一问题的方法。

对于文件夹,情况有点不同。

当你使用dvc add dirname跟踪不同版本的文件夹时,DVC 足够智能,只检测目录内发生变化的文件。这意味着,除非你更新目录中的每一个文件,否则 DVC 将只缓存变化文件的版本,这不会占用太多空间。

总之,可以将 DVC 缓存视为Git 的暂存区的对应物。

了解更多关于缓存和内部 DVC 文件的信息,请访问本用户指南部分

4. DVC 中的缓存策略

DVC 中有三种缓存策略。

我们已经看过策略 0,它简单地将跟踪的文件复制到缓存中。这是最安全且始终可用的选项,即使它很慢且内存效率低。但它允许你在原地编辑跟踪的文件,因为它们在你的工作区中物理存在。

在策略 1 中,DVC 使用硬链接将缓存中的大型资产链接到你的工作区,而无需重复它们。可以将硬链接视为跟踪文件的双胞胎。

这就像是同一个房间有多个门,但它们仍然是同一个空间。每扇门(或链接)提供对房间(或文件)的访问,而无需重复其内容。

第二种策略,创建软链接,实际上和硬链接类似。不过,如果你的仓库和 DVC 缓存位于不同的文件系统或驱动器上,软链接效果更好,而硬链接则在它们位于相同分区或存储设备上时表现最佳。

硬链接和软链接的缺点是你不能在原地编辑它们,因为这会导致缓存损坏。为了保护你不进行编辑,DVC 将这些文件的权限限制为只读。

最后一种第三策略是 reflinks。它们是最好的、最有效的,但仅在最新的文件系统中可用。例如,它在我的WSL2中甚至不可用,因此 DVC 从不单独使用这种策略。

但当它可用时,reflinks 带来了其他所有策略的好处。被跟踪的文件实际上在缓存中,但它们像是副本一样链接到工作区。如果你想在原地编辑这些文件,文件系统会将原始文件从缓存中复制到工作区,直到你完成编辑。

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

图片来自 DVC 文档。Apache-2.0 许可证。

默认策略是copy,当你初始化 DVC 时。要更改它,你可以运行:

$ dvc config cache.type hardlink[reflink, symlink, copy]

了解更多关于缓存策略之间的差异以及如何禁用硬/软链接的不可编辑缺点,请访问这里这里

5. DVC 工作流程

数据版本控制的总体思想是将对大型文件所做的更改包含在你的 Git 提交和分支中,而不触及 Git 的大小限制。我们提到 DVC 通过创建小的 .dvc 占位符来实现这一点,这些占位符在你更新 DVC 跟踪的大型文件时会发生变化。

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

由我制作

所以,基本工作流程如下:

  1. 你可以通过 dvc add large_assets 开始跟踪大型资产。

  2. DVC 将资产添加到 .gitignore 中,因此 Git 不会看到它,同时创建 large_assets.dvc 文件。

  3. 你可以使用 git add large_assets.dvclarge_assets.dvc 文件添加到 Git 中。

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

由我制作

  1. 如果你更改了其他文件,比如 train.py,你也需要添加该更改:git add train.py,或者你可以简单地使用 git add --all 来捕捉 Git 可见的所有更改。

  2. 你使用 git commit -m "Message" 进行提交。

这样,你可以在 Git 历史中记录你的代码更改和大型资产更改。如果你使用 git checkout branch_name/commit_hash 切换分支或提交,DVC 必须显示这些特定提交或分支的资产版本。为此,你必须在 git checkout 后调用 dvc checkout

$ git checkout branch_name
$ dvc checkout

该命令将使用 .dvc 文件和其中的 MD5 哈希从缓存中获取 DVC 资产的版本。

6. DVC 远程存储

Git 使用像 GitHub 这样的托管平台在线存储你的代码仓库,以便其他人可以协作你的项目。但就像 Git 不能处理你的大型资产一样,GitHub 也不能。因此,DVC 通过拥有自己的远程存储来解决这个问题。

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

由我制作

这个远程存储与缓存分开,可以在与你的仓库同一台机器上,也可以在任何云服务提供商上。DVC 支持所有主要的云服务提供商,包括 AWS、GCP 和 Azure。类似于你经常将 Git 提交推送到 GitHub,你应该使用 dvc push 将 DVC 缓存中的资产发送到远程,以保持其最新。

你选择的远程存储将在你的 DVC 配置文件 .dvc/config 中声明。当某人克隆或分叉你的 GitHub 仓库时,他们将获得此配置文件以及 .dvc 占位符文件,但他们的 DVC 缓存将为空。因此,他们将使用 dvc pull 从远程下载所有大型资产及其版本到他们的缓存和工作区。

这就是协作 DVC 启用仓库的工作流程。

DVC 用户指南中的远程存储展示了设置代码。

7. DVC 流水线

DVC 最棒的功能之一是智能流水线。一个典型的机器学习项目包括许多步骤,如收集数据、清洗和转换数据、选择模型、调整选择的模型,最后部署它。每个步骤都可能消耗和生成不同的资产,如数据集、模型、指标、图表、docker 镜像等。

DVC 管道的目标是通过单一命令dvc repro(即DVC 重现)来依次运行所有这些步骤,让 DVC 在后台处理所有资产的组合。这听起来很棒,对吧?

我不会详细讲解如何设置这些管道,因为过去某位作者已经做过这件事:

[## 如何创建高度组织化的 ML 项目,任何人都可以使用 DVC 管道重现

编辑描述

pub.towardsai.net](https://pub.towardsai.net/how-to-create-highly-organized-ml-projects-anyone-can-reproduce-with-dvc-pipelines-fc3ac7867d16?source=post_page-----bb2433ccec88--------------------------------)

但我认为只要你知道当你调用dvc repro时,DVC 就会省去每次运行管道时调用dvc add的需要,这就足以引起你的兴趣。我强烈推荐阅读这篇文章。

或者你也可以阅读关于管道的优秀用户指南

结论

我要用对这个库的巨大希望来结束这篇日记。现在是 2020 年,库的版本是 1.0.0,但我预测在 2023 年某个随机的年份,它的v3.0.0将会带来许多新功能和改进。

我猜他们也会在不久的将来(可能是今年 11 月)添加一个功能来跟踪机器学习实验,但这只是痴心妄想。

何等美好的一天。

喜欢这篇文章吗?让我们面对现实,它的写作风格确实很奇特。想象一下,有几十篇类似的文章都由一个聪明、迷人、机智的作者(顺便说一下,就是我)所写。

仅需 4.99 美元的会员费,你将不仅能访问我的故事,还能获得来自 Medium 上最杰出思想者的知识宝库。如果你使用我的推荐链接,你将获得我超级新星的感谢和一个虚拟的击掌,以支持我的工作。

[## 使用我的推荐链接加入 Medium — Bex T.

获取对我所有⚡高级⚡内容的独家访问权限,在 Medium 上无限制地浏览。通过给我买一杯…

ibexorigin.medium.com](https://ibexorigin.medium.com/membership?source=post_page-----bb2433ccec88--------------------------------) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由我提供。通过 Midjourney 制作。

参考文献:

[1] RealPython, 使用 Python 和 DVC 的数据版本控制, 2020, realpython.com

KNIME 的数据可视化

原文:towardsdatascience.com/data-visualization-with-knime-2b86548736d7

一步一步的全面指南

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

·发表于 Towards Data Science ·14 分钟阅读·2023 年 11 月 17 日

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

来源:作者在 ChatGPT 和 DALL-E 3 中生成的图像。

2007 年,诺贝尔和平奖授予了阿尔·戈尔和政府间气候变化专门委员会(IPCC),以表彰他们提高了对气候变化危害的认识。由戴维斯·古根 heim执导的纪录片**《难以忽视的真相》**在将气候变化问题置于公众意识的前沿方面发挥了重要作用。该片展示了戈尔多次向全球观众展示的幻灯片¹。

值得特别注意的是阿尔·戈尔在那个演讲中使用的图表。尽管有一些批评,这些可视化在向广大观众传达气候危机的紧迫性方面起到了关键作用。 戈尔巧妙地使用了引人入胜的视觉效果,有效提高了意识,并强调了应对气候变化的必要性。这些可视化将抽象概念转化为清晰、易于理解的信息,在讨论复杂问题时证明了其价值²。

我推荐给任何对 数据可视化 感兴趣的人, 也许更重要的是,气候变化。

那么,这篇文章讲了什么呢?

惊讶,惊讶,这讲的是可视化。 更准确地说,它涉及使用最近引起我注意的工具 KNIME 来制作可视化、报告和仪表板。如果你读过我之前的一些文章,你会知道我已经深入探索了替代可视化的世界,使用各种免费的实用工具进行创建

其中一个工具 KNIME 值得单独写一篇文章。至少在我谦逊的观点中是这样。所以,这里就有它。

对许多人来说,KNIME 可能是一个熟悉的名字。在准备这篇文章时,我遇到了大量描述这个工具能力和功能的文章。然而,我得到的印象是,大多数关于 KNIME 和可视化的文章处理的是碎片化的功能(例如制作单一图表),而缺乏全面的视角。我希望能填补这个空白。

当我开始使用 KNIME 时,我对这个工具一无所知。 然而,由于其易用性,学习它并没有特别的挑战。希望我能证明,这趟旅程绝对值得。

这篇文章是针对那些熟悉数据可视化但对 KNIME 新手的人。我希望这将是任何希望快速了解 KNIME 在可视化方面能力的人的完美起点。

什么是 KNIME?

KNIME 是一个开源的数据分析和可视化平台。它特别适合数据操作,使得排序、合并和分析数据变得简单,无需编码。它还提供了广泛的统计工具。

Knime 在 Gartner Peer Insights 上获得了 4.6 的评分,并且新评论仍在不断涌入。根据 6sense 的数据,KNIME 拥有 2038 名客户,占分析平台市场份额的大约 1%(市场排名第 12 位)。因此,它是一个知名品牌,但不是主要玩家。它能提供什么好处?

易用性

KNIME 的基于工作流的方法使其易于使用,即使对于数据技能有限的人群也是如此。这种方法通过将复杂的数据过程分解为可管理的步骤来简化复杂的数据处理过程。它是一种比纯 Python 编程更易于访问的替代方案。

机器学习和预测建模

KNIME 是一个强大的机器学习和预测建模工具。它可以高效地处理异常检测和回归等任务,还可以连接各种数据源并自动化工作流程,从而简化数据工程任务。

可视化

KNIME 的可视化功能由 JavaScript 库提供支持,提供了一个灵活的数据展示工具箱。这使得用户能够创建清晰且富有洞察力的数据可视化。我希望在稍后展示它。

可重用性

KNIME 工作流的一个主要好处是它们的可重用性。这意味着工作流可以轻松地安排并重复运行,新的数据集可以根据需要上传。这些工作流还可以集成到报告和仪表板中。

使用 KNIME 进行可视化:一步一步来

首先,我将向你展示如何制作下面的可视化。这是一个展示前 10 种产品收入的柱状图。虽然最终产品可能看起来并不特别,但必须遵循几个步骤才能实现这个结果。

顺便提一下,阿尔·戈尔使用的大多数图表都相当简单,其中许多是折线图或面积图。

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

作者生成的图表。

第 1 步. KNIME 安装

第一步是下载并启动 KNIME。你可以从他们的网站www.knime.com/download下载必要的文件集。有时下载时会遇到困难,例如在 Windows 11 系统上。如果你遇到问题,建议查看www.knime.com/installation-problems-on-windows上的信息。KNIME 不需要传统的安装方式。你只需将文件解压到选择的目录中并运行程序。

第 2 步. 数据准备

我为这个练习准备了一个数据集,可以从这里下载。它是一个包含了 2018 年至 2022 年间一家快消品公司收入和成本的合成数据。

一旦我们获得数据,就可以在 KNIME 中输入和处理它。

首先,我们需要创建一个新的工作空间。选择“文件”,然后选择“新建…”,最后选择“新建 KNIME 工作流”。

我们首先上传数据。用鼠标左键单击你保存的数据集文件,并将其拖放到 KNIME 的工作流区域中。“Excel 读取器”节点将自动创建。

我们需要在工作流中使用以下节点:

  1. “列筛选器”: 在这里,我们将选择第一个可视化所需的列。

  2. “日期和时间基于的行筛选器”:在这一步,我们将选择合适的时间范围(我选择了 2022 年)。

  3. “数学公式”: 我们将用这个来重新计算收入度量,以千为单位,四舍五入到一个小数位。

添加所有这些节点后,我们必须连接它们。用鼠标左键选择两个节点,然后选择“连接所选节点”。你也可以为节点分配特征名称。双击默认名称并输入你自己的名称。

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

数据导入和处理是我们工作流的一部分。 来源:作者提供的图片。

在“Excel 读取器”节点中,我们配置将文件导入到工作流中。在这一节点中,我没有做其他操作。

在“列筛选器”节点中,我取消选择了“产品 ID”、“类别”、“COGS”、“市场支出”、“其他费用”和“<任何未知的新列>”。

在“日期和时间基于的行筛选器”中,我选择了一个包括从 2022 年 1 月 1 日到 2022 年 12 月 31 日的日期范围。

最后,在“数学公式”节点中,我添加了以下公式:round($Revenue$/1000,1)。我想将其写入一个新列,因此选择了“附加列”选项,并将新列命名为“Revenue_k”。不过,如果你愿意,也可以覆盖现有的列。

第 3 步. 设计可视化

附注: 如果您不确定选择哪个可视化方式,可以寻求 ChatGPT(或其他大型语言模型)的帮助。只需在提示中描述数据和您的目标,您将获得有用的建议。

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

向 ChatGPT 请求图表建议。 来源:作者截屏。

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

ChatGPT 生成的图表创意。 来源:作者截屏。

在我们的情况下,我们已经知道要制作什么可视化。作为提醒,我们将创建一个显示前 10 个收入生成产品的图表。

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

工作流的视觉部分设计。 来源:作者截屏。

为此,我们需要向我们的工作流中添加三个额外的节点:

  1. ‘GroupBy’: 我们将根据产品名称对收入进行分组。

  2. ‘Top K Selector’: 这允许我们从给定的数据集中选择前 ‘x’ 项。

  3. ‘条形图’: 用于绘制实际的图表。

让我们稍微关注一下‘GroupBy’ 节点。要应用分组,我们首先需要指定分组列。在我们的情况下,它将是产品。

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

来源:作者截屏。

接下来,我们添加聚合。在我们的情况下,选择的聚合方法是‘求和’。

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

来源:作者截屏。

要设置条形图,请按照以下简单步骤操作:

  1. 进入‘选项’选项卡。选择‘生成图像’,并指定‘产品名称’作为‘类别列’。对于‘聚合方法’,选择‘求和’。

  2. 在‘常规选项’选项卡中,为您的图表输入标题。我建议选择‘绘制水平条形图’。

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

条形图配置窗口。 来源:作者截屏。

抓住机会深入探讨其他配置设置。实验这些选项可以帮助您发现一系列潜在的结果和可能性。

步骤 4. 发布结果

要完成这个过程,请配置导出设置。一种有效的方法是使用‘Image Writer (Port)’ 节点。此步骤将完成您的工作,并为展示或进一步使用做好准备。

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

完整工作流。 来源:作者截屏。

我将‘Image Writer’配置为将文件保存为 *.svg。另一个选项 *.png 在我的电脑上无法使用。我从 KNIME 相关论坛了解到,这个问题相当普遍。

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

来源:作者截屏。

最后,我们可以通过点击顶部菜单中的‘执行所有可执行节点’来运行我们的工作流。

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

来源:作者截屏。

如果一切顺利,我们应该会看到节点下方的绿色指示灯。如果对 KNIME 初步生成的结果不满意,你可以随时在 KNIME Hub 中探索更多选项。一个值得考虑的替代方案是KNIME JFreeChart,如下所示。

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

相同的图表但使用 JFreeCHarts 生成。 来源:作者生成的图像。

另外,你可以深入探索社区选项,比如这个。最后一个选项的额外好处是相较于我上面展示的基本图表,提供了更多对 y 轴的控制。

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

自定义范围条形图。 来源:作者提供的图像。

总结本节内容,我们使用 KNIME 创建了一个简单的可视化效果。当然,这个效果还有很大的提升空间,但要注意,过程可能会变得复杂,从而迅速提高入门门槛。

使用 KNIME 的可视化:替代可视化方案

旭日图

我们刚刚在 KNIME 中创建的第一个视觉效果并不惊艳。现在,让我们探讨是否可以创建一些更高级的东西。

在我最近的帖子中,我探讨了替代可视化的世界,重点关注除了标准条形图、折线图和饼图之外的视觉效果。让我们调查一下 KNIME 是否也能在这一领域提供有趣的选项。

## 数据驱动故事讲述的替代可视化

选择它们的原因,以及如何创建它们

towardsdatascience.com

为此,我们将再次使用之前的文件作为起点。这一次,我们将创建一个旭日图

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

在 KNIME 中生成的旭日图。 来源:作者提供的动画。

旭日图是一种用于显示分层数据的可视化图表,数据以同心圆环的形式呈现。图表中的每个环代表一个层级,分段显示每个组成部分的比例。这种布局有助于直观理解数据中的部分与整体关系³。

为了创建旭日图,我制定了以下工作流程。我在‘列过滤器’节点中选择了‘类别’和‘产品名称’列。

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

旭日图工作流程。 来源:作者提供的截图。

在此步骤中,检查列顺序是否与我们打算在图表中展示的内容一致是至关重要的。具体来说,如果“类别”列要呈现在旭日图的内环中,则必须在列列表中排在“产品名称”之上。我们可以在“Excel Reader”节点中轻松调整,如下图所示。

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

在 Excel 读取节点中更改列顺序。 来源:作者截屏。

互动表格

接下来我将展示的是一个互动表格。下面的动画图片显示了最终产品。

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

在 KNIME 中制作的互动表格。 来源:作者提供的图片。

这是创建上述表格的工作流。在此过程中,“提取日期和时间字段”节点是一个新元素。

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

在 KNIME 中创建表格的工作流。 来源:作者截屏。

我们需要这个新节点从“日期”列中提取年份。然后,使用“GroupBy”节点,我们可以利用该数字对值进行分组。如果没有这一步,表格中将显示每一天的数据,这会使其毫无用处。

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

从“日期”列中提取年份。 来源:作者截屏。

折线图

好的,这不是一种替代可视化。然而,我想评估一下 KNIME 在趋势分析中的表现。不幸的是,我必须说这很令人失望。看看下面显示的图表。我最大的抱怨是控制图表轴的难度,特别是在决定最低和最高点时。在制作这个图表时,我还没找到一个简单的方法来做到这一点。但我会继续寻找!

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

在 KNIME 中制作的折线图。 来源:作者生成的图片。

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

用于生成折线图的工作流。 来源:作者截屏。

在图表中,我展示了月平均价格。为了计算这一点,我创建了一个“数学公式”节点,并输入了以下方程式:Price = Revenue / Units Sold

为了在图表中生成多条线,我首先从“日期”列中提取了年份和月份值,然后应用了透视。在透视过程中,我将“月份(数字)”放在行中(参见“组”标签下的第 1 个截图),将“年份”放在列中(参见“透视”标签下的第 2 个截图)。

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

透视表,步骤 1。 来源:作者截屏。

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

透视表,步骤 2。 来源:作者截屏。

最后一步是为“价格”创建聚合规则。我选择了“均值”作为聚合方法。

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

数据透视表,第 2 步。 来源:作者打印屏幕截图。

如果您希望图表从 y 轴的零点开始缩放,请记得在“线图”节点的配置设置中勾选“始终显示原点”选项。

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

来源:作者打印屏幕截图。

另一种方法是使用小多重图表。在此示例中,我展示了 2022 年不同产品的平均价格。用于创建此图表的节点从 KNIME Hub 下载。

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

小多重可视化。 来源:作者打印屏幕截图。

使用 KNIME 进行可视化:使用报告设计器⁴

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

我在 KNIME 中制作的报告的第 1 页。 来源:作者打印屏幕截图。

第 1 步:报告设计器的安装

在这一点上,我将向您展示如何使用我们之前创建的可视化来设计报告。如果我们还没有添加“报告扩展”,我们必须添加。首先,从文件菜单中选择“安装 KNIME 扩展……”,然后在搜索框中输入“report”,并选择“KNIME Report Designer”。

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

报告设计器的安装。 来源:作者打印屏幕截图。

第 2 步:将报告节点添加到您的可视化中

我们需要添加报告节点以获取来自不同工作流的结果。

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

将报告节点添加到工作流中。 来源:作者打印屏幕截图。

在这个阶段需要注意的一个关键方面是使用报告节点中的自定义图像缩放选项。否则,您的可视化可能无法正确显示——它们可能会很小且分辨率低。我选择了高度和宽度设置为 400,并选择了 *.png 作为导出格式。

第 3 步:设计报告

您可以在 这里 找到我生成的示例报告。要查看它,请首先打开报告编辑器。为此,点击顶部菜单中的图标。

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

启动报告编辑器。 来源:作者打印屏幕截图。

制作报告的第一步是将视图设置为“横向”,以在“母版页”布局中为我的可视化留出更多垂直空间。

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

报告方向配置。 来源:作者打印屏幕截图。

然后,我添加并格式化了标题标签,并排列了网格以定位我的可视化。

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

我使用了“网格”进行整体布局。 来源:作者打印屏幕截图。

让我们添加第一个可视化——条形图。为此,拖放‘Image’图标,选择‘BAR CHART TO REPORT’数据源,然后选择‘Image’。

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

将图表添加到报告中。 来源:作者的打印屏幕。

你可以通过调整网格属性来控制图表的对齐。

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

在网格单元格中控制对齐。 来源:作者的打印屏幕。

然后,我类似地添加了 Sunburst 图表,并点击了顶部菜单中的‘View Report’按钮。我在下面的图像中展示了结果。

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

首次添加到报告中的图表。 来源:作者的打印屏幕。

接下来,我想在一个工作流中添加我们创建的表(‘TABLE TO REPORT’节点)。我决定在‘Cross Tab’中进行操作。为了使这样的表正常工作,我们必须首先构建一个立方体。这个过程很简单。首先,将‘Cross Tab’拖放到网格中。然后,从数据源中拖动任何维度或度量。这将启动‘Cross Tab Cube Builder’。你必须在构建器中指示组(维度)和汇总字段(度量)。你可以为它们分配新名称,以便以后更容易找到。

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

Cross tab 立方体构建器。 来源:作者的打印屏幕。

你可以在‘Data Explorer’中查看立方体。从那里,你可以将字段拖放到表格中。你可以将度量(‘Revenue’)显示为图表。

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

在交叉表中设置图表视图。 来源:作者的打印屏幕。

第 4 步。发布报告

发布报告简单易行。从‘View Report’菜单中选择一个选项即可。

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

报告发布选项。 来源:作者的打印屏幕。

使用 KNIME 进行可视化:构建交互式仪表板

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

我在 KNIME 中创建的交互式仪表板。 来源:作者生成的图像。

我从一个稍作修改的可视化教程工作流开始,其中我移除了报告节点和表格工作流。我只留下了每个节点的一个可视化。如果你希望保留之前生成的工作空间,我建议你制作一个副本。 开发仪表板的第一步是选择所有节点,然后点击‘Create component’⁵。

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

在 KNIME 中创建组件。 来源:作者的打印屏幕。

首先打开组件以修改你的工作流和/或设计仪表板布局。

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

修改仪表板布局步骤 1。 来源:作者的打印屏幕。

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

修改仪表板布局步骤 2。 来源:作者的打印屏幕。

我对 KNIME 的评估

我喜欢什么?

在使用 KNIME 几天后,我必须说我看到了这个应用程序的许多优点。首先,它是相对易于使用的。正如你所见,创建可视化或甚至互动仪表板非常简单。我很欣赏你可以在本地使用 KNIME 并将其作为自动化工具,例如定期更新的仪表板。安装简便、开源基础和社区支持无疑是巨大的优势

我不喜欢什么?

然而,也存在一些缺点。一些基本功能不可用或复杂,即使有社区帮助。例如,修改图表轴、扩展图表的颜色选项或实现互动切片器⁶可能会很有挑战性。此外,可视化效果可能更具视觉吸引力。尽管大多数问题是可以解决的,但时间和学习曲线可能迅速变得陡峭

摘要

在这篇文章中,我探讨了在 KNIME 中制作可视化的过程。我描述了创建有效视觉效果、制作详细报告和构建互动仪表板所需的步骤。 KNIME 的用户友好界面,以拖放功能和广泛的配置选项为特征,使其成为数据可视化的多功能且强大的工具。此外,它的开源性质和活跃的社区使我们在遇到问题时能够不断改进和获得指导。

尽管有这些优点,KNIME 在某些功能上偶尔会表现出局限性。毫无疑问,还有进一步改进的空间。

总体而言,KNIME 证明是一个有价值的数据可视化工具,提供了一种简单直观的方法来从数据中提取有意义的洞察。我打算继续探索 KNIME 的分析能力,并在未来的文章中分享我的发现。

你喜欢这篇文章吗?

考虑订阅以获取我的新故事通知,关注我,或留下 👏。

参考文献

[1]. 维基百科不便的真相

[2]. 罗伯特·科萨拉图表的诺贝尔奖

[3]. FusionCharts旭日图

[4]. KNIME 报告设计师用户指南

[5]. KNIME 组件指南

[6]. 带过滤功能的条形图

数据库和数据建模 — 一个快速入门课程

原文:towardsdatascience.com/databases-and-data-modelling-a-quick-crash-course-546891a49b67

数据仓库 101:初学者实用指南

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

·发表于 Towards Data Science ·阅读时间 12 分钟·2023 年 5 月 12 日

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

作者提供的图片

在我 五年的企业分析工作中,我观察到很多数据科学家在进入工作时对数据仓库和数据建模的了解有限。

这不应该让人感到惊讶。

数据科学家来自数学、统计学、心理学和编程等不同背景。许多人可能在大学时不会深入研究数据库系统的复杂性。

这包括我,一个从数学家转行的数据科学家。

我通过在线课程自学数据科学——这是获得 数据科学 职位的必要前提,我想——但只是在工作中才掌握了数据库基础。

况且,数据湖现在这么流行,谁还需要仓库呢,对吧?(这只是个玩笑!)

我写这篇文章是为了给那些刚刚进入分析工作且对数据仓库和数据建模了解不多的人提供一个快速的入门课程。

我们将讨论三个主题:

  • 企业数据仓库工作流 的样子是这样的**;**

  • 数据库 规范化 实现的目标;

  • NoSQL 数据库的试验。

更新:我现在在 YouTube 上发布分析教程。

1. 数据仓库工作流

具体细节可能因解决方案而异,但企业级分析的常见架构如下:

  1. 数据存放在 数据湖 中。

  2. 数据被加载到一个 数据仓库 中。

  3. 创建一个 数据模型

  4. 分析师消费数据。

让我们更详细地看看这个过程。

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

分析数据处理。作者提供的图片

分析数据处理

来自操作或事务数据存储(通常来自 OLTP 数据库)、文件、实时流或其他来源的数据被加载到一个集中式的数据湖中。

数据湖在大规模数据分析处理场景中很常见,其中需要收集和分析大量基于文件的数据。

操作数据平面分析数据平面的负载操作通常涉及一个提取、转换和加载(ETL)或提取、加载和转换(ELT)过程,在该过程中,数据被清洗、过滤和重组以供分析。最终的数据结构针对分析查询进行了优化。

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

企业数据格局的 30,000 英尺俯瞰图。来源:Z. Dehghani 于MartinFowler.com,作者进行了修订

由于数据湖通常属于大数据领域,这涉及通过像Apache Hadoop这样的框架进行分布式计算和存储,ETL 处理由数据工程师负责,他们设置HiveSpark作业,以使用多节点集群并行处理大量数据。这些数据管道包括静态数据的批处理和流数据的实时处理。

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

ETL 管道连接操作数据存储和分析数据存储。图片由作者提供

数据湖中的数据已经准备好进一步的分析使用。这包括由数据科学家进行的探索、整理和建模,或由数据分析师处理以创建报告和可视化。

查看我的解释文章,了解从数据仓库到数据湖再到数据网格的整个企业数据格局。

对数据分析不熟悉?请查看这里,这里这里

对数据科学不熟悉?请查看这里,这里,这里 和这里。

数据仓库、表格、模式与规范化

好了,继续。是时候丰富我们在湖中的数据了。

首先,数据被复制到一个针对读操作进行优化的数据仓库中。

数据仓库是关系型数据库,其中数据存储在一个为数据分析而优化的模式中,而不是为事务工作负载优化的。仓库的设计优化了读取操作——主要是查询,以支持商业智能(BI),包括创建报告、仪表板和可视化,这些在优秀数据讲述者的帮助下可以传达价值并影响决策。

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

关系型数据库。图片由作者提供

关系型数据库通常用于存储和查询结构化数据。数据存储在表示实体表格中,如顾客产品销售订单。每个实体的实例被分配一个主键,以唯一标识它,这些键用于在其他表中引用该实体实例。

这使得通过连接表来丰富数据成为可能。

例如,顾客的主键可以在销售订单记录中被引用,以指示哪个顾客下了该订单:

-- Joining two tables using SQL
SELECT * FROM Customer C
JOIN Orders O
ON C.ID = O.Customer

使用键来引用数据实体使关系型数据库能够规范化——这部分意味着消除重复的数据值,例如,一个顾客的详细信息只存储一次,而不是每次顾客下订单时都存储。

关于规范化的内容稍后会讲解。

表格的管理和查询使用结构化查询语言(SQL),它基于 ANSI 标准,因此在多个数据库系统中类似。我们上面看到的简单查询连接了两个表。

让我们进一步讨论数据库模式。

数据湖采用Schema-on-Read方法,不需要预先定义模式,而数据仓库采用更计算密集但更有组织的Schema-on-Write范式,其中表模式必须提前定义。

这些模式由数据建模师和解决方案架构师在与下游分析和业务用户咨询后设计。

在常见的做法中,建模师将数据从事务存储转化为一种模式,其中数值被存储在中央事实表中。

这些数据然后与一个或多个维度表相关,这些表代表你希望用来聚合这些数值度量的实体——例如产品顾客

每个实体由具有唯一键值的行表示。

剩下的列代表实体的属性——例如,产品有名称和类别,顾客有地址和城市。在大多数分析模型中,包含时间维度是常见的,以便能够聚合与事件相关的数值度量。

所以这所有内容的样子是这样的:

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

常见的星型模式。图片由作者提供

我们可以看到,模型中通过各种维度(CustomerProductTime)汇总的数值度量(例如收入)位于一个中心事实表中,Sales

更具体地说:

事实表中的每一行代表一个记录事件,附有数值度量。在这里,我们的星型模式中的Sales表代表单个项目的销售交易,包括销售数量和收入的数值。

销售可以按客户产品商店时间维度进行汇总,使你可以轻松找到每个商店按产品划分的月度总销售收入。

这是洞察力得以揭示的地方。

总结:

通过键连接表格可以丰富数据,而聚合则提供洞察。

-- Find total sales for each customer and product in 2022
SELECT c.name, p.name, s.sum(s.Revenue) FROM Sales s
JOIN Customer s
ON c.Key = s.CustomerKey
JOIN Product p
ON p.Key = s.ProductKey
JOIN Time t
ON t.Key = s.TimeKey
GROUP BY 1, 2
WHERE t.Year = '2023'

星型模式是最常见的模式类型,可以通过添加与现有维度表相关的附加表扩展为雪花模式——通常用来表示维度层级。例如,产品有自己的子类别。

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

雪花模式。来源:维基百科

总体而言,当你有可以组织成结构化表格模式的事务性数据,并且希望在高性能环境中使用 SQL 查询时,数据仓库是一个很好的选择。

查看我的 PowerBI 教程了解数据建模的实际示例。

分析数据模型

尽管数据分析师和数据科学家可以直接在数据仓库中处理数据,但通常会创建一个或多个分析数据模型,这些模型预聚合数据以便更容易生成报告、仪表板和交互式可视化。

这些被称为在线分析处理(OLAP)模型或立方体

数据汇总跨越不同层级或层级的维度,使你能够向上/向下钻取,以在多个层级上查看汇总——例如,找到按地区、城市或单个地址的总销售额。

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

层级允许向上和向下钻取。图片由作者提供

由于 OLAP 数据是预先汇总的,因此可以快速运行查询以返回其中包含的摘要信息。

从事实表中汇总的数值(度量)是针对维度表中维度的交集计算的。从概念上讲,这意味着模型形成了一个多维结构,其中维度交汇的任何点代表这些维度的汇总度量。

例如,如前所述,销售收入可能按日期、客户和产品汇总,产生的查询输出看起来像立方体中的笛卡尔坐标。

非常酷对吧?!

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

“cube”。度量(例如销售)按时间、客户和产品维度进行汇总。作者提供的图片

重要! 尽管我们通常将分析模型称为cube,但其维度可以多于(或少于)三个——我们只是难以可视化超过三个的维度!

准备好供使用!

数据分析师从这些分析模型(步骤 3)中——或直接从数据仓库(步骤 2)——甚至从数据湖中的‘原始’数据集(步骤 1)中获取数据,以探索数据并创建仪表板、报告和可视化,以生成洞见。

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

一个 PowerBI 仪表板。请参阅我的教程获取操作指南!

组织中的非技术专业人员可以对数据进行自助数据分析和报告,特别是当数据已经在 BI 工具中可视化时,如 PowerBI 或 Tableau。

这些建立在良好分析数据模型基础上的可视化展示比较、趋势和关键绩效指标(KPIs),可以呈现为图表、图形、报告,通常以文档和PowerPoint演示文稿、基于网页的仪表板和交互式环境(例如 PowerBI 和 Tableau)的形式传播,在这些环境中,即使是高管也能轻松地以可视化方式探索数据,并做出基于数据的决策。

2. 数据库规范化

现在让我们深入探讨一些数据库规范化的细节。

这是组织我们关系型数据库中的数据,以减少冗余和提高数据完整性的过程。它包括将每个表分解为较小的表,并定义它们之间的关系,以消除重复数据和不一致性。

规范化的目标是创建一个更高效、灵活且不易发生数据异常的数据库模式。我们从一组表开始,通常会得到更多“更清洁”的表。

规范化有多个级别,每个级别都有一套规则。最常见的有:

第一范式(1NF)

表格的每一列必须包含原子(不可分割)值。也就是说,任何一列都不应包含列表或值集合。

例如,假设你有一个客户订单表。在每一行中,有一个客户姓名列和一个他们所订购商品的列表列。在 1NF 中,你会将这些商品列表拆分成单独的行,这样每行只包含关于一个商品的信息。这有助于防止信息重复。

第二范式(2NF)

如果一个表在 1NF 中,并且所有非关键列完全依赖于主键,则该表处于 2NF。换句话说,应该不存在部分依赖,其中非关键列仅依赖于主键的一部分。

继续以客户订单为例,假设你有一个新列用于记录订单日期。如果该日期仅依赖于客户的名字,则表中可能会出现重复。在 2NF 中,你会将表分为两个——一个表用于客户信息,一个表用于订单信息。这确保每条信息仅存储一次,并防止部分依赖。

第三范式 (3NF)

如果一个表在 2NF 中,并且所有非关键列彼此独立,则该表处于 3NF。换句话说,应该不存在非关键列依赖于另一个非关键列的传递依赖。

现在假设你有一个新列用于每个订单项的价格。如果价格依赖于项本身,而不是表中的其他列,那么你已经在 3NF 中了。但如果价格依赖于其他列,比如项的制造商,那么你需要将表分为多个表,以消除这些传递依赖。目标是确保每列仅依赖于表的主键,而不依赖于其他非关键列。

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

维基百科上有关于规范化的光辉详细信息

除了 3NF,还有额外的规范化级别,但在实践中不常用。

享受这个故事吗?当我发布类似文章时,请获取电子邮件

3. 非关系型数据库

顺便说一下,让我们快速介绍一下关系型数据库。

这些是数据管理系统,它们不对数据应用关系模式。非关系型数据库通常被称为NoSQL数据库,即使有些支持 SQL 语言的变体。

常用的非关系型数据库有四种常见类型。

  • 键值数据库,其中每条记录由唯一键和一个关联的值组成,值可以是任何格式。

  • 文档数据库是一种特定形式的键值数据库,其中值是 JSON 文档,系统被优化以解析和查询这些文档。

  • 列族数据库,存储由行和列组成的表格数据,但你可以将列划分为称为列族的组。每个列族包含一组逻辑上相关的列。

  • 图形数据库,将实体存储为节点,通过链接定义它们之间的关系。

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

NoSQL 数据库。图像由作者提供

4. 总结

分析模型使你能够结构化数据以支持分析。

分析数据从操作系统迁移到数据湖,然后到数据仓库。在这里,得到的关系数据库建模,这包括为了效率进行规范化并制定适合你业务用例的模式

这些模型基于拥有相关的数据表,并定义了你希望分析或报告的数值(度量)以及你希望聚合它们的实体(维度)。

规范化有三种常见级别,它将每个表拆分为更小、更具体的表,这些表以更逻辑和高效的方式相互连接。

为了进一步提高效率,数据可能会被预先聚合到OLAP 模型立方体中。从直观上看,这些模型形成了多个维度结构,当你正好在 3 个维度上进行聚合时,它们类似于一个立方体,例如销售收入客户产品时间上的表现。

然后,通过丰富所选择的数据(通过连接表格)并进行感兴趣的聚合,数据分析师和下游用户可以获得见解。

通过说服性数据讲述,分析师和商业专业人士将他们的发现展示给决策者,决策者可以基于这些数据做出行动。

如果你觉得这篇文章有用,请告诉我!

Twitter和 YouTube 上找到我,点击这里点击这里点击这里

我的热门 AI、机器学习与数据科学文章

  • AI 与机器学习:快速入门 — 点击这里

  • 机器学习与机械建模 — 点击这里

  • 数据科学:现代数据科学家的新时代技能 — 点击这里

  • 生成 AI:大公司如何争相采用 — 点击这里

  • ChatGPT 与 GPT-4:OpenAI 如何赢得 NLU 战争 — 点击这里

  • GenAI 艺术:DALL-E、Midjourney 和 Stable Diffusion 解释 — 点击这里

  • 超越 ChatGPT:寻找真正智能的机器 — 点击这里

  • 现代企业数据战略解读 — 这里

  • 从数据仓库和数据湖到数据网格 — 这里

  • 从数据湖到数据网格:最新架构指南 — 这里

  • Azure Synapse Analytics 实战:7 个用例解析 — 这里

  • 云计算 101:为你的业务利用云计算 — 这里

  • 数据仓库与数据建模 — 快速入门课程 — 这里

  • 数据产品:为分析建立坚实基础 — 这里

  • 数据民主化:5 个“大数据皆可用”策略 — 这里

  • 数据治理:分析师的 5 个常见痛点 — 这里

  • 数据讲故事的力量 — 销售故事,而非数据 — 这里

  • 数据分析入门:谷歌方法 — 这里

  • Power BI — 从数据建模到惊艳报告 — 这里

  • 回归分析:使用 Python 预测房价 — 这里

  • 分类:使用 Python 预测员工流失 — 这里

  • Python Jupyter 笔记本与 Dataiku DSS — 这里

  • 常见机器学习性能指标解读 — 这里

  • 在 AWS 上构建生成 AI — 我的第一次体验 — 这里

  • 数学建模与 COVID-19 机器学习 — 这里

  • 未来的工作:在 AI 时代你的职业安全吗 — 这里

DataHub 实操 第二部分

原文:towardsdatascience.com/datahub-hands-on-part-ii-169c36ee082d?source=collection_archive---------8-----------------------#2023-01-03

数据摄取、数据发现和实体链接

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 教授西蒙·J·普雷斯,博士

·

关注 发表在 Towards Data Science · 10 分钟阅读 · 2023 年 1 月 3 日

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

图片由 Duy Pham 提供,来源于 Unsplash

介绍

欢迎来到我的 DataHub 实操故事的第二部分!在 上一篇 中,我们讨论了如何从头开始设置数据目录,如何使用业务术语进行语义建模以及数据治理(DG)的动机。在本部分中,我们将更详细地了解 DataHub 的一些技术部分,以便摄取和链接元数据。

数据摄取

DataHub 的数据摄取(DI)部分可以通过右上角的菜单栏访问:

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

Source: Author

一旦进入 DI 区域,我们会看到已配置的数据源列表,包括显示执行统计的概览。从这里,我们可以运行已配置的 DI 过程,可以编辑配置,可以删除或复制配置,或创建一个新源。

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

Source: Author

另有一个“Secrets”按钮,可用于配置访问数据源的密码。此功能有助于将密码安全地存储在 DataHub 数据库中。在源配置过程中,可以将秘密与数据源关联。

重要术语

为了理解 DI 配置的工作原理,让我们快速定义一些重要术语。如上所述,sources 指的是元数据的来源。Sources 指我们希望在数据目录中管理的数据库——通常来自生产环境。除了 sources,DataHub 还提供了 sinks 的概念。Sinks 是元数据的目的地。通常,DI 引擎将收集到的元数据发送到“datahub-rest” sink,使其在 DataHub UI 中可用。但是,如果需要,也可以选择 Kafka 和文件导出。接下来是 recipes,这是配置文件,指示摄取脚本从哪里提取数据以及将数据放在哪里。配方可以通过 UI 配置(如果有适配器),也可以通过 YAML 脚本[1]进行配置。

数据源和适配器

现在,让我们看看 DataHub 提供的预配置数据库适配器(即连接器):

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

Source: Author

我们看到一些已经建立的 SQL 和 NoSQL 技术图标。为了理解这不仅仅是为了营销目的,让我们比较两个选定的适配器。在下图的左侧,我们看到一个 BigQuery 的摄取配方,在右侧,我们看到一个 SQLServer 的配方。显然,摄取 UI 根据技术期望不同的信息来建立数据库连接。

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

Source: Author

大多数数据源使用基于 Python 的元数据摄取系统进行拉取式集成。在第一步中,元数据从源系统中拉取,在第二步中,通过 HTTP 或 Kafka²将信息推送到 DataHub 服务层。每个源适配器具有不同的功能,因此建议阅读在线文档以避免混淆。例如,MySQL和 SAP HANA 适配器支持数据分析和检测已删除的实体,而 MongoDB 或 Oracle 适配器不支持这些功能。相反,BigQuery适配器支持这些功能以及表级血缘关系等其他功能。要了解适配器功能之间的差异,我们只需访问 github 查看每个适配器的代码。例如,我们可以看到,sqlalchemy 用于连接MySQL源,而BigQuery适配器则使用 Google 提供的标准连接包。因此,可以得出结论,每个适配器都是独立实现的,并可能使用不同的连接包。这一点以及数据库技术在其能提供的元数据方面的不同(例如,MongoDB 中没有外键概念)对适配器的摄取能力有影响。

完成配方

还有一个过滤器部分,有助于缩小要摄取的模式或表。如果没有设置过滤器,DI 引擎会对配置的数据库用户有权限的所有方案、表和视图执行元数据扫描——这应考虑到以避免对扫描的数据库和摄取过程造成性能影响。从安全角度来看,建议直接在数据库中限制用户权限(例如,通过创建一个特定的只读 DataHub 用户)。你可以在附加部分切换高级设置,例如是否应考虑视图进行扫描,或仅考虑表,或两者都考虑。同样重要的是:你可以选择是否对表或列进行分析(例如,表中有多少记录,列中有多少缺失值)。这对于了解公司数据环境的透明度非常有用。

一旦配置了配方,你可以指定执行计划。在这里,你定义了 DI 执行的频率(例如每日、每月、每小时)。在创建向导的最后一步,你必须为新源分配一个唯一名称,然后点击“保存并运行”,这将直接触发第一次元数据扫描过程。

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

来源:作者

一旦过程执行完毕,你可以查看详细信息,以获得对导入资产的初步印象,或查看失败的详细信息。在我的测试用例中,我们有一个 MySQL 数据库服务器,包含来自 4 个数据库的 78 个视图和 38 个表。

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

来源:作者

数据发现

搜索和筛选

一旦我们的元数据被推送到 DataHub 服务层,我们可以通过 DataHub UI 开始数据发现之旅。作为 90 年代的粉丝,我在测试用例中使用了 Microsoft 的“northwind”数据库。如果我想搜索模式,我可以浏览表和视图,或者选择一些筛选条件(例如,排除视图)。

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

来源:作者

表格分析结果

假设我想更详细地查看产品数据,那么我只需点击列表中的产品数据集。我首先看到的信息是表格模式概览,显示字段、数据类型,甚至一些数据模型细节,如主键和外键。在顶部(数据集名称下方),我们还可以一目了然地看到我们的表中当前有 79 条记录。

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

来源:作者

第二个表单涉及文档,默认情况下为空。在这里,数据管理员可以在 DataHub 中添加关于该表的技术知识和/或添加指向已有材料的链接。这是促进公司数据架构成熟度的重要工具——数据目录的帮助程度仅取决于专家共享和输入的知识。数据集还有一些其他有趣的表单,如血缘和验证,我们将在第三部分中介绍——敬请关注 😃

列分析结果

现在,我想展示 DI 引擎提供的内容,只需在我们之前的配方中选择“列分析”选项。为此,让我们进入名为“stats”的表单。在这里,我们可以看到选定表中每一列的统计信息。

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

来源:作者

例如,我们在第一行看到字段“ProductID”具有 100%的唯一值。这一发现并不令人惊讶,因为这个字段是表的主键——从技术上讲,这些值在每条记录中必须不同。我们还看到 NULL 计数和 NULL 百分比信息,例如,我们看到两个产品记录没有供应商参考。这可以被视为一个关键的数据质量问题,因为没有关联的供应商,你无法实际将这些产品提供给客户。

还有什么呢?我们可以看到描述性度量,例如最小值、最大值、均值,这在记录量较多的交易表中更为有趣。至少,我们可以一眼看到有关我们产品组合的单位价格的统计度量(例如,半数产品的价格低于 $19.45 → 中位数)。此外,我们还可以看到数据集中每列的样本值。

将属于同一类别的内容结合起来

实体链接

当然,数据发现已经非常有启发性,并促进了透明度,特别是如果你从未在实践中体验过这种功能。然而,数据目录的真正力量只有在我们将 IT 世界和商业世界结合起来时才能释放出来。这听起来很棒——但这意味着什么呢?在这个意义上,“IT 世界”指的是所有与数据集相关的技术信息。“商业世界”是我们在前一部分讨论的内容:我们在术语表中维护的所有商业信息。以现实公司为例,必须强调的是(特别是在较大的公司中),有不同的小组负责数据集和术语表。一方面,我们有数据保管员,他们是技术话题的专家,例如开发和改进数据库。另一方面,我们有数据管理员,他们是商业话题的专家,例如如何根据条件指示哪些产品可以在哪个地点生产——以及做出决定所需的数据。因此,当我们谈论链接实体时,我们实际上是在连接人员!

大词汇!那么这与 DataHub 如何配合呢?让我们继续讨论我们的数据集“products”,它反映了一个实际的数据库表。这是我们在 DataHub 中的起点。在下面的屏幕截图中,我们可以看到各种标记的信息,这些信息指向可以共同使用的多种类型的与“商业世界”的链接。

  1. 选项:我们可以在表格列中添加术语表项。此链接指示某个术语的原始数据可以在该列中找到,例如实际的产品名称。

  2. 选项:我们可以在整个表格中添加术语表项。此链接指示某个术语相当复杂,并由多个属性描述,这些属性可以在该表中找到。

  3. 选项:我们可以添加一个数据集所属的领域。此链接类似于术语表项与领域的链接(有关更多信息,请参见第一部分)。

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

来源:作者

人员

然而,我们的模型中仍然没有人员。因此,让我们为数据集“products”添加一个所有者:

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

来源:作者

DataHub 建议这个人应该是“技术所有者”,这类似于其他数据治理框架中的“数据保管员”角色。现在我们需要将人员添加到相关的术语中。我们可以简单地点击“产品”术语,DataHub 将我们导航到术语记录。在那里,我们也可以添加所有者。例如,我们可以将 Brian 添加为“数据管理员”,将 Lilly 添加为“业务所有者”。如果我们将鼠标悬停在名字上,会看到分配给该名字的角色。DataHub 允许多次添加人员——如果一个人有多个角色(例如业务所有者+数据管理员),这可能会很有用。不幸的是,该工具也允许多次添加相同的人员和角色组合,这并不实用。

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

来源:作者

现在假设 Brian 是公司新员工,他想在产品主数据表上做一些更改,因此他需要找到合适的 IT 专家来澄清实施细节。在这种情况下,他只需点击“产品”数据集,该数据集在“相关实体”部分可见(见上图)。然后他会被转到数据集(我们在上面看到过)并可以看到:我的 IT 联系人是 John!当然,组织中需要支持或有产品数据更改请求的其他人员也可以使用这个链接信息——他们只需搜索“产品”,并只需 2 次点击即可收集正确的数据相关人员(Lilly、Brian 和 John)。

第二部分结论

我们已经看到,设置数据摄取过程只需几分钟,因为 DataHub 提供了多个已建立的数据库技术的配置向导。我们还看到,数据发现是一个强大的功能,可以提高公司数据架构的透明度。表和列的分析是自动执行的,统计结果可以在用户界面中查看。数据集和术语的链接或添加所有者也非常简单,不过,我们看到数据一致性检查并不总是由 DataHub 执行。我们可以多次添加相同角色的相同所有者,但该工具至少能阻止我们多次将相同术语添加到数据集中。将相同的术语分配给同一表中的多个列也是可能的——也许在实际应用中这种灵活性是有用的。总的来说,我的实践建议是——至少在一个表内——列和术语之间应保持 1:1 关系。如果不是这样,你应审查你的术语表的粒度,或者你的物理数据模型存在问题。

再次恭喜你读到这里!在下一部分,也是最后一部分,我们将深入探讨数据质量管理,包括数据溯源和数据验证。也许,我会写一个进一步的故事,讨论 DataHub 在数据治理(DG)角色概念方面与其他 DG 框架的比较。

[1] datahubproject.io/docs/metadata-ingestion

[2] datahubproject.io/docs/architecture/metadata-ingestion

训练、验证和评估机器翻译的数据集

原文:towardsdatascience.com/datasets-to-train-validate-and-evaluate-machine-translation-d61905d126aa?source=collection_archive---------2-----------------------#2023-02-04

选择、检查和拆分

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

·

关注 发表在 Towards Data Science ·13 min 阅读·2023 年 2 月 4 日

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

图片来源于 Pixabay

对于大多数自然语言处理(NLP)任务,一个重要的步骤是选择用于训练、验证和评估系统的数据集。机器翻译也不例外,但由于任务的多语言特性,它有一些特定的要求。

在这篇文章中,我解释了如何选择、检查和拆分数据集,以构建一个机器翻译系统。我通过实例展示了数据集中最重要的属性,并根据机器翻译系统的目标如何在数据的质量和数量之间进行权衡。

训练、验证和评估

要构建一个机器翻译系统,我们需要尽可能多的数据:

  • 训练:机器翻译系统必须经过训练才能学习如何翻译。如果我们计划使用神经模型,这一步骤在数据和计算资源方面是最昂贵的。

  • 验证:可以在训练过程中使用验证数据集来监控模型的表现。例如,如果表现一段时间后没有改善,我们可以决定提前停止训练。然后,如果我们在不同训练步骤保存了模型,我们可以选择在验证数据上表现最佳的模型,并用这个模型进行评估。

  • 评估:这一步骤自动生成我们选择的模型在尽可能接近我们系统实际部署后将要翻译的文本的数据集上的表现。如果表现令人满意,那么我们可以部署我们的模型。如果不满意,我们需要用不同的超参数或训练数据重新训练模型。

## 注意你的束搜索超参数

默认值永远不是最优的。

towardsdatascience.com

所有这些数据集都是平行语料库,包括源语言目标语言,并且理想情况下是目标领域的。

这句中包含了很多关键词。让我们逐一解释它们。

  • 源语言:这是将由我们的机器翻译系统翻译的文本的语言。

  • 目标语言:这是机器翻译系统生成的翻译的语言。

  • 目标领域:这个概念更复杂。假设用于构建我们系统的数据应尽可能接近系统部署后将要翻译的数据,例如相同的风格、体裁和主题。如果我们希望系统翻译推文,那么用推文训练模型比用科学摘要训练要好得多。这可能显而易见,但通常找到一个大型目标领域数据集是具有挑战性的,因此我们必须尽量接近它。

  • 平行语料库:这通常以源语言中的句子或段落形式出现,并与其在目标语言中的翻译配对。我们使用平行数据来教系统如何翻译。这类数据还有许多其他名称:平行数据、双语语料库、双语文本等。“平行数据”可能是最常见的名称。

例如,以下数据集是平行的:

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

从 Paracrawl 英荷平行语料库中提取(CC0)。作者截图。

质量

为了获得最佳的机器翻译系统,我们需要一个大规模的平行语料库来训练系统。但我们不应为数量而牺牲质量

无论我们讨论的是训练数据还是验证/评估数据,所使用数据的质量会产生不同的影响。

但首先,让我们定义一下构建系统所需的高质量平行数据的最重要特征。

正确

平行数据中的翻译应当正确且自然。理想情况下,这意味着翻译应该由专业翻译人员从零开始制作(即未后期编辑)并经过独立检查。平行语料库常常通过非专业翻译人员众包制作。数据也可以直接从网络上爬取并自动配对,这对于只有少量数据的领域和语言对而言绝对不完美。即便这类数据集的质量远非理想,我们可能也不得不在它们是唯一资源时使用它们。

对齐

平行数据中的段落或文档应当正确对齐。如果段落配对不正确,系统在训练时将学到错误的翻译。

原始

平行数据的源语言部分不应是其他语言的翻译。这一点可能稍微复杂一些。我们希望我们的系统学习如何翻译源语言中的文本。然而,如果在训练时,我们提供的文本不是原本的源语言文本,即已经是从其他语言翻译过来的文本,那么系统将更擅长翻译翻译文本而非原始文本。下面我会详细说明为什么这一点很重要。

领域内

数据应当在目标领域内。这是一个有争议的理想情境。我们可以在非目标领域的数据集上训练一个非常好的系统,然后在目标领域的较小数据集上进行微调。

原始

数据应该接近原始状态。使用已经预处理过的数据集通常是个坏主意。这里的预处理指的是任何改变了原始文本的过程。这可以是分词、大小写还原、标点规范化等。很常见的是,所有这些预处理步骤都没有明确说明,这导致我们无法在我们的系统实际翻译的文本上准确重现它们。定义我们自己的预处理步骤要安全得多,有时也更快捷。

要大致了解数据集的质量,我们应该始终知道数据的来源及其创建方式。我会在下面详细介绍。

在训练时,机器翻译系统将学习平行数据的属性。神经模型对噪声相对较为鲁棒,但如果我们的训练数据非常嘈杂,即对齐不准确或有许多翻译错误,系统将学习生成带有错误的翻译。

在验证/评估时,使用的平行数据的质量更加关键。如果我们的数据集质量较差,评估步骤将仅告诉我们系统在翻译不佳方面的表现。换句话说,这将是一次无用的评估,但可能会让我们误以为可以部署一个训练不充分的机器翻译系统。

数量

除了质量,数据的数量也至关重要。

“数量”通常指的是平行语料库中平行段落的数量。我在这里将使用这个定义。

对于训练来说,尽可能使用更多的数据是一个好的经验法则,前提是数据的质量合理。我将训练场景分为 3 类:

  • 低资源:训练数据包含少于 100,000 个平行段落(或称为句子)

  • 中等资源:训练数据包含 100,000 到 1,000,000 个平行段落

  • 高资源:训练数据包含超过 1,000,000 个平行段落

对于验证和评估,使用大量数据可能看似是获取我们模型准确评估的正确选择,但通常我们更倾向于将更多的数据用于训练而不是验证和评估

如果你查看研究和开发中的最佳实践,你会发现机器翻译的验证和评估数据集通常包含 1,000 到 3,000 个平行段落。请记住,这些数据集的质量比数量重要得多,与训练数据集不同。我们希望评估数据集的翻译尽可能完美,并且尽可能接近我们的系统将要翻译的文本。

单语数据

单语数据,与我之前描述的平行数据不同,是指单一语言的文本。可以是源语言或目标语言。

由于这些数据是单语的,因此比平行数据更容易以非常大的数量进行收集。

它通常被用于生成合成平行数据,然后用来增强训练平行数据。

生成合成数据有许多策略,如回译和正向翻译。如果处理不当,它们可能会对训练产生负面影响。

我将在另一篇博客文章中详细讨论这些策略。敬请关注!

数据泄漏预防

如果你对机器学习有所了解,你可能已经知道什么是数据泄漏。

我们希望训练数据与验证和评估数据尽可能接近,但没有任何重叠

如果存在重叠,我们就谈论数据泄漏。

这意味着我们的系统部分地在用于验证/评估的数据上进行训练。这是一个关键问题,因为它人为地提高了验证/评估结果。系统确实会特别擅长翻译其验证/评估数据,因为它在训练时已经见过这些数据,而一旦投入生产,系统很可能会面临未见过的文本进行翻译。

预防数据泄漏比听起来要困难得多,并且使问题更加复杂的是,数据泄漏有许多不同的层次。

最明显的数据泄漏情况是评估数据中的段落或文档也出现在训练数据中。这些段落应该被排除。

另一种数据泄漏的形式是当训练和评估数据来自相同的文档时。例如,将数据集的段落顺序打乱,然后选择前 95%用于训练,最后 5%用于验证/评估,可能会导致数据泄漏。在这种情况下,我们可能在训练和验证/评估数据中使用了原本来自同一文档的段落对,这些文档可能由同一译者创建。也有可能训练数据中的段落直接用于创建验证/评估数据段落的翻译。因此,验证/评估数据在翻译时人为变得更容易。

为了防止数据泄漏,总是要了解数据的来源,以及数据是如何制作和划分为训练/验证/评估数据集的。

关于翻译腔

平行语料库有两个方面。理想情况下,源语言端是由源语言母语者编写的原始文本,而目标语言端是由目标语言母语者生产的翻译。

目标端不是原始文本:它是翻译。翻译可能包含错误。研究还表明,翻译在词汇上不如原文多样,在句法上也比原文简单。这些翻译伪影定义了“翻译腔”。

为什么在机器翻译中这很重要?

假设你有一个平行语料库,原始源语言为西班牙语,翻译为英语。这对于一个西班牙语到英语的机器翻译系统来说是完美的。

但如果你想要一个英语到西班牙语的系统,你可能会想直接交换平行语料库的两边:原文在目标语言侧,翻译在源语言侧。

然后,你的系统将学习翻译……翻译!由于翻译比原文更容易翻译,神经网络学习任务要简单得多。但然后,机器翻译系统在翻译用户输入的原文时会表现不佳。

底线是:检查数据的来源,以确保至少你不会在源语言中找到翻译内容。

注意,有时这种情况是不可避免的,特别是在处理低资源语言时。

平行语料库的来源

幸运的是,网上有许多领域和语言的平行语料库。

我主要使用以下网站获取所需的内容:

  • OPUS:这可能是最广泛的平行语料库来源。为 300 多种语言提供了数十种语料库。它们可以以纯文本格式(2 个文件:1 个用于源语言,1 个用于目标语言)或 TMX 格式下载,TMX 是翻译行业中常用的 XML 格式。每个语料库的大小和长度(以段落和标记数量计)也会给出。

  • Hugging Face 的数据集:这个数据集并不是专门针对机器翻译资源,但你可以通过选择“translation”标签找到许多平行语料库。OPUS 和 Dataset 的交集非常大,但你会发现一些 OPUS 上没有的平行语料库。

这是目前最大的两个平行语料库来源。如果你知道其他来源,请在评论中指出。

请注意,你会发现的大多数平行语料库只能用于研究和学术目的,而不能用于商业目的。OPUS 不会显示每个数据集的许可信息。如果你需要知道,请直接检查数据集的原始来源或联系创建者。

示例

现在,让我们更实际地操作一些数据集。我创建了两个需要平行数据的任务:

  • 任务 1:一个通用的机器翻译系统,将西班牙语翻译成英语(Es→En)

  • 任务 2:一个专门的机器翻译系统,将 COVID-19 相关内容从斯瓦希里语翻译成英语(Sw→En)

我们将首先专注于任务 1

我们可以开始在 OPUS 上搜索,看是否有针对这个任务的平行语料库。

幸运的是,西班牙语到英语(Es→En)是一个高资源任务。在各种领域有大量平行语料库。例如,从 OPUS,我们可以获得:

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

来自OPUS的截图。

第一个,“ParaCrawl v9”是最大的之一。它是自动创建的,但足够好以训练机器翻译系统。我们应该始终检查许可证,以确保我们可以将其用于目标应用程序。如上所述,OPUS 没有提供许可证信息,但一旦点击,它会提供数据集的来源。有关许可证信息,我们必须检查数据的原始来源:www.paracrawl.eu/。该语料库在CC0 许可证下提供。允许学术和商业用途。

这是一个包含 264M 对段的大型语料库。这个数据量足够将其拆分为训练/验证/评估数据集。我会这样拆分数据以避免数据泄露:

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

作者插图。

由于段对数量很多,我们可以将数据拆分为连续的 10M 段对。我会提取一个段,对例如最后一个段进行重新拆分成更小的连续段对 1M。最后,我会从第一个较小段提取 3,000 个段用于验证,从最后一个较小段提取另外 3,000 个段用于评估。

训练、验证和评估数据集之间的距离足够。这是一种非常简单的方法,但远非最佳。如果语料库中的段对已经被打乱,它不会防止数据泄露。

还有其他方法,我在这里不讨论,以更好地保证在提取每个数据集最有用的段对时数据不会泄露。

对于训练,你可以从例如前两个 10M 段开始。如果对翻译质量不满意,你可以将更多的段加入训练数据中。

如果翻译质量没有太大改善,说明你可能不需要使用剩余的 200M+段对。

任务 2 要困难得多。

我们想要翻译斯瓦希里语。非洲语言通常资源较少。此外,我们针对的是一个相对较新的领域——COVID-19,因此我们可以预期这个任务可用的数据会非常少。

正如预期的那样,在 OPUS 上可用的数据集要少得多:

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

来自OPUS的截图。

一个好的点是,Paracrawl 也提供 Sw→En 的资源,但其 10 万个段对相对较小。然而,这是一个最大的 CC0 许可证资源之一。我会用它进行训练,然后尝试添加其他数据源(如 CCMatrix 或 CCAligned)以观察性能如何改进。

但如何评估一个专门用于翻译 COVID-19 内容的机器翻译系统?

在 COVID-19 爆发后,研究社区致力于制作多语言的翻译资源。 TICO-19 语料库就是其中之一,并且提供了 CC0 许可。它可以在 OPUS 上获取。虽然它很小,但提供了 3,100 段斯瓦希里语和英语的翻译。这足以制作验证/评估数据集。在这里,我会选择 1,000 段用于验证,其余段落用于评估。然后,你将了解你的系统在 Paracrawl 上训练后在翻译 COVID-19 内容方面的表现。

请注意,我没有讨论这两个任务中的翻译腔。Paracrawl 很可能在其源语言侧有非原始的西班牙语和斯瓦希里语。TICO-19 语料库是从英语创建的。斯瓦希里语侧是非原始的。换句话说,我们不能避免这两个任务中的翻译腔。

结论

在这篇文章中,我描述了如何选择和拆分你的数据集,以创建你自己的机器翻译系统。

总结来说,我认为最重要的点是找到质量与数量之间的最佳折中点,特别是当你针对低资源语言时。此外,深入了解你的数据集也至关重要。如果不加以检查,你可能会得到一个完全偏离目标且存在偏见和不公正的系统。

在下一篇文章中,我将展示如何预处理这些数据集以改进它们,并促进机器翻译的训练。

我所有的文章都发布在我的新闻通讯《The Kaitchup》中。订阅以接收每周有关运行大型语言模型和机器翻译系统的新闻、技巧和教程。

[## The Kaitchup - AI on a Budget | Benjamin Marie, PhD | Substack

订阅每周 AI 新闻、技巧和有关调优、大型语言模型运行和服务的教程…

kaitchup.substack.com](https://kaitchup.substack.com/?source=post_page-----d61905d126aa--------------------------------)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值