数据挖掘的定义# Q: R/ w& @4 R
1、技术上的定义及含义. R" w; F* _ L7 M+ n/ N; X
数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 与 数据挖掘相近的同义词有数据融合、数据分析和决策支持等。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。. I& [: {9 \# N/ `# @
----何为知识?从广义上理解,数据、信息也是知识的表现形式,但是人们更把概念、规则、模式、规律和约束等看作知识。人们把数据看作是形成知识的源泉,好像从矿石中采矿或淘金一样。原始数据可以是结构化的,如关系数据库中的数据;也可以是半结构化的,如文本、图形和图像数据;甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现的知识可以被用于信息管理,查询优化,决策支持和过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识,提供决策支持。在这种需求牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成新的技术热点。) Y& P8 Y$ h+ P3 L+ _8 m1 }1 V7 l8 X
这里所说的知识发现,不是要求发现放之四海而皆准的真理,也不是要去发现崭新的自然科学定理和纯数学公式,更不是什么机器定理证明。实际上,所有发现的知识都是相对的,是有特定前提和约束条件,面向特定领域的,同时还要能够易于被用户理解。最好能用自然语言表达所发现的结果。
2 J% ^9 w3 D5 \ 2、 商业角度的定义
7 ~/ e3 g, Q0 g' d1 K/ T 数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。' v9 G' F/ P k& F, ~9 C2 Z- o
简而言之,数据挖掘其实是一类深层次的数据分析方法。数据分析本身已经有很多年的历史,只不过在过去数据收集和分析的目的是用于科学研究,另外,由于当时计算能力的限制,对大数据量进行分析的复杂数据分析方法受到很大限制。现在,由于各行业业务自动化的实现,商业领域产生了大量的业务数据,这些数据不再是为了分析的目的而收集的,而是由于纯机会的(Opportunistic)商业运作而产生。分析这些数据也不再是单纯为了研究的需要,更主要是为商业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因此从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息,就像从矿石中淘金一样,数据挖掘也因此而得名。
3 h/ ~( ]! i: [) l! {7 p0 m 因此,数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。. |: a) [+ D0 v7 A e k
3、数据挖掘与传统分析方法的区别1 v* H: t0 v7 l/ _" S' y- j
数据挖掘与传统的数据分析(如查询、报表、联机应用分析)的本质区别是数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识.数据挖掘所得到的信息应具有先未知,有效和可实用三个特征。
. F+ y- R: [- H2 v4 w 先前未知的信息是指该信息是预先未曾预料到的,既数据挖掘是要发现那些不能靠直觉发现的信息或知识,甚至是违背直觉的信息或知识,挖掘出的信息越是出乎意料,就可能越有价值.在商业应用中最典型的例子就是一家连锁店通过数据挖掘发现了小孩尿布和啤酒之间有着惊人的联系。
2 S1 I& ]' A& R% t7 v 4、数据挖掘和数据仓库. A$ G3 ~$ V6 [. B! ^
大部分情况下,数据挖掘都要先把数据从数据仓库中拿到数据挖掘库或数据集市中(见图1)。从数据仓库中直接得到进行数据挖掘的数据有许多好处。就如我们后面会讲到的,数据仓库的数据清理和数据挖掘的数据清理差不多,如果数据在导入数据仓库时已经清理过,那很可能在做数据挖掘时就没必要在清理一次了,而且所有的数据不一致的问题都已经被你解决了。
, [) f! r) l5 V0 h* u& i 数据挖掘库可能是你的数据仓库的一个逻辑上的子集,而不一定非得是物理上单独的数据库。但如果你的数据仓库的计算资源已经很紧张,那你最好还是建立一个单独的数据挖掘库。 当然为了数据挖掘你也不必非得建立一个数据仓库,数据仓库不是必需的。建立一个巨大的数据仓库,把各个不同源的数据统一在一起,解决所有的数据冲突问题,然后把所有的数据导到一个数据仓库内,是一项巨大的工程,可能要用几年的时间花上百万的钱才能完成。只是为了数据挖掘,你可以把一个或几个事务数据库导到一个只读的数据库中,就把它当作数据集市,然后在他上面进行数据挖掘。, e+ R2 e* {# u
5、数据挖掘和在线分析处理(OLAP)( g7 f. ^9 g y5 @6 F) b4 ]! W+ G
一个经常问的问题是,数据挖掘和OLAP到底有何不同。下面将会解释,他们是完全不同的工具,基于的技术也大相径庭。+ |5 p1 j9 l) W$ ?( H* q
OLAP是决策支持领域的一部分。传统的查询和报表工具是告诉你数据库中都有什么(what happened),OLAP则更进一步告诉你下一步会怎么样(What next)、和如果我采取这样的措施又会怎么样(What if)。用户首先建立一个假设,然后用OLAP检索数据库来验证这个假设是否正确。比如,一个分析师想找到什么原因导致了贷款拖欠,他可能先做一个初始的假定,认为低收入的人信用度也低,然后用OLAP来验证他这个假设。如果这个假设没有被证实,他可能去察看那些高负债的账户,如果还不行,他也许要把收入和负债一起考虑,一直进行下去,直到找到他想要的结果或放弃。
6 `. O0 }4 N; Y/ @( b/ M8 _1 q, U+ e 也就是说,OLAP分析师是建立一系列的假设,然后通过OLAP来证实或推翻这些假设来最终得到自己的结论。OLAP分析过程在本质上是一个演绎推理的过程。但是如果分析的变量达到几十或上百个,那么再用OLAP手动分析验证这些假设将是一件非常困难和痛苦的事情。* I* u- `: D! u4 z8 I7 T% R- n$ A
数据挖掘与OLAP不同的地方是,数据挖掘不是用于验证某个假定的模式(模型)的正确性,而是在数据库中自己寻找模型。他在本质上是一个归纳的过程。比如,一个用数据挖掘工具的分析师想找到引起贷款拖欠的风险因素。数据挖掘工具可能帮他找到高负债和低收入是引起这个问题的因素,甚至还可能发现一些分析师从来没有想过或试过的其他因素,比如年龄。
- W2 i0 p1 f& g/ g9 B. S5 z( v 数据挖掘和OLAP具有一定的互补性。在利用数据挖掘出来的结论采取行动之前,你也许要验证一下如果采取这样的行动会给公司带来什么样的影响,那么OLAP工具能回答你的这些问题。
, M: o* S' I; }, s8 c7 { 而且在知识发现的早期阶段,OLAP工具还有其他一些用途。可以帮你探索数据,找到哪些是对一个问题比较重要的变量,发现异常数据和互相影响的变量。这都能帮你更好的理解你的数据,加快知识发现的过程。; W, N( N7 I( P7 q: K
6、数据挖掘,机器学习和统计
- V& O, t' g! r* J9 X 数据挖掘利用了人工智能(AI)和统计分析的进步所带来的好处。这两门学科都致力于模式发现和预测。 O W$ _, h4 K U
数据挖掘不是为了替代传统的统计分析技术。相反,他是统计分析方法学的延伸和扩展。大多数的统计分析技术都基于完善的数学理论和高超的技巧,预测的准确度还是令人满意的,但对使用者的要求很高。而随着计算机计算能力的不断增强,我们有可能利用计算机强大的计算能力只通过相对简单和固定的方法完成同样的功能。
9 o4 Y& l! Q& r3 a; _, q 一些新兴的技术同样在知识发现领域取得了很好的效果,如神经元网络和决策树,在足够多的数据和计算能力下,他们几乎不用人的关照自动就能完成许多有价值的功能。8 ^- I3 W, J: Q4 h$ N
数据挖掘就是利用了统计和人工智能技术的应用程序,他把这些高深复杂的技术封装起来,使人们不用自己掌握这些技术也能完成同样的功能,并且更专注于自己所要解决的问题。
* }$ }' m: c7 ^ 7、软硬件发展对数据挖掘的影响
6 u( O# m2 U* X9 S) a C/ t9 | 使数据挖掘这件事情成为可能的关键一点是计算机性能价格比的巨大进步。在过去的几年里磁盘存储器的价格几乎降低了99%,这在很大程度上改变了企业界对数据收集和存储的态度。如果每兆的价格是¥10,那存放1TB的价格是¥10,000,000,但当每兆的价格降为1毛钱时,存储同样的数据只有¥100,000!- |7 s2 \6 Y; C; v- L- U
计算机计算能力价格的降低同样非常显著。每一代芯片的诞生都会把CPU的计算能力提高一大步。内存RAM也同样降价迅速,几年之内每兆内存的价格由几百块钱降到现在只要几块钱。通常PC都有64M内存,工作站达到了256M,拥有上G内存的服务器已经不是什么新鲜事了。- w4 H6 e% k! L4 h' n$ n) e, o
在单个CPU计算能力大幅提升的同时,基于多个CPU的并行系统也取得了很大的进步。目前几乎所有的服务器都支持多个CPU,这些SMP服务器簇甚至能让成百上千个CPU同时工作。% g6 M* {- `3 h& b7 k# {
基于并行系统的数据库管理系统也给数据挖掘技术的应用带来了便利。如果你有一个庞大而复杂的数据挖掘问题要求通过访问数据库取得数据,那么效率最高的办法就是利用一个本地的并行数据库。
. P0 U Q! H& ^# P' l0 n5 w5 K 所有这些都为数据挖掘的实施扫清了道路,随着时间的延续,我们相信这条道路会越来越平坦。 |