本文是讲述“如何构建数据科学作品集”系列文章中的第五篇。你可在本文最后找到指向其它文章的链接。
如果你自己独立开发过数据科学项目,那你可能知道,寻找可供分析的、有意思的数据集是一项即为耗时的工作。虽然有些时候,筛选出最合适的数据集是一件很有趣的事;但也有些时候,在你下载、导入了好几个 CSV 文件后,才会发现这些数据其实并没有什么意思,这就让人很不爽了。幸好,现在网络有许多在线仓库,早就有人帮你筛掉了(大部分)没意思的数据集。
在本文中,我将带你了解多种类型的数据科学项目(如:数据可视化项目、数据清洗项目以及机器学习项目等)。同时我还会告诉你应该去哪里寻找与这些项目相关的数据集。无论你是想为自己的数据科学作品集添砖加瓦,比如展示自己的数据可视化能力;还是想利用空闲时间来锻炼机器学习技能,本文都能帮助你。
最常见的数据可视化项目可能来自于“我想制作一个能够展示美国各州人均收入区别的信息图”等等想法。而在寻找相关数据集的过程中,下面的一些事情应该时刻注意:
寻找可视化项目数据集的最佳去处,自然是那些定期公开数据的新闻网站。他们通常会帮你做好数据清洗工作,而且一般也会有现成的图表可供参考或改进。
1. FiveThirtyEight
FiveThirtyEight 是一个十分流行的互动式新闻与体育赛事网站,其创始人是 Nate Silver。网站中会发布许多数据相关的文章,如“技能差距并不是造成制造行业人力供给不足的原因”以及“2016 年 NFL 赛事预测”等等。
FiveThirtyEight 也会将其在文章中使用到的数据集发布在 Github 上。
点击此处查看 FiveThirtyEight 数据集
下面是一些示例:
2. BuzzFeed
BuzzFeed 起初仅仅是一个提供劣质文章的供应商,但其后续发展顺利,目前已经开始提供一系列带有调查性质的文章,比如“统治世界的法庭”以及“Deonte Hoard 的短暂一生”。
BuzzFeed 会将其在文章中使用到的数据集发布在 Github 上。
查看BuzzFeed数据集
下面是一些示例:
3. Socrata OpenData
Socrata OpenData 门户包含多个清洗后的数据集,可在浏览器中直接查看,或下载至本地进行可视化。其中的大部分数据来源于美国政府,同时也有诸多已过时数据。
OpenData 网站无需注册即可查看、下载数据。你也可以在浏览器中使用可视化工具与分析工具来查看数据。
查看 Socrata OpenData
下面是一些示例:
有时你可能只是想找一些大型的数据集来进行分析。分析的结果可能并不重要,重要的只是对于数据的读取与分析过程。你可能会用上诸如 Spark 或 Hadoop 一类的工具,来使用多个节点来对数据进行分布式处理。在寻找优质的数据处理数据集时,你需要将下面的一些事项铭记于心:
寻找大型公开数据集的最好去处是云托管服务供应商,比如亚马逊和 Google。他们有充足的理由来存储这些数据集,因为他们会让你通过他们的框架进行分析(并支付一定费用)。
4. AWS 公开数据集
亚马逊在其 Amazon Web Services 中提供了一些大型数据集。你可前往网站上下载并在个人电脑上进行处理,也可以通过 EMR 使用 EC2 与 Hadoop 来对数据进行分析。请点击此处查看更多与该项目相关的信息。
亚马逊提供有一个列明所有数据集的页面供用户随时浏览查看。虽然你需要持有一个 AWS 账户,但是亚马逊会向新账户提供免费访问权限,也就是说你不需要支付任何费用即可查看这些数据。
查看 AWS 公开数据集
下面是一些示例:
5. Google 公开数据集
与亚马逊非常相似,Google 同样也提供云托管服务,其服务名称为 Google 云端平台(GCP)。你可在 GCP 上使用一款名为 BigQuery 的工具来查看大型数据集。
Google 也有一个页面列明了所有数据集。虽然你需要注册一个 GCP 账户才能使用其服务,但前 1TB 的查询量将是免费的。
查看 Google 公开数据集
下面是一些示例:
6. 维基百科
维基百科是一本由社区成员编辑的免费在线百科全书。维基百科中的知识内容涵盖范围极其广泛,包括从奥斯曼-哈布斯堡战争到伦纳德·尼莫伊的一系列页面。维基百科致力于实现知识的进步,他们所提供的一切内容都是免费的,同时也会经常生成网站所有文章的转储文件。进一步的,维基百科还提供编辑历史与活动数据,你可以通过这些数据追踪某个话题页面随时间的变化情况,同时了解促成其变化的贡献者。
你可在维基百科的网页中找到多种下载数据的方式。同时还有多种可用于格式化数据的脚本。
查看维基百科数据集
下面是一些示例:
在进行机器学习相关项目时,你可能会想:能不能通过数据集中其它字段的数据来预测出某个字段的数据呢?如果想要实现这一功能,那我们需要确保下面的一些事:
目前网上有一些专门针对机器学习的数据集仓库。此类数据集通常已提前整理好,并且能够快速用于算法的测试工作。
7. Kaggle
Kaggle 是一个举办了多项机器学习竞赛的数据科学社区。该网站有众多由外部人员提供的有趣数据集。Kaggle 同时还会组织实时与历史竞赛。你可以下载两种竞赛的数据,但是你需要注册 Kaggle 并且接受其竞赛的服务条款。
你可以通过加入某项竞赛来从 Kaggle 处下载数据。每项竞赛都有与其自身相关联的数据集。此外还可在新的 Kaggle 数据集中找到用户提供的数据集。
查看 Kaggle 数据集
查看 Kaggle 竞赛
下面是一些示例:
8. UCI 机器学习仓库
UCI 机器学习仓库是网络上存在时间最为悠久的数据集来源之一。这些数据集是由用户提供的,所以其文档水平与数据整洁程度参差不齐,但其中的大部分数据整洁性较高,且能够直接供机器学习项目使用。在寻找有趣数据集的过程中,UCI 将是绝佳的第一站。
用户无需注册即可直接从 UCI 机器学习仓库中下载数据。这些数据集通常体积较小,同时也不会有太多细微差别,但却十分适合用于机器学习项目中。
查看 UCI 机器学习仓库
下面是一些示例:
9. Quandl
Quandl 是一个包含经济与金融数据的仓库。其中的部分信息是免费的,但大部分数据集需要购买。用户可通过 Quandl 构建用于预测经济指标或股价的模型。由于包含大量的可用数据集,它还可帮助构建使用多种数据集来预测其它价格的复杂模型。
查看 Quandl 数据集
下面是一些示例:
清洗包含多个文件的数据集,将其整合为一个文件并进行分析,有时这是一件非常有非常有成就感的事。在数据清洗项目中,一些时候你可能需要花费好几个小时才能理清数据集中每个字段的意义。有时你正在分析的数据集与目标可能并不十分契合,所以从头再来是经常的事。
最适合数据清洗项目的数据集有如下特点:
此类数据集通常是多个数据集的聚合体。这些聚合体通常包含来自多个来源的数据集,同时也没有经过较好的处理。如果进行了过多处理,那么数据集也会过于整洁,也就难以进一步进行清洗了。
10. data.world
Data.world 自称是“数据人的社交网络”,但更准确的说法是“数据界的 GitHub”。在这里,用户可以检索、复制、分析、下载数据集。此外,你还可以将自己的数据上传至 data.world,并与他人进行协作。
data.world 在很短的时间内就成为了获取数据的“必经之地”,其中有许多由用户提供的数据集,以及来自 data.world 合作伙伴与多家组织的优秀数据集,包括来自美国联邦政府的数据。
data.world 与其它同类产品的主要区别是其搭建的工具。该工具能够让数据处理工具更加轻松 – 你可在其界面中编写 SQL 查询语句,并对数据集进行分析或合并查询。
data.world 同时还有针对 R 与 Python 的 SDK,用户可轻松选择最合适的工具来进行数据处理工作(你可能会对我们的 data.world Python SDK 教程感兴趣。)
查看 data.world 数据集
11. http://Data.gov
Data.gov 是一个出现时间相对较晚的网站,也是助力美国政府实现政务开放的工作成果之一。Data.gov 让用户能够从多个美国政府机构处下载数据。无论是政府预算还是学校成绩分数,用户均可前往 Data.gov 进行下载。大部分数据需要进行额外的研究工作,同时有时也很难分辨出哪个数据集才是“正确”的版本。任何人都可下载这些数据,虽然部分数据集需要一些额外的操作才能正常下载,比如同意一些许可条款之类的。
用户无需注册即可直接在 Data.gov 上浏览数据集。你可以按照话题领域进行浏览,也可检索特定的数据集。
查看 Data.gov 数据集
下面是一些示例:
12. 世界银行
世界银行是一个全球性的发展组织,为发展中国家提供贷款与发展建议。世界银行会定期资助发展中国家的项目,然后监测项目是否成功并收集相关数据。
用户无需注册即可直接浏览世界银行的数据集。其数据集中有许多数据缺失,此外有时还需要点击多次才能真正获得数据。
查看世界银行数据集
下面是一些示例:
13. /r/datasets
Reddit 是一个颇为流行的社区讨论网站,其中专门有一个部分用于分享有趣的数据集。那就是 datasets subreddit,或者 /r/datasets。这些数据集所涉及的领域非常广泛,由于大部分数据是由用户提供的,所以其中的内容非常有趣,相互之间也有众多不同。
你可以点击这里浏览 subreddit。也可以在这里查看一些最受人推崇的数据集。
查看最受欢迎的 /r/datasets 推文
下面是一些示例:
14. Academic Torrents
Academic Torrents 是同类网站中的后起之秀,提供科技论文中的一些数据集。网站建立的时间不长,所以很难说其中最常见的数据集是什么形式。目前来看,网站中有许多有趣的数据集,但同时也缺少一些背景信息。
用户可直接在网站上浏览数据集。因为这是一个种子站,所以可随时下载其中的所有数据集,但你需要安装一个客户端。Deluge(免费)是一个不错的选择。
查看 Academic Torrents 数据集
下面是一些示例:
在构建数据科学项目的过程中,下载并处理数据集是一种非常常见的操作。然而,线上服务正在生成越来越多的数据,人们随时都在制造越来越多的数据,然而这些数据并不是以数据集的形式存在的。这样的数据形式包括来自 Twitter 的推文数据,以及股价数据。想要获取此类数据并非易事,不过我们还是会列出一些来,以便你着手进行一些流数据项目。
15. Twitter
Twitter 提供了绝佳的流数据 API,让用户能够以相对直接的方式来过滤并生成推文数据流。你可以点击这里查看更多信息。网站中提供诸多选项 — 你可以找出哪个州的人民是最快乐的,或者哪个国家的语言最复杂。同时,我们最近也完成了一篇有关 Twitter API 的指导性文章,请点击此处查看。
开始使用 Twitter API
16. Github
Github 提供了一个可供用户访问仓库活动与代码的 API。你可以点击这里查看有关这一 API 的相关信息。同样,Github 也提供了众多选项 — 你可以搭建一个系统来自动进行代码质量评分,或者了解大型项目中代码随时间变化的情况。
开始使用 Github API
17. Quantopian
Quantopian 是一个可供你开发、测试股票交易算法并将其投入使用的网站。为了便于用户使用,网站提供免费的、精确到分钟的股票价格数据。这将可以帮助你搭建股价预测算法。
开始使用 Quantopian
18. Wunderground
Wunderground 开放有提供天气预测数据的 API,每天可供免费调用 500 次。你可以使用这些调用次数来获取一系列历史天气数据,并据此预测明天的天气情况。
开始使用 Wunderground API
在这篇文章中,我们介绍了一些寻找多种数据集的好去处,适合各种类型的数据科学项目。希望你能在其中找到一些有趣的东西,找到一些足够让你沉浸其中无法自拔的东西!
如果你也在尝试自行搭建项目的话,欢迎你随时与我们沟通。你可以在这里找到我们!
Dataquest 将为你提供一系列互动式的指导性项目,这些项目将协助你构建能够向雇主展示技能的数据科学作品集,帮助你找到一份数据相关的工作。如果你感兴趣的话,请在这里注册并免费试用首个模组。
如果你觉得这篇文章还不错的话,那不妨看看我们“如何构建数据科学作品集”系列中的其它文章: