我可以在一本书或维基百科上找到关于什么是数据挖掘的技术解释,但我想知道它究竟涉及什么样的开发?更多是关于使用工具还是更多关于编写工具?在研发方面,它真的与其他领域有什么不同吗?
7 回答
数据挖掘是在大量数据中发现有趣模式的过程。它不是查询数据,这正是用户 Treb 所描述的(对不起 Treb)。
要从开发人员的角度理解 DM,您应该阅读 Toby Segaran 所著的 Programming Collective Intelligence 一书。
以我的经验(我以前是数据挖掘者:-)),它是使用工具和编写工具的混合体。很多时候,分析特定数据集所需的工具并不存在,因此您必须先自己编写它们。它可能非常有趣,但您通常需要一种完全不同的方法来处理我现在所做的那种编程(嵌入式无线),例如。
你真的应该改变这个问题的公认答案,这样它就不会误导那些遇到它的人。
说查询数据库是数据挖掘,因为“[h]如果不先查询,您将如何发现数据中的任何模式?” 就像说打开你的车门就是开车,因为“如果不先打开车门,你怎么能开车去某个地方。”
如果需要,您可以从文本文件中读取数据。我的第一个数据挖掘任务使用了UCI 存储库中的数据集,这些数据集几乎都是文本文件。
如果您想了解数据挖掘,请从查找聚类和分类开始。了解决策树和基于规则的分类。然后看k-nearest-neighbor和k-means。之后,如果您真的想了解数据挖掘的全部内容,请查看 Chameleon、DBScan 和支持向量机。不一定要学习最后三个的细节(它们非常复杂且数学繁重),但理解所发生的抽象概念会告诉你所有你需要知道的,以便使用许多可用的工具和库每个策略。
这些只是我刚才突然出现的算法。还有很多其他的,我不记得了,甚至还不知道。
数据挖掘是关于在大量数据中搜索隐藏模式。Web 2.0 示例:新闻集团使用其网站 myspace.com 作为大型数据挖掘,以确定要宣传的电影和产品。他们编写软件来识别用户发布到网站的数据趋势。新闻集团这样做是为了收集对广告活动和市场预测有用的信息。它与其他研发领域的不同之处在于,从数据提供者的角度来看,它是被动的。数据挖掘工具通过分析用户自愿提供的数据来整理这些问题,而不是走在大街上亲自询问人们今年夏天他们可能会看什么电影以及其他类似的问题。
维基百科实际上确实有一篇很好的文章:- http://en.wikipedia.org/wiki/Data_mining
正如我所说,数据挖掘是从给定的数据中寻找模式或趋势。开发人员的观点可能是在反洗钱等应用程序中......在给定模式的地方,您将搜索该给定模式的数据。另一种用途是在投影软件中……通过研究识别数据中的当前趋势,您可以根据启发式方法预测未来的结果或结果。
我认为更多的是使用现成的工具,而不是开发自己的工具。这种工具的一个学术例子可能是WEKA。当然,你还是要知道使用什么算法,如何预处理数据(这部分很重要)等。
在研发方面我没有太多想法,但它应该像几乎所有东西一样:数学,统计,更多数学......
在开发层面上,数据挖掘只是另一种数据库应用,但数据量巨大。
挖掘本身是通过在数据库上运行特定查询来完成的。它是在创建完成重要工作的查询中。当然,它们取决于数据模型,以及假设,客户期望找到什么样的趋势。因此,查询的微调通常不能在开发中进行,而只能在系统处于活动状态并且您拥有活动数据时进行。然后用户可以测试他的假设并调整查询以向他展示他正在寻找的趋势。
所以从开发的角度来看,数据维护是关于
在客户端管理大量数据(一个查询可能返回 100.000 行数据)
为用户(通常可能对 SQL 或关系数据库一无所知)提供修改查询和查看结果的有效方法。