大数据与数据挖掘有什么区别?

正如维基百科所述

数据挖掘过程的总体目标是从数据集中提取信息,并将其转换为可理解的结构以供进一步使用

这与大数据有什么关系?我是否可以说Hadoop是以并行方式进行数据挖掘的?


回答:

大数据无处不在

大数据是一个营销术语,而非技术术语。现在一切都是大数据。我的U盘现在是“个人云”,我的硬盘也是大数据。说真的,这是一个完全不具体的术语,主要由各种非常乐观的公司的营销部门定义——以及大型公司的C*O们购买,以期望创造奇迹。更新:现在,数据科学也同样适用。这只是营销手段。

数据挖掘是旧的大数据

实际上,数据挖掘同样被过度使用……它可以指任何事情,例如

  • 收集数据(想想NSA)
  • 存储数据
  • 机器学习/人工智能(这在数据挖掘术语出现之前就已存在)
  • 非机器学习的数据挖掘(如“知识发现”,数据挖掘术语实际上就是在这里被创造出来的;但重点在于新知识的发现,而非现有知识的学习)
  • 业务规则和分析
  • 可视化
  • 任何涉及你想以卡车般数量出售的数据

只是营销需要一个新术语。“商业智能”、“业务分析”……他们仍然在卖同样的东西,只是现在重新命名为“大数据”。

大多数“大的”数据挖掘并不大

由于大多数方法——至少是那些能产生有趣结果的方法——并不具备扩展性,因此大多数被“挖掘”的数据实际上并不大。它们比10年前大得多,但并不大到以艾字节计。KDnuggets的一项调查显示,平均“分析的最大数据集”大约在1-10 GB之间。这在数据管理的任何意义上都不是大数据;它只是通过使用复杂方法分析时才显得大。(我不是在谈论像k-means这样的简单算法)。

大多数“大数据”不是数据挖掘

现在“大数据”是真实存在的。谷歌有大数据,CERN也有大数据。大多数其他人可能没有。当你需要1000台计算机仅仅来存储数据时,数据才开始变得大。

像Hadoop这样的“大数据”技术也是真实存在的。它们并不总是被合理使用(不要费心运行少于100个节点的Hadoop集群——在这一点上,你可能从精心选择的非集群机器中获得更好的性能),但当然人们会编写这样的软件。

但大多数正在进行的工作并不是数据挖掘。这是提取、转换、加载(ETL),因此它是在替代数据仓库。不是使用具有结构、索引和加速查询的数据库,而是将数据直接倾倒到Hadoop中,当你弄清楚要做什么时,你重新读取所有数据,提取你真正需要的信息,转换它,并加载到你的Excel电子表格中。因为在选择、提取和转换之后,通常它就不再是“大”了。

数据质量随大小而下降

大数据的许多营销承诺将无法实现。Twitter为大多数公司产生的洞察远少于广告宣传(除非你是青少年摇滚明星);而且Twitter用户群是严重偏见的。纠正这种偏见是困难的,需要高度经验丰富的统计学家。

数据偏见是一个问题——如果你只是从互联网或某个应用程序中收集一些随机数据,通常它不会具有代表性;特别是不会代表潜在用户。相反,如果你不能抵消这些效果,你将过度拟合到现有的重度用户。

另一个大问题只是噪音。你有垃圾邮件机器人,但也有其他工具(想想Twitter的“热门话题”,这会导致“趋势”的强化)使得数据比其他来源更加嘈杂。清理这些数据是困难的,这不是技术问题,而是统计领域专家的问题。例如,Google Flu Trends被反复发现相当不准确。它在早期几年有效(可能是由于过度拟合?),但现在质量已经不好了。

不幸的是,许多大数据用户对这一点关注太少;这可能是大多数大数据项目似乎失败的众多原因之一(其他原因包括管理不善、过度和不切实际的期望,以及缺乏公司文化和熟练的人才)。

Hadoop != 数据挖掘

现在回答你问题的第二部分。Hadoop不进行数据挖掘。Hadoop管理数据存储(通过HDFS,一种非常原始的分布式数据库),并安排计算任务,允许你在存储数据的同一台机器上运行计算。它进行任何复杂的分析。

有一些工具试图将数据挖掘带到Hadoop上。特别是,Apache Mahout可以被称为Apache官方尝试在Hadoop上进行数据挖掘。但它主要是一个机器学习工具(机器学习 != 数据挖掘;数据挖掘有时使用机器学习的方法)。Mahout的某些部分(如聚类)远非先进。问题在于Hadoop适合线性问题,但大多数数据挖掘不是线性的。非线性算法不仅仅是扩展到大数据;你需要仔细开发线性时间的近似,并接受精度上的损失——这些损失必须小于你通过仅在较小数据上工作所损失的精度。

k-means是一个很好的例子来说明这种权衡问题。K-means实际上是一个(主要是)线性问题;所以它可以在Hadoop上运行。单次迭代是线性的,如果你有一个好的实现,它会很好地扩展到大数据。然而,达到收敛的迭代次数也会随着数据集大小的增加而增加,因此它并不是真正线性的。然而,由于这是一种寻找“均值”的统计方法,结果实际上并不会随着数据集大小的增加而显著改善。所以虽然你可以在大数据上运行k-means,但这并没有太大意义——你可以只取一个数据样本,运行一个高效的单节点版本的k-means,结果会同样好。因为额外的数据只是给你一些你不需要那么精确的值的额外精度数字。

由于这适用于相当多的问题,实际在Hadoop上进行数据挖掘似乎并没有起飞。每个人都试图这样做,很多公司都在卖这些东西。但它并不比非大数据版本工作得更好。但只要客户想要购买,公司就会出售这种功能。只要它能给你带来资助,研究人员就会写关于此的论文。无论它是否有效。这就是生活。

有一些案例是有效的。谷歌搜索是一个例子,CERN也是。但图像识别(但不是使用Hadoop,使用GPU集群似乎是那里的方法)最近也从数据规模的增加中受益。但在这些案例中,你都有相当干净的数据。谷歌索引一切;CERN丢弃任何不感兴趣的数据,只分析有趣的测量——没有垃圾邮件发送者将他们的垃圾邮件输入到CERN……而在图像分析中,你训练在预选的相关图像上,而不是在网络摄像头或互联网上的随机图像上(如果是的话,你将它们视为随机图像,而不是代表性数据)。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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