### 适合机器学习的数据组织

网上有很多关于不同机器学习工具(神经网络及相关技术如深度学习、决策树、支持向量机)的教程。当我在Python、MATLAB或类似环境中进行小规模机器学习时,我通常会使用一个包含特征的CSV文件和一个包含标签的CSV文件,将这些文件加载到内存中,然后根据程序的需求进行组织(例如,MATLAB中的矩阵)。

我正在实时收集系统性能数据。每隔几分钟,我会收集大量数据,目前我以Json格式存储数据,如{Key: value}等。我通常会收集这些数据并存储一个小时,以查看系统的表现。我希望能保留这些数据并尝试进行一些机器学习。我想知道组织机器学习数据集的基本原则是什么,特别是因为我还不确定我想进行哪种机器学习(这是一个探索项目,所以我试图找到一种方式来最大化我的探索可能性)。

我阅读了这篇博客文章:https://www.altexsoft.com/blog/datascience/preparing-your-dataset-for-machine-learning-8-basic-techniques-that-make-your-data-better/

那些从纸质账簿开始收集数据,最终使用.xlsx和.csv文件的公司,可能会比那些拥有小型但适合机器学习的数据集的公司在数据准备方面面临更大的困难。

文章提到.csv数据集不适合机器学习。是否有保存数据的其他方式被认为更适合机器学习?

我考虑了一些使用案例:

  1. 使用时间点数据和标签进行分类
  2. 使用时间序列数据(组织在一个矩阵中)和标签进行分类
  3. 回归:根据其时间序列值的矩阵预测X的值

我没有特定问题要解决。我更希望开始以一种能够在未来进行机器学习的方式来设置这个数据集。

我的问题是:有哪些更流行的数据存储方式可以启用机器学习?

一些选项:

按时间组织的CSV:

时间戳, 特征1, 特征2, 特征3,...,特征N时间戳, 特征1, 特征2, 特征3,...,特征N时间戳, 特征1, 特征2, 特征3,...,特征N...

以及一些初始标签(可能稍后会增加):

时间戳, 标签1, 标签2....标签N时间戳, 标签1, 标签2....标签N时间戳, 标签1, 标签2....标签N

Json风格的键值对:

{时间戳: _,特征1: _,特征2: _,...,特征N:_,标签1:_,标签2:_,标签3:_,...}

假设我决定使用时间序列来预测标签…那么我需要将时间序列数据全部整合到一个特征集中,用于标签。

我明白有很多方法可以解决这个问题(其中一种是:忘记组织——只需编写一个API,当你想出要解决的问题时,为你的问题生成一个精心组织的数据集),但实际上,我想知道在工业和学术界设计机器学习数据基础设施的基本原则是什么。

可能会出现的一些问题:

  • 如果我想添加一个新特征怎么办?
  • 如果我有一个新标签怎么办?
  • 如果我想在分析中不仅仅考虑单一时间点的特征,而是使用特征的时间序列怎么办?

我对数据库了解不多,所以欢迎任何智慧和与特征存储相关的在线资源。我找到的大多数资源都与模型或机器学习基础设施有关,而不是我感兴趣的数据启用或组织部分。


回答:

对于我使用过的多数机器学习库(TensorFlow、Keras、Scikit-learn、R),数据通常以表格格式(如CSV)处理,因为在底层,许多机器学习算法是使用快速线性代数代码实现的。所以我不确定那篇文章在说什么,但以CSV格式存储数据是可以的。

数据清理、组织和存储是大话题。你的数据清理流程(以及整个训练过程)应该可以重现,这篇论文有一些值得记住的原则。Hadley Wickham的这篇文章有一些关于如何以表格格式组织数据的不错的想法。如果你的数据集很复杂或者你会频繁重用它,可能值得存储在数据库中,我建议学习SQL指南和数据仓库的知识。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注