原文:TowardsDataScience

协议:CC BY-NC-SA 4.0

使你的 Matplotlib 图表达到出版水平的 3 个关键调整

原文:towardsdatascience.com/3-key-tweaks-that-will-make-your-matplotlib-charts-publication-ready-18e41eaac589?source=collection_archive---------3-----------------------#2024-08-08

Matplotlib 图表默认看起来很难看——这是该怎么解决。

https://medium.com/@radecicdario?source=post_page---byline--18e41eaac589--------------------------------https://towardsdatascience.com/?source=post_page---byline--18e41eaac589-------------------------------- Dario Radečić

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

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4800e476202ff22aec05ee97f5e4d5c2.png

文章缩略图(作者提供的图片)

数据可视化比直接查看原始数值数据提供了更深刻的见解。

然而,创建吸引人的图表需要时间和精力。Matplotlib 是 Python 数据可视化的事实标准库。它简单,已经使用了几十年,任何你想要的功能只需一次网络搜索就能找到。

但并非一切都那么美好和顺利。Matplotlib 的默认可视化效果非常糟糕,作为数据专业人士,你将需要调整许多参数才能得到可用的效果。今天的文章目标就是帮助你做到这一点。

到最后,你将拥有一段可以粘贴到任何 Jupyter Notebook 的代码片段。

Matplotlib 默认样式的问题是什么?

为了跟随本教程,你无需下载任何数据集。你将创建一个合成的时间序列数据集,具有上升趋势和可重复的季节性模式:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Single season multiplier factors - for seasonality effect
seasonal_multipliers = [1.1, 1.3, 1.2, 1.5, 1.9, 2.3, 2.1, 2.8, 2.0, 1.7, 1.5, 1.2]

作为一名初级数据科学家,我犯过的 3 个痛苦的错误

原文:towardsdatascience.com/3-painful-mistakes-i-made-as-a-junior-data-scientist-df06b9513b47?source=collection_archive---------1-----------------------#2024-06-21

今天从这些教训中学习,加速你的职业发展

https://medium.com/@mandymliu?source=post_page---byline--df06b9513b47--------------------------------https://towardsdatascience.com/?source=post_page---byline--df06b9513b47-------------------------------- Mandy Liu

·发布于数据科学前沿 ·6 分钟阅读·2024 年 6 月 21 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1bbd6d692c405d841d4c0a8d9a916a3b.png

图片来源:Kenny EliasonUnsplash

成为数据科学家不仅仅是处理数字——更是要在一片充满潜在误区的雷区中航行。

在我的旅程中,我犯了一些错误,这些错误不仅痛苦,而且极具启发性。以下是我犯的三个重大错误,希望你们能避免走我曾经走过的弯路。

你好!

我是Mandy Liu,前 Meta 数据科学家 😃

我学习了经济学,开始我的咨询职业,并最终转型进入数据科学和个人创业的迷人世界。

我每周发布通讯,内容涉及数据科学、人工智能、商业和创业。一定要订阅!⬇️

[## 好奇的技术人 | Mandy Liu | Substack

每周由前 FAANG 数据科学家提供的见解,内容涵盖:数据科学、人工智能、商业和个人发展。点击阅读全文…

mandyliu.substack.com](https://mandyliu.substack.com/?source=post_page-----df06b9513b47--------------------------------)

1. 隐藏自己的弱点

我曾经相信,要成为完美的数据科学家,必须在所有领域都表现出色——不仅要精通 A/B 测试,还要了解最新的机器学习模型。

3 个强大的 SQL 查询,帮助你处理日期时间数据

原文:towardsdatascience.com/3-powerful-sql-queries-to-work-with-date-time-data-41681fea7c89?source=collection_archive---------3-----------------------#2024-07-12

数据科学

使用这些技巧进行有效的趋势分析,并获得推动决策的洞察。

https://medium.com/@17.rsuraj?source=post_page---byline--41681fea7c89--------------------------------https://towardsdatascience.com/?source=post_page---byline--41681fea7c89-------------------------------- Suraj Gurav

·发布于 Towards Data Science ·阅读时长 9 分钟·2024 年 7 月 12 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7ed2a6b0e57f3c6cd17b415e585f83b8.png

尼泊尔喜马拉雅山小屋,巴伐利亚,德国 | 作者拍摄的照片

处理日期时间值 — 数据分析的一个重要部分。

每当你在数据中看到日期时间值时,把它看作是充满信息的宝藏。至少,我是这样看的。

嗯,要获得对你有用的那部分“宝藏”从来都不容易,这也是本文灵感的来源。

是的!我将给你 3 个 SQL 查询,你可以用它们从数据中的日期时间值中获得最大收益。你可以利用它们从数据中获取有价值的洞察,支持有效的决策制定。

如果你使用 Python 进行数据处理和分析,我在下面的两篇文章中已经解释了类似的实用技巧,快来看看吧 —

  1. 3 个强大的技巧,帮助你处理 Python 中的日期时间数据

  2. 3 个实用的 Pandas 技巧,帮助你处理日期时间数据

回到我们的主题,接下来让我告诉你如何使用 SQL 从日期时间数据中获得最大洞察。

这里是你将在本文中探索的内容的快速概述。

应对音乐 AI 中数据匮乏的三大实用技巧

原文:towardsdatascience.com/3-practical-tips-to-combat-data-scarcity-in-music-ai-58e52c771aef?source=collection_archive---------6-----------------------#2024-05-22

从你的音乐数据中获取更多

https://medium.com/@maxhilsdorf?source=post_page---byline--58e52c771aef--------------------------------https://towardsdatascience.com/?source=post_page---byline--58e52c771aef-------------------------------- Max Hilsdorf

·发布于Towards Data Science ·阅读时长 11 分钟·2024 年 5 月 22 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9346d558a628e376261a4172b6e0566a.png

标题图像由作者使用 DALL-E 2 生成。

标注音频数据在音乐 AI 中长期匮乏。在这篇文章中,我将分享一些在这种情况下构建强大模型的技巧。

与计算机视觉或自然语言处理(NLP)等其他领域相比,寻找适合音乐 AI 的公共数据集通常是困难的。无论你是想进行情绪识别、噪音检测还是乐器标注,你都可能会在寻找合适的数据时遇到困难。

然而,数据匮乏不仅影响到业余程序员和学生。渴望发展的音乐技术初创公司甚至一些已建立的音乐公司也面临同样的问题。在 AI 时代,许多人急切地尝试收集专有数据资源以用于机器学习。

话虽如此,让我们深入探讨一下我的从音乐数据中获取更多信息的三大技巧

提示 1:应用自然数据增强

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0726f6e00bcddac17f509fd4881f3af7.png

横幅由作者使用 DALL-E 2 生成。

如果你是一名数据科学家,你可能听说过数据增强。基本的想法是从我们现有的数据集中获取现有样本,并稍微改变它们来生成新的合成训练样本。这个概念最容易通过图像来说明。例如,如果我们的数据集中包含一张猫的图片,我们可以通过平移和旋转原始猫的图片,轻松生成新的合成猫图像。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ef948ce570253f52a6174d1a32ef452f.png

图像数据增强示例。图像灵感来源于 Suki Lau,并由作者使用Alexander London拍摄的猫的照片重新创作。

数据增强特别对较小的数据集有效。如果你的数据集只有 100 张猫的照片,那么所有可能的角度和旋转正确表示的几率就很低。这些数据集中的盲点将自动转化为 AI 感知和判断中的盲点。通过合成创建现有图像的变化,我们可以减轻这种风险。

数据增强在音乐 AI 中的不同之处

虽然数据增强在计算机视觉中是一个游戏规则改变者,但在音乐 AI 中,它不那么直接。音乐 AI 模型的最常见输入是声谱图(了解更多这里)。但你尝试过旋转和移动一个声谱图吗?

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3da1b59b1f06533b6fe538653047eed5.png

无效的音频数据增强示例。图像来自作者。

很容易看出,计算机视觉中的相同技巧不能直接应用于音乐 AI。但为什么这个例子如此荒谬呢?答案是,与猫的例子相比,这种增强对于声谱图来说是不自然的

当所做的变化代表了模型在实际应用中可能遇到的变化时,数据增强是自然的。虽然旋转一个声谱图显然会改变数据,但在视觉上它毫无意义,且在实际中永远不会发生。相反,我们需要为音乐数据找到特别的自然变化。

使用效果进行自然音频增强

最常见的自然音乐数据增强方法是对音频信号应用效果。每个音乐制作人都知道一堆来自数字音频工作站(DAW)的效果:

  • 时间拉伸

  • 音高移位

  • 压缩器、限制器、失真

  • 混响、回声、合唱

  • 以及更多…

这些效果可以应用于任何音乐作品,改变数据同时保持其主要的音乐特征。如果你想知道如何在实践中实现这一点,查看我关于这个话题的文章:

## 使用 Spotify 的 Pedalboard 进行自然音频数据增强

提供现成的 Python 代码和预设

towardsdatascience.com

数据增强不仅在许多音乐 AI 研究论文中得到应用,我自己也取得了很好的效果。当数据稀缺时,数据增强可以让你的模型从不可用转变为可接受。即使数据量较大,它仍能增加一些额外的可靠性,这在生产环境中可能至关重要。

在实际实施音乐数据增强时,重要的是要牢记以下三点:

  1. 保持自然。 增强后听一下你的数据,确保它听起来仍然自然。否则,模型可能会学习到错误的模式。

  2. 并非每个训练样本都应该被增强。 为了确保你的模型主要从真实的、未被修改的音乐中学习,增强样本应仅占你训练数据的一部分(20%–30%)。你还可以在训练时使用样本加权来调整增强样本对模型的影响。

  3. 不要增强你的验证和测试数据。 增强可以帮助模型学习通用的模式。你的验证和测试数据应该保持未修改,以便能够在真实示例上进行准确的基准测试。

是时候通过数据增强提升你的模型效果了!

提示 2:使用更小的模型和输入数据

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/5046d53a4c179647371dd557ac835595.png

横幅由作者使用 DALL-E 2 生成。

更大 = 更好?

在 AI 中,更大通常意味着更好——前提是有足够的数据来训练这些大型模型。然而,数据有限时,更大的模型更容易发生过拟合。过拟合发生在模型记住了训练数据中的某些模式,但这些模式无法很好地推广到真实世界中的数据示例。但在这个背景下,我发现还有另一种方法值得考虑,这种方法甚至更有说服力。

假设你有一个小型的谱图数据集,并在选择一个小的 CNN 模型(10 万参数)和一个大的 CNN 模型(1000 万参数)之间做决定。记住,每个模型参数实际上都是从训练数据集中得出的最佳猜测值。如果我们这么想,显然让一个模型准确地获得 10 万个参数比准确地获得 1000 万个参数更容易。

最终,两个观点得出的结论是相同的:

如果数据稀缺,考虑构建专注于基本模式的小型模型。

那么,我们如何在实践中实现更小的模型呢?

不要用大锤砸胡桃

我的音乐 AI 学习之旅一直被深度学习主导。直到一年前,我几乎用大型神经网络解决了所有问题。虽然对于复杂的任务,如音乐标签或乐器识别,这样做是有道理的,并不是所有任务都那么复杂

例如,一个不错的 BPM 估计器或调性检测器可以通过分析音符的开始时间,或者通过将色谱图与调性配置文件进行关联来构建,而不需要任何机器学习。

即使是像音乐标签这样的任务,也不一定非得使用深度学习模型。我通过一个简单的 K-近邻分类器在嵌入空间(例如 CLAP)上取得了很好的情绪标签结果。

尽管音乐 AI 中大多数最先进的方法都是基于深度学习的,在数据稀缺的情况下,应该考虑替代解决方案

注意数据输入大小

比模型选择更重要的通常是输入数据的选择。在音乐 AI 中,我们很少使用原始波形作为输入,因为它们在数据效率上较低。通过将波形转换成(梅尔)声谱图,我们可以将输入数据的维度减少 100 倍以上。这很重要,因为大规模的数据输入通常需要更大和/或更复杂的模型来处理。

为了最小化模型输入的大小,我们可以采取两条路线

  1. 使用更小的音乐片段

  2. 使用更压缩/简化的音乐表示。

使用更小的音乐片段

使用较小的音乐片段尤其有效,如果我们关心的结果是全局性的,即适用于整首歌的每个部分。例如,我们可以假设一首歌曲的类型在整首歌的过程中保持相对稳定。因此,我们可以轻松地使用 10 秒钟的片段,而不是完整的歌曲(或者非常常见的 30 秒片段)来进行音乐类型分类任务。

这有两个优点:

  1. 较短的片段意味着每个训练示例的数据点更少,这样可以使用更小的模型。

  2. 通过绘制三个 10 秒的片段,而不是一个 30 秒的片段,我们可以将训练观察次数增加三倍。总的来说,这意味着我们可以构建更少依赖数据的模型,同时给它们提供比之前更多的训练示例。

然而,这里有两个潜在的风险。首先,片段大小必须足够长,才能进行有效的分类。例如,即使是人类,在面对 3 秒钟的片段时,也很难进行类型分类。我们应当仔细选择片段大小,并将这个决定视为我们 AI 解决方案的超参数。

其次,并不是每个音乐属性都是全局性的。例如,如果一首歌包含人声,并不意味着它就没有器乐部分。如果我们将歌曲切割成非常短的片段,我们就会在训练数据集中引入许多错误标签的例子。

使用更高效的音乐表示

如果你十年前学习过音乐 AI(当时这一切还叫做“音乐信息检索”),你会了解到色度图、MFCC 和节拍直方图。这些手工设计的特征旨在让音乐数据能够与传统的机器学习方法配合使用。随着深度学习的崛起,这些特征似乎已经完全被(梅尔)声谱图所取代

声谱图将音乐压缩成图像,并且几乎没有信息丢失,这使得它们与计算机视觉模型非常适配。我们不再需要为不同任务设计定制的特征,而是可以使用相同的输入数据表示和模型来处理大多数音乐 AI 问题——前提是你有成千上万的训练示例来喂给这些模型。

当数据稀缺时,我们希望尽可能压缩信息,以便模型更容易从数据中提取出相关模式。请考虑以下四种音乐表示方式,并告诉我哪一种能帮助你最快地识别音乐的调性。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/55215645b179c94abd112faf5942cbc9.png

四种不同表示同一首歌(Tina Turner 的《Honky Tonk Woman》)的示例。尽管色调图比波形图小约 70 万,但它能更有效地帮助我们识别调性(C# 大调)。图像由作者创建。

尽管梅尔频谱图可以用作调性检测系统的输入(如果你有足够的数据,可能应该使用它),但沿时间维度平均的简单色调图能更快地揭示特定信息。这就是为什么频谱图需要像 CNN 这样的复杂模型,而色调图则可以通过传统模型,如逻辑回归或决策树,轻松分析的原因。

总结,已建立的频谱图 + CNN 组合在许多问题中仍然非常有效,只要你有足够的数据。然而,针对较小的数据集,可能需要重新审视一些来自 MIR 的特征工程技术,或开发自己特定任务的表示。

提示 3:利用预训练模型或嵌入

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fa31b750c204546c8248df9e884c5e9d.png

横幅由作者使用 DALL-E 2 生成。

当数据稀缺时,最有效的策略之一是利用预训练模型或嵌入。这种方法可以让你在现有知识的基础上构建,利用在大规模数据集上训练的模型,从而缓解较小数据集的限制。

为什么使用预训练模型?

预训练模型已经学会了从其训练数据中识别和提取有意义的特征。例如,一个在流派分类任务上训练的模型,很可能在训练过程中学到了多种有意义的音乐模式。如果我们现在想构建自己的情感标签模型,使用预训练的流派模型作为起点可能是有意义的。

如果预训练模型是在类似任务上训练的,你可以将它们学到的表示转移到你的特定任务中。这一过程被称为迁移学习。迁移学习可以大幅减少从零开始训练自己模型所需的数据量和计算资源。

音乐 AI 中的流行预训练模型

几年前,最常见的方法是使用像流派分类器这样的预训练模型,并将其微调以执行特定任务。像 MusiCNN 这样的模型通常被用于这种情况。

然而,现在更常见的是使用那些专门训练过的预训练模型,这些模型可以产生有意义的音乐嵌入,即歌曲的向量表示。以下是三种常用的预训练嵌入模型:

  1. Mert-v1 由 m-a-p 提供

  2. CLAP 由 LAION 提供

  3. CLAP 由微软提供

根据我个人的经验,使用微软的 CLAP 进行迁移学习,和使用 LAION CLAP 进行相似性搜索,效果最好。

利用预训练模型的不同方式

预训练模型可以以多种方式使用:

  1. 完全微调:使用一个预训练的分类模型或嵌入模型,并在一个较小的任务特定数据集上进行微调。如果你能够使用完整的大型模型进行训练和推理,并且知道如何实现它,这种方法通常能获得最佳结果。

  2. 嵌入作为输入特征:一种更高效的资源使用方法是从预训练模型中提取嵌入,并将它们作为新模型的输入。由于这些嵌入通常是 500 到 1000 维的向量,可以附加一个具有几千个参数的较小神经网络来进行更高效的微调。对于小型数据集,这种方法通常优于完全微调

  3. 直接使用嵌入:即使没有任何微调,嵌入也可以直接使用。例如,来自预训练模型的嵌入通常用于音乐相似性搜索。CLAP 模型甚至可以用于文本到音乐的检索,或者(尽管效果还不理想)用于零-shot 分类,即没有训练的分类。

利用预训练模型的嵌入可以显著增强你的音乐 AI 项目。通过在这些模型的学习模式识别基础上构建,你避免了重新发明轮子。当数据稀缺时,预训练模型应该始终被考虑。

结论

不要让数据稀缺成为你的阻碍!许多几年前需要成千上万训练样本的使用案例,现在几乎已经成为商品。

要在小数据集上实现稳健的性能,你的首要任务应该是不要浪费任何宝贵的数据。让我们回顾一下本文的要点:

  1. 数据增强是一种让模型通过小但有效的变化多次从训练样本中学习的好方法,从而增强其鲁棒性。

  2. 更小的模型和更高效的数据表示迫使你的模型专注于数据中最重要的、潜在的模式,从而避免过拟合。

  3. 预训练模型让你通过微调借用一些来自更大 AI 系统的智能。再也不需要从头开始训练了!

当然,使用小数据集时你能实现的效果有其天然的局限性。如果你有 100 个标注样本,而你的目标是建立一个具有 10 个类别和 30 个子类别的多标签流派分类器,那么即使你使用了我所有的技巧,也不会走得太远。

尽管如此,我已经开发出了令人惊讶的能力强大的流派和情绪分类器,仅用 1000 首标注歌曲。仅仅两年前,凭借这么小的数据集实现这一目标几乎是不可能的。我认为,这些去中心化效应是当前 AI 热潮中最令人兴奋的方面之一。

如果你有一个小而高质量的音乐数据集,并且正在考虑用它进行机器学习,现在正是尝试的最佳时机!

对音乐 AI 感兴趣吗?

如果你喜欢这篇文章,或许你会想看看我其他的一些作品:

你还可以通过Linkedin关注我,获取有关音乐 AI 的新论文和趋势的最新信息。

感谢阅读本文!

3 种简单的统计方法用于离群值检测

原文:towardsdatascience.com/3-simple-statistical-methods-for-outlier-detection-db762e86cd9d?source=collection_archive---------2-----------------------#2024-06-18

如果有效,就保持简单

https://medium.com/@pelletierhaden?source=post_page---byline--db762e86cd9d--------------------------------https://towardsdatascience.com/?source=post_page---byline--db762e86cd9d-------------------------------- Haden Pelletier

·发布于 Towards Data Science ·阅读时长 6 分钟·2024 年 6 月 18 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ddd1e6187e73f6e490be2476bc2a8216.png

离群值。图片由作者提供

正如我们所知,数据科学家的一项重要工作是清理和预处理数据。大部分工作都涉及到离群值的检测和去除。大的离群值、异常峰值和错误数据会严重影响机器学习模型的训练,因此处理离群值非常重要。

但数据科学家并不总是使用像孤立森林或局部离群因子这样的机器学习模型来识别离群值。我在数据科学职业生涯中学到的一件事是,如果更简单的解决方案有效,就使用它

我想给你提供 3 个简单的统计方法,用于检测离群值,这些方法在大多数情况下效果很好。我还会展示如何在 Python 中实现这些方法。

1. Z 分数

Z 分数,也叫标准分数,是最常见的离群值检测方法之一。它本质上表示的是一个数据点距离均值有多少个标准差

给定数据集中某个数据点的 z 分数计算公式如下:

你从未见过的 3 个 Airflow 中分支的惊人用例

原文:towardsdatascience.com/3-surprising-use-cases-for-branching-in-airflow-youve-not-seen-before-058e3cb91ae0?source=collection_archive---------6-----------------------#2024-08-02

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f17032b8b193f43d59f3be5c1671b4c2.png

你的数据管道可以像这棵漂亮的树一样有许多分支。照片由 Andrew Svk 拍摄,来源于 Unsplash

分支条件性是许多 DAG 的重要特性

https://medium.com/@hugolu87?source=post_page---byline--058e3cb91ae0--------------------------------https://towardsdatascience.com/?source=post_page---byline--058e3cb91ae0-------------------------------- Hugo Lu

·发表于 Towards Data Science ·4 分钟阅读·2024 年 8 月 2 日

介绍

你多久会写一个数据管道,突然希望能够做一些有条件的操作?某些操作仅在满足一组条件时才会发生?

希望不会太频繁!Airflow已经通过 AirflowBranchPython Operator 支持了这种功能。许多其他工作流编排工具也效仿了这一做法。Prefect 有 Conditional Flows,Dagster 有 DyanmicOutput,而在 Orchestra 中,我们基于状态来实现分支。

这引出了最重要的问题:为什么?

那么,为什么要费心去做分支,使得管道变得比实际需要的更复杂呢?我们将看到,实际上有一些非常不可思议的用例,尤其是对于那些希望生活中有更多自动化的人来说。

Airflow 中分支的一个简单示例

在深入探讨用例之前,我们将使用下面的代码作为参考,以便理解分支在实践中的工作原理。

from airflow import DAG
from airflow.operators.dummy import DummyOperator
from

作为一些基础图表替代方案的三种三角形图表创意

原文:towardsdatascience.com/3-triangle-shaped-chart-ideas-as-alternatives-to-some-basic-charts-909684713a4d?source=collection_archive---------11-----------------------#2024-11-19

使用 Python 创建数据可视化,作为条形图、饼图和一些 3D 图形的替代方案。

https://medium.com/@borih.k?source=post_page---byline--909684713a4d--------------------------------https://towardsdatascience.com/?source=post_page---byline--909684713a4d-------------------------------- Boriharn K

·发表于Towards Data Science ·阅读时间 8 分钟·2024 年 11 月 19 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/540124051da4962e03fe3f3767d68b92.png

图片由Igor Karimov 🇺🇦提供,来源于Unsplash

许多图表通常由矩形或圆形组成,例如条形图和饼图。这些图表既常见又实用,因为它们不仅容易制作,而且大多数人都知道如何阅读和理解它们。

虽然它们适用于许多场合,但也有一些场景可能觉得它们过于基础,比如制作信息图或吸引人们的注意力。可以应用不同的方法使图表更具吸引力。其中之一就是改变图表的形状。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2c3374274921ba83d1ecec8a01cc9920.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/52a1979ed47b5bc891b9df8e55ec1c86.png

本文中的三角形图表示例。图片由作者提供。

本文旨在提供关于如何将三角形图表作为替代方案的创意和指南。这并不意味着它们可以完全替代原始图表。每种图表都有其优缺点,取决于使用的目的。

三角形图表

本文将解释三种三角形图表:

  • 三角形条形图

利用 Apple Silicon 的 GPU 进行深度学习的 3 种方法

原文:towardsdatascience.com/3-ways-to-leverage-apple-silicons-gpu-for-deep-learning-2cbb5b268b76?source=collection_archive---------3-----------------------#2024-03-01

Apple Silicon 提供了令人印象深刻的性能提升,并且具有极好的功率效率。我们可以将这些芯片用于深度学习吗?

https://medium.com/@jiri.moravcik?source=post_page---byline--2cbb5b268b76--------------------------------https://towardsdatascience.com/?source=post_page---byline--2cbb5b268b76-------------------------------- Jiří Moravčík

·发布于 Towards Data Science ·阅读时间 4 分钟·2024 年 3 月 1 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/bf7f41b799bfdffb1f7d5364a694b3ad.png

作者提供的图片

Apple Silicon 提供了令人印象深刻的性能提升,并且具有出色的功率效率。那么这些芯片也能用于深度学习吗?绝对可以!

在本文中,我们将探索 3 种方法,利用 Apple Silicon 的 GPU 来处理各种深度学习任务。

1. 在 PyTorch 中使用 MPS 后端

使用 GPU 进行深度学习的最简单方法是通过 Metal 性能着色器 (MPS)。MPS 扩展了 PyTorch 框架,以便利用 Mac 上的 GPU。

要使用 MPS 后端,您需要:

  • macOS 12.3 或更高版本

  • Python 3.7 或更高版本

让我们创建一个脚本,检查 MPS 是否设置正确。首先,我们需要创建一个包含虚拟环境的目录,并安装 PyTorch:

mkdir mps_test
cd mps_test
python3 -m venv .venv
source .venv/bin/activate
pip install torch

接下来,我们将创建一个 Python 文件,check.py,并使用以下代码:

3 种让你像(伟大的)数据科学家一样思考的方法

原文:towardsdatascience.com/3-ways-to-think-like-a-great-data-scientist-7d0fc3df604c?source=collection_archive---------5-----------------------#2024-02-22

通过更好的思考,让你的职业生涯更上一层楼

https://medium.com/@pelletierhaden?source=post_page---byline--7d0fc3df604c--------------------------------https://towardsdatascience.com/?source=post_page---byline--7d0fc3df604c-------------------------------- Haden Pelletier

·发表于《走向数据科学》 ·7 分钟阅读·2024 年 2 月 22 日

如果你已经经历过学习编程的过程,你会明白,这不仅仅是记住语法。它更像是学习一种新的思维方式。

首先,你需要学习工具(语法、数据结构、算法等)。然后,你会遇到一个问题,必须用高效的方式解决它,充分利用这些工具。

数据科学也是一样。在这个领域工作意味着你每天都会遇到问题,我指的不仅仅是代码错误。

数据科学家需要解决的问题示例:

我如何在这个数据集中检测到异常值?

我如何预测明天的能源消耗?

我如何将这张图片分类为面部或物体?

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f432f27517eb3fd07f6863b872e92a24.png

图片来源:Kenny Eliason,来自 Unsplash

数据科学家使用各种工具来解决这些问题:机器学习、统计学、可视化等等。但如果你想找到最佳解决方案,你需要一种方法,牢记某些原则。

1. 优先考虑数据

理解数据是最重要的东西

我知道,这听起来很显然。让我解释一下。

我的#30DayMapChallenge 2024

原文:towardsdatascience.com/30daymapchallenge-2024-d1c80e037dd6?source=collection_archive---------2-----------------------#2024-12-07

30 天,30 张地图:我在数字制图中的 11 月冒险

https://glennkong.medium.com/?source=post_page---byline--d1c80e037dd6--------------------------------https://towardsdatascience.com/?source=post_page---byline--d1c80e037dd6-------------------------------- Glenn Kong

·发表于Towards Data Science ·14 分钟阅读·2024 年 12 月 7 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/26313cc6f6bea011a79d0f05757a3fd2.png

由 DALL·E 生成的图像

#30DayMapChallenge 是一个社交媒体活动,地图爱好者在 11 月的 30 天里根据每天的主题制作地图。你可以在这里找到更多细节。每天发布一张地图并不是强制性的——许多参与者选择专注于他们最喜欢的主题。

在见证了多年的#30DayMapChallenge 后,今年是我第一次参与。我最初以为这会非常困难,但我很快发现最难的部分其实只是开始。现在,在经历了整个 11 月之后,我自豪地说我成功完成了挑战,并在 30 天内连续制作了 30 张地图!

在这篇文章中,我将分享我为挑战制作的地图,以及我在过程中的一些想法和我使用的工具。

数据来源

  1. 澳大利亚数字边界文件

  2. 哥白尼浏览器

  3. 昆士兰历史地图集

  4. 人道主义数据交换

  5. 世界综合贸易解决方案

  6. 台湾数字事务部开放数据平台

  7. 澳大利亚数字地图集

330 周数据可视化:我的旅程与关键收获

原文:towardsdatascience.com/330-weeks-of-data-visualizations-my-journey-and-key-takeaways-93f824714dd1?source=collection_archive---------1-----------------------#2024-06-22

数据可视化中持续练习如何提升我的数据科学技能

https://ydong029.medium.com/?source=post_page---byline--93f824714dd1--------------------------------https://towardsdatascience.com/?source=post_page---byline--93f824714dd1-------------------------------- Yu Dong

·发表于Towards Data Science ·阅读时长 7 分钟·2024 年 6 月 22 日

自从 2018 年开始我的全职数据科学工作以来,我一直在制作每周一张可视化图。现在,330 多周过去了,我认为这是我真正引以为豪的成就。在咖啡闲聊时,人们经常问我关于这件事的事情,这也激发了我写这篇文章,分享我的旅程和关键收获。

我将介绍我如何开始、如何找到可视化的数据集、如何选择合适的可视化工具、我所学到的知识,以及给有志成为数据可视化专家的人的一些建议。

我是如何开始的

当我开始我的第一份全职工作时,我的导师,一位 Tableau 大师,向我介绍了MakeOverMonday项目。

欢迎来到“改造星期一”!

“改造星期一”是你每周与自己和成百上千个充满激情的数据人的学习与发展时光,完全免费!

每周一加入我们,使用给定的数据集,创建更好、更有效的可视化,并帮助我们让信息更加易于获取。

“改造星期一”社区每周都会聚集来自全球的成员,我们也希望你能成为其中的一员。

这是一个了不起的社区,如果你在寻找 Tableau 数据可视化的灵感,我强烈推荐加入。

3D 图聚类与图论:完整指南

原文:towardsdatascience.com/3d-clustering-with-graph-theory-the-complete-guide-38b21b1c8748?source=collection_archive---------2-----------------------#2024-12-02

3D Python

用图论进行 3D 点云的欧几里得聚类 Python 教程。无监督分割的基本概念和顺序工作流。

https://medium.com/@florentpoux?source=post_page---byline--38b21b1c8748--------------------------------https://towardsdatascience.com/?source=post_page---byline--38b21b1c8748-------------------------------- Florent Poux, Ph.D.

·发表于Towards Data Science ·阅读时间:22 分钟·2024 年 12 月 2 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/61ee498e87b3ec271cca6437a7ed922f.png

3D 图聚类与图论。© F. Poux

除了听起来很酷,为什么我要花三周时间编写关于 3D 数据图论的 Python 教程?

简短的答案是,它对于理解 3D 场景极为有用。它可以改变你在决策场景中处理 3D 数据集的效率。

但也有许多挑战需要注意。

如果我们退一步来看,我们的眼睛能够捕捉空间信息,然后通过我们的认知系统进行处理。这就是其中的魔力所在:我们的脑袋帮助我们理解场景及其关系分解。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1b2d685c90ef979b1125dde9a0cb2da8.png

作者在《机器人自主性功能性物体场景重建》中描述的场景关系示例,2022 年。

通过内部知识表示,你可以立即知道你的场景由地板和墙壁组成,地板上有椅子和桌子,而桌子上又放着杯子、微波炉和笔记本电脑。

相交两条 3D 射线(最近点)

原文:towardsdatascience.com/3d-ray-intersection-closest-point-dc8c72122224?source=collection_archive---------8-----------------------#2024-02-12

让我们解开 3D 射线背后的数学,展示它其实并不比传统的 2D 情况更具挑战性。

https://medium.com/@thom01.rouch?source=post_page---byline--dc8c72122224--------------------------------https://towardsdatascience.com/?source=post_page---byline--dc8c72122224-------------------------------- Thomas Rouch

·发表于 Towards Data Science ·7 分钟阅读·2024 年 2 月 12 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2e951c331eed729eaafe73a0d22c9723.png

摄影:由 Tobias Cornille 拍摄,来源于 Unsplash

1. 介绍

动机

在计算机图形学、自动驾驶导航或增强现实等领域,通过操控 3D 环境来创造沉浸式体验,深刻理解射线相交和三角剖分算法,使数据科学家能够制作栩栩如生的模拟和互动虚拟世界。

它还展示了诸如伪逆矩阵、最小二乘法优化、克莱姆法则或三重标量积等数学原理,不仅仅是理论;它们是解决现实世界问题的实际工具!

射线定义

射线从给定位置开始,并沿着给定方向无限延伸,就像激光束或光线一样。

可以把射线看作是单行道,有一个固定的起点,而直线则像一条双向街道,无限延伸。

从数学上讲,一条射线由其起点o和方向d定义。由于射线是 1 维空间,射线上任意一点可以通过其相对于原点的正距离(或时间)t来参数化。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b203aab18b69d9958f77df43a81e9975.png

射线相交

找到两条射线r1r2的交点意味着找到两个参数t1t2,分别位于第一条和第二条射线上,使它们在空间中结果为完全相同的点。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fa6b317505532185f1eb8b32ccdf6611.png

一个有趣的点是,我们并没有指定光线所在空间的维度。它可以是二维的,比如纸上的一条直线,三维的,如激光束,甚至可以存在于更高维度的空间中!

由于我们要找的是t1t2的值,我们将它们连接成一个列向量x。这使我们能够将这个方程向量化成标准的线性系统Ax=b。为了更清晰,每个项下方都有注释,指明了矩阵或向量的形状,其中n是定义光线的空间维度。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3c2ddf4a94f00d44736eae162b06d844.png

注意:矩阵 A 是通过将两个方向作为列向量并排连接构建的,第二个方向是反向的。

解线性方程Ax=b可以得到t1t2。然而,如果这两个参数中的任何一个是负数,则表示交点位于某个光线的原点之后,意味着两条光线之间没有交点。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8fb70caa8ddffaa0cae50ec66ecc0fc9.png

图片由Mehdi MeSSrro拍摄,来自Unsplash

2. 2D 光线相交

引言

2D 情况是最简单的。通常,除非它们完全平行,否则两条二维线总是会在一个唯一的公共点相交。

在下图中,r1r2相交。然而,r3没有与任何光线相交,因为它与r2平行,并且在原点之后与r1相交。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/df05979d9169ef6e2dcab4efa40e235f.png

2D 光线相交——图示由作者提供

解线性系统

上面介绍的线性方程Ax=bn个方程和 2 个未知数。因此,在二维情况下,我们最终得到的是一个有 2 个方程和 2 个未知数的系统,这意味着我们只需要求解矩阵A的逆。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7524335da956aea1d4916fa9e6155511.png

如果光线是平行的,矩阵A将不可逆,因为它的两列,d1-d2,是共线的。

如果你不关心t1t2,只想知道是否存在相交,计算矩阵A的行列式并将其与 0 比较就是你所需要的全部。

如果你不关心同时得到t1t2,例如如果你只关心交点的实际二维位置,使用克拉梅法则是一个聪明的技巧。它通过矩阵A和修改过的矩阵的行列式来表示解,其中A的其中一列被b替换。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f0408dbffe70f7d8077ce6d0bd328742.png

克拉梅法则用于识别t1t2。运算符|.|表示行列式。逗号用于分隔矩阵列。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7915c7a151b0da57ffde63bd3b2a1c73.png

图片由Vince Fleming拍摄,来自Unsplash

3D 光线相交

引言

与二维情况不同,两个三维射线相交的可能性非常小。例如,试图让两个人手持的激光指示器相交是非常具有挑战性的。

线性系统Ax=b最终有 3 个方程和 2 个未知数,除非方程中有冗余,否则无法求解。

最小二乘法

由于大多数情况下没有解,两个射线之间的最短线段可以视为它们的交点。我们将p1p2分别表示为位于r1r2上的这段最优线段的端点。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4894170beb6c75c51efbae2d6f75a13a.png

3D 射线交点 — 作者图示

我们现在的任务转化为一个最小二乘法优化问题。由于Ax-b已经表示了p2p1之间的向量,所以其公式化非常简单。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6d39d07af994d5b66dbde274fe1eb9fe.png

这是一个众所周知的问题。在最优解处将梯度归零可以通过伪逆矩阵得到解,这是构建一个方阵并使其可逆的便捷方法。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1ced4f49ef7b4ff584077985aa5387e8.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a6ec95ccf0a2d28401791aef1556ebac.png

正交性

尽管在上面的图示中最短线段似乎垂直于两条射线,但我们还未正式证明这一点,尽管这看起来是直观的。

零梯度也意味着由p1p2定义的线段与两个射线方向d1d2之间的点积为零,从而证明了正交性。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e2faa09fa96ff1eec553d68ebe4d10a1.png

替代线性系统

最小二乘法方法完全有效,但我们也可以引入第三个未知变量,使得我们的线性系统可以求解。

考虑到向量d1d2p2-p1构成了一个正交基,我们可以以o1为原点构建一个正交框架。然后,可以通过表达o2相对于该框架的局部坐标来推导出点p1p2

请注意,线段p2-p1的方向由两个射线方向的叉积给出。我们将在该方向上引入带符号的比例δ,并且在正交基中使用该比例。两条射线之间的实际距离可以通过将|δ|与叉积的范数相乘得到。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/aa98e49dbef95149487fb995fd4046b9.png

t1、δ和 t2 可以通过线性方程组求解。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4d7b7ddccdaff497a2b02f78cd18d4aa.png

3x3 矩阵的行列式可以通过标量三重积来推导,标量三重积涉及一个列向量与其他两个列向量的叉积的点积。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b20e72c430c427bae012dfff6fa8e9bc.png

在我们的例子中,简化行列式方程是直接的,因为第二列已经是叉积。请注意,将叉积插入为最后一列将导致范数的否定。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8fe3951f383fdbfd31267ff4acd218a9.png

使用克拉默法则求解可以得到最优的t1t2,还可以得到带符号的尺度δ。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/01a30c132c755c622503cb50496ebbe2.png

如果你喜欢简洁的方程式,可以重新排列和交换列,去除负号,使其看起来更整洁!

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/168bcd7adb3da59d325b4d21709a8d84.png

交点

交点可以定义为最短线段的中点,即0.5(p1+p2)

射线之间的距离

如前所述,带符号的尺度δ必须乘以两个射线叉积的模长,才能获得射线之间的真实距离。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/89088b762943928dfe2be9d4f8d8b6c1.png

结论

希望你喜欢阅读这篇文章,并且它能为你提供更多关于如何求交 2D 或 3D 射线的洞见!

使用 Python 和 Meshroom 进行 3D 重建教程

原文:towardsdatascience.com/3d-reconstruction-tutorial-with-python-and-meshroom-2aa37805ab4a?source=collection_archive---------5-----------------------#2024-07-20

3D 重建

快速学习如何从照片创建 3D 模型,并掌握使用 Python + Meshroom(摄影测量法)生成点云。

https://medium.com/@florentpoux?source=post_page---byline--2aa37805ab4a--------------------------------https://towardsdatascience.com/?source=post_page---byline--2aa37805ab4a-------------------------------- Florent Poux, Ph.D.

·发表于 Towards Data Science ·5 分钟阅读·2024 年 7 月 20 日

你可能已经从我之前写的文章中听说过基于图像的 3D 重建。这是一个深度优先的示例(以备后用):

## 使用摄影测量法进行 3D 重建的终极指南

使用 3D 摄影测量法、Reality Capture、Meshroom 和 Blender 的完整实操 3D 重建教程。

towardsdatascience.com

今天,我想重点介绍一个“直奔主题”的阅读,确保你可以拍摄一堆照片,并在你的 Python 脚本中创建 3D 点云或 3D 网格,进而开发出一个很酷的体验。

如果你觉得不错,让我快速回答下面的问题:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/030d243dbfb650b1491bdda482823f2a.png

用于 3D 点云生成的工具应该选择哪一个?© Florent Poux, Ph.D.

当你准备好时,让我们开始有趣的部分吧。

📦 Florent 的资源:请在这里找到本教程的资源——首先是Meshroom 软件及其文档。然后是Anaconda 发行版,包含 Python 3.9+,以便使用一些库。

Lexcube 的地理空间大数据三维可视化!(Python)

原文:towardsdatascience.com/3d-visualization-of-geospatial-big-data-by-lexcube-python-a57512cabd69?source=collection_archive---------5-----------------------#2024-02-12

学习如何使用 Lexcube,这个用于时空域数据可视化的 Python 包!

https://medium.com/@mahyar.aboutalebi?source=post_page---byline--a57512cabd69--------------------------------https://towardsdatascience.com/?source=post_page---byline--a57512cabd69-------------------------------- Mahyar Aboutalebi, Ph.D. 🎓

·发表于 Towards Data Science ·阅读时间 9 分钟·2024 年 2 月 12 日

目录

  1. 🌟 介绍

  2. 🌐 Lexcube

  3. 📰 数据

  4. 📂 带有随机数的数据立方体

  5. 🗂️ 带有气候数据的数据立方体

  6. 🔄 光栅图层转为 Xarray

  7. 🌍 Lexcube 的 Xarray 三维可视化

  8. 📦 我们还能用 Lexcube 做什么

  9. 📝 结论

  10. 📚 参考文献

🌟 介绍

三维数据可视化(纬度、经度和时间)非常迷人,对吧?作为一名地理空间数据科学家,我一直想知道如何以最简单的方式绘制一个由数百个光栅图层合并而成的立方体数据集。在我浏览 LinkedIn 信息流时,我发现了一个很棒的 Python 库,叫做 Lexcube,它最近已在 Jupyter Notebook 上发布。关于 Lexcube 的更多信息,请参考这篇文章或查看Lexcube 在 GitHub 上的页面

首先,我要感谢 Miguel Mahecha 在 LinkedIn 上分享这篇文章,还要感谢 Maximilian Söchting 和他的团队开发了一个对地理空间数据社区非常有价值的工具。其次,这里有一个实际操作练习,帮助你使用这个包…

4 个示例助你提升 PySpark 技能

原文:towardsdatascience.com/4-examples-to-take-your-pyspark-skills-to-next-level-2a04cbe6e630?source=collection_archive---------6-----------------------#2024-01-30

使用 PySpark 适应大规模数据处理

https://sonery.medium.com/?source=post_page---byline--2a04cbe6e630--------------------------------https://towardsdatascience.com/?source=post_page---byline--2a04cbe6e630-------------------------------- Soner Yıldırım

·发布于 Towards Data Science ·7 分钟阅读·2024 年 1 月 30 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a222122f8db4bec4e2342525412c2088.png

图片由 fabio 提供,来自 Unsplash

PySpark 是 Spark 的 Python API,Spark 是一个用于大规模数据处理的分析引擎。特别是当我们处理那些使用 Pandas 和 SQL 等工具难以应对的大型数据集时,Spark 已成为数据科学生态系统中占主导地位的工具。

在本文中,我们将学习 PySpark,但与大多数教程的视角不同。我们不会简单地讲解常用的 PySpark 函数并说明如何使用它们,而是通过解决一些具有挑战的数据清洗和处理任务来学习。这样的学习方式不仅帮助我们学习 PySpark 函数,还能帮助我们了解何时使用它们。

在我们开始示例之前,先让我告诉你如何获取示例中使用的数据集。它是我用虚拟数据准备的一个示例数据集。你可以从我的 datasets 仓库下载,文件名是“sample_sales_pyspark.csv”。

让我们从这个数据集创建一个 DataFrame 开始。

from pyspark.sql import SparkSession
from pyspark.sql import Window, functions as F

spark = SparkSession.builder.getOrCreate()

data = spark.read.csv("sample_sales_pyspark.csv", header=True)

data.show(5)
# output…

如果你打算从 Pandas 转到 Polars,必须了解的 4 个函数

原文:towardsdatascience.com/4-functions-to-know-if-you-are-planning-to-switch-from-pandas-to-polars-094a04bb4ec8?source=collection_archive---------2-----------------------#2024-01-11

本文包含了 Pandas 和 Polars 的代码

https://sonery.medium.com/?source=post_page---byline--094a04bb4ec8--------------------------------https://towardsdatascience.com/?source=post_page---byline--094a04bb4ec8-------------------------------- Soner Yıldırım

·发布于 Towards Data Science ·阅读时长 6 分钟·2024 年 1 月 11 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d4761bd98958427f264f0fb138545cd6.png

图片来自 Israel PalacioUnsplash

当数据量很大时,Pandas 有时会变得难以使用。与大数据集相关的两个主要问题是 Pandas 进行内存中分析以及创建中间副本。

另一方面,Pandas 用户友好的 API 和丰富的灵活函数选择,使其成为最受欢迎的数据分析和处理库之一。

Polars 是 Pandas 的一个很好的替代方案,尤其是当数据量太大,Pandas 难以处理时。Polars 的语法介于 Pandas 和 PySpark 之间。

在本文中,我们将介绍四个在使用 Pandas 和 Polars 进行数据清理、处理和分析时必须掌握的函数。

数据

首先,我们当然需要数据来学习这些函数是如何工作的。我准备了示例数据,您可以在我的 datasets 仓库中下载。我们将在本文中使用的数据集名为“data_polars_practicing.csv”。

让我们从将数据集读入 DataFrame 开始,DataFrame 是 Polars 和 Pandas 库中的二维数据结构。

import polars as pl

df_pl =

2024 年所有分析工程师必须学习的 4 件事

原文:towardsdatascience.com/4-things-all-analytics-engineers-must-learn-in-2024-3f420d3ed4f0?source=collection_archive---------3-----------------------#2024-01-26

现代数据栈中的基础知识和即将出现的趋势

https://madison-schott.medium.com/?source=post_page---byline--3f420d3ed4f0--------------------------------https://towardsdatascience.com/?source=post_page---byline--3f420d3ed4f0-------------------------------- Madison Schott

·发布于 Towards Data Science ·6 分钟阅读·2024 年 1 月 26 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/02f17077f029e2d3a3bedfb51ce3070b.png

图片来源:Hal Gatewood 来自 Unsplash

我已经将 2024 年定为学习和投资自我成长的一年。虽然每年都应该这样做,但有时我们会把它搁置一旁,而专注于职业发展,或者是我们的业务。

不幸的是,许多人没有意识到学习新事物对职业发展的重要性——尤其是数据领域的职业。由于这个领域不断变化,知识很容易落后。

分析工程师需要每周抽出合适的时间,确保他们扩展对数据栈不同元素、分析工程的关键基础和市场上所有新工具的知识。

将此列表作为分析工程师应该关注的重点。每周或每月选择其中一个主题进行学习,观察自己在角色中的成功飞速增长。

如何在分析工程师和软件工程师之间强制执行数据合同

数据合同在过去几年非常流行,而且有充分的理由。它是分析工程师之间存在的一个长期问题…

我的求职马拉松的四个建议

原文:towardsdatascience.com/4-tips-from-my-job-search-marathon-a480613a9309?source=collection_archive---------5-----------------------#2024-03-07

用工具来应对挑战

https://medium.com/@cereniyim?source=post_page---byline--a480613a9309--------------------------------https://towardsdatascience.com/?source=post_page---byline--a480613a9309-------------------------------- Ceren Iyim

·发表于Towards Data Science ·6 分钟阅读·2024 年 3 月 7 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/10b62145c6bebc0fb9370b6a1b3e9379.png

图片由sporlab提供,来自Unsplash

我在 2023 年 8 月重新回到了求职市场。尽管大公司的裁员和当前的挑战状况让我面临很大困难,我还是毅然决定离开公司,全身心投入到寻找下一份机器学习/数据科学职位的过程中。

我天真地估计自己会在几个月内找到梦想中的职位。现实证明,这比预期的时间要长。因此,这个过程对我来说是一次马拉松,而不是短跑。幸运的是,我这个月完成了这场马拉松🎉

现在,我想分享这些宝贵的收获——我的学习经历——来激励求职者,让他们知道在这场充满起伏的马拉松中,他们并不孤单。

以下是我在这场马拉松中遵循并学到的建议:

  1. 确定你下一个角色的标准

  2. 拒绝的次数会比成功的回应多

  3. 不要盲目地撒网祈祷

  4. 使用基于 AI 的招聘工具

P.S. 最后有一个额外的小贴士😉

**免责声明:**全职投入求职需要仔细的预算规划和充足的财务资源。这可能是我在马拉松过程中遇到的最重要的考虑因素。不过,我设计这篇博客的目的是专注于如何应对挑战,并提供支持你准备面试、简历和求职信的工具。

确定你下一个角色的标准

随着你积累更多的工作经验,你会更加清楚自己在哪些工作环境中能茁壮成长。除了职位描述外,公司的文化和价值观、工作方式(远程/现场/混合),以及你所创造的影响/结果,都是成功的重要因素。

所以,问问自己这些关键问题:

  • 你在远程/混合/办公室设置下更有生产力吗?

  • 你适合什么样的领导风格和管理方式?

  • 你寻找的文化元素是什么?哪些价值观最能引起共鸣?

  • 是什么激励你每天前行?你是否希望自己的工作每天都能产生积极的影响?

这些问题将帮助你明确理想的职位和公司。你可以通过在面试中提出正确的问题,尤其是关于文化价值观的问题,来大致了解这些话题。

在准备我的面试问题时,我借助了keyvalues.com。这是一个很棒的网站,帮助你设计正确的面试问题,以便了解公司的文化价值观、领导风格和团队的日常工作。

拒绝的数量将大于成功的回应

准备好接受更多的拒绝,而不是成功的回应。这个在 LinkedIn 上疯传的图表证明了这一点。它展示了一个市场营销技术求职者的申请统计数据。从我的经验来看,我可以告诉你,这个统计数据对于数据科学/机器学习领域是有效的。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/37bbc04b734340fab3ed48c77eb87b67.png

图片来自 Reddit 上的 r/recruitinghell。 图片链接

我从 100 份申请中收到了 23 个成功回应和 5 个工作邀请。其余的要么是没有回复,要么是被拒绝。一开始,我对每一次被拒绝感到沮丧,甚至为一些我感觉和公司文化高度契合、自己技能匹配度很高的拒绝而哭泣🥲。经过几次低谷后,我学会了度过失望的情绪,并不把拒绝和自己的自我价值挂钩。

此外,拒绝仅适用于特定的职位和时间。未来相同的职位可能会重新开放,要求也可能发生变化。在此期间,你可能已经自我提升了。

例如,2023 年 11 月,我与两家公司进行了面试,分别是 MLOps 工程师和数据科学家的职位。第一次面试后,我被淘汰了。快进到 2024 年 2 月,我收到了两家公司的机器学习工程师职位的工作邀请。所以,永远不要放弃,坚持尝试✌🏼

不要盲目投递

“我一天申请多达 50 个职位,涉及两个不同的职业方向。”

…这是上面图片的创作者所说的。

要在一天内定制简历并提交 50 份申请几乎是不可能的。这是撒网式投递方法的一个例子。它是通过公司招聘页面将一份通用简历提交给每个职位发布的传统方式。

在今天竞争激烈的求职市场中,只有高质量的申请才能通过第一次筛选。要制作一份高质量的申请,你需要根据每个申请量身定制简历和求职信。

在你的简历中,按顺序排列你的技能,使与职位描述匹配的技能排在前面,提到职位描述中列出的你的品质,并确保使用积极动词

一封定制的求职信也是在申请过程中脱颖而出的必要条件。大多数公司都会记录他们的招聘流程、价值观以及他们在候选人身上寻找的品质。同时,在撰写求职信之前,了解他们正在研发的产品和面临的问题。然后将这些学习和价值观融入到求职信中,并确保突出显示职位要求中列出的技术技能。

最重要的是,利用你的网络通过初筛,不要犹豫联系你的网络(前同事、大学朋友等)。询问他们是否愿意成为你的推荐人。你会惊讶地发现,人们会支持你。我相信这种支持来自一个共情的空间,因为我们每个人在人生中都曾是求职者 😌

此外,大多数公司都有员工推荐系统,因此,如果过程成功结束,对你们双方来说都是双赢的局面。

使用基于 AI 的招聘工具

大约在九月,我意识到“撒网式投递”对我并不奏效。那时我了解了基于 AI 的工具,来提升我的简历和求职信准备过程。

我选择了Teal,这是我在这篇 LinkedIn 文章中列出的多个工具中挑选的。我使用了简历构建器功能,为每个申请制作了量身定制的简历。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/5d0be3dd544a0ee006b1a4e9c606fa7a.png

图片由作者提供

此外,匹配部分帮助我量化了职位发布与我的简历之间的匹配度。它会根据简历和职位发布中的关键词计算一个百分比。在定制简历时,你可以目标是获得一个较高的匹配得分,从而帮助你通过初筛。此外,Teal 还会建议如何改善简历中的措辞和表述你的成就。

基于 AI 的工具仍然是我们的助手,它们尚不能取代人在创意写作中的作用。我认为求职信和简历是一种专业的创意写作形式。所以不要仅仅依赖由 AI 工具生成的求职信或简历。始终评估它们的输出,并将其建议作为反馈。

额外提示: 由于年初的预算调整和人们在年初薪资调整后更倾向于换工作,因此每年第一季度的就业市场更为活跃。这是我个人的观察,也来自一位在亚马逊拥有多年人力资源经验的朋友的建议😉

感谢阅读!

六个月后,我完成了这场马拉松,并获得了一个满足我大部分标准的职位。这对我来说是一次充满挑战的旅程,经历了起伏。

我从上述建议中受益匪浅,因此无法将其保留给自己。我希望我的经验能够照亮你的求职之路,并支持你的求职过程🤗

如有评论或建设性反馈,你可以通过回复、X(Twitter)LinkedIn 联系我!

8 分钟看完 4 年的数据科学

原文:towardsdatascience.com/4-years-of-data-science-in-8-minutes-6ea5b10f0192?source=collection_archive---------0-----------------------#2024-10-24

我在这四年多的学习数据科学的旅程中所学到的

https://medium.com/@egorhowell?source=post_page---byline--6ea5b10f0192--------------------------------https://towardsdatascience.com/?source=post_page---byline--6ea5b10f0192-------------------------------- Egor Howell

·发布于 Towards Data Science ·8 分钟阅读·2024 年 10 月 24 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1332102ffa6d94702db75565f7921f14.png

图片由 Greg Rosenke 提供,来源于 Unsplash

我过去四年一直在学习数据科学,在这期间,我作为一名专业数据科学家工作了超过三年。

我从物理学开始学习,当时并不确定大学毕业后想做什么。然而,现在我有了我热爱的职业,无法想象自己做其他任何事情!

在本文中,我想按年回顾我的成长历程,分享那些帮助我成为数据科学家的经验、学习和失败。

我希望你能从我的经历中找到有价值的内容,帮助你在自己的道路上前进!

第一年

正如你们中的一些人可能知道的,我最初的计划是攻读物理学博士,最终目标是成为一名职业研究员!

在我的硕士课程中,我需要从第三年的下半年到第四年的上半年进行一年的研究。这基本上就是 2020 年。

5 个你可以在这个周末用 Python 构建的 AI 项目

原文:towardsdatascience.com/5-ai-projects-you-can-build-this-weekend-with-python-c57724e9c461?source=collection_archive---------0-----------------------#2024-10-09

从适合初学者到高级

https://shawhin.medium.com/?source=post_page---byline--c57724e9c461--------------------------------https://towardsdatascience.com/?source=post_page---byline--c57724e9c461-------------------------------- Shaw Talebi

·发布于 Towards Data Science ·阅读时间 7 分钟·2024 年 10 月 9 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/22632a1e96898cf513f040d8599bcf8d.png

图片来自 Canva。

提升 AI 技能的最佳方式是通过构建项目。然而,如果你刚刚开始,弄清楚该构建什么可能会很困难。在这里,我分享了 5 个你可以快速构建的 AI 项目,分为三个复杂度级别。我将分解实现每个想法所需的步骤和 Python 库。

初学者在考虑项目创意时犯的第一大错误是从“我如何使用这个新技术?”这个问题开始。虽然这可能是学习新工具的好方法,但其实有更好的方法。

好的项目创意应从“我能解决什么问题?”这个问题开始。这不仅在与潜在雇主分享时能讲述一个好故事,而且解决问题正是你将技术技能转化为价值的方式。

以下项目都采用了以问题为导向的方法。你可以直接实现这些创意,或者(更好)将它们作为灵感,用于解决你个人面临的问题。

5 款令人惊艳的插件,让你的 Visual Studio Code 界面更具吸引力

原文:towardsdatascience.com/5-amazing-plugins-for-an-eye-catching-visual-studio-code-ui-ebce393a5e8c?source=collection_archive---------0-----------------------#2024-10-05

通过将 IDE 转变为一个令人惊叹的编码环境,让你的代码焕发光彩

https://medium.com/@slavahead?source=post_page---byline--ebce393a5e8c--------------------------------https://towardsdatascience.com/?source=post_page---byline--ebce393a5e8c-------------------------------- Vyacheslav Efimov

·发表于 Towards Data Science ·阅读时间:6 分钟·2024 年 10 月 5 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/426f1e6f035823d64e912ed05b4e9df5.png

介绍

我已经使用 Visual Studio Code 好几年了,我坚信它是现存最优秀的 IDE 之一。虽然一些人可能更偏爱 JetBrains 的 IDE,这些 IDE 同样非常受欢迎,但 Visual Studio Code 具有显著的优势:它是免费的、轻量级的,且高度可定制。

Visual Studio Code 拥有一个庞大的开发者和贡献者社区。鉴于此,市面上存在大量的免费插件。根据我的经验,插件在提高生产力方面起着至关重要的作用,它们使工程师能够使用自定义快捷键、美化 IDE、自动保存文件,甚至管理 Git 工作流和 Docker 容器。

由于我在日常工作中频繁使用 Visual Studio Code,并且非常欣赏它让编码过程变得更加愉快,因此我决定与读者分享我最喜欢的插件。

插件有不同的用途,而本文将介绍的插件,专注于让 Visual Studio Code 的用户界面更加美观。

# 01. Atom One Dark 主题

5 个正在扼杀你作为数据工程师潜力的坏习惯

原文:towardsdatascience.com/5-bad-habits-killing-your-potential-as-a-data-engineer-755b0d56c645?source=collection_archive---------8-----------------------#2024-02-16

还有一些可以立即扭转这些问题的简单解决方案

https://madison-schott.medium.com/?source=post_page---byline--755b0d56c645--------------------------------https://towardsdatascience.com/?source=post_page---byline--755b0d56c645-------------------------------- Madison Schott

·发表于 Towards Data Science ·6 分钟阅读·2024 年 2 月 16 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9cb535ff4e78fbf4282a80ba038d1c62.png

图片由 t Kaiser 提供,来自 Unsplash

每个数据工程师都希望自己能够不断地作为专业人士进步,并提升自己的技术技能。作为数据工程师,我们喜欢接受挑战,并希望自己朝着最终目标不断取得进展。

这就是我们工作性质的特点——改善系统、实施提升数据质量的流程,并找到创新的方式来减少成本。所有的一切都在于不断向前迈步,而不是后退。

在担任数据工程师三年后,我开始感觉自己的成长停滞不前。我对自己正在做的工作不再感到兴奋,也没有从身边的人那里学到什么新东西。通过我的工作,我没有能够学习到任何新的技术技能。

现在回过头来看,我可以清楚地看到,正是时候换一个新的角色了。然而,我能明确指出有几个特定的习惯,正是这些习惯导致了我在那家公司取得的成功开始停滞。

在这篇文章中,我将分享可能正在扼杀你作为数据工程师潜力的坏习惯,以及你可以如何修正它们。

避免做困难的事情

5 次点击惊艳全场:如何通过更改数据类型快速优化 Power BI 模型

原文:towardsdatascience.com/5-clicks-to-wow-how-changing-data-types-can-quickly-optimize-your-power-bi-model-ab661b96b4fb?source=collection_archive---------7-----------------------#2024-10-04

优化 Power BI 语义模型不一定总是一个令人生畏且耗时的任务。你通常可以获得许多快速且轻松的胜利!

https://datamozart.medium.com/?source=post_page---byline--ab661b96b4fb--------------------------------https://towardsdatascience.com/?source=post_page---byline--ab661b96b4fb-------------------------------- Nikola Ilic

·发布于 Towards Data Science ·阅读时间 6 分钟·2024 年 10 月 4 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f854d30bc229cdc0a3828de79a4045da.png

图片由作者提供

几周前,我被要求优化一个运行缓慢的 Power BI 报告。当然,Power BI 报告运行缓慢的原因可能有很多,但在这篇文章中,我想与大家分享一些“低悬果实”,以及如何通过应用一些非常简单的优化技术,显著提升 Power BI 语义模型的性能。

设定场景

为了演示,我将使用一个事实表,该表包含了虚构公司“Customer First”的客户支持部门进行的聊天数据。这个表大约有 900 万行,在 Power BI 和分析工作负载的上下文中,这并不算是一个大的表。为了简便起见,我们假设我们的模型仅由这一张表组成。最后,语义模型被配置为导入模式模型。如果你想了解 Power BI 中数据是如何存储的,我建议你首先阅读这篇文章

构建受利益相关者喜爱的商业仪表盘的五个必备技巧

原文:towardsdatascience.com/5-essential-tips-to-build-business-dashboards-stakeholders-love-3312c8a94b6c?source=collection_archive---------5-----------------------#2024-12-11

一本关于设计清晰、有效且可操作的决策支持仪表盘的实用指南

https://ydong029.medium.com/?source=post_page---byline--3312c8a94b6c--------------------------------https://towardsdatascience.com/?source=post_page---byline--3312c8a94b6c-------------------------------- Yu Dong

·发布于 Towards Data Science ·阅读时间 7 分钟·2024 年 12 月 11 日

在数据科学工作中,仪表盘制作常常感觉像是不受欢迎不可避免的工作。为什么它不受欢迎?仪表盘制作比分析和建模技术含量低(不那么炫酷),而且更加重复。但为什么它也不可避免?它是理解任何产品的第一步和必备步骤,为分析和建模打开大门。它甚至有助于与利益相关者建立信任,因为仪表盘通常是来自利益相关者的首要请求。

与此同时,仪表盘的难度往往被低估。在过去的七年里,我看过许多同事制作的仪表盘。令人惊讶的是,并不是每个人都能做好这个“简单的任务”。你可能会想,仪表盘不就是做一堆图表吗?嗯,答案是有也不是。要构建一个好的仪表盘,你需要有逻辑地组织每个可视化,并简化复杂的数据,以便让受众理解。**这更关乎基于数据的决策。**此外,一个好的仪表盘总能实现自助分析,减少繁琐的数据拉取请求,反过来为数据团队带来益处。

**在本文中,我将分享我设计有效商业仪表盘的五个顶级技巧,这些仪表盘能够提供清晰、可操作的洞察力并带来持久的价值。**这些技巧适用于你使用的任何仪表盘工具——无论是 Tableau、Looker 还是 PowerBI 等。

5 个示例,助你掌握 PySpark 窗口操作

原文:towardsdatascience.com/5-examples-to-master-pyspark-window-operations-26583066e227?source=collection_archive---------3-----------------------#2024-01-22

数据分析必备工具

https://sonery.medium.com/?source=post_page---byline--26583066e227--------------------------------https://towardsdatascience.com/?source=post_page---byline--26583066e227-------------------------------- Soner Yıldırım

·发表于Towards Data Science ·8 分钟阅读·2024 年 1 月 22 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b555efeea498ae8a2fe5917442513e28.png

图片来源:Pierre Châtel-InnocentiUnsplash

我所使用过的所有数据分析和处理工具都具备窗口操作功能。有些工具更加灵活和强大,但能够在窗口上进行计算是数据分析中必须掌握的技能。

什么是数据分析中的窗口?

窗口是一组在某些方面相关的行。这个关系可以是属于同一组,或者是连续 n 天的记录。一旦我们根据所需的约束生成了窗口,就可以在其上进行计算或聚合操作。

在本文中,我们将通过 5 个详细的示例,全面了解 PySpark 中的窗口操作。我们将学习如何使用分区创建窗口,自定义这些窗口,并进行相关的计算。

PySpark 是 Spark 的 Python API,Spark 是一个用于大规模数据处理的分析引擎。

数据

我为本文准备了一个包含虚拟数据的示例数据集,您可以从我的datasets仓库下载。我们在本文中使用的数据集名为“sample_sales_pyspark.csv”。

让我们启动一个 Spark 会话并从这个数据集中创建一个 DataFrame。

from pyspark.sql import SparkSession…

提高生产力的 5 种高级数据科学家常用习惯

原文:towardsdatascience.com/5-habits-spotify-senior-data-scientists-use-to-boost-their-productivity-1ae29451253f?source=collection_archive---------3-----------------------#2024-02-05

在你的每个数据科学项目步骤中都应用这些实践

https://medium.com/@elalamik?source=post_page---byline--1ae29451253f--------------------------------https://towardsdatascience.com/?source=post_page---byline--1ae29451253f-------------------------------- Khouloud El Alami

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

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/9415faff8cf20f95c91f894185cd19f3.png

图片来自作者(同时也是作者本人)

你之所以来到这里,是因为你是一名数据科学家,想将自己的能力提升到新的高度。

这不仅仅是技术或软技能。不,你已经掌握了这些。

你所追求的是一种特别的升级。就像马里奥喝了蘑菇汁后那种疯狂飙升的状态。

那么,猜猜看?我正好有你需要的东西!!

我在 Spotify 开始了我的数据科学职业生涯,像一个迷你马里奥在大数据科学超级路易吉们的行列中玩耍,祈祷上帝保佑你能得到裁判的认可

与他们密切合作让我意识到一件事:

成为一名成功的数据科学家的关键在于你有能力 创造一个有利于成功的环境

这是让你快速成长的关键动力,就像变成超级马里奥一样!

今天是你的幸运日,因为我将与您分享我从 Spotify 的高级数据科学家那里学到的五个宝贵实践。

让我成为数据科学家的五个习惯

原文:towardsdatascience.com/5-habits-that-made-me-a-data-scientist-2036bb609d0d?source=collection_archive---------7-----------------------#2024-06-28

成为数据科学家的建议和技巧

https://medium.com/@egorhowell?source=post_page---byline--2036bb609d0d--------------------------------https://towardsdatascience.com/?source=post_page---byline--2036bb609d0d-------------------------------- Egor Howell

·发布于 Towards Data Science ·7 分钟阅读·2024 年 6 月 28 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f10b488024dee1e776c905363154cc04.png

图片来源:Nubelson FernandesUnsplash

成为一名数据科学家并不容易,但一些关键的习惯在我的旅程中帮助了我,今天我将与大家分享这些习惯!

希望这些习惯是你在学习过程中可以养成的,因为我认为它们在长期内会让你成为一名优秀的数据科学家。

以行动为导向

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/bd3e6cf1535ac94d8a573232627c088b.png

图片来源:Jakob OwensUnsplash

在学习数据科学的初期,直接投入其中就好。停止思考,开始行动。

不去过度思考,立即开始学习是最好的方法,几乎每个人都这么说。

举个例子,我总是提到没有“最好的课程”这种说法。确实,有些教程比其他的更好,但任何入门级课程通常都会涵盖相同的内容。

5 个关于生成式 AI 的严峻真相,科技领导者必看

原文:towardsdatascience.com/5-hard-truths-about-generative-ai-for-technology-leaders-4b119336bc85?source=collection_archive---------1-----------------------#2024-01-04

产生真正商业价值的 GenAI 需要真正的努力。但这是值得的。

https://barrmoses.medium.com/?source=post_page---byline--4b119336bc85--------------------------------https://towardsdatascience.com/?source=post_page---byline--4b119336bc85-------------------------------- Barr Moses

·发表于 Towards Data Science ·8 分钟阅读·2024 年 1 月 4 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/aebacd9bb52572b68e0d4abb2ced0bcb.png

原始图片来自 The Everett CollectionShutterstock 上。图片由作者编辑。

GenAI 无处不在,来自各行各业的组织都在施加压力,要求他们的团队加入这场竞争——77%的商业领袖 担心他们已经错失了 GenAI 的好处。

数据团队正在紧急响应这个需求。但要构建一个真正能推动商业价值的生成式 AI 模型是困难的。

从长远来看,快速与 OpenAI API 集成是行不通的。这是 GenAI,但它有什么护城河呢?为什么用户要选择你而不是 ChatGPT?

那种简单的勾选框式集成看似是前进的一步,但如果你还没有考虑如何将大语言模型(LLMs)与你的专有数据和商业背景连接起来,真正驱动差异化价值,那你已经落后了。

这不是夸张。我这一周仅在这个话题上就与半打数据领袖进行了对话。没有一个人没意识到这是一场竞赛。终点线前会有赢家和输家。那些是大片公司和 Netflix。

如果你觉得起跑枪已经响起,但你的团队还在起跑线前拉伸,讨论着“泡沫”和“炒作”,我总结了 5 个严峻的真相,帮助你打破自满情绪。

硬真相 #1:你的生成性人工智能功能没有被很好地采用,你的变现速度很慢。

“Barr,如果生成性人工智能如此重要,为什么我们目前实施的功能接受度如此低?”

好吧,有几个原因。其一,你的人工智能项目并不是对一系列明确的用户问题的回应。对大多数数据团队来说,原因在于你们都在赶时间,而这个过程还处于早期阶段,你们希望先获得一些经验。

然而,不久之后,你的用户会遇到一个最适合通过生成性人工智能解决的问题,而当那时发生——与你的“虎队”集思广益,探讨如何将生成性人工智能与用例结合相比,你会获得更好的采纳率。

而且因为处于早期阶段,已经整合的生成性人工智能功能只是“ChatGPT,但在这里而已”。

让我举个例子。想象一下你每天可能会用到的一个生产力应用,用来分享组织知识。这样的应用可能会提供一些命令执行功能,比如“总结此内容”、“延长内容”或“改变语气”等,用于处理结构化较差的文本块。一个命令等于一个 AI 信用点。

是的,这很有帮助,但它并没有什么差异化

也许团队决定购买一些 AI 信用点,或者他们只需切换到 另一个标签页并向 ChatGPT 提问。我不想完全忽视或低估不将专有数据暴露给 ChatGPT 的好处,但这也是一种较小的解决方案和愿景,而非那些在全国各地的财报电话会议中描绘的愿景。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/06363a5bf16d8650ff55b20495bbfe5b.png

从概念到价值的那个恼人的中间步骤。图片由 Joe Reis 在 Substack提供。

那么请考虑一下:你的生成性人工智能的差异化和附加值是什么?让我给你一个提示:高质量的专有数据。

这就是为什么 RAG 模型(或有时是微调过的模型)对于生成性人工智能项目如此重要的原因。它为大语言模型(LLM)提供了对企业专有数据的访问权限。下面我会解释原因。

硬真相 #2:你害怕在生成性人工智能(Gen AI)上做得更多。

事实确实如此:生成性人工智能让人感到畏惧。

当然,你可以将你的 AI 模型更深入地整合到你所在组织的流程中,但这感觉风险很大。让我们面对现实:ChatGPT 会产生幻觉,而且是不可预测的。它存在知识截止的问题,使得用户容易得到过时的输出。数据处理不当和向消费者提供错误信息的法律后果,即使是无意的,也是存在的。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a6059b1245525c2b30d0246bd96d9440.png

听起来足够真实,对吧?Llama 2 确实这么认为。图片由 Pinecone提供。

你的数据失误会带来后果。这也是为什么必须准确了解你在输入给生成性人工智能的数据,以及确保数据的准确性。

在我们向数据领导者们发送的匿名调查问卷中,我们询问了他们的团队距离实现生成型人工智能(GenAI)应用案例有多远,其中一位回答说:“我认为我们的基础设施并不是阻碍我们的因素。我们在这里非常谨慎——随着形势发展如此迅速,且‘失控’聊天机器人的声誉风险,我们决定按兵不动,等待一阵炒作平息。”

这是我与许多数据领导者交流时普遍感受到的情绪。如果数据团队突然展示了面向客户的安全数据,那么他们就得为此负责。数据治理是一个巨大的考虑因素,而且这是一个高门槛

这些是真实的风险,需要解决方案,但你不能通过袖手旁观来解决它们。还有一个实际的风险,就是眼睁睁看着你的业务被率先解决这些问题的团队彻底颠覆。

通过微调和 RAG 将大型语言模型(LLMs)与你的专有数据结合,是这个难题中的一大关键部分,但这并不容易……

严峻的事实#3:RAG 很难。

我相信 RAG(检索增强生成)和微调是企业生成型人工智能未来的核心组成部分。但尽管在大多数情况下 RAG 是较为简单的方法,开发 RAG 应用仍然可能很复杂。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/36663639e58011f8e281f8c3f60091db.png

我们就不能直接开始使用 RAG 吗?这有何大不了的?图片来源于 Reddit

RAG 看起来可能是定制大型语言模型(LLM)的显而易见解决方案。但即使对于最优秀的数据工程师来说,RAG 的开发也伴随着学习曲线。他们需要了解提示工程、向量数据库与嵌入向量、数据建模、数据编排、数据管道……这些都是为了 RAG 而需要掌握的。而且,因为它是新的(Meta AI 于 2020 年提出),许多公司尚未积累足够的经验,无法建立最佳实践。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/5f344840f79178db81ad9e24fcfecf51.png

RAG 应用架构。图片来源于 Databricks

以下是 RAG 应用架构的过度简化版:

  1. RAG 架构将信息检索与文本生成模型结合,因此它可以在尝试回答用户问题时访问你的数据库。

  2. 数据库必须是一个可信的来源,包含专有数据,并允许模型将最新可靠的信息纳入其回答和推理过程中。

  3. 在后台,数据管道将各种结构化和非结构化的数据源摄取到数据库中,以保持其准确性和最新性。

  4. RAG 链接接受用户查询(文本),从数据库中检索相关数据,然后将这些数据和查询传递给 LLM,以生成高度准确且个性化的响应。

这个架构有很多复杂之处,但它确实带来了一些重要的好处:

  1. 它将您的 LLM 基于准确的专有数据,从而使其变得更加有价值。

  2. 它将模型带到数据中,而不是将数据带到模型中,这是一种相对简单且具有成本效益的方法。

我们可以看到这在现代数据堆栈中成为现实。最大的参与者正在以惊人的速度工作,努力通过在其环境中提供 LLM 来简化 RAG,使得企业数据得以存储。

Snowflake Cortex 现在使组织能够直接在 Snowflake 中快速分析数据并构建 AI 应用程序。Databricks 新发布的 Foundation Model APIs 提供了直接在 Databricks 内访问 LLM 的即时能力。微软发布了 Microsoft Azure OpenAI 服务,而亚马逊最近推出了 Amazon Redshift 查询编辑器

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/88ebfcd611239e014bbd1cd1401120f4.png

Snowflake 数据云。图片来自 Umesh Patel,来源于 Medium

我相信所有这些功能都有很大机会推动高采纳率。但它们也加大了对这些数据存储中数据质量的关注。如果为您的 RAG 管道提供数据的数据存在异常、过时或其他不可靠的情况,您的生成式 AI 项目的未来将会如何?

严酷的事实 #4:您的数据反正还没准备好。

仔细审视您的数据基础设施。很有可能,即使您明天就能拥有一个完美的 RAG 管道、经过精调的模型和清晰的使用案例 (而且 那岂不是太好了?),您仍然无法将这些都与干净、良好建模的数据集结合使用。

假设您希望您的聊天机器人与客户进行交互。为了完成任何有用的操作,它需要了解该组织与客户之间的关系。如果您今天是一家企业组织,那么这种关系可能跨越 150 个数据源和 5 个孤岛数据库…其中 3 个仍然是在本地部署。

如果这描述了您的组织,那么可能您距离让数据基础设施具备 GenAI 准备状态还有一年(或两年!)。

这意味着,如果你希望很快能在生成式 AI 上做点什么,你需要在现代数据平台中创建有用、可靠、高度整合且文档完善的数据集……最好是昨天就开始做了。否则,当教练把你叫上场时,你的裤子可能还没穿好。

你的数据工程团队是确保数据健康的支柱。而现代数据架构使数据工程团队能够持续监控数据质量,确保未来的数据健康。

硬真相 #5:你可能在不知情的情况下忽视了关键的生成式 AI 参与者。

生成式 AI 是一项团队运动,尤其是在开发方面。许多数据团队犯了将关键成员排除在生成式 AI 精英团队之外的错误,而这从长远来看会给他们带来损失。

应该加入 AI 精英团队?领导层或主要业务利益相关者应率先推动这一举措,并提醒团队关注业务价值。软件工程师负责开发代码、用户端应用和 API 调用。数据科学家则考虑新的使用案例,优化模型,并推动团队朝新的方向发展。那么,谁还缺席呢?

数据工程师。

数据工程师对生成式 AI 项目至关重要。他们能够理解那些提供相对于 ChatGPT 的竞争优势的专有业务数据,并且他们将构建数据管道,使这些数据通过 RAG(检索增强生成)提供给大型语言模型(LLM)。

如果你的数据工程师没有参与其中,那么你的精英团队就没有充分的实力。那些在生成式 AI 领域最具创新性的公司告诉我,他们已经在所有开发小组中嵌入了数据工程师。

赢得生成式 AI 竞赛

如果这些硬真相适用于你,不必担心。生成式 AI 仍处于初期阶段,仍然有时间重新开始,这次要勇敢面对挑战。

后退一步,理解 AI 模型可以解决的客户需求,将数据工程师带入更早的开发阶段,从一开始就确保竞争优势,并花时间构建一个能够提供高质量、可靠数据的 RAG 管道。

而且,投资现代数据架构,将数据质量放在优先位置。因为没有高质量数据的生成式 AI,只是一堆空洞的噱头。

提升你数据科学水平的 5 项关键软技能

原文:towardsdatascience.com/5-key-soft-skills-to-elevate-your-data-science-game-1a4451f6884b?source=collection_archive---------5-----------------------#2024-04-05

数据科学家应高度重视的软技能,以便在人群中脱颖而出

https://medium.com/@florentpajot?source=post_page---byline--1a4451f6884b--------------------------------https://towardsdatascience.com/?source=post_page---byline--1a4451f6884b-------------------------------- Florent Pajot

·发表于Towards Data Science ·10 分钟阅读·2024 年 4 月 5 日

在这个故事中,我将与大家分享我认为数据科学家应高度重视的五项软技能,以帮助他们在人群中脱颖而出。这些观察基于我过去十年的经验,与数据科学家一起工作并管理他们的经历。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6265454130173751e77d9a74265604dd.png

图片来自Gary ButterfieldUnsplash上的分享

1. 好奇心

我不会让你对这个(或下一个)感到措手不及,但好奇心仍然是数据科学家(以及许多其他职业)的一个关键特征。

保持学习

数据科学家应该非常重视好奇心,因为好奇心能够促进在快速发展的数据科学领域中的持续学习和适应。

由于研究论文和会议中不断涌现创新,拥有好奇心的思维方式鼓励数据科学家紧跟新兴趋势,拥抱新工具,并不断提升自己的技能。

在我的职业生涯中,我曾有过几次专注于一个话题数月的经历,低头工作,忘记了其他一切。在某个时刻,我的好奇心把我拉回现实,促使我睁开眼睛,去寻找这段时间领域里发生了什么。如果没有它,我可能会陷入困境,变得过时。

跳出框框思考

此外,好奇心也是解决问题时创意的来源。

数据科学常常面临复杂的挑战,需要创新的解决方法,同时也常常是寻找将旧有并已验证的方法应用到新领域的创新方式,这些方法之前并未尝试过。

因此,好奇的头脑更有可能跳出框框,拓宽视野,尝试新事物。这就是你解决问题所需要的一切!

创造力并不单单来自于好奇心。例如,我认为由具有不同背景的人组成的团队更有可能激发创造力。因此,如果你是经理,考虑招聘与自己或同事截然不同的人,对不寻常的职业道路保持好奇心,你可能会发现一些珍贵的人才。

如何增强你的好奇心?

  1. 阅读

你应该多读博客和书籍(或任何你喜欢的其他阅读/收听形式)。你应该选择一些自己不熟悉的话题,超出你通常阅读的内容。如果你有科学背景,可以阅读有关商业、沟通、决策等方面的内容。

我喜欢阅读我感兴趣的话题,比如篮球、数据科学或数据工程。然而,我也尝试阅读更多关于软件工程、市场营销、创业、生物学、个人理财等方面的内容。

2. 跳出你的舒适区

抓住任何离开舒适区的机会,学习新事物。如果你采取一种对所有事物都感兴趣、对每个人都值得倾听的态度,你将扩展自己的视野,并开始质疑自己在专业领域之外的事情。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a71fde3c27af5ca7923f9dd067741f0e.png

照片由Panos Sakalakis拍摄,来源于Unsplash

2. 沟通

在任何职业中,你可能都遇到过与一个在有效沟通方面存在困难的人合作的挑战。这个问题在数据科学领域尤为突出,因为精确地传达技术概念是一项艰巨的任务。

适应你的听众

数据科学家往往处于多个团队的交叉点,需与各种利益相关者及背景各异的人合作。因此,弥合知识差距,确保每个人对所说的内容有共同的理解非常重要。

没有清晰的沟通,合作变得迅速不可能,甚至可能危及到一个项目、一个团队,或者你的工作。

在我之前的经验中,我一直对那些能够在不使用任何技术术语的情况下表达自己当前工作的人的能力感到印象深刻。对我来说,这能很好地反映出一个人对主题的掌控程度,并且在讨论之前,已经对其有了全面的理解。

高效地传达成果

即使只有 1%的项目时间用于沟通成果,这看似微小的部分,往往包含了 99%的价值。

可惜的是,我注意到许多初级数据科学家会花费数周时间完善他们的技术方法或数据分析,但在传达有影响力的见解时却因为沟通不力而失败。

如何提高你的沟通能力?

  1. 实践

你应该把每一个与人互动的机会都看作是练习和提升你沟通技巧的机会。

例如,如果你有日常会议,提前准备几分钟,确保能够清晰地传达信息给你的听众。

每当我有一个“重要”的会议时,我会花 5 分钟准备。我的准备方法如下:

永远假设他们对你所做的事情一无所知,并帮助他们填补知识空白,让他们对你所说的内容感到舒适。

同时,向他们寻求反馈:你记得我今天的主要目标是什么吗?是否足够清晰?

资源:

2. 阅读

阅读关于沟通的书籍!我强烈推荐从 Chip 和 Dan Heath 的《Made To Stick》开始,这本书提供了一种使你的想法更具记忆性和影响力的方法。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/13978828a36ed4bcb9090e731c87bfe9.png

图片由 Seema Miah 提供,来源于 Unsplash

你也可以在互联网上找到许多有趣的免费资源,比如 online.hbs.edu/blog/post/communication-techniques

3. 科学思维方式

很容易忘记“数据科学家”这一角色名称中的“科学家”部分,但非常重要的一点是,数据科学家必须运用科学的方法来利用数据解决问题。

科学严谨性构成了数据科学的基础,确保分析结果是稳健、可靠且可重复的。应用科学严谨性主要是指遵循严格的方法论,并对发现进行批判性评估。

你可以成为一名优秀的软件工程师,而不需要应用任何科学的方法论。但如果没有这些方法论,你就不可能成为一名优秀的数据科学家。

在我看来,这不是一个选择。即使你不是研究科学家,运用科学的严谨性对减少错误结论的风险也至关重要。这就是为什么,每当我与同事讨论实验和结果时,我倾向于在初期阶段更看重科学方法而非结果。

拥抱更高科学严谨性的技巧

  1. 问题定义

说起来容易做起来难。但如果你解决的是错误的问题,那么你将一事无成,浪费时间。不幸的是,大多数人都会选择第一个可行的问题版本,因为他们更喜欢编写代码。因此,解决方案很简单,投入更多时间来定义问题,和相关利益方讨论期望结果,并设置合适的初步假设/约束。

2. 统计学

统计学是数据科学家硬技能的三大支柱之一。而任何科学方法都需要合理使用统计工具。例如,统计检验可以帮助你检查特征相关性或数据分布。因此,如果你不熟悉这些工具,可以考虑提升你的统计武器库。

你可以立即在 Medium 上开始:towardsdatascience.com/ultimate-guide-to-statistics-for-data-science-a3d8f1fd69a7

我还推荐这本全面的书籍:www.oreilly.com/library/view/practical-statistics-for/9781492072935/

3. 工具

人们往往会尝试同时做多件事以节省时间。但逐步进行,每次评估一件事是必须的,这样才能确保你理解正在发生的事情,并得出正确的结论。

使用合适的工具可以显著简化过程。这正是“实验跟踪”工具的功能,随着数据科学领域的不断发展,这些工具的使用越来越广泛。

对于像 Kaggle 竞赛这样的个人项目,我喜欢使用DVC,它几年前引入了实验跟踪功能。然而,市场上也有许多更先进的工具,如MLFlowNeptune.ai

你可以在这里找到一个关于实验跟踪工具的全面比较:towardsdatascience.com/a-comprehensive-comparison-of-ml-experiment-tracking-tools-9f0192543feb

但是,你不需要复杂的工具来记录你的想法、问题和实验。所以我建议至少从用记事本写下内容开始。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/24899d565e898a8d200fe09bdf60396b.png

图片来源:Brett JordanUnsplash

4. 诚信

正如任何数据科学家都清楚的那样,数据分析的结果会根据呈现者希望传达给观众的叙事而大不相同。

他是在用数据撒谎吗?

不可否认的是,从数据集中得出的结论本质上会受到呈现者的观点和意图的影响。这个简单的事实凸显了诚信的重要性。

资源:

  • 《如何用统计学撒谎》by Darrell Huff

  • towardsdatascience.com/lessons-from-how-to-lie-with-statistics-57060c0d2f19

拥有巨大权力的同时也意味着巨大的责任。但,这并不是我认为诚信对我重要的唯一原因。

挑战模型偏见

模型中的偏见也是每个数据科学从业者应该关心的一个如今广为人知的问题。

解决这个问题是一个艰难的任务,但每个人都应该关注,因为它可能带来的商业影响,更重要的是,一个有偏见的模型可能对社会造成的潜在影响。

相关的有趣资源:

如果你像我一样是 AWS 用户,Sagemaker Clarify提供了多种偏见检测分析工具。

如果你对深度学习的公平性感兴趣,可以仔细查看DEEL 实验室的出版物,以及他们的开源解决方案,如Influencia

环境影响

数据科学的另一个伦理方面是它的环境影响,这个问题由于测量和理解的复杂性,通常被忽视。

我猜这个领域的研究正在扩展,如果你有相关材料愿意与我分享,我会非常感激。

数据科学家必须积极评估和减少他们的环境影响。例如,他们必须质疑处理大量数据是否对于实现预期的商业目标至关重要。

此外,他们应该探索减少模型环境影响的方法。然后,与利益相关者分享结果和观点,将扩大对数据驱动决策中固有环境影响的认识。

这个问题还有更多的维度,我会在未来的故事中进一步思考。

有趣的资源:

如果你想开始思考你的代码碳足迹:

你如何保持你的诚信?

诚信就是对自己诚实,在价值观上保持一致,并根据自己的原则行事。因此,首先要问自己的是:你的核心价值观是什么,以及如何在日常工作中最好地体现它们。

然后,抵制外部压力,保持忠于自己。同时,不要忽视领域中的伦理挑战。这些问题对社会来说日益重要,我们有责任提供解决方案。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/438fe29a203fe153994cb707f36bc579.png

图片来源:Afif RamdhasumaUnsplash

5. 以价值为中心

所有数据科学家都喜欢探索数据和构建模型。这也是 Kaggle 如此受欢迎的原因。作为专业人士,很容易被无尽的数据探索、无限的实验或模型优化所困住。

以价值为中心指的是一种方法或心态,它强调将提供价值作为决策、问题解决和整体战略中的主要目标。

因此,在数据科学的背景下,作为以价值为中心意味着你必须保持专注,并运用你的技能创造价值,而不是将时间浪费在那些你希望通过解决技术问题来达成最佳解决方案的事情上。

再次强调,我合作过的最优秀的数据科学家都是有目的地探索数据,提出并回答那些能帮助他们解决正确问题的问题。然后,他们进行最小限度的实验,以得出解决方案并构建 MVP。他们迅速投入生产,看看会发生什么,并进行迭代。

这条路径由在优化事物和为最终用户增加增量价值之间的无数权衡组成。

如何专注于价值?

作为以价值为中心的一部分,最难的一点是认识到,即使你不是自己构建一个全面的数据产品,你也在构建其中的一部分,因此你必须遵循产品思维,并专注于最终为终端用户创造的价值。

你的决策应该始终评估完成某事所需的时间与它在产品中所提供的价值之间的对比。有些事情很重要,但可以推迟到未来的迭代中做,另一些事情则不值得做。

在构建数据科学模型时,通常可以根据预期的性能以及模型如何影响业务,快速评估一个模型是否能提供足够的价值。

例如,如果你不熟悉如何构建基于非技术指标评估模型的自定义评分函数,可以查看这个:towardsdatascience.com/calculating-the-business-value-of-a-data-science-project-3b282de9be3c

在某些时刻,你也可能面临提高模型性能的机会。这个时候正是理解哪些改进会有价值的时候。相比你需要付出的努力,提高 0.01 的 F1 分数值得吗?这是否需要收集 10 万条新的标注数据?

由于产品负责人和其他软件工程师可能无法理解开发模型的所有技术细节,因此做出这些决策是你的责任。

其他有趣的资源:

结论

要成为一名更好的数据科学家,你应该专注于培养好奇心、沟通能力、诚信、科学思维和以价值为中心的理念。

大多数时候,我会推荐阅读书籍,但也有许多其他有价值的资料,比如在线课程和博客文章。这些技能中的一些只能通过面对现实来发展。因此,要对你将面临的机会保持警觉并做好准备。

如果你想收到关于数据科学等方面的最新文章通知,请在这里订阅或关注我。

你知道你可以拍手多次吗?

5 个你应该使用的 Snowflake 查询技巧

原文:towardsdatascience.com/5-more-snowflake-query-tricks-you-should-be-using-43dbc67ab366?source=collection_archive---------9-----------------------#2024-01-08

更少的行数,和更快的执行时间,还有一些 NLP

https://medium.com/@anthonyli358?source=post_page---byline--43dbc67ab366--------------------------------https://towardsdatascience.com/?source=post_page---byline--43dbc67ab366-------------------------------- Anthony Li

·发表于Towards Data Science ·阅读时长 5 分钟·2024 年 1 月 8 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f8ca0f5a761e423f254731e1e2f5328b.png

照片来自凯莉·西克马Unsplash

Snowflake 是一个云计算数据解决方案,允许用户在其云平台上存储数据并直接运行查询,可以通过网页浏览器直接访问。它常用于数据存储和自动扩展功能,其中集群会自动启动和停止,以管理查询负载。

本系列的第一部分,我们探讨了 Snowflake 如何具有独特的查询语法,而这些语法在其他数据库系统如 PostgreSQL 或 MySQL 中可能无法找到。当正确使用这些子句时,它们有助于提高语法和可读性,最重要的是,减少计算成本和执行时间。

在下文中,我们将介绍 5 个这样的子句,包括一些字符串处理函数,您可能最初会认为这些需要使用 Python 或 R 来完成。

1. MAX_BY / MIN_BY

min_by和对应的 max_by 子句允许我们找到与给定列的最小/最大值对应的行,并返回该行中另一个列的值。

一个常见的方法是先在子查询中找到最小值,然后将其作为筛选条件。例如…

5 种你必须尝试的 PCA 可视化方法,用于下一个数据科学项目

原文:towardsdatascience.com/5-pca-visualizations-you-must-try-on-your-next-data-science-project-148ec3d31e4d?source=collection_archive---------0-----------------------#2024-08-02

哪些特征具有最大的权重?原始特征如何贡献于主成分?这五种可视化类型能给出答案。

https://medium.com/@radecicdario?source=post_page---byline--148ec3d31e4d--------------------------------https://towardsdatascience.com/?source=post_page---byline--148ec3d31e4d-------------------------------- Dario Radečić

·发布于 Towards Data Science ·阅读时长 8 分钟·2024 年 8 月 2 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c2c37457c29a6813661d876c8bd50202.png

图片来源:Andrew NeelUnsplash

主成分分析(PCA)能告诉你很多关于数据的信息。简而言之,它是一种降维技术,用于将高维数据集转换到一个可以可视化的空间。

但我猜你已经知道这一点了。 如果不知道,可以查看我的从零开始指南。

今天,我们只关注视觉效果。到文章结束时,你将学会如何创建和解读:

  1. 解释方差图

  2. 累计解释方差图

  3. 2D/3D 组件散点图

  4. 属性双变量图

  5. 加载得分图

开始 — PCA 可视化的先决条件

我很想立刻深入可视化的内容,但你需要数据才能跟上。 本节将介绍数据加载、预处理、PCA 拟合和一般的 Matplotlib 样式调整。

数据集信息

超优化 AI 工作流的 5 个支柱

原文:towardsdatascience.com/5-pillars-for-a-hyper-optimized-ai-workflow-21fcaefe48ca?source=collection_archive---------3-----------------------#2024-09-03

创建适用于生产的、可扩展且高度优化的 AI 工作流的方法论简介

https://medium.com/@giladrubin?source=post_page---byline--21fcaefe48ca--------------------------------https://towardsdatascience.com/?source=post_page---byline--21fcaefe48ca-------------------------------- Gilad Rubin

·发布于 Towards Data Science ·阅读时间:7 分钟·2024 年 9 月 3 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c2981f3bf6f6dd818737a86793759b75.png

致谢:Google Gemini,作者提供的提示

引言

在过去十年中,每个我参与的项目中,我心里都怀揣着一个深刻的问题:

我该如何(究竟怎么)构建和开发我的 AI 和机器学习项目?

我想知道——是否有一种优雅的方式,以迭代的方式构建适用于生产的代码?一种可扩展、优化、可维护且可重现的代码库?

那么,这个秘密到底在哪里呢?谁掌握了这门黑暗艺术的知识?

多年来,我一直在全力以赴寻找答案——阅读文章、观看教程,并尝试不同的方法论和框架。但我始终未能找到一个令人满意的答案。每当我觉得自己接近解决方案时,总有某些东西仍然缺失。

经过大约 10 年的试验与错误,尤其是在过去两年专注努力之后,我认为我终于找到了一个令人满意的答案,结束了我长期以来的追寻。这篇文章是我分享所发现内容的旅程的开始。

我的研究让我识别出了5 个关键支柱,它们构成了我所称之为超优化 AI 工作流的基础。在这篇文章中,我将简要介绍每个支柱——为你概述即将到来的内容。

我想强调的是,我将介绍的每个支柱都基于实际的方法和工具,我将在未来的文章中详细阐述。如果你已经迫不及待想看到它们的实际应用,可以查看我在 Hamilton 见面会上的这段视频,现场展示了这些内容:

注意:在本文及系列文章中,我将交替使用人工智能(AI)、机器学习(ML)和数据科学(DS)这几个术语。我们讨论的概念适用于所有这些领域。

现在,让我们探索每个支柱。

1 — 基于指标的优化

每个 AI 项目都有一个我们想要实现的目标,理想情况下——还有一组我们想要优化的指标。

这些指标可以包括:

  • 预测质量指标:准确率、F1-Score、召回率、精确率等……

  • 成本指标:实际金额、FLOPS、大小(以 MB 为单位)等……

  • 性能指标:训练速度、推理速度等……

我们可以选择一个指标作为我们的“北极星”,或者创建一个综合指标。例如:

  • 0.7 × F1-Score + 0.3 × (1 / 推理时间(毫秒))

  • 0.6 × AUC-ROC + 0.2 × (1 / 训练时间(小时)) + 0.2 × (1 / 云计算成本(美元))

有一个 安德鲁·吴的精彩短视频 ,在视频中他解释了 单一数字评估指标 的话题。

一旦我们确定了一个需要优化的指标并设定了要满足的约束条件,我们的目标是构建一个在满足约束条件的同时最大化该指标的工作流。

2 — 交互式开发者体验

在数据科学和 AI 开发的世界里——交互性是关键。

作为 AI 工程师(或者我们数据科学家现在使用的任何头衔),我们需要编写在不同场景下都能无错运行的代码。

与传统软件工程不同,我们的角色不仅仅是编写“能工作”的代码。我们工作的重要部分是审视数据,检查模型的输出和各个处理步骤的结果。

最常见的交互式探索环境是 Jupyter 笔记本。

在笔记本环境中工作允许我们测试不同的实现,尝试新的 API,检查工作流的中间结果,并基于我们的观察做出决策。 这是第二个支柱的核心。

然而,尽管我们在日常工作中享受这些好处,笔记本有时也会包含臭名昭著的坏代码,这些代码只能按非平凡的顺序执行。

此外,笔记本中的一些探索性部分可能与生产环境无关,因此不清楚这些部分如何有效地交付到生产中。

3 — 生产就绪代码

“生产就绪”在不同的上下文中可能意味着不同的事情。对于一个组织来说,它可能意味着在指定的时间范围内提供结果。对于另一个组织来说,它可能指的是服务的正常运行时间(SLA)。而对于第三个组织,它可能意味着代码、模型或工作流经过充分测试,以确保其可靠性。

这些都是交付可靠产品的重要方面,具体要求可能因地而异。由于我的探索侧重于构建 AI 工作流的“元”层面,我想讨论这些定义之间的共同点:将我们的工作流封装为一个可服务的 API,并将其部署到一个可以被外部应用程序或用户查询的环境中。

这意味着我们需要有一种方法,将代码库的复杂性抽象为一个明确定义的接口,以便在各种用例中使用。让我们考虑一个例子:

想象一下,我们开发了一个复杂的 RAG(检索增强生成)系统,运行在 PDF 文件之上。它可能包含 10 个不同的部分,每个部分由数百行代码组成。

然而,我们仍然可以将它们包装成一个简单的 API,只有两个主要功能:

  1. upload_document(file: PDF) -> document_id: str

  2. query_document(document_id: str, query: str, output_format: str) -> response: str

这种抽象使用户能够:

  1. 上传 PDF 文档并接收一个唯一的标识符。

  2. 使用自然语言提问关于文档的问题。

  3. 指定所需的响应格式(例如,Markdown、JSON、Pandas DataFrame)。

通过提供这个简洁的接口,我们有效地隐藏了工作流的复杂性和实现细节。

拥有一种系统化的方式,将任意复杂的工作流程转换为可部署的 API,是我们的第三个支柱。

此外,我们理想中希望建立一种方法,确保我们的迭代性日常工作与生产代码保持同步

这意味着如果我们对工作流进行更改——修复一个 bug、添加新的实现,甚至调整一个配置——我们应该能够通过点击一个按钮,将这些更改部署到生产环境中。

4 — 模块化和可扩展的代码

我们方法论的另一个关键方面是保持模块化和可扩展的代码库。

这意味着我们可以添加新的实现,并与现有的实现进行对比测试,这些实现占据了相同的逻辑步骤,而无需修改现有的代码或覆盖其他配置。

这种方法与开放-封闭原则相一致,其中我们的代码可以扩展,但不能修改。它使我们能够:

  1. 在现有实现的基础上引入新实现

  2. 容易比较不同方法的性能

  3. 维护当前工作解决方案的完整性

  4. 在不危及整个系统稳定性的情况下扩展我们工作流的功能

让我们看一个简单的例子:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/76759faaabe47220288d951e11385ba8.png

作者提供的图片

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/56292fd73a23bbfc6d6dd636de73b554.png

作者提供的图片

在这个示例中,我们可以看到一段模块化和可配置的(伪)代码。通过这种方式,我们可以轻松地添加新的配置并测试它们的性能:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/04c39fc215cbe886f28c8bba50baf51e.png

作者提供的图片

一旦我们的代码由多个竞争的实现和配置组成,我们进入了一个我称之为**“工作流的叠加态”**的状态。在这种状态下,我们可以使用特定的配置集来实例化和执行工作流。

5 — 分层和可视化结构

如果我们进一步推进模块化和可扩展性呢?如果我们将这种方法应用于我们工作流的整个部分呢?

所以现在, instead of configuring this LLM or that retriever, 我们可以配置整个预处理、训练或评估步骤。

让我们看一个例子:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/5425e8ced3cd5f570509c5f16dc98b29.png

作者图片

这里我们看到整个机器学习工作流。现在,让我们添加一个新的数据准备实现并放大查看:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3fb1f2958404c2d54145cd6abd7dc377.png

作者图片

当我们以这种分层和可视化的方式工作时,我们可以选择工作流中的某一部分进行改进,并添加一个与现有部分具有相同输入/输出接口的新实现。

然后我们可以“放大”到这个特定部分,专注于它,而不必担心项目的其他部分。一旦我们对实现感到满意——我们就可以开始在工作流中的其他不同配置下进行测试。

这种方法解锁了几个好处:

  1. 减少心理负担: 每次专注于一个部分,提供清晰度并减少决策时的复杂性。

  2. 更容易的协作: 模块化结构简化了任务分配给队友或 AI 助手,并且每个组件都有清晰的接口。

  3. 可重用性: 这些封装的实现可以在不同的项目中使用,可能无需修改其源代码。

  4. 自我文档化: 可视化整个工作流及其组件,使得理解项目的结构和逻辑变得更加容易,而无需深入到不必要的细节。

总结

这些是我认为构成**“超优化 AI 工作流”**基础的五大支柱:

  1. 基于指标的优化: 定义并优化清晰的、项目特定的指标,以指导决策和工作流的改进。

  2. 互动开发者体验: 使用像 Jupyter Notebooks 这样的工具进行迭代编码和数据检查。

  3. 生产就绪代码: 将完整的工作流封装成可部署的 API,并同步开发与生产代码。

  4. 模块化和可扩展代码: 结构化代码,使其能够轻松添加、替换和测试不同的实现。

  5. 分层和可视化结构: 将项目组织为可视化的分层组件,这些组件可以独立开发,并且在不同的抽象层次上易于理解。

在接下来的博客文章中,我将深入探讨这些支柱,提供更详细的见解、实际示例和工具,帮助你在自己的 AI 项目中实现这些概念。

具体来说,我打算介绍我在DAGWorks Inc* Hamilton 框架之上构建的方法论和工具,以及我自己的软件包:HypsterHyperNodes(目前仍处于早期阶段)。

敬请期待更多内容!

*我与 DAGWorks Inc 没有任何隶属关系,也没有为其工作。

确保人工智能不会夺走你工作的 5 种强大策略——一名 Spotify 数据科学家的生存指南

原文:towardsdatascience.com/5-powerful-strategies-to-make-sure-ai-doesnt-steal-your-job-a-spotify-data-scientist-s-survival-52e6a353c4f6?source=collection_archive---------1-----------------------#2024-04-07

为什么我不再担心人工智能会取代我,而是做了这些事情

https://medium.com/@elalamik?source=post_page---byline--52e6a353c4f6--------------------------------https://towardsdatascience.com/?source=post_page---byline--52e6a353c4f6-------------------------------- Khouloud El Alami

·发表于 Towards Data Science ·14 分钟阅读·2024 年 4 月 7 日

我们都知道,人工智能正在向我们逼近。

这不再是“是否”的问题,而是“何时”。人工智能何时会来夺走我们的工作,把我们挤出舞台?

似乎没有人是安全的。人工智能威胁要取代几乎所有行业的工作。无论是通过机器人技术、任务委派还是自动化,我们都看到过人工智能进行手术、创造电影等。

这仅仅是个开始。真不敢想象几年后它会变得多强大,最好做好准备,对吧?

可是,怎么做呢?你如何为未知做计划?在面临完全被取代的风险时,如何规划职业生涯?

最近,这个问题一直在我的脑海中萦绕,我对此进行了很多反思。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a5686eb2b960c50da694654474e18f8e.png

作者图片

解决方案是弄清楚人工智能将占据你工作中的多少部分,哪些部分仍然需要人类的参与

通过这次反思,得到的结论出奇地积极,因为我不再感到害怕。我已经驯服了那些恐惧……

你可以在机器学习背景下使用的 5 个项目管理框架

原文:towardsdatascience.com/5-project-management-frameworks-you-can-use-in-the-context-of-machine-learning-04bde5f3a6ac?source=collection_archive---------8-----------------------#2024-04-26

在这篇文章中,我们将讨论 5 个你可以在数据科学和机器学习背景下使用的著名项目管理框架:敏捷(Agile)、瀑布(Waterfall)、SEMMA、CRISP-DM 和 KDD

https://ivopbernardo.medium.com/?source=post_page---byline--04bde5f3a6ac--------------------------------https://towardsdatascience.com/?source=post_page---byline--04bde5f3a6ac-------------------------------- Ivo Bernardo

·发表于 Towards Data Science ·阅读时间 8 分钟 ·2024 年 4 月 26 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/daa4c293ea0bbdc51f8efd25ab8627a6.png

图片来自 joszczepanska @Unplash.com

好吧,我承认,项目管理并不是机器学习和数据科学中最有趣的概念,特别是对于技术用户来说。但当谈到机器学习项目失败的原因时,糟糕的项目管理很可能排在前 5 名,或者至少会影响到其他一些在前 5 名中出现的原因(如利益相关者管理不善、没有为部署留出时间等)。

为什么在机器学习和数据科学的背景下项目管理如此困难?主要原因是,通常情况下,项目的结果充满了不确定性——在其中一些项目中,与研究的交集很大,这个灰色区域需要大量的实验。这可能与大多数项目管理框架要求严格的时间表以确保项目遵循时间和预算的要求直接冲突。

在这篇博客文章中,我们将探索 5 个著名的项目管理框架,这些框架可以应用于…

提升 RAG 表现的 5 种经过验证的查询翻译技术

原文:towardsdatascience.com/5-proven-query-translation-techniques-to-boost-your-rag-performance-47db12efe971?source=collection_archive---------0-----------------------#2024-08-08

如何在面对模糊的用户输入时,获得近乎完美的 LLM 表现

https://thuwarakesh.medium.com/?source=post_page---byline--47db12efe971--------------------------------https://towardsdatascience.com/?source=post_page---byline--47db12efe971-------------------------------- Thuwarakesh Murallie

·发表于Towards Data Science ·10 分钟阅读·2024 年 8 月 8 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/aaea2442d0b67b92c9038b9002999b61.png

图片来自travelnow.or.crylaterUnsplash

如果你认为用户会向 LLM 提出完美的问题,那你就大错特错了。与其直接执行,不如我们先优化用户的问题。这就是查询翻译。

我们开发了一个应用,允许用户查询公司曾经制作的所有文档。这些文档包括 PPT、项目提案、进度更新、交付物、文档等。这一尝试非常值得注意,因为过去许多类似的尝试都未能成功。多亏了 RAGs,这一次,结果非常有希望。

我们做了一个演示,大家都很兴奋地想要使用它。最初的推出是针对一小批选定的员工。但我们注意到的结果对我们来说并不那么令人兴奋。

这一举措本应彻底改变我们的工作方式。但大多数用户只尝试了几次应用,之后便再也没有使用过。他们退出了应用,就像这是一个为小学生准备的玩具项目一样。

日志显示了令人满意的结果。然而,我们与真正使用该应用的用户进行了交谈,以确定真正的问题。我们从中学到的经验让我们开始思考如何通过查询翻译技术来克服用户输入中的模糊性。

启动数据探索的 5 个 Python 一行代码

原文:towardsdatascience.com/5-python-one-liners-to-kick-off-your-data-exploration-d6221f94291e?source=collection_archive---------0-----------------------#2024-12-06

如何使用一行代码启动你的 EDA

https://medium.com/@pelletierhaden?source=post_page---byline--d6221f94291e--------------------------------https://towardsdatascience.com/?source=post_page---byline--d6221f94291e-------------------------------- Haden Pelletier

·发表于 Towards Data Science ·6 分钟阅读 ·2024 年 12 月 6 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/11a2589005ed21547bde9f021ab72f6a.png

图片来自 Lukas BlazekUnsplash

探索性数据分析

当谈到机器学习时,探索性数据分析(EDA)是你在将数据收集并加载到 Python 中后需要做的第一件事之一。

EDA 涉及:

  • 通过描述性统计总结数据

  • 可视化数据

  • 识别模式、检测异常和生成假设

通过 EDA,数据科学家能够深入了解数据,从而评估数据质量,并为更复杂的机器学习任务做好准备。

但有时在刚开始时,可能会遇到挑战,不知道从哪里入手。

这里有 5 个简单的 Python 一行代码,能帮助你快速启动 EDA 过程。

1. df.info()

这是每个 EDA 过程中的必备步骤。事实上,这是我加载数据框(df)后运行的第一行代码。

它告诉你:

  • 列的名称

  • 每一列中有多少个非空值

  • 列的数据类型

你需要知道的 5 个 Redshift SQL 函数

原文:towardsdatascience.com/5-redshift-sql-functions-you-need-to-know-eed4a7a01d31?source=collection_archive---------11-----------------------#2024-03-08

包括如何使用这些函数的代码示例

https://madison-schott.medium.com/?source=post_page---byline--eed4a7a01d31--------------------------------https://towardsdatascience.com/?source=post_page---byline--eed4a7a01d31-------------------------------- Madison Schott

·发表于Towards Data Science ·阅读时间:5 分钟·2024 年 3 月 8 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e828594d7da7cd85091a16d255f4e294.png

Shubham DhageUnsplash上的照片

如果你是 Redshift 的新用户,你可能会发现 SQL 语法与在其他数据仓库中编写的 SQL 有所不同。

每个数据仓库都有自己特定的 SQL 方言,Redshift 也不例外。

一开始,发现你最喜欢的函数不存在时,可能会感到沮丧。然而,Redshift 有很多你可以在代码中利用的优秀函数。

在这篇文章中,我将向你展示我在工作中发现的最有用的 Redshift 函数。每个函数都包括一个定义和代码示例,说明如何使用它。

PIVOT

PIVOT是 Redshift 内置的一个函数,它允许你进行数据透视。我的意思是什么呢?数据透视允许你重新组织数据,使得行中的值变成列,或列中的值变成行。

PIVOT 可以帮助你:

  • 统计列中的值

  • 聚合行值

  • 基于列或行值派生布尔字段

我最近在 Redshift 中使用了 PIVOT 来查找不同页面是否对每个用户有效。为此,我需要对page_type字段进行 PIVOT 操作,并…

用 Python 构建美丽堆叠面积图的 5 个步骤

原文:towardsdatascience.com/5-steps-to-build-beautiful-stacked-area-charts-with-python-601041964328?source=collection_archive---------6-----------------------#2024-01-13

如何充分利用 Matplotlib 的全部功能讲述一个更具吸引力的故事

https://guillaume-weingertner.medium.com/?source=post_page---byline--601041964328--------------------------------https://towardsdatascience.com/?source=post_page---byline--601041964328-------------------------------- Guillaume Weingertner

·发表于 Towards Data Science ·阅读时间 7 分钟·2024 年 1 月 13 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/db5af579ae224b6085072963c9ffbb1a.png

美国按来源分类的电力生产 — 图片由作者提供

动机

当支撑故事的图表清晰自解释视觉上令人愉悦时,用数据讲述一个引人入胜的故事就变得容易得多。

在很多情况下,内容和形式同样重要。

数据呈现不佳的优秀数据无法引起应有的注意,而呈现精美的糟糕数据则容易被质疑。

希望这对许多数据分析师或任何曾经在众人面前展示过图表的人有所共鸣。

Matplotlib 提供了现成的函数来快速绘制数据,但精细调整却需要更多的努力。

我花费了相当多的时间研究使用 Matplotlib 构建吸引人的图表的最佳实践,目的是为你省去这些努力。

在这篇文章中,我聚焦于堆叠面积图,并解释了我如何将零散的知识拼接在一起,从而得出这个结果……

将混乱的函数转换为可生产的代码的 5 个步骤

原文:towardsdatascience.com/5-steps-to-transform-messy-functions-into-production-ready-code-57088b9a9f75?source=collection_archive---------2-----------------------#2024-01-24

数据科学家可扩展且可维护功能指南

https://khuyentran1476.medium.com/?source=post_page---byline--57088b9a9f75--------------------------------https://towardsdatascience.com/?source=post_page---byline--57088b9a9f75-------------------------------- Khuyen Tran

·发表于 Towards Data Science ·阅读时长 11 分钟·2024 年 1 月 24 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/cf817a317ba8fcf65d878c3222a5e40d.png

图片来源:作者

动机

函数在数据科学项目中至关重要,因为它们使代码更加模块化、可重用、可读且可测试。然而,编写一个杂乱无章的函数,试图做太多事情,可能会引入维护难题,并降低代码的可读性。

在以下代码中,函数impute_missing_values非常长且混乱,试图完成很多事情。由于有许多硬编码的值,其他人将无法在具有不同列名的 DataFrame 上重用此函数。

def impute_missing_values(df):
    # Fill missing values with group statistics
    df["MSZoning"] = df.groupby("MSSubClass")["MSZoning"].transform(
        lambda x: x.fillna(x.mode()[0])
    )
    df["LotFrontage"] = df.groupby("Neighborhood")["LotFrontage"].transform(
        lambda x: x.fillna(x.median())
    )

    # Fill missing values with constant
    df["Functional"] = df["Functional"].fillna("Typ")

    df["Alley"] = df["Alley"].fillna("Missing")
    for col in ["GarageType", "GarageFinish", "GarageQual", "GarageCond"]:
        df[col] = df[col].fillna("Missing")

    for col in ("BsmtQual", "BsmtCond", "BsmtExposure"

评估 ELT/ETL 工具时需要做的 5 件事

原文:towardsdatascience.com/5-things-to-do-when-evaluating-elt-etl-tools-4b74fd622194?source=collection_archive---------8-----------------------#2024-05-07

一份让评估 ELT/ETL 工具变得不那么令人生畏的清单

https://medium.com/@erevear?source=post_page---byline--4b74fd622194--------------------------------https://towardsdatascience.com/?source=post_page---byline--4b74fd622194-------------------------------- Eva Revear

·发表于Towards Data Science ·阅读时间 4 分钟·2024 年 5 月 7 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3ad194f237d190f7ee63a22bd6cff2b5.png

照片由Volodymyr Hryshchenko提供,来自Unsplash

我们都经历过:你参加了与所有 SaaS 数据集成工具公司销售代表的(许多!)会议,并获得了 14 天的试用期来体验他们的产品。现在你必须决定测试哪些内容,以便明确地判断这个工具是否适合你和你的团队。

我想整理一些关于关键评估问题的笔记,以及几种检查功能的方法,因为我确信这是一个我将会一次又一次遇到的过程,而我喜欢为这些类型的事情准备一个模板。

这些主要是针对基于云的集成平台(例如但不限于 Fivetran、Airbyte 和 Rivery)收集的,但也可以应用于其他情况!

如果你有任何测试新数据工具的好方法,欢迎在评论区分享!

1. 创建一个评分标准

你可以找到无数关于数据集成工具评估标准的文章(我个人很喜欢这篇!),但归根结底,这一切取决于你的数据平台以及你试图解决的问题。

集合团队并确定这些需求。显然,有一些功能是必需的,比如必需的源和目标连接器,这些可能是决定性因素,但也许你还在寻找一种提供数据血统(lineage)的元数据解决方案,或者希望增加监控,或者需要扩展某个自建的系统,但它现在已经无法独立运行了。

当你列出所有这些内容时,它也能帮助你将这些评估的工作分配给团队成员,进行并行处理。

2. 立即启动一个简单的管道

选择一个简单的例子,并在第一天就将其启动。这有助于创建一个关于日志记录、元数据、延迟、CDC 以及管道中其他所有内容的整体画面。

如果幸运的话,你可能在 14 天的测试期间遇到平台错误,并能看到该错误如何在工具公司那边得到处理。如果你使用的是开源选项,这也能帮助你了解自己是否有能力在内部处理这些问题。

关键问题

  • 文档和用户界面是否能以直观的方式指导你完成权限和密钥设置、调度、架构设置等操作,还是需要你联系技术代表寻求帮助?

  • 如果发生平台错误,是否能通过日志轻松发现,还是很难判断问题是出在你还是平台本身?

  • 平台出现故障时,客户通知的速度如何,问题能多快解决?

3. 创建几个端到端的转换

一些工具带有内建的 DBT 集成,一些则允许完全自定义的基于 Python 的转换。将一些转换,甚至是一个相对复杂的转换,从现有解决方案中端到端地迁移,可以帮助你大致了解迁移的难度以及是否可能完成。

关键问题

  • 你能否以目前的数据格式进行数据导入,还是会以某种方式发生变化,进而对上游依赖造成重大影响?

  • 在数据导入之前,你是否有一些转换操作无法在工具中完成(例如,连接补充数据源、解析杂乱的多层级 JSON 等),这些操作现在是否需要在数据库中处理?

4. 输入一个非本地数据源

尝试处理来自不本地支持的源或格式的数据(可以模拟一些固定宽度的文件,或者选择一个以非常规方式导出数据的内部工具),或者至少与技术销售代表讨论一下如何处理。即便现在这不是一个问题,如果将来出现了,了解如何实现该功能是值得的。

关键问题

  • 当遇到不受支持的源时,工具是否提供足够的灵活性,在其框架内构建解决方案?

  • 当你开始为框架添加自定义功能时,是否仍然适用相同的日志记录、错误处理、状态管理等机制?

5. 强制产生一个错误

在你构建的测试管道中的某个环节,丢入一个格式错误的文件,向转换中加入错误代码,改变架构,或者以其他创意方式制造混乱,看看会发生什么。

像这样的第三方工具在某些方面可能是黑箱,当管道崩溃时,没有什么比不可理解的错误信息更令人沮丧了。

关键问题

  • 错误信息和日志是否清楚地说明了哪里出了问题,出了什么问题?

  • 一旦你修复了问题,管道中的数据会发生什么变化?是否会丢失数据,或者数据加载的次数比应该的更多?

  • 是否有选项可以重定向错误数据并允许其他部分的管道继续运行?

一些额外的好处

让非技术用户导入 Google 表格

需要集成手动上传的电子表格中的数据,是比数据工程师通常认为的更常见的使用场景。一个工具应该让生产业务团队可以轻松地完成这一操作,而无需数据工程师介入。

阅读 Reddit 上关于该工具的讨论

我发现 Reddit 在查看工具选项时非常有用。人们通常会非常客观地评估工具的正面和负面体验,并且乐于回答问题。毕竟,即使是彻底的试用阶段也会错过一些东西,而这可以是一个轻松的方式,看看你是否有盲点。

5 个让你的简历在 FAANG 应聘中真正脱颖而出的技巧

原文:towardsdatascience.com/5-tips-to-make-your-resume-really-stand-out-in-faang-applications-853c87cc7d90?source=collection_archive---------1-----------------------#2024-09-02

如何在仅仅 6 秒钟内让招聘者说“WOW!”

https://medium.com/@elalamik?source=post_page---byline--853c87cc7d90--------------------------------https://towardsdatascience.com/?source=post_page---byline--853c87cc7d90-------------------------------- Khouloud El Alami

·发表于 Towards Data Science ·阅读时长 8 分钟·2024 年 9 月 2 日

你是否厌倦了投递无数简历,却只收到寂静的回应?

也许你觉得自己陷入了一个无休止的申请拒绝循环,并且你开始怀疑自己是否能够找到一份工作。

相信我,我完全理解你的感受,因为就在几年前,我和你处于同样的境地——我投递了数百份申请。我倾注了全部心血在每一份申请上,但最终得到的只有拒绝。

但事情是这样的:我逆转了局面,最终拿到了 Spotify 数据科学家的梦想职位。

怎么做到的?一切的转机开始于一份令人印象深刻的简历,它让我在人群中脱颖而出。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a5ce00f2f144136de8aa3e82f0354241.png

作者图片

在这篇文章中,我将分享改变我求职命运的五个强有力的技巧。此外,我还将揭示一个最终的秘密,这个秘密在我成功获得 Spotify 数据科学家职位时起到了至关重要的作用——这是我当时甚至没有意识到的……

5 种有用的可视化来增强你的分析

原文:towardsdatascience.com/5-useful-visualizations-to-enhance-your-analysis-022a5dd67912?source=collection_archive---------4-----------------------#2024-03-24

使用 Python 的统计可视化库 Seaborn 来提升你的分析。

https://gustavorsantos.medium.com/?source=post_page---byline--022a5dd67912--------------------------------https://towardsdatascience.com/?source=post_page---byline--022a5dd67912-------------------------------- Gustavo R Santos

·发表于 Towards Data Science ·7 分钟阅读·2024 年 3 月 24 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/da6cf07e13b039cd7ac4f254d751e0f2.png

图片来源:ANIRUDHUnsplash

介绍

Seaborn 已经存在很长时间了。

我敢打赌,它是最著名且最常用的数据可视化库之一,因为它对初学者友好,使非统计学家也能构建强大的图形,从而帮助提取有统计支持的见解。

我不是统计学家。我对这个主题的兴趣来源于数据科学。为了更好地完成我的工作,我需要学习统计概念。因此,我喜欢能轻松访问直方图、置信区间和线性回归的方式,并且代码量非常少。

Seaborn 的语法非常基础:sns.type_of_plot(data, x, y)。使用这个简单的模板,我们可以构建许多不同的可视化,例如 barplothistplotscatterplotlineplotboxplot 等。

但这篇文章并不是要讨论这些。它讨论的是其他几种增强型可视化,它们能够在你的分析中带来不同。

让我们看看它们是什么。

可视化

要创建这些可视化并与本练习一起编写代码,只需使用 import seaborn as sns 导入 seaborn 库。

5 种服务开源 LLM 的方法(带代码示例)

原文:towardsdatascience.com/5-ways-to-serve-open-source-llms-with-code-examples-39e02cdd4a70?source=collection_archive---------8-----------------------#2024-04-09

适用于 Llama 2 7B 的每种方法的代码和说明

https://medium.com/@CVxTz?source=post_page---byline--39e02cdd4a70--------------------------------https://towardsdatascience.com/?source=post_page---byline--39e02cdd4a70-------------------------------- Youness Mansar

·发表于Towards Data Science ·阅读时间:10 分钟·2024 年 4 月 9 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/41df84ad14cb436bcece2b94c2995562.png

图片由Kyaw Tun拍摄,来自Unsplash

在快速发展的大型语言模型(LLMs)领域,服务它们的工具和技术正以前所未有的速度进步,几乎与这些模型本身的速度一样快。与 xgboost 或 MNIST 分类器 CNN 等传统模型不同,LLM 模型在规模和复杂性上都要庞大得多,因此在部署时需要更加细致的关注。

本文的焦点集中在开源 LLM 上,它们因可调性和可操作性而脱颖而出,可能是最具优势的选择,因为它们允许任何人参与并推动这一领域的进步。

我的目标是引导你了解多种服务 LLM 的方法,满足不同的使用场景。我将介绍五种不同的选项,每种选项都附有详细的复制指南,并对其各自的优缺点进行全面分析。

我们将探讨本地部署和使用托管服务的选项。更重要的是,我们将讨论的这些服务提供了丰厚的免费额度,帮助你在不花一分钱的情况下进行实验。

以下是可用的选项:

  1. 本地服务器:Anaconda + CPU

  2. 本地服务器:Anaconda + GPU

作为领导者,你如何破坏人工智能的 5 个方式

原文:towardsdatascience.com/5-ways-you-are-sabotaging-ai-as-a-leader-826d575aff3b?source=collection_archive---------4-----------------------#2024-08-15

那些正在偏离人工智能潜力并烧掉投资的关键错误

https://medium.com/@kminoguem?source=post_page---byline--826d575aff3b--------------------------------https://towardsdatascience.com/?source=post_page---byline--826d575aff3b-------------------------------- Kate Minogue

·发表于Towards Data Science ·阅读时间 7 分钟·2024 年 8 月 15 日

在最近几周,随着各种技术公告的发布,我们开始听到关于人工智能泡沫破裂的声音。

在此之前,我们迎来了那个姗姗来迟的词语“AI 洗牌”,用来形容公司为了利用人工智能的热潮,纷纷在财务报告和初创公司推介书中添加“人工智能”这个词。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/94cc5faad576e2eff5dcb5750f5f253f.png

图片由Francesca Zanette提供,来源于Unsplash

随着越来越多的人对人工智能能否兑现其承诺产生怀疑,公众的审视将转向这项技术、本身的能力以及开发它的人。

我希望把聚光灯照在商业领袖、创始人、CEO 以及决策者们身上,关注他们在人工智能投资成功或失败中的角色,以及过去两年我所见到的错误,这些错误将我们带到了今天的局面。

让我们从一个大问题开始,好吗?

1. 为了人工智能本身而优先考虑人工智能

每当一种新技术兴起时,都会出现这种情况。我称之为“闪亮物体综合症”,它与 FOMO(害怕错过)密切相关。我们渴望下一个大事件、最复杂的技术,以便跟上行业的步伐。而我们却没有放慢脚步,思考它的真正用途。

《50 次初吻》与 MemGPT

原文:towardsdatascience.com/50-first-dates-with-memgpt-d6e903b16fdc?source=collection_archive---------12-----------------------#2024-02-28

有时候,一个好故事(加上一些滑稽的喜剧)有助于我们理解复杂的问题。

https://medium.com/@ethan.m.knox?source=post_page---byline--d6e903b16fdc--------------------------------https://towardsdatascience.com/?source=post_page---byline--d6e903b16fdc-------------------------------- Ethan Knox

·发布于 Towards Data Science ·阅读时间 11 分钟·2024 年 2 月 28 日

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ce17d98f65b39c1147fa6fa5104845a3.png

OpenAI. (2024). ChatGPT [大型语言模型]. /g/g-2fkFE8rbu-dall-e

注:本文最初发布于 pirate.baby,这是我在互联网上的小角落。现在在这里重新发布以扩大影响力。

前言

从电影院开车回家的路上不太顺利。那时我的女朋友坐在副驾驶座上,双臂交叉,交通信号灯的红光与她的心情相符。“你不能让它只是浪漫的。你为什么非得把一切都毁了!?!”我们刚刚看完了*《50 次初吻》*,这是一部经典的桑德勒/巴里摩尔浪漫电影,讲述了一位因脑部受伤无法形成长期记忆的女性的故事。在电影中,露西(巴里摩尔饰)通过她的日记建立了自己的“外部记忆”;这虽然是一个巧妙的情节设计,但也需要观众的信任,而我却无法接受这种设定。在电影字幕滚动时,我做了一些速算:如果露西每篇日记的写作时间是 20 分钟(这比大多数人写得还快,而且大多数人不需要弥补脑损伤),每篇日记的阅读时间大约是写作时间的一半——大约 10 分钟——所以,阅读一周的日记将需要超过一个小时。而到了 6 个月时,每天的回顾将需要比一天还要多的时间来阅读。浪漫吗?是的。现实吗?不是。所以我们争论了起来。我记得我们的对话大致是这样的:

“她*:但是如果每周天她写一张过去一周的备忘单,只读那些呢?那样会节省时间。”***

:即便是每周总结,也不到一年就会变得无法阅读。”

:好吧,那如果她总结了那些备忘单呢?她可以不断把历史压缩得越来越小。”

:是的,但最终她会丧失太多细节,摘要会变得毫无用处。”

:但她还是会有她的日记,什么时候需要那些细节时可以查看!”

:她怎么能搜索到那个呢?我们又回到了原点。”*

二十年后,“露西问题”成为了帮助我们理解设计大型语言模型代理框架中最重要挑战之一的完美视角。加州大学伯克利分校的研究人员提出的解决方案非常具有创新性,并且充满了令人兴奋的潜力——这也是一个与我在那次回家路上的争论中反对的“露西解决方案”非常相似的方案。看来我欠某人一个迟来的道歉。

露西语言模型:几乎完美的类比

大型语言模型实际上只是函数。你输入至少一个参数(文本),它们就会输出相应的结果。这个输出是模型业务逻辑、组合参数和内部参数的产物——其中一个参数就是用来开发推理模型的训练数据。这些训练数据作为模型的“记忆”;没有它,LLM 几乎不会输出任何有价值的信息,就像试图与一个新生儿进行深入对话一样。大型语言模型中的训练数据“记忆”在推理时是固定的,完全像电影中的露西的记忆。她已经积累了经验并收集了信息,直到某个非常具体的时刻(在她的案例中,是她事故的那一天);从那天起,她根据当时的心理状态和记忆来解读刺激。这正是大型语言模型推理的运作方式——固定在训练完成的那一刻,结果函数被封存。

每次执行 LLM 函数时(这里我们将这种执行和响应的结合称为回合,借用聊天术语),就像露西生活中的一天一样。在模型温度设置为 0(确定性)时,每个回合在相同输入下将完全像露西的早期日常——一遍又一遍地重复同一天(并且做很多一模一样的生日蛋糕)。LLM 不能像露西一样形成新的“记忆”,它只是一个纯粹的推理终端。

为了弥补这一点,使用大语言模型时,自然的下一步是将这些新的“记忆”作为文本的一部分,传递给 LLM 函数,从而有效地增强了语言模型在该回合期间的训练数据(1)。然而,语言模型的上下文窗口——即可以在单次回合中输入和输出的文本量——是有限的。同样,这正是巴里摩尔(Drew Barrymore)在电影中角色体验世界的方式;她的上下文窗口仅限于一天。就像我多年前所说的,露西的记忆最终需要比她一天之内能够记住的时间更长才能被消化一样,必须在回合中包含的新知识很快就会超出可用的上下文窗口。

提示工程的局限性

大部分关于大语言模型(LLM)工程的讨论都集中在提示工程上,即设计我们在每次对话中提交的内容,以产生最理想的结果。围绕提示设计迅速发展了一个完整的生态系统,从提示工程课程到提示交换市场——这一切都源于这样一个观点:通过“完美的提示”,你可以引导出“完美的输出”。

亨利,桑德勒在电影《50 次初恋》中的角色,可能是最早的提示工程师之一。在电影的开头,亨利爱上了露西,并同意不告诉她她的伤势,而是每天重新追求她。他每天的“提示”从一开始就异常拙劣,大多数以拒绝告终。随着时间的推移,他的技巧逐渐演变,直到露西每天都重新爱上他。我们在无数的语言模型演示中也能看到类似的例子,精心设计的提示被用来为数据集可视化分析或生成精准的求职信。

这些例子令人印象深刻,但这种提示设计真的有多有用呢?在电影中,亨利最终解决了无限次初恋中的极大局限性,告诉露西她的病情。对于语言模型而言,单独执行的“完美提示”同样也有其局限性。复杂任务需要多个复杂的步骤,每个步骤都建立在一个修改过的状态上——这无法在单次回合中完成。虽然提示工程无疑是解决问题的重要组成部分,但它远不是我们问题的整体解决方案。

RAG,一家报纸和一盘录像带

对于露西和语言模型来说,一旦我们开始外部化记忆,事情就变得有趣起来。检索增强生成(RAG)在 LLM 相关内容中可能是仅次于提示工程的关注焦点。RAG 可以简单地表述为“将文本存储在某处,然后在每次迭代中搜索该文本并将其片段加入到提示中。”目前最常见的 RAG 实现是盲语义搜索,其中每次用户输入都会根据语义相似性在 RAG 存储中进行搜索,然后将前几个搜索结果与用户输入一起组合成提示。它们看起来像这样:

# prompt with just user input
Question: What is the last thing Todd said before he quit yesterday?

vs

# prompt with vector similarity search results for "What is the last thing Todd said before he quit yesterday?" via embeddings, prepended to prompt
Context:
"Margo: Todd is quitting today!"
"Todd: I am quitting today. I've had enough."
"Clark: I can't believe Todd finally quit, Margo is going to freak."

Question: What is the last thing Todd said before he quit yesterday?

RAG 注入的上下文可能非常有用,也可能几乎没有相关性。更重要的是,问题可能根本不需要上下文,而 RAG 可能只是噪音。

《50 次初恋》再次没有让人失望,通过现实生活的类比做得很好。在电影中,露西的病情通过伪造的情境线索被隐藏起来;她的父亲用重新印刷的报纸替换掉她的报纸,将一场录制过的足球比赛当做现场直播播放,每天晚上重新粉刷墙壁,让她第二天可以再次粉刷,而她却毫无察觉。这些情境的设置增加了提示的有效性,使露西能够度过完整的一天(尽管是同样的一天重复上演)。它比完全依赖当天的自然事件要显著更好地达成预期目标(露西享受她的一天并能在其中正常运作)。随后,亨利尝试通过一段 VHS 录像带来诚实地面对露西。对于电影情节而言,这是一个关键时刻,因为这是露西恢复自主性的第一步。对于语言模型而言,这和报纸与涂料是一样的;每一次迭代在包含 RAG 内容时可能会更好、更有信息,但它依然是一个孤立的迭代,没有真正的外部状态管理。

无论露西消费的是哪一个——假报纸还是亨利的真实 VHS 录像带——露西生活的改善仅限于当天的结果。露西依然没有自主权去过完整的生活,就像我们的语言模型无法向完成复杂任务迈出任何有意义的步伐一样。

就像提示工程一样,RAG 是拼图的一部分,但它本身并不是答案。

一颗有日记的心灵

让我们从车上回顾一下那个理论。如果露西保留了一本日记,然后通过总结、整合并制作备忘单来管理这个“外部记忆”?与她父亲的报纸或亨利的 VHS 录像带不同,这种记忆将完全由她掌控。决定哪些信息至关重要,哪些记忆可以被遗忘,哪些知识应存放在“冷存储”中,只有在需要时才会被挖掘出来。电影触及了这一理念(尽管是通过我那破坏浪漫的逻辑才真正看到它在细节上的展开)。拥有这样的外部记忆,露西现在不再受限于她的上下文窗口。她可以根据兴趣追求任何事情,无论多长时间,积极参与日常但重要的生活事件,拥有一个家庭,活出自己。她可以在周一制定一周的菜单,在周三去买菜,周五做饭——这些由几本笔记本和待办清单所赋予她的自主性。

这与MemGPT项目背后的理念非常相似(2)。上下文窗口、聊天历史和 RAG 知识库被视为分层的“记忆”;每个记忆可以通过工具调用由 LLM 写入或清除。不同于将每个回合视为孤立的提示 + RAG + 输入 = 响应,“核心”记忆(上下文窗口的内容)被持续处理,像一个守护进程一样,在每次“心跳”中进行新的回合。就像每一天露西都会看到前一天的笔记和待办事项列表一样,每一回合,语言模型都会看到由上一个回合组装的核心记忆。在这一回合中,语言模型可以编辑这个核心记忆,将信息从核心移入归档记忆,或者从归档记忆中搜索/调用并将其添加回核心,而这些变化将在下一回合中应用于核心记忆。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/81bcf2324dfb179e225024c4aa532de1.png

来自MemGPT 研究论文。这是一个极为出色的作品,非常推荐大家亲自去阅读。

这里是一个代理如何工作(带有一些伪代码)来回答用户关于某个公司的问题的示例。代理有一个描述自己和用户的核心记忆,一个包含最后五条信息的历史记录部分,以及代理可以调用的工具列表。这个核心记忆每 10 秒钟作为提示传递一次,或者在外部触发时更早传递。

  1. 在第一次处理时,代理调用archive_lines()工具将用户信息的第二段移入冷存储。为什么?因为系统提示告知代理当前和最大内存大小,并指示代理在需要时进行自我调整。

  2. 在下一轮中,工具调用请求和结果是核心记忆历史中的最新条目(上一轮的 2 个最旧条目已被移到回忆记忆中,不可见)。在这一轮中,智能体调用pause_heartbeats()以等待外部刺激,因为它检测到没有其他内容需要在自身的核心记忆中更新。

  3. 下一轮由用户消息触发,这是本轮核心记忆中的最新历史条目。用户消息是“西雅图办公室有多少人?”智能体的第一个动作是调用get_employee_list()工具,并伴随内部独白“我必须获取员工列表,并且只计算在西雅图办公室的员工。然后,我必须将消息发送回用户。”

  4. 在下一轮中,智能体的工具调用、内部独白和工具调用结果都在核心记忆历史中,但原始的用户消息已被推出。在这一轮中,智能体的内部独白是“西雅图办公室有 65 名员工。我必须获取原始问题,以便能正确回答它”,工具调用是retrieve_message(user, -1),以获取用户的上一条消息。

  5. 在下一轮中,智能体调用send_message("西雅图办公室有 65 名员工"),并回应用户。

节奏继续。

这种“语言模型操作系统”与推理服务如何完成复杂多面的任务形成鲜明对比。它还改变了作为智能体的“进化”范式,使应用程序能够进行调整和自我修正。提示和 RAG(检索增强生成)成为生成“循环”中的可修正元素;如果 RAG 搜索无效或提示偏离目标,它可以在下一轮中重新尝试或进行补偿。与单轮智能体设计最显著的区别在于,这种自我管理的记忆结果是累积的。这是实现真正智能体所必需的。

我对基于这一概念构建的框架可能带来的意义感到非常兴奋;向一个精心设计的智能体(或智能体群体)添加刺激,变成了一个执行层,超越了文本生成,并且其投资回报随着任务复杂度的增加而呈指数增长。以这种方式运行的语言模型仍然是一个语言模型——一个功能,而非有知觉的存在——但它跨越了一个外观的门槛,这是科幻作品中的东西。更重要的是,它为生成方程式添加了一个关键元素:重复。我看不到没有这个元素,自动智能体能够成功。人类不会立即想到每一个必要的想法并一口气说出完美的回答;我们采取步骤,提出问题以揭示新的问题,暂停内心思考,然后得出答案。通过赋予应用程序同样的能力,这种语言模型操作系统可能成为计算领域的新范式。

对于我们这些构建用户交互代理的人来说,这是一个值得关注并投入时间和精力的概念。单轮提示库和切片式嵌入构建,通过 RAG 处理不良响应是我们在六个月前的 AI 黑暗时代里想到的最佳主意,但我认为它们无法带我们走向目标。在《50 次初恋》中,Lucy 嫁给了 Henry,成为了妈妈,并航行到了阿拉斯加,所有这一切都因为她恢复了掌控自己思想和管理记忆的能力。如果我们想解锁语言模型代理,它们也需要在“操作系统”中拥有相同的能力。

下次加入我,我们将探讨《快乐吉尔摩》和 K8S 之间的相似之处(提示:它们之间没有任何相似之处)。

脚注:

  1. 为提示添加上下文并微调或重新训练模型其实并不完全是同一件事,但为了清晰地展示主题概念,我愿意在技术准确性上做出一些适当的妥协。

2. 请注意,在本文中我指的是 MemGPT 背后研究所提出的概念,而不是其具体实现。这里的术语、伪代码和事件描述并不旨在反映软件项目本身。

MemGPT 引用:

packer 2023 memgpt, MemGPT: 面向 LLMs 作为操作系统的未来

作者:Packer, Charles 和 Wooders, Sarah 和 Lin, Kevin 和 Fang, Vivian 和 Patil, Shishir G. 和 Stoica, Ion 和 Gonzalez, Joseph E.

arXiv 预印本 arXiv:2310.08560

Logo

更多推荐