返回栏目
首页网络 • 正文

带你识别AI数据集的各种面孔 (AI 从业万字干货)

发布时间:  浏览: 次  作者:复兴网网络

上一篇文章,我们讲了AI神经网络的优化,里面提到要用很多AI数据集才能完成训练。这篇文章,我们就来讲下AI数据集的数个面孔,希望能一次给大家说明白。

一、什么是AI数据集?

在机器学习领域中,数据集是一组经过组织和整理的数据,是用于AI模型的训练、验证和测试的数据集合,其质量、多样性和数据规模会直接影响着AI模型的性能和泛化能力。

数据集通常包含大量的数据点,每个数据点代表一个样本或实例,还有与其相关的特征和标签。特征是用来描述数据点的变量,而标签则是与数据点相关的输出变量。

例如,在图像识别任务中,数据集可能包括许多带有不同颜色、形状和大小的图片,每张图片的特征可以是像素值,而标签则表示图片中物体的类别。

如果数据集存在错误、偏差或噪声,AI模型在学习过程中可能会产生错误的理解和预测,从而降低其性能。

如果数据集包含的数据点过于相似或者缺乏代表性,AI模型可能会出现过拟合的问题,即在训练数据上表现良好,但在新的、未见过的数据上表现不佳。关于数据拟合问题的讨论,《万字干货)如何训练优化“AI神经网络”模型?》中有更详细的描述,就不在此赘述了。

一般来说,数据集规模越大,AI模型的学习效果越好。这是因为大规模的数据集可以提供更多的信息,帮助AI模型学习到更多的特征和规律。然而,数据集规模的增加也会带来计算资源和时间的挑战。

可见,我们在实际应用中,需要根据任务的特性和需求,选择合适的数据集,并对其进行适当的预处理和增强,这样可以提高AI模型的训练效果和泛化能力。

二、AI数据集长什么样?什么格式?

为了适应不同场景,数据也需要变成合适的模样(也就是格式),便于AI模型可以直接运用。因此,我们常常需要处理各种格式的数据集,也需要对常见的格式有一些了解,知晓其适用的场景,有哪些特点和不足之处,这样我们在面对各种数据集和应用场景时,就能做到“心中有数”。

数据集常见的格式主要有:CSV(逗号分隔值),JSON(JavaScript对象表示法),XML(可扩展标记语言),HDF5(层次数据格式5),Parquet(列式存储),xlsx、xls等格式的Excel文件。

既然知道了有那么多格式,我们就分别根据这些常用的格式进一步展开,先介绍这些格式的基本定义,为了便于大家理解,会举一个简单的例子,还会再说说什么场景下适合用什么数据格式来存储和处理数据,这些格式在实际运用中又会暴露出哪些劣势。

在这个例子中,每一行代表一个数据点(一个人),而每列则表示该数据点的一个特征(姓名、年龄、城市)。逗号用于分隔不同的数据值。

CSV格式的数据文件结构清晰,易于理解和操作。每个数据记录都被逗号分隔开,每一列数据都是独立的,我们可以很容易地通过简单的文本编辑器或者表格软件来查看和编辑数据。

我们在AI数据集的应用中,什么情况下会选择用CSV格式存储或处理数据?

【当数据足够简单又结构化表示时】

当数据集的结构相对简单,又是结构化的形式,每一行表示一个数据点,每一列表示一个特征或属性,用CSV格式就是一个很不错的选择,直观且方便。

【当数据需要被多人共享时】

CSV文件是一种通用的文本格式,易于共享和协作。在多个团队或研究者之间传递数据时,CSV提供了一种简单的、不依赖特定软件的共享方式,很常用。

【当数据需跨平台使用时】

CSV格式具有跨平台的优势,几乎所有的数据处理工具和编程语言都支持CSV文件的读写。项目成员在不同环境和工具中使用数据非常方便。

【当数据集规模比较小时】

对于规模相对较小的数据集,CSV是一个轻量级的选择,性价比高。它不会占用过多磁盘空间,所以非常方便我们传输、存储和处理数据。

【为了方便查看和编辑时】

CSV文件是纯文本文件,可以用文本编辑器轻松查看和编辑,这很方便我们随时查看或编辑数据。

在我们了解了CSV格式后,在实际应用时,面对需要处理的一堆数据时,我就可以知道什么时候用CSV格式,什么时候不用。

比如,只是数量较少又简单的用户表,含有用户的姓名、年龄、地址等基础文本信息的话,可以方便地存储在CSV文件中。如果数据集包含时间序列或地理空间信息,数据结构又比较复杂,CSV格式就不合适了。

2. JSON(JavaScript对象表示法)

JSON基于JavaScript的语言标准,是一种轻量级的,用于存储和交换数据的文本格式,支持层次结构和复杂的数据类型,有着优秀的结构化数据表示能力。

在AI数据集中,往往存在复杂的信息层次和多层嵌套的结构,而JSON的树状表达方式非常适合清晰地呈现这些数据之间的关系。

以下是一个简单JSON格式的例子:

有利也有弊,我们在AI数据集的实际应用中,JSON格式自然也会暴露出一些劣势。

【数据冗余】

JSON格式的数据通常包含许多嵌套的结构,这可能导致数据的冗余。例如,如果一个对象的属性是另一个对象的列表,那么这个属性可能会被重复多次,导致数据的冗余,在存储和传输时也会占用更多的空间和带宽。

【解析与生成相对较慢】

由于JSON是一种文本格式,解析时需要进行字符的逐个解析,通常需要消耗更多的计算资源和时间。而二进制格式则可以直接通过字节进行快速解析。因此,JSON的解析和生成相对于二进制格式来说,会更加耗时。

正因为JSON文件不支持直接对数据进行高效的压缩和解压缩操作。相比之下,当需要对大量数据进行快速读写操作时,使用JSON格式并不合适,二进制格式可能会更加高效。

【处理复杂嵌套数据会比较麻烦】

由于JSON文件中的数据是以树形结构组织的,当数据层次较深,存在大量嵌套和重复的信息时,JSON文件可能变得较为臃肿,在读取或写入嵌套数据时需要进行递归操作。这可能会导致性能下降并增加程序的复杂性。

在这个例子中, <dataset> 元素包含多个 <sample> 元素,每个 <sample> 元素包含一个标识符 <id> 、文本 <text> 和标签 <label> 。

XML和JSON有一些相似之处,但依旧有其独特的优势。虽然在某些场景下逐渐被JSON取代,但在某些应用中,仍然被广泛使用着。

我们在AI数据集的应用中,什么情况下会选择用XML格式存储或处理数据?

【当数据结构复杂时】

由于XML的树状结构,它能够自然地表达复杂的数据关系,包括嵌套、多层次结构等。因此,XML非常适合表示具有复杂关联的数据,例如文档、配置文件等。

【当数据更新频繁时】

如果一个AI系统需要频繁地更新数据,那么使用XML格式也是一个不错的选择。因为XML文件的读取和写入速度相对较快,这使得我们可以更快地加载新的数据并更新模型。

【当对元数据需求高时】

如果数据集需要携带大量的元数据信息,如数据来源、标签、版本等,XML提供了灵活的方式来嵌入这些元数据,有助于更全面地描述数据。

在上述XML示例中,每个 <book> 元素表示一本书,而 <title> 、 <author> 等标签包含了有关该书的元数据。例如, <genre> 提供了关于书籍类型的信息, <publicationYear> 提供了关于出版年份的信息,而 <location> 元素包含了书籍在图书馆的位置信息。

通过这个小例子,可以看出通过使用XML格式,可以将这些元数据结构化地组织在一起,不仅易于理解和处理,也有助于图书馆管理系统更有效地跟踪图书信息,提供查询服务,以及管理库存。

我们在AI数据集的实际应用中,XML格式也因为自身的一些劣势(如下),自然也有不适用的地方。

【占用更多存储空间】

XML文件的结构相对冗余,包含了大量标签和元素,这些都会增加文件的大小,同时增加存储和传输的负担。尤其是在处理大规模数据时,这种情况可能成为性能瓶颈。

【解析复杂】

XML文件的解析相对复杂,需要使用专门的解析器。与其他格式相比,解析XML文件需要更多的计算资源和时间。这会导致在处理大型XML文件时,解析和处理速度相对较慢。

【标记过多】

成也标记,败也标记。XML因为使用了大量的标记符号(如尖括号和斜杠)来定义元素和属性。如果标签嵌套层次太深或标签使用过于频繁,可能会导致文件结构混乱,难以维护。

【不适合简单数据结构】

俗话说,什么马配什么鞍。对于简单的数据结构,使用XML格式可能显得过于繁重。例如,如果只需表示键值对或简单的层次结构,XML的结构则显得过于繁琐,选择更轻巧的格式可能更加合适。

在这个例子中,我们用HDF5格式存储实验室测得的温度和湿度数据。 Weather_Data 是整个数据集的名称,包含了多个实验组( Experiment_1 , Experiment_2 等)。每个实验组中都有温度( Temperature )和湿度( Humidity )两个数据集,它们分别包含相应的测量数据。

HDF5格式这种层次化的组织方式可以让权重信息清晰地保存和读取,也适用于存储和管理复杂、大规模的科学数据,比如气象学、地球科学等领域的数据。

我们在AI数据集的应用中,什么情况下会选择用HDF5格式存储或处理数据?

【当处理大规模数据集时】

对于深度学习中包含庞大权重和特征的模型,HDF5格式就有了发挥之地。HDF5有压缩和分块存储的特性,可以高效地压缩、存储和检索大量数据,能够有效应对深度学习模型中产生的海量数据。

【当数据结构复杂时】

当数据集具有复杂的层次结构或包含多个数据类型时,用HDF5格式比较合适。它支持多层次的数据组织,允许在同一文件中存储各种数据类型,包括标量、数组和复合数据类型。对于在传感器网络、科学实验结果等场合中,涉及多层次信息的数据存储和处理非常重要。

【有元数据管理需求时】

元数据对于数据集的理解和解释至关重要。HDF5格式提供了高度灵活的元数据管理机制,允许我们附加详细的描述性信息,对数据进行标注和注释。正因为如此,数据集更具可读性,更易于共享和协作,对于科研领域的数据集尤为有益。

我们通过二元对立的角度来看,HDF5格式在处理大规模、复杂数据集上有优势,但在学习成本,数据类型兼容等方面也存在不足,我们在选择格式时需权衡利弊,根据具体需求和应用场景做出合适的选择。

5. Parquet(列式存储)

Parquet是一种开放源代码的列式存储格式,旨在提供高效的数据压缩和快速扫描性能。它最初由Apache软件基金会开发,支持多种编程语言的读写。

它具有良好的压缩性能和高效的查询性能,适用于大数据分析和机器学习。目前广泛应用于大数据领域,特别是在Apache Hadoop生态系统中。

假设我们有一个包含用户信息的数据集,使用Parquet格式进行存储可能如下所示:

与此同时,我们在AI数据集的实际应用中,也需知晓Parquet格式会暴露出哪些劣势?

【不适合频繁追加数据】

Parquet就像一位单一专长厉害到天花板的歌手,让它唱美声可以到达一流,但是唱流行歌曲可能就一般般了。由此可见,Parquet格式适用于分析性质的工作负载,如数据分析和查询。但在一些需要频繁修改和追加数据的场景下,Parquet可能并不是最佳选择。

【不适合小规模数据】

我们在实际应用中,也需要追求使用效益的性价比。对于小规模数据集,Parquet格式可能会显得过于复杂,而且对存储和处理的优势不如在大规模数据集中明显。我们在做AI项目时,如果是在一些小型项目或快速原型开发中,选择其他更简单的格式可能更为合适。

【可读性较差,学习成本高】

Parquet文件以二进制格式存储,因此可读性较差,不如一些文本格式(如CSV)那样直观。这倒是和HDF5格式有了同样的问题了。可读性差也带来了学习成本的提高,对于初次接触Parquet的团队成员,可能需要额外的培训,更多的时间来了解其工作原理、优化技巧以及实操练习。

在这个例子中,每一行代表一个数据点(一个文本例子),而每列则表示该数据点的一个特征(positive、negative、neutral)。每个单元格中的数据都按行和列组织,这是Excel表格的典型结构。这种结构化的表格形式非常适合表示和处理数据。

我们在AI数据集的应用中,什么情况下会选择用Excel文件存储xlsx、xls这类格式的数据?

【当数据小规模、结构化时】

在处理小规模、结构化的数据时,Excel的表格格式适合整齐排列的数据,我们可以快速了解数据的结构和内容,也能够快速进行基本的数据操作和分析,并通过Excel将数据存储为xlsx、xls这类格式。

【当数据有多种简单类型时】

Excel支持多种简单的数据类型,包括文本、数字、日期和时间等。如果我们需要将不同类型的数据存储在同一个工作表中,同时还需要对数据进行简单的整合和分析,用Excel是很好的选择。

【需要一些公式计算来处理数据时】

Excel支持各种复杂的数学和统计函数,当我们使用数据集时,如果需要对数据进行处理和计算,可以在Excel中执行操作,而无需编写复杂的代码。

7. 不止这些

当然,AI数据集中的格式远远不止以上列举的这些,还有很多在专业领域派上用场的数据格式,比如TFRecord、Avro、Feather、DICOM等。

我们知道,在AI项目中,数据是推动模型训练和性能提升的核心。选择合适的数据格式对于不同类型的AI项目至关重要。所以我们对图像,文本,音频,视频,时间序列甚至是传感器等等各类数据,都需要找到匹配的数据格式。

在大规模数据集和实时应用中,匹配的数据格式能够提高数据处理的效率和速度。一些数据格式在存储和读取时更为高效,可以减少数据预处理的时间,加速模型的训练和推理过程,提高整体效果。

考虑到AI项目中的数据大小和存储成本,以及不同的数据格式对存储空间的需求不同。比如有些格式具有高度的压缩性,适合大规模数据集的存储,而有些则不需要。所以,我们在考虑存储成本和资源限制时,选择匹配的数据格式可以降低整体成本。

为了更好地训练监督学习模型,选择匹配的数据格式也有助于更好地处理数据标注和标签。一些格式支持多种数据类型的同时保持标签信息,也可以让数据集的标签管理更为方便。

总而言之,考虑到AI项目的特定需求、模型结构、数据处理效率、存储成本等多方面因素,我们提前选择好合适的数据格式有助于提高AI模型性能、降低成本,并简化整个工作流程。这样做起来好处多多,我们何乐不为呢。

2. UCI机器学习数据集库

网址:https://archive.ics.uci.edu/

介绍:UCI机器学习数据库被世界各地的学生、教育工作者和研究人员广泛使用。它包含了多种类型的数据集,涵盖了分类、回归、聚类、关联规则挖掘等不同任务的数据。这些数据集来自多个领域,包括医学、金融、社会科学等。

4. AWS数据库

网址:https://registry.opendata.aws/

介绍:AWS(亚马逊)公共数据库里面存储了AWS收集的数据集,有来自各行业领先数据提供商的3000种现有数据产品。

四、新篇预告

以上,就是关于AI数据集的首篇内容了,介绍了AI数据集是什么,这些数据集常用什么样的格式来存储和处理数据,当我们需要数据来做AI项目时,有哪些公开的数据集平台可供参考。

AI的世界很大,在门外时会觉得神秘,刚入门时又会觉得陌生,日渐相处之后又会发现如此有趣,AI数据集的内容我们还没说完,后面的篇章我们会围绕“训练集,验证集,测试集”的话题展开,继续说说AI数据集。

如果觉得有所收获,欢迎关注我,我们在AI路上携手同行。

作者:果酿,公众号:果酿产品说

本文由 @果酿 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自 Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

    相关文章Related

    返回栏目>>

    首页   |   帮助

    复兴网版权所有,未经书面授权禁止复制或建立镜像