【问题标题】:What is data mining from a developer's perspective?从开发人员的角度来看,什么是数据挖掘?
【发布时间】:2010-11-10 13:54:01
【问题描述】:

我可以在一本书或维基百科上找到关于什么是数据挖掘的技术解释,但我想知道它究竟涉及什么样的开发?更多是关于使用工具还是更多关于编写工具?在研发方面,它真的与其他领域有什么不同吗?

【问题讨论】:

  • StackOverflow 不是数据矿吗? :-)
  • 在某种程度上,是的。您可以尝试分析一段时间内对特定标签的兴趣,看看哪个是未来趋势。
  • 实际上,您甚至可以衡量访问者的知识水平,结合他们提供的答案,可以用来找到某个主题的最佳专家。对于猎头来说非常实用,只要他们能从这个网站收集到关于所有高声誉访问者的足够信息。
  • 我建议您更改已接受的答案。

标签: data-mining


【解决方案1】:

我所说的数据挖掘是从给定的数据中寻找模式或趋势。开发人员的观点可能是在诸如反洗钱之类的应用程序中……在给定模式的地方,您将搜索该给定模式的数据。另一种用途是在投影软件中......通过研究识别数据中的当前趋势,您可以根据启发式预测未来的结果或结果。

【讨论】:

    【解决方案2】:

    数据挖掘是关于在大量数据中搜索隐藏模式。 Web 2.0 示例:新闻集团使用其网站 myspace.com 作为大型数据挖掘,以确定要宣传的电影和产品。他们编写软件来识别用户发布到网站的数据趋势。新闻集团这样做是为了收集对广告活动和市场预测有用的信息。它与其他研发领域的不同之处在于,从数据提供者的角度来看,它是被动的。数据挖掘工具通过分析用户自愿提供的数据来整理这些问题,而不是走在大街上亲自询问人们今年夏天他们可能会看哪些电影以及其他类似问题。

    维基百科确实有一篇非常好的文章: - http://en.wikipedia.org/wiki/Data_mining

    【讨论】:

      【解决方案3】:

      根据我的经验(我曾是一名数据挖掘者 :-)),它是使用工具和编写工具的混合体。很多时候,分析特定数据集所需的工具并不存在,因此您必须先自己编写它们。它可能非常有趣,但您通常需要一种完全不同的方法来处理我现在所做的那种编程(嵌入式无线)。

      【讨论】:

        【解决方案4】:

        我认为更多的是使用现成的工具,而不是开发自己的工具。这种工具的一个学术例子可能是WEKA。当然,你还是要知道使用什么算法,如何预处理数据(这部分很重要)等等。

        在研发方面我没有太多想法,但它应该像几乎所有东西一样:数学、统计、更多数学......

        【讨论】:

        • 我不同意。为您的特定用例实施和调整算法有很多工作要做,因为现成的解决方案无法涵盖所有​​内容,并且仅适用于原型设计。
        【解决方案5】:

        在开发层面,数据挖掘只是另一种数据库应用,但数据量巨大。

        挖掘本身是通过在数据库上运行特定查询来完成的。它是在创建完成重要工作的查询中。当然,它们取决于数据模型,以及假设,客户期望找到什么样的趋势。 因此,查询的微调通常不能在开发中进行,而只能在系统处于活动状态并且您拥有活动数据时进行。然后用户可以测试他的假设并调整查询以向他展示他正在寻找的趋势。

        所以从开发的角度来看,数据维护是关于

        1. 在客户端管理大量数据(一个查询可能返回 100.000 行数据)

        2. 为用户(可能对 SQL 或一般的关系数据库一无所知)提供修改查询和查看结果的有效方法。

        【讨论】:

        • +1 这就是我实际在做的事情,不能说这是数据挖掘。很好的解释!谢谢!
        • 聚类、分类、异常检测、相似度测量等并非仅通过“查询”数据和“调整”这些查询来完成。我不同意。
        • @colithium:那么,他们通过哪些其他方式完成了?正如我在对 ybakos 回答的回复中所说,我的回答缺乏对数据分析方法的任何参考,这是真的。但是我不明白数据挖掘的第一步除了访问数据之外还能是什么,这通常是通过查询来完成的。这就是我认为 DM 应用程序的开发人员应该牢记的潜在技术难题。
        • 一定要使用一定要访问,我同意你的看法。但这不是数据挖掘的本质。这就像在 SO 上的每个答案都以“您需要访问 RAM 来解决您的问题”作为开头。我不是要油嘴滑舌;数据挖掘是关于开发和/或选择技术来识别大量数据集中的模式。这与查询摘要统计信息或有趣的联接无关。
        【解决方案6】:

        数据挖掘是在大量数据中发现有趣模式的过程。它不是查询数据,这正是用户 Treb 所描述的(对不起 Treb)。

        要从开发人员的角度理解 DM,您应该阅读 Toby Segaran 的《Programming Collective Intelligence》一书。

        【讨论】:

        • 不能说我同意你的看法 - 如果不先查询,你将如何发现数据中的任何模式?查询是第一步,因此它是开发人员必须考虑的第一件事。我承认我完全忘了提及任何数据分析——统计数据对于任何数据挖掘应用程序以及大型数据集的可视化表示当然都是必须的。但是执行分析是由数据挖掘者完成的,而不是开发人员。 OP 是从开发人员的 POV 询问数据挖掘,所以这就是我试图回答的问题。
        • "如果不先查询,您将如何发现数据中的任何模式?"你问。您通过编程实现而不是通过查询来发现数据中的模式。这就是重点——让机器检测数据中的模式。
        • 为了以编程方式检测模式,您首先需要查看数据。所以最终归结为查询,不管是谁在做查询。
        • @Treb 是的,但单独查询将无济于事。需要分析数据的模式,这就是数据挖掘。
        【解决方案7】:

        你真的应该改变这个问题的公认答案,这样它就不会误导那些遇到它的人。

        说查询数据库就是数据挖掘,因为“如果不先查询,您将如何发现数据中的任何模式?”就像说打开你的车门就是开车,因为“如果不先打开车门,你怎么能开车去某个地方。”

        如果需要,您可以从文本文件中读取数据。我的第一个数据挖掘任务使用了来自UCI repository 的数据集,这些数据集几乎都是文本文件。

        如果您想了解数据挖掘,请从查找聚类和分类开始。了解决策树和基于规则的分类。然后看k-nearest-neighbor和k-means。之后,如果您真的想了解数据挖掘的全部内容,请查看 Chameleon、DBScan 和支持向量机。不一定要学习最后三个的细节(它们非常复杂且数学繁重),但理解所发生的抽象概念会告诉你所有你需要知道的,以便使用许多可用的工具和库每个策略。

        这些只是我刚才突然出现的算法。还有很多其他的,我不记得了,甚至还不知道。

        【讨论】:

          猜你喜欢
          • 2011-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-12
          • 2011-11-16
          • 2021-07-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多