Press "Enter" to skip to content

5种获取有趣数据集的方式,用于下一个数据项目(不是Kaggle)

厌倦了 Kaggle 和 FiveThirtyEight 吗?以下是我用于获取高质量独特数据集的替代策略

Efe Kurnaz 在 Unsplash 上的图片

一个出色的数据科学项目的关键是出色的数据集,但是找到好的数据远比说起来容易得多。

我还记得一年多以前我在攻读数据科学硕士学位时的情况。整个课程中,我发现构思项目点子并不难,最困难的是找到好的数据集。我会花费数小时搜寻互联网,拔光自己的头发,试图找到精美的数据源,却一无所获。

从那时起,我在方法上有了很大的进步,本文将分享我用于查找数据集的5种策略。如果你已经厌倦了 Kaggle 和 FiveThirtyEight 这些标准数据源,这些策略将使你获取到更具独特性和更符合你特定用例的数据。

1. 制作自己的数据

没错,你没看错,这是一种合法的策略,甚至还有一个花哨的技术名称(“合成数据生成”)。

如果你正在尝试新点子或有非常具体的数据要求,制作合成数据是获得原始和定制数据集的绝佳方法。

例如,假设你正在尝试构建流失预测模型——一种可以预测客户离开公司的概率的模型。流失是许多公司面临的常见“运营问题”,解决这类问题是展示你可以使用机器学习解决商业相关问题的绝佳方式,我之前已经论证过:

如何找到独特的数据科学项目点子,使你的组合更加突出

忘记 Titanic 和 MNIST:选择一个独特的项目,建立你的技能并帮助你脱颖而出

towardsdatascience.com

然而,如果你在网上搜索“流失数据集”,你会发现(截至写作时)只有两个主要数据集对公众明确可用:银行客户流失数据集和电信流失数据集。这些数据集是一个很好的起点,但可能不反映其他行业中建模流失所需的数据。

相反,你可以尝试创建更符合你要求的合成数据。

如果这听起来太好不过了,那么这里有一个我使用 ChatGPT 创建的示例数据集:

作者上传的图像

当然,由于 ChatGPT 在创建数据集的速度和大小上存在限制,因此如果你想扩大应用范围,我建议使用 Python 库 faker 或 scikit-learn 的 sklearn.datasets.make_classificationsklearn.datasets.make_regression 函数。这些工具是以眨眼之间的速度自动生成大规模数据集的绝佳方式,非常适合构建概念验证模型,而不必花费大量时间寻找完美的数据集。

在实践中,我很少需要使用合成数据创建技术来生成整个数据集(并且,正如我将在后面解释的那样,如果你打算这样做,最好谨慎行事)。相反,我发现这是一种生成对抗性样本或向数据集添加噪音的非常巧妙的技术,使我能够测试我的模型的弱点并构建更健壮的版本。但无论你如何使用此技术,都是一种非常有用的工具。

向公司礼貌地请求数据

当你找不到你所需要的数据类型时,创造合成数据是一个不错的解决方案,但显而易见的问题是,你无法保证数据是真实人口的良好代表。

如果你想保证你的数据是真实的,最好的方法是,惊喜惊喜……

……实际上去找一些真实的数据。

一种做法是联系可能拥有这些数据的公司,询问他们是否有兴趣与你分享一些数据。显然,如果你计划将数据用于商业或不道德目的,没有任何公司会给你高度敏感的数据,因为这只会是很愚蠢的行为。

然而,如果你打算将数据用于研究(例如,用于大学项目),如果是在 quid pro quo 联合研究协议的背景下,你可能会发现公司愿意提供数据。

这是什么意思?实际上非常简单:我指的是一种安排,即他们向你提供一些(匿名化/去敏感化)数据,你使用这些数据进行研究,这对他们是有一定好处的。例如,如果你对流失建模感兴趣,你可以制定一个比较不同流失预测技术的方案,然后与一些公司分享方案,问是否有潜力合作。如果你坚持不懈,广泛投网,你可能会发现一家公司愿意为你的项目提供数据,只要你与他们分享你的发现,以便他们从研究中获得好处。

如果这听起来太好了,你可能会惊讶地听到,这正是我在硕士学位期间所做的。我向几家公司提出了一个建议,说明我如何使用他们的数据进行有益的研究,签署了一些文件以确认我不会将数据用于任何其他目的,并使用一些真实世界的数据进行了一项非常有趣的项目。这确实是可以做到的。

我特别喜欢这种策略的另一件事是,它提供了一种锻炼和发展数据科学中很广泛的一组重要技能的方式。你必须善于沟通,展示商业意识,并成为管理利益相关者期望的专业人士 – 所有这些都是数据科学家日常生活中必不可少的技能。

请给我你的数据。我会做个好孩子,我保证!Nayeli Rosales 在 Unsplash 上的图片

查找学术期刊文章代码存储库

许多学术研究中使用的数据集并未在 Kaggle 等平台上发布,但仍可供其他研究人员使用。

找到这些数据集最好的方法之一是查找与学术期刊文章相关联的存储库。为什么?因为许多期刊要求其贡献者公开可用的基础数据。例如,在我的硕士学位期间使用的两个数据源(Fragile Families 数据集和 Hate Speech Data 网站)在 Kaggle 上不可用,我是通过学术论文和其相关代码存储库找到它们的。

如何找到这些存储库?实际上非常简单 – 我开始打开 paperswithcode.com,搜索我感兴趣的领域的论文,查看可用的数据集,直到找到有趣的内容。根据我的经验,这是一种非常好的方法,可以找到还没有被许多人在 Kaggle 上处理过的数据集。

BigQuery 公共数据集

老实说,我不知道为什么更多的人不利用 BigQuery 公共数据集。那里有数百个数据集,涵盖从 Google 搜索趋势到伦敦自行车租赁到大麻基因组测序的所有内容。

我特别喜欢这个来源的一件事是,许多这些数据集都非常商业相关。你可以告别像花卉分类和数字预测这样的小众学术课题;在 BigQuery 中,有关于真实商业问题的数据集,例如广告表现、网站访问量和经济预测。

很多人因为需要 SQL 技能来加载这些数据集而避开它们。但是,即使你不懂 SQL,只懂像 Python 或 R 这样的语言,我仍然鼓励你花一两个小时学习一些基本的 SQL,然后开始查询这些数据集。它不需要很长时间就能上手,这确实是一个高价值数据资产的宝库。

要使用 BigQuery 公共数据集中的数据集,你可以注册一个完全免费的账户并按照此处的说明创建一个沙盒项目。你不需要输入你的信用卡详细信息或其他什么东西,只需要你的名字、电子邮件、关于项目的一些信息,就可以开始了。如果你在以后需要更多的计算能力,可以将项目升级为付费项目并访问 GCP 的计算资源和高级 BigQuery 功能,但我个人从未需要这样做,一直发现沙盒已经足够了。

尝试使用数据集搜索引擎

我的最后一条建议是尝试使用数据集搜索引擎。这些工具在过去几年中才出现,它们使快速查看现有数据变得非常容易。其中我最喜欢的三个是:

  • Harvard Dataverse
  • Google Dataset Search
  • Papers with Code

在我的经验中,使用这些工具进行搜索往往比使用通用搜索引擎更有效,因为你通常会获得关于数据集的元数据,并且你可以根据它们被使用的频率和发布日期来对它们进行排名。如果你问我的话,这是一个相当巧妙的方法。

谢谢你的阅读!我希望你会发现这 5 种策略有用,并请随时联系我,如果你有任何反馈或问题:-)

最后一件事——你能成为我的 1% 吗?

小猪AI 的读者中不到 1% 点击我的“关注”按钮,所以当你在小猪AI、Twitter 或 LinkedIn 上关注我时,这真的意义非凡。

如果你想获得对我所有故事(以及小猪AI.com 的其余内容)的无限访问权,你可以通过我的推荐链接每月支付 5 美元进行注册。与通过一般注册页面注册相比,这不会额外增加费用,并有助于支持我的写作,因为我会获得一小部分佣金。

Leave a Reply

Your email address will not be published. Required fields are marked *