我们生活在一个被数据淹没的世界。网络跟踪、股市波动、基因组测序技术等等,都在产生海量数据。
这些数据大部分都由别人负责,由别人生成,存储在别人的数据库中,由……你猜对了……别人维护和提供。
但是。当我们进行机器学习项目时,我们总是处理的是存在于外部的、所有数据的一小部分。
无论你是自己生成数据,还是使用公开可用的数据,你的结果都必须是可复现的。而分析的可复现性,则关键地依赖于数据管理。

数据管理很重要
照片由 Ken Teegardin 提供,保留部分权利
什么是数据管理?
数据管理是存储、处理和保护原始数据及相关元数据的过程。
这个过程包括
- 识别适合您分析的数据
- 下载数据
- 根据需要重新格式化
- 清理数据
- 将数据存储在合适的存储库中
- 备份数据
- 使用元数据进行注释
- 维护数据
- 将数据提供给您想与之共享的人
- 保护数据免遭恶意或意外访问
上面列表中的前四个要点已经在本博客的其他文章中讨论过。在本文中,我们将重点介绍处理工作数据集的程序。
组织良好、文档齐全、保存完好和共享的数据对于推进科学探索和增加学习与创新的机会是无价的。
— 英国数据档案馆
为什么不交给别人来做?
如果您自己生成数据,那么数据管理的必要性就很清楚了。然而,即使您使用别人的数据,您仍然需要制定并执行经过深思熟虑的数据管理策略和程序。
大多数在线数据库都在不断增长,而且往往呈指数级增长。如果您今天用可用数据生成了一个结果,一个月后,您的数据集将只占一个更大的数据集的一部分,而在两年后,它很可能只占当前数据库的一小部分。为了产生可复现的结果,您必须下载、清理和保护您自己的数据集。
数据管理流程(按数字排序)
1. 将数据存储在合适的存储库中
有几种不同类型的数据存储库,用途各不相同。从最简单到最复杂,包括:
数据库:“有组织的、相关的信息体”(定义)
这里的关键术语是有组织的。简单的关系数据库以明确定义的、结构化的方式存储记录,以及关于记录之间关系的most基本信息。结构是关键,数据库不一定需要内置关于存储的数据是什么或它们意味着什么的信息。许多类型的数据甚至可以存储为二进制大对象(BLOB)。
数据仓库:“来自多个、可能异构数据源的数据的集成存储库,以一致且连贯的语义呈现”(定义)
在数据仓库中,语义被添加到数据结构中。语义算法是尝试为数据添加含义,通常以本体的形式。本体基于受控词汇表,具有清晰定义的词汇项之间的关系(例如,“酒精脱氢酶”是“蛋白质”)。
数据档案:“为历史或参考目的而保留的文档版本存储”(定义)
数据档案通常保存在可靠的媒体上,不一定需要快速访问,因为数据是为了历史目的而保存的。许多组织要求数据在分析和结果发布后保留一段时间。
数据集成:“合并位于不同源中的数据,并为用户提供这些数据的统一视图的过程”(定义)
前三种存储库通常处理一种类型的数据:例如,就业记录或蛋白质-蛋白质相互作用数据。数据集成与其说是一种存储库,不如说是一套算法,用于将不同类型的数据合并到单个数据集中,以便进行更有用的分析。例如,结合人口统计数据(年龄、性别、BMI 等)、血液检测结果和经济数据,可以比仅凭血液检测获得更多关于您健康的见解。
2. 备份数据
大家都知道所有硬盘都应该定期备份,尽管令人担忧的是,有相当一部分人没有这样做。所以,一定要做!数据备份应包括:
每日增量备份到不同的硬盘,甚至 USB 驱动器。有数十种备份解决方案,包括免费和专有。 维基百科有一个相当全面的列表。
文件同步软件不尝试将所有内容从一个驱动器备份到另一个驱动器,而是跟踪每个文件的最后更新版本,并保存最新版本。如果一个文件在两个地方同时被更新,大多数应用程序会询问用户选择哪个。 请参阅维基百科列表。
就我个人而言,我使用 Unison,并且对其性能非常满意。
除了每日增量备份外,还应定期执行完整备份。备份的一个副本应保存在本地,以便在发生灾难时快速访问,并且至少有一个副本保存在异地,以防真正发生灾难。如果您的硬盘发生故障,需要访问文件,它们应该在抽屉里。如果您的办公室着火了,文件应该在您家里,或者您妈妈的家里。
3. 使用元数据进行注释
当我们第一次下载数据时,它的来源和含义对我们来说是显而易见的。我们知道为什么要它,我们对它做了什么,以及它意味着什么。然而,几个月后,这种理解可能就不那么清晰了。
元数据是关于数据的数据。元数据可以包含信息,例如谁生成了数据、生成时间、下载时间、用于哪些分析、使用了哪些实验条件、包含哪些论文,以及数据是否存在已知问题。
有许多社区组织致力于指定重现数据所需的最低信息量,特别是复杂数据,例如现代分子生物学实验产生的数据。
元数据注释似乎是一项艰苦的工作,但如果您的结果值得报告,那么它们就值得重现,而元数据对于长期理解原始数据至关重要。
4. 维护数据
一旦您选择了、清理了、妥善存储了、标注了并备份了数据,您可能会认为最困难的部分已经结束了。当然,事情并非如此简单,永远不会。数据必须得到维护。
维护包括:
- 添加新数据(和适当的元数据)
- 更新现有数据(和相关元数据)
- 处理出现的问题(并更新元数据)
如果您有一个一次性的数据集,第一点可能无关紧要,但后两点很重要。存储的数据应反映您当前对问题的最佳理解,并且任何更新、更改或丢弃都应记录在元数据中。
数据维护中的另一个重要问题是介质问题。存储介质的过时速度快得惊人。
如今,大多数数据集都存储在硬盘上,并备份到 DVD 或 USB 驱动器。这些介质最终会过时,其速度可能比现在看起来的还要快,机器学习从业者必须非常清楚这一趋势。尤其是在存档数据集的情况下,这些数据集可能不会经常访问,因此需要定期检查以确保数据仍然可读且格式为现代格式。
十多年来,1976 年“维京号”火星着陆的磁带数据一直未被处理。当后来分析时,数据由于格式未知且原始程序员已去世或离开了 NASA 而无法读取。
— 来自关于 数字暗时代 的维基百科文章。
5. 将数据提供给您想与之共享的人,而仅限于这些人
许多出版物论坛坚持要求,用于生成报告结果的数据应提供给感兴趣的读者。即使在出版之外,您也可能想与朋友和同事共享数据,以便进行更深入的分析。
当然,问题在于,自由提供的数据可能会被滥用。只读数据可能会被竞争对手或那些为了可能不是您的事业而歪曲它的人下载和使用。具有读/写访问权限的数据可能会被恶意个人,或您或您的同事意外修改。
数据安全和访问控制是一个巨大的研究领域,并且许多可用材料都相当技术化。基本上,大多数数据库管理系统都内置了访问控制,具有不同级别的粒度,通常采用熟悉的帐户和密码形式。通过网站提供的数据可能没有这些内置保护,并且必须根据具体情况实施适当的保护措施。
每位数据管理员都在安全与共享之间行走。
数据管理教程和技巧
备份的绝对初学者指南(这个有点旧了,技术已经有所发展,但基本原理是可靠的)
Todd Austin 在密歇根大学的《计算机安全(大部分)温和入门指南》
https://www.youtube.com/watch?v=o6pgd8gLFHg
- 英国数据档案馆有一个数据管理清单,可在此处获取。
- 一篇关于数字暗时代(存储介质变得无法读取)的精彩文章,可在维基百科上找到。
- 计算机存储介质的过时速度有多快? 看看这篇文章?
- 有关生物和生物医学最低信息标准的汇编,请参阅 开放生物和生物医学本体库。
- 开放 Web 应用程序安全项目(Open Web Application Security Project)提供了一个关于 Web 应用程序访问控制的优秀概述,名为 访问控制备忘单。
暂无评论。