汇总和分析数据的最佳方法

机器算法验证 数据挖掘 数据集 探索性数据分析
2022-03-27 01:51:01

最近刚开始自学机器学习和数据分析,我发现自己在创建和查询大量数据的需求上遇到了障碍。我想收集我在职业和个人生活中积累的数据并对其进行分析,但我不确定执行以下操作的最佳方法:

  1. 我应该如何存储这些数据?Excel?SQL???

  2. 初学者开始尝试分析这些数据的好方法是什么?我是一名专业的计算机程序员,所以复杂性不在于编写程序,而是或多或少特定于数据分析领域。

编辑:为我的含糊道歉,当你第一次开始学习一些东西时,你很难知道你不知道什么,你知道吗?;)

话虽如此,我的目标是将其应用于两个主要主题:

  1. 软件团队指标(考虑敏捷速度、量化风险、给定 x 个故事点成功完成迭代的可能性)

  2. 机器学习(例如,给定的一组模块中发生了系统异常,一个模块在现场抛出异常的可能性有多大,成本是多少,数据可以告诉我哪些关键模块需要改进)我最划算,预测用户接下来要使用系统的哪个部分来开始加载数据等)。

4个回答

如果您有大型数据集 - 使 Excel 或记事本加载缓慢的数据集,那么数据库是一个不错的选择。Postgres 是开源的并且制作精良,并且很容易与 JMP、SPSS 和其他程序连接。在这种情况下,您可能需要采样。您不必规范化数据库中的数据。否则,CSV 是共享友好的。

如果您有 100M+ 行,请考虑使用 Apache Hive。

在分析方面,这里有一些起点:

描述一个变量:

  • 直方图
  • 汇总统计数据(平均值、范围、标准差、最小值、最大值等)
  • 有异常值吗?(大于 1.5 倍四分位间距)
  • 它遵循什么样的分布?(正常等)

描述变量之间的关系:

  • 散点图
  • 相关性
  • 异常值?查看马氏距离

  • 分类的马赛克图

  • 分类列联表

预测一个实数(如价格):回归

  • OLS 回归或机器学习回归技术

  • 当用于预测的技术可以被人类理解时,这称为建模。例如,神经网络可以做出预测,但通常是不可理解的。您也可以使用回归来查找关键绩效指标。

预测类成员或类成员的概率(如通过/失败):分类

  • 逻辑回归或机器学习技术,例如 SVM

将观察结果放入“自然”组:聚类

  • 通常,人们通过计算它们之间的距离来找到“相似”的观测值。

将属性放入“自然”组:因式分解

  • 以及其他矩阵运算如 PCA、NMF

量化风险= 标准偏差,或“坏事”发生的次数 x 它们有多坏

给定 x 个故事点的成功完成迭代的可能性= Logistic 回归

祝你好运!

如果您正在查看系统故障,您可能会对以下使用机器学习技术在 eBay 进行故障诊断的论文感兴趣。它可以让您了解要收集什么样的数据,或者一个团队如何处理类似领域中的特定问题。

如果您刚刚开始,RapidMinerOrange之类的软件系统可能是一个很好的软件系统,可以很快开始处理您的数据。他们都可以访问各种格式的数据(文件 csv、数据库等)。

您的问题是如此广泛,以至于答案是:这取决于。不过,为了给出一些更有用的答案,我将指出我认为在研究中常见的内容。

数据的存储通常在文本文件中完成。在进行统计分析时,您主要使用一种类型的向量的集合。这可以看作是一个表格,并以 csv 格式编写。细线通常以纯文本形式存储的原因是因为每个工具都可以读取它们并且很容易转换它们。

关于分析,这有点难以具体。如果它是二维的,请制作散点图。如果它是高维的,做 PCA 并查看第一个主成分存在的位置以发现重要变量。如果您有时间数据,请绘制它。这一切都如此笼统,以至于您必须真正更好地表明您的数据是什么。

ROOT真正擅长的一件事是存储大量数据。ROOT 是一个用于粒子物理的 C++ 库;它还带有 Ruby 和 Python 绑定,因此当您发现 ROOT 提供了很少的开箱即用可能性时,您可以使用这些语言的包(例如 NumPy 或 Scipy)来分析数据。

ROOT 文件格式可以存储树或元组,并且可以顺序读取条目,因此您不需要将所有数据同时保存在内存中。这允许分析 PB 级的数据,这是您不想在 Excel 或 R 中尝试的。

可以从这里获得 ROOT I/O 文档。