机器学习 - 获取数据集
机器学习模型的效果仅与其训练数据的好坏相当。因此,获取高质量且相关的数据集是机器学习过程中的关键步骤。有许多开源资源库,如 Kaggle,您可以从中下载数据集。您甚至可以购买数据、抓取网站或独立收集数据。让我们来看看机器学习的一些不同数据集来源以及如何获取它们。
什么是数据集?
数据集是以结构化和组织化的方式收集的数据集合。它通常用于简化分析、存储或处理、机器学习模型训练等任务。数据集可以以多种格式存储,如 CSV、JSON、zip 文件、Excel 等。
数据集类型
数据集通常根据其包含的信息进行分类。一些常见的数据集类型包括:
- 表格数据集: 它们是组织成行和列的结构化数据集合,类似于表格。
- 时间序列数据集: 这些数据集包含一段时间内的数据,例如股票价格分析、气候信息等。
- 图像数据集: 这些数据集以图像作为数据,用于计算机视觉任务,如图像分类、目标检测和图像分割。
- 文本数据集: 这些数据集包含文本信息,如数字、字符和字母。它们用于 NLP 技术,如情感分析和文本分类。
为机器学习获取数据集
在开发机器学习问题解决方案时,获取数据集是非常重要的一步。数据是训练机器学习模型的关键要素。收集数据的质量、数量和多样性将极大影响机器学习模型的性能。
有多种方式或来源可以获取机器学习数据集。其中一些列在下面 −
- 开源数据集
- 数据抓取
- 数据购买
- 数据收集
让我们详细讨论上述每种机器学习数据集来源 −
热门开源/公共数据集
有许多公开可用的开源数据集可用于机器学习。一些热门的公共数据集来源包括 Kaggle、UCI Machine Learning Repository、Google Dataset Search 和 AWS Public Datasets。这些数据集常用于研究,并且对公众开放。
一些提供结构化且有价值数据的热门来源包括 −
- Kaggle Datasets
- AWS Datasets
- Google Dataset Search Engine
- UCI Machine learning Repository
- Microsoft Datasets
- Scikit-learn Dataset
- HuggingFace Datasets Hub
- Government Datasets
Kaggle Datasets
Kaggle 是一个流行的数据科学和机器学习在线社区。它托管了超过 23,000 个公共数据集。它是最受欢迎的获取数据集的平台,因为它允许用户轻松搜索、下载和发布数据。它提供高质量的预处理数据集,几乎适用于基于用户需求的所有机器学习模型。
Kaggle 还提供带有算法和各种预训练模型的 notebooks。
AWS Datasets
您可以在 AWS 的开放数据注册表中搜索、下载和共享公开可用的数据集。虽然这些数据集通过 AWS 访问,但它们由政府组织、企业和研究人员维护和更新。
Google Dataset Search Engine
Google Dataset Search 是 Google 开发的一款工具,允许用户从网络上不同来源搜索数据集。它是一款专为数据集设计的搜索引擎。
UCI Machine learning Repository
UCI machine learning repository 是加州大学欧文分校专为机器学习开发的数据集仓库。它涵盖了来自各个领域的数百个数据集。您可以找到与时间序列、分类、回归或推荐系统相关的数据集。
Microsoft Dataset
Microsoft Research Open Data 由 Microsoft 于 1918 年推出,提供了一个云端数据仓库。
Scikit-learn Dataset
Scikit-learn 是一个流行的 Python 库,它提供了一些数据集,如 Iris dataset、Boston housing dataset 等,用于试验和测试。这些数据集是开放的,可用于学习和实验机器学习模型。
使用 Scikit-learn 数据集的语法 −
from sklearn.datasets import load_iris iris = load_iris()
在上面的代码片段中,我们将 iris dataset 加载到 Python 脚本中。
HuggingFace Datasets hub
HuggingFace datasets hub 提供主要的公共数据集,如图像数据集、音频数据集、文本数据集等。您可以通过安装 "datasets" 来访问这些数据集,使用以下命令 −
pip3 install datasets
您可以使用以下简单语法获取任何数据集用于您的程序 −
from datasets import load_dataset ds = load_dataset(dataset_name)
例如,您可以使用以下命令加载 iris dataset −
from datasets import load_dataset
ds = load_dataset("scikit-learn/iris")
Government Datasets
每个国家都有一个来源,提供来自各个部门收集的政府相关数据供公众使用。这些来源的目标是提高政府的透明度,并用于富有成效的研究工作。
以下是一些政府数据集链接 −
- Indian Government Public Datasets
- U.S. Government's Open Data
- World Bank Data Catalog
- European Union Open Data
- U.K. Open Data
数据抓取
数据抓取涉及从网站或其他来源自动提取数据。这是一种获取未以预打包数据集形式提供的数据的有用方式。然而,重要的是要确保数据抓取是合乎道德和合法的,并且来源可靠且准确。
数据购买
在某些情况下,可能需要为机器学习购买数据集。许多公司出售针对特定行业或用例量身定制的预打包数据集。在购买数据集之前,评估其质量及其与机器学习项目的相关性非常重要。
数据收集
数据收集涉及从各种来源手动收集数据。这可能耗时较长,需要仔细规划,以确保数据准确且与机器学习项目相关。它可能涉及调查、访谈或其他形式的数据收集。
获取高质量数据集的策略
一旦确定了数据集的来源,确保数据质量良好且与机器学习项目相关就变得很重要。以下是一些获取高质量数据集的策略 −
确定要解决的问题
在获取数据集之前,确定使用机器学习要解决的问题非常重要。这将帮助您确定所需的数据类型以及获取位置。
确定数据集的大小
数据集的大小取决于您要解决的问题复杂度。一般来说,数据越多,机器学习模型的性能越好。但是,确保数据集不要过大,并且不包含无关或重复数据也很重要。
确保数据相关且准确
确保数据与您要解决的问题相关且准确非常重要。确保数据来自可靠来源并且已得到验证。
预处理数据
预处理数据涉及清理、归一化和转换数据,以准备用于机器学习。此步骤对于确保机器学习模型能够有效理解和使用数据至关重要。