hadoop - 大数据和数据挖掘有什么区别?

标签 hadoop machine-learning bigdata data-mining data-science

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

5年前关闭。




Improve this question




正如维基百科所说

The overall goal of the data mining process is to extract information from a data set and transform it into an understandable structure for further use



这与大数据有什么关系?如果我说 Hadoop 以并行方式进行数据挖掘,是否正确?

最佳答案

大数据就是一切

大数据是一个营销术语,而不是一个技术术语。现在一切都是大数据。我的U盘现在是“个人云”,我的硬盘是大数据。严重地。这是一个完全不具体的术语,主要由各种非常乐观的公司的营销部门可以出售的东西以及大公司的 C*O 购买的东西来定义,以便让奇迹发生。更新:现在,同样适用于 数据科学 .这只是营销。

数据挖掘是旧的大数据

实际上,数据挖掘也被过度使用了……它可能意味着诸如

  • 收集数据(想想 NSA)
  • 存储数据
  • 机器学习/人工智能(早于术语数据挖掘)
  • 非机器学习数据挖掘 (如在“知识发现”中,术语数据挖掘实际上是创造出来的;但重点是新知识,而不是学习现有知识)
  • 业务规则和分析
  • 可视化
  • 任何涉及您想以大量金钱出售的数据

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

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

    由于大多数方法 - 至少那些给出有趣结果的方法 - 只是不能扩展,因此“挖掘”的大多数数据实际上并不大。它显然比 10 年前大得多,但没有艾字节那么大。 KDnuggets 的一项调查显示,平均“分析的最大数据集”大约有 1-10 GB。那不是任何数据管理方式的大数据;它只是通过使用复杂方法可以分析的内容而变大。 (我不是在谈论像 k 均值这样的琐碎算法)。

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

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

    Hadoop 等大数据技术也是真实存在的。它们并不总是明智地使用(不要费心运行少于 100 个节点的 hadoop 集群——因为在这一点上,您可能可以从精心挑选的非集群机器上获得更好的性能),但当然人们会编写这样的软件。

    但是正在做的大部分工作都不是数据挖掘。它是 Extract, Transform, Load (ETL) ,因此它正在取代数据仓库。不是使用具有结构、索引和加速查询的数据库,而是将数据转储到 hadoop 中,当您弄清楚要做什么时,您重新读取所有数据并提取您真正需要的信息,对其进行转换,然后将其加载到您的 Excel 电子表格中。因为经过选择、提取和转换,通常它不再“大”了。

    数据质量受规模影响

    大数据的许多营销 promise 将不成立。 Twitter 为大多数公司提供的洞察力比宣传的要少得多(除非你是一个青少年摇滚明星);并且 Twitter 用户群存在严重偏见。纠正这种偏差很困难,需要经验丰富的统计学家。

    数据偏差是一个问题——如果你只是从互联网或应用程序中收集一些随机数据,它通常不具有代表性;尤其不是潜在用户。相反,如果您不设法消除这些影响,您将对现有的重度用户过度适应。

    另一个大问题就是噪音。你有垃圾邮件机器人,还有其他工具(想想 Twitter 的“趋势主题”会导致“趋势”的强化),这些工具使数据比其他来源更嘈杂。清理这些数据很困难,这不是技术问题,而是统计领域的专业知识。例如 Google 流感趋势 多次被发现相当不准确。它在早期的一些年份中有效(可能是因为过度拟合?)但不再具有良好的质量。

    不幸的是,很多大数据用户对此关注得太少;这可能是大多数大数据项目似乎失败的众多原因之一(其他原因是管理不力、期望过高和不切实际,以及缺乏公司文化和技术人员)。

    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 ......在图像分析中,你训练预选的相关图像,而不是网络摄像头或来自互联网的随机图像(和如果是这样,您将它们视为随机图像,而不是具有代表性的数据)。

    关于hadoop - 大数据和数据挖掘有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419958/

    相关文章:

    hadoop - 是否可以将map-reduce的输出直接输出到多个Map文件?

    hadoop - 如何在 hadoop yarn 上获取应用程序运行时

    image - 从Hadoop sequenceFile获取原始图像时出错

    python-3.x - 无法将大小为 64 的数组 reshape 为形状 (28,28)

    hadoop - HDFS 作为 cloudera quickstart docker 中的卷

    Hadoop:找不到类

    Hadoop:ClassNotFoundException - org.apache.hcatalog.rcfile.RCFileMapReduceOutputFormat

    machine-learning - 根据过去 3 年的季度客户数量预测 future 4 个季度的客户数量

    machine-learning - LSTM 精度不变,损失减少

    hadoop - hadoop如何存储数据和使用MapReduce?