概述
数据挖掘(Data Mining),就是从存放在数据库,数据仓库或其他信息库中的大量的数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。
什么是数据挖掘
数据挖掘,在人工智能领域,习惯上又称为数据库中知识发现(Knowledge Discovery in Database, KDD), 也有人把数据挖掘视为数据库中知识发现过程的一个基本步骤。知识发现过程以下三个阶段组成:(1)数据准备,(2)数据挖掘,(3)结果表达和解释。数据挖掘可以与用户或知识库交互。
并非所有的信息发现任务都被视为数据挖掘。例如,使用数据库管理系统查找个别的记录,或通过因特网的搜索引擎查找特定的Web页面,则是信息检索(information retrieval)领域的任务。虽然这些任务是重要的,可能涉及使用复杂的算法和数据结构,但是它们主要依赖传统的计算机科学技术和数据的明显特征来创建索引结构,从而有效地组织和检索信息。尽管如此,数据挖掘技术也已用来增强信息检索系统的能力。
数据挖掘的起源
需要是发明之母。近年来,数据挖掘引起了信息产业界的极大关注,其主要原因是存在大量数据,可以广泛使用,并且迫切需要将这些数据转换成有用的信息和知识。获取的信息和知识可以广泛用于各种应用,包括商务管理,生产控制,市场分析,工程设计和科学探索等。
数据挖掘利用了来自如下一些领域的思想:(1) 来自统计学的抽样、估计和假设检验,(2) 人工智能、模式识别和机器学习的搜索算法、建模技术和学习理论。数据挖掘也迅速地接纳了来自其他领域的思想,这些领域包括最优化、进化计算、信息论、信号处理、可视化和信息检索。一些其他领域也起到重要的支撑作用。特别地,需要数据库系统提供有效的存储、索引和查询处理支持。源于高性能(并行)计算的技术在处理海量数据集方面常常是重要的。分布式技术也能帮助处理海量数据,并且当数据不能集中到一起处理时更是至关重要。
数据挖掘能做什么
1)数据挖掘能做以下六种不同事情(分析方法):
· 分类 (Classification)
· 估值(Estimation)
· 预言(Prediction)
· 相关性分组或关联规则(Affinity grouping or association rules)
· 聚集(Clustering)
· 描述和可视化(Description and Visualization)
· 复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)
2)数据挖掘分类
以上六种数据挖掘的分析方法可以分为两类:直接数据挖掘;间接数据挖掘
· 直接数据挖掘
目标是利用可用的数据建立一个模型,这个模型对剩余的数据,对一个特定的变量(可以理解成数据库中表的属性,即列)进行描述。
· 间接数据挖掘
目标中没有选出某一具体的变量,用模型进行描述;而是在所有的变量中建立起某种关系 。
· 分类、估值、预言属于直接数据挖掘;后三种属于间接数据挖掘
3)各种分析方法的简介
· 分类 (Classification)
首先从数据中选出已经分好类的训练集,在该训练集上运用数据挖掘分类的技术,建立分类模型,对于没有分类的数据进行分类。
例子:
a. 信用卡申请者,分类为低、中、高风险
b. 分配客户到预先定义的客户分片
注意: 类的个数是确定的,预先定义好的
· 估值(Estimation)
估值与分类类似,不同之处在于,分类描述的是离散型变量的输出,而估值处理连续值的输出;分类的类别是确定数目的,估值的量是不确定的。
例子:
a. 根据购买模式,估计一个家庭的孩子个数
b. 根据购买模式,估计一个家庭的收入
c. 估计real estate的价值
一般来说,估值可以作为分类的前一步工作。给定一些输入数据,通过估值,得到未知的连续变量的值,然后,根据预先设定的阈值,进行分类。例如:银行对家庭贷款业务,运用估值,给各个客户记分(Score 0~1)。然后,根据阈值,将贷款级别分类。
· 预言(Prediction)
通常,预言是通过分类或估值起作用的,也就是说,通过分类或估值得出模型,该模型用于对未知变量的预言。从这种意义上说,预言其实没有必要分为一个单独的类。预言其目的是对未来未知变量的预测,这种预测是需要时间来验证的,即必须经过一定时间后,才知道预言准确性是多少。
· 相关性分组或关联规则(Affinity grouping or association rules)
决定哪些事情将一起发生。
例子:
a. 超市中客户在购买A的同时,经常会购买B,即A => B(关联规则)
b. 客户在购买A后,隔一段时间,会购买B (序列分析)
· 聚集(Clustering)
聚集是对记录分组,把相似的记录在一个聚集里。聚集和分类的区别是聚集不依赖于预先定义好的类,不需要训练集。
例子:
a. 一些特定症状的聚集可能预示了一个特定的疾病
b. 租VCD类型不相似的客户聚集,可能暗示成员属于不同的亚文化群
聚集通常作为数据挖掘的第一步。例如,"哪一种类的促销对客户响应最好?",对于这一 类问题,首先对整个客户做聚集,将客户分组在各自的聚集里,然后对每个不同的聚集,回答问题,可能效果更好。
· 描述和可视化(Des cription and Visualization)
是对数据挖掘结果的表示方式。
数据挖掘中的关联规则
1.什么是关联规则
在描述有关关联规则的一些细节之前,我们先来看一个有趣的故事: "尿布与啤酒"的故事。
在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据。在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。一个意外的发现是:"跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,揭示了一个隐藏在"尿布与啤酒"背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。
按常规思维,尿布与啤酒风马牛不相及,若不是借助数据挖掘技术对大量交易数据进行挖掘分析,沃尔玛是不可能发现数据内在这一有价值的规律的。
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。Agrawal等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题,以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。他们的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算法挖掘规则的效率;对关联规则的应用进行推广。关联规则挖掘在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。
2.关联规则挖掘过程、分类及其相关算法
2.1关联规则挖掘的过程
关联规则挖掘过程主要包含两个阶段:第一阶段必须先从资料集合中找出所有的高频项目组(Frequent Itemsets),第二阶段再由这些高频项目组中产生关联规则(Association Rules)。
关联规则挖掘的第一阶段必须从原始资料集合中,找出所有高频项目组(Large Itemsets)。高频的意思是指某一项目组出现的频率相对于所有记录而言,必须达到某一水平。一项目组出现的频率称为支持度(Support),以一个包含A与B两个项目的2-itemset为例,我们可以经由公式(1)求得包含{A,B}项目组的支持度,若支持度大于等于所设定的最小支持度(Minimum Support)门槛值时,则{A,B}称为高频项目组。一个满足最小支持度的k-itemset,则称为高频k-项目组(Frequent k-itemset),一般表示为Large k或Frequent k。算法并从Large k的项目组中再产生Large k+1,直到无法再找到更长的高频项目组为止。
关联规则挖掘的第二阶段是要产生关联规则(Association Rules)。从高频项目组产生关联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(Minimum Confidence)的条件门槛下,若一规则所求得的信赖度满足最小信赖度,称此规则为关联规则。例如:经由高频k-项目组{A,B}所产生的规则AB,其信赖度可经由公式(2)求得,若信赖度大于等于最小信赖度,则称AB为关联规则。
就沃尔马案例而言,使用关联规则挖掘技术,对交易资料库中的纪录进行资料挖掘,首先必须要设定最小支持度与最小信赖度两个门槛值,在此假设最小支持度min_support=5% 且最小信赖度min_confidence=70%。因此符合此该超市需求的关联规则将必须同时满足以上两个条件。若经过挖掘过程所找到的关联规则「尿布,啤酒」,满足下列条件,将可接受「尿布,啤酒」的关联规则。用公式可以描述Support(尿布,啤酒)>=5%且Confidence(尿布,啤酒)>=70%。其中,Support(尿布,啤酒)>=5%于此应用范例中的意义为:在所有的交易纪录资料中,至少有5%的交易呈现尿布与啤酒这两项商品被同时购买的交易行为。Confidence(尿布,啤酒)>=70%于此应用范例中的意义为:在所有包含尿布的交易纪录资料中,至少有70%的交易会同时购买啤酒。因此,今后若有某消费者出现购买尿布的行为,超市将可推荐该消费者同时购买啤酒。这个商品推荐的行为则是根据「尿布,啤酒」关联规则,因为就该超市过去的交易纪录而言,支持了“大部份购买尿布的交易,会同时购买啤酒”的消费行为。
从上面的介绍还可以看出,关联规则挖掘通常比较适用与记录中的指标取离散值的情况。如果原始数据库中的指标值是取连续的数据,则在关联规则挖掘之前应该进行适当的数据离散化(实际上就是将某个区间的值对应于某个值),数据的离散化是数据挖掘前的重要环节,离散化的过程是否合理将直接影响关联规则的挖掘结果。
2.2关联规则的分类
按照不同情况,关联规则可以进行分类如下:
1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:性别=“女”=>职业=“秘书” ,是布尔型关联规则;性别=“女”=>avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。
2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。
3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。
在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。
2.3关联规则挖掘的相关算法
1.Apriori算法:使用候选项集找频繁项集
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。
可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。
2.基于划分的算法
Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。
3.FP-树频集算法
针对Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。
3.该领域在国内外的应用
3.1关联规则发掘技术在国内外的应用
就目前而言,关联规则挖掘技术已经被广泛应用在西方金融行业企业中,它可以成功预测银行客户需求。一旦获得了这些信息,银行就可以改善自身营销。现在银行天天都在开发新的沟通客户的方法。各银行在自己的ATM机上就捆绑了顾客可能感兴趣的本行产品信息,供使用本行ATM机的用户了解。如果数据库中显示,某个高信用限额的客户更换了地址,这个客户很有可能新近购买了一栋更大的住宅,因此会有可能需要更高信用限额,更高端的新信用卡,或者需要一个住房改善贷款,这些产品都可以通过信用卡账单邮寄给客户。当客户打电话咨询的时候,数据库可以有力地帮助电话销售代表。销售代表的电脑屏幕上可以显示出客户的特点,同时也可以显示出顾客会对什么产品感兴趣。
同时,一些知名的电子商务站点也从强大的关联规则挖掘中的受益。这些电子购物网站使用关联规则中规则进行挖掘,然后设置用户有意要一起购买的捆绑包。也有一些购物网站使用它们设置相应的交叉销售,也就是购买某种商品的顾客会看到相关的另外一种商品的广告。
但是目前在我国,“数据海量,信息缺乏”是商业银行在数据大集中之后普遍所面对的尴尬。目前金融业实施的大多数数据库只能实现数据的录入、查询、统计等较低层次的功能,却无法发现数据中存在的各种有用的信息,譬如对这些数据进行分析,发现其数据模式及特征,然后可能发现某个客户、消费群体或组织的金融和商业兴趣,并可观察金融市场的变化趋势。可以说,关联规则挖掘的技术在我国的研究与应用并不是很广泛深入。
3.2近年来关联规则发掘技术的一些研究
由于许多应用问题往往比超市购买问题更复杂,大量研究从不同的角度对关联规则做了扩展,将更多的因素集成到关联规则挖掘方法之中,以此丰富关联规则的应用领域,拓宽支持管理决策的范围。如考虑属性之间的类别层次关系,时态关系,多表挖掘等。近年来围绕关联规则的研究主要集中于两个方面,即扩展经典关联规则能够解决问题的范围,改善经典关联规则挖掘算法效率和规则兴趣性。
数据挖掘技术实现
在技术上可以根据它的工作过程分为:数据的抽取、数据的存储和管理、数据的展现等关键技术。
·数据的抽取
数据的抽取是数据进入仓库的入口。由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入数据仓库。数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面的处理。在数据抽取方面,未来的技术发展将集中在系统功能集成化方面,以适应数据仓库本身或数据源的变化,使系统更便于管理和维护。
·数据的存储和管理
数据仓库的组织管理方式决定了它有别于传统数据库的特性,也决定了其对外部数据的表现形式。数据仓库管理所涉及的数据量比传统事务处理大得多,且随时间的推移而快速累积。在数据仓库的数据存储和管理中需要解决的是如何管理大量的数据、如何并行处理大量的数据、如何优化查询等。目前,许多数据库厂家提供的技术解决方案是扩展关系型数据库的功能,将普通关系数据库改造成适合担当数据仓库的服务器。
·数据的展现
在数据展现方面主要的方式有:
查询:实现预定义查询、动态查询、OLAP查询与决策支持智能查询;报表:产生关系数据表格、复杂表格、OLAP表格、报告以及各种综合报表;可视化:用易于理解的点线图、直方图、饼图、网状图、交互式可视化、动态模拟、计算机动画技术表现复杂数据及其相互关系;统计:进行平均值、最大值、最小值、期望、方差、汇总、排序等各种统计分析;挖掘:利用数据挖掘等方法,从数据中得到关于数据关系和模式的识。
数据挖掘与数据仓库融合发展
数据挖掘和数据仓库的协同工作,一方面,可以迎合和简化数据挖掘过程中的重要步骤,提高数据挖掘的效率和能力,确保数据挖掘中数据来源的广泛性和完整性。另一方面,数据挖掘技术已经成为数据仓库应用中极为重要和相对独立的方面和工具。
数据挖掘和数据仓库是融合与互动发展的,其学术研究价值和应用研究前景将是令人振奋的。它是数据挖掘专家、数据仓库技术人员和行业专家共同努力的成果,更是广大渴望从数据库“奴隶”到数据库“主人”转变的企业最终用户的通途。
统计学与数据挖掘
统计学和数据挖掘有着共同的目标:发现数据中的结构。事实上,由于它们的目标相似,一些人(尤其是统计学家)认为数据挖掘是统计学的分支。这是一个不切合实际的看法。因为数据挖掘还应用了其它领域的思想、工具和方法,尤其是计算机学科,例如数据库技术和机器学习,而且它所关注的某些领域和统计学家所关注的有很大不同。
1.统计学的性质
试图为统计学下一个太宽泛的定义是没有意义的。尽管可能做到,但会引来很多异议。相反,我要关注统计学不同于数据挖掘的特性。
差异之一同上节中最后一段提到的相关,即统计学是一门比较保守的学科,目前有一种趋势是越来越精确。当然,这本身并不是坏事,只有越精确才能避免错误,发现真理。但是如果过度的话则是有害的。这个保守的观点源于统计学是数学的分支这样一个看法,我是不同意这个观点的,尽管统计学确实以数学为基础(正如物理和工程也以数学为基础,但没有被认为是数学的分支),但它同其它学科还有紧密的联系。
数学背景和追求精确加强了这样一个趋势:在采用一个方法之前先要证明,而不是象计算机科学和机器学习那样注重经验。这就意味着有时候和统计学家关注同一问题的其它领域的研究者提出一个很明显有用的方法,但它却不能被证明(或还不能被证明)。统计杂志倾向于发表经过数学证明的方法而不是一些特殊方法。数据挖掘作为几门学科的综合,已经从机器学习那里继承了实验的态度。这并不意味着数据挖掘工作者不注重精确,而只是说明如果方法不能产生结果的话就会被放弃。
正是统计文献显示了(或夸大了)统计的数学精确性。同时还显示了其对推理的侧重。尽管统计学的一些分支也侧重于描述,但是浏览一下统计论文的话就会发现这些文献的核心问题就是在观察了样本的情况下如何去推断总体。当然这也常常是数据挖掘所关注的。下面我们会提到数据挖掘的一个特定属性就是要处理的是一个大数据集。这就意味着,由于可行性的原因,我们常常得到的只是一个样本,但是需要描述样本取自的那个大数据集。然而,数据挖掘问题常常可以得到数据总体,例如关于一个公司的所有职工数据,数据库中的所有客户资料,去年的所有业务。在这种情形下,推断就没有价值了(例如,年度业务的平均值),因为观测到的值也就是估计参数。这就意味着,建立的统计模型可能会利用一系列概率表述(例如,一些参数接近于0,则会从模型中剔除掉),但当总体数据可以获得的话,在数据挖掘中则变得毫无意义。在这里,我们可以很方便的应用评估函数:针对数据的足够的表述。事实是,常常所关注的是模型是否合适而不是它的可行性,在很多情形下,使得模型的发现很容易。例如,在寻找规则时常常会利用吻合度的单纯特性(例如,应用分支定理)。但当我们应用概率陈述时则不会得到这些特性。
统计学和数据挖掘部分交迭的第三个特性是在现代统计学中起核心作用的“模型”。或许“模型”这个术语更多的含义是变化。一方面,统计学模型是基于分析变量间的联系,但另一方面这些模型关于数据的总体描述确实没有道理的。关于信用卡业务的回归模型可能会把收入作为一个独立的变量,因为一般认为高收入会导致大的业务。这可能是一个理论模型(尽管基于一个不牢靠的理论)。与此相反,只需在一些可能具有解释意义的变量基础上进行逐步的搜索,从而获得一个有很大预测价值的模型,尽管不能作出合理的解释。(通过数据挖掘去发现一个模型的时候,常常关注的就是后者)。
还有其它方法可以区分统计模型,但在这里我将不作探讨。这里我想关注的是,现代统计学是以模型为主的。而计算,模型选择条件是次要的,只是如何建立一个好的模型。但在数据挖掘中,却不完全是如此。在数据挖掘中,准则起了核心的作用。(当然在统计学中有一些以准则为中心的独立的特例。Gifi的关于学校的非线性多变量分析就是其中之一。例如,Gifi说,在本书中我们持这样的观点,给定一些最常用的MVA(多变量分析)问题,既可以从模型出发也可以技术出发。正如我们已经在1.1节所看到的基于模型的经典的多变量统计分析,……然而,在很多情形下,模型的选择并不都是显而易见的,选择一个合适的模型是不可能的,最合适的计算方法也是不可行的。在这种情形下,我们从另外一个角度出发,应用设计的一系列技术来回答MVA问题,暂不考虑模型和最优判别的选择。
相对于统计学而言,准则在数据挖掘中起着更为核心的作用并不奇怪,数据挖掘所继承的学科如计算机科学及相关学科也是如此。数据集的规模常常意味着传统的统计学准则不适合数据挖掘问题,不得不重新设计。部分地,当数据点被逐一应用以更新估计量,适应性和连续性的准则常常是必须的。尽管一些统计学的准则已经得到发展,但更多的应用是机器学习。(正如“学习”所示的那样)
2.数据挖掘的性质
由于统计学基础的建立在计算机的发明和发展之前,所以常用的统计学工具包含很多可以手工实现的方法。因此,对于很多统计学家来说,1000个数据就已经是很大的了。但这个“大”对于英国大的信用卡公司每年350,000,000笔业务或AT&T每天200,000,000个长途呼叫来说相差太远了。很明显,面对这么多的数据,则需要设计不同于那些“原则上可以用手工实现”的方法。这意味这计算机(正是计算机使得大数据可能实现)对于数据的分析和处理是关键的。分析者直接处理数据将变得不可行。相反,计算机在分析者和数据之间起到了必要的过滤的作用。这也是数据挖掘特别注重准则的另一原因。尽管有必要,把分析者和数据分离开很明显导致了一些关联任务。这里就有一个真正的危险:非预期的模式可能会误导分析者,这一点我下面会讨论。
我不认为在现代统计中计算机不是一个重要的工具。它们确实是,并不是因为数据的规模。对数据的精确分析方法如bootstrap方法、随机测试,迭代估计方法以及比较适合的复杂的模型正是有了计算机才是可能的。计算机已经使得传统统计模型的视野大大的扩展了,还促进了新工具的飞速发展。
下面来关注一下歪曲数据的非预期的模式出现的可能性。这和数据质量相关。所有数据分析的结论依赖于数据质量。GIGO的意思是垃圾进,垃圾出,它的引用到处可见。一个数据分析者,无论他多聪明,也不可能从垃圾中发现宝石。对于大的数据集,尤其是要发现精细的小型或偏离常规的模型的时候,这个问题尤其突出。当一个人在寻找百万分之一的模型的时候,第二个小数位的偏离就会起作用。一个经验丰富的人对于此类最常见的问题会比较警觉,但出错的可能性太多了。
此类问题可能在两个层次上产生。第一个是微观层次,即个人记录。例如,特殊的属性可能丢失或输错了。我知道一个案例,由于挖掘者不知道,丢失的数据被记录为99而作为真实的数据处理。第二个是宏观层次,整个数据集被一些选择机制所歪曲。交通事故为此提供了一个好的示例。越严重的、致命的事故,其记录越精确,但小的或没有伤害的事故的记录却没有那么精确。事实上,很高比例的数据根本没有记录。这就造成了一个歪曲的映象-可能会导致错误的结论。
统计学很少会关注实时分析,然而数据挖掘问题常常需要这些。例如,银行事务每天都会发生,没有人能等三个月得到一个可能的欺诈的分析。类似的问题发生在总体随时间变化的情形。我的研究组有明确的例子显示银行债务的申请随时间、竞争环境、经济波动而变化。
3.讨论
数据挖掘有时候是一次性的实验。这是一个误解。它更应该被看作是一个不断的过程(尽
管数据集时确定的)。从一个角度检查数据可以解释结果,以相关的观点检查可能会更接近等等。关键是,除了极少的情形下,很少知道哪一类模式是有意义的。数据挖掘的本质是发现非预期的模式-同样非预期的模式要以非预期的方法来发现。
与把数据挖掘作为一个过程的观点相关联的是认识到结果的新颖性。许多数据挖掘的结果是我们所期望的-可以回顾。然而,可以解释这个事实并不能否定挖掘出它们的价值。没有这些实验,可能根本不会想到这些。实际上,只有那些可以依据过去经验形成的合理的解释的结构才会是有价值的。
显然在数据挖掘存在着一个潜在的机会。在大数据集中发现模式的可能性当然存在,大数据集的数量与日俱增。然而,也不应就此掩盖危险。所有真正的数据集(即使那些是以完全自动方式搜集的数据)都有产生错误的可能。关于人的数据集(例如事务和行为数据)尤其有这种可能。这很好的解释了绝大部分在数据中发现的“非预期的结构”本质上是无意义的,而是因为偏离了理想的过程。(当然,这样的结构可能会是有意义的:如果数据有问题,可能会干扰搜集数据的目的,最好还是了解它们)。与此相关联的是如何确保(和至少为事实提供支持)任何所观察到的模式是“真实的”,它们反应了一些潜在的结构和关联而不仅仅是一个特殊的数据集,由于一个随机的样本碰巧发生。在这里,记分方法可能是相关的,但需要更多的统计学家和数据挖掘工作者的研究。
数据挖掘相关的10个问题
NO.1 Data Mining 和统计分析有什么不同?
硬要去区分Data Mining和Statistics的差异其实是没有太大意义的。一般将之定义为Data Mining技术的CART、CHAID或模糊计算等等理论方法,也都是由统计学者根据统计理论所发展衍生,换另一个角度看,Data Mining有相当大的比重是由高等统计学中的多变量分析所支撑。但是为什么Data Mining的出现会引发各领域的广泛注意呢?主要原因在相较于传统统计分析而言,Data Mining有下列几项特性:
1.处理大量实际数据更强势,且无须太专业的统计背景去使用Data Mining的工具;
2.数据分析趋势为从大型数据库抓取所需数据并使用专属计算机分析软件,Data Mining的工具更符合企业需求;
3. 纯就理论的基础点来看,Data Mining和统计分析有应用上的差别,毕竟Data Mining目的是方便企业终端用户使用而非给统计学家检测用的。
NO.2 数据仓库和数据挖掘的关系为何?
若将Data Warehousing(数据仓库)比喻作矿坑,Data Mining就是深入矿坑采矿的工作。毕竟Data Mining不是一种无中生有的魔术,也不是点石成金的炼金术,若没有够丰富完整的数据,是很难期待Data Mining能挖掘出什么有意义的信息的。
要将庞大的数据转换成为有用的信息,必须先有效率地收集信息。随着科技的进步,功能完善的数据库系统就成了最好的收集数据的工具。数据仓库,简单地说,就是搜集来自其它系统的有用数据,存放在一整合的储存区内。所以其实就是一个经过处理整合,且容量特别大的关系型数据库,用以储存决策支持系统(Design Support System)所需的数据,供决策支持或数据分析使用。从信息技术的角度来看,数据仓库的目标是在组织中,在正确的时间,将正确的数据交给正确的人。
许多人对于Data Warehousing和Data Mining时常混淆,不知如何分辨。其实,数据仓库是数据库技术的一个新主题,利用计算机系统帮助我们操作、计算和思考,让作业方式改变,决策方式也跟着改变。
数据仓库本身是一个非常大的数据库,它储存着由组织作业数据库中整合而来的数据,特别是指事务处理系统OLTP(On-Line Transactional Processing)所得来的数据。将这些整合过的数据置放于数据昂哭中,而公司的决策者则利用这些数据作决策;但是,这个转换及整合数据的过程,是建立一个数据仓库最大的挑战。因为将作业中的数据转换成有用的的策略性信息是整个数据仓库的重点。综上所述,数据仓库应该具有这些数据:整合性数据(integrated data)、详细和汇总性的数据(detailed and summarized data)、历史数据、解释数据的数据。从数据仓库挖掘出对决策有用的信息与知识,是建立数据仓库与使用Data Mining的最大目的,两者的本质与过程是两回事。换句话说,数据仓库应先行建立完成,Data mining才能有效率的进行,因为数据仓库本身所含数据是干净(不会有错误的数据参杂其中)、完备,且经过整合的。因此两者关系或许可解读为Data Mining是从巨大数据仓库中找出有用信息的一种过程与技术。
NO.3 OLAP 能不能代替 Data Mining?
所谓OLAP(Online Analytical Process)意指由数据库所连结出来的在线分析处理程序。有些人会说:「我已经有OLAP的工具了,所以我不需要Data Mining。」事实上两者间是截然不同的,主要差异在于Data Mining用在产生假设,OLAP则用于查证假设。简单来说,OLAP是由使用者所主导,使用者先有一些假设,然后利用OLAP来查证假设是否成立;而Data Mining则是用来帮助使用者产生假设。所以在使用OLAP或其它Query的工具时,使用者是自己在做探索(Exploration),但Data Mining是用工具在帮助做探索。
举个例子来看,一市场分析师在为超市规划货品架柜摆设时,可能会先假设婴儿尿布和婴儿奶粉会是常被一起购买的产品,接着便可利用OLAP的工具去验证此假设是否为真,又成立的证据有多明显;但Data Mining则不然,执行Data Mining的人将庞大的结帐数据整理后,并不需要假设或期待可能的结果,透过Mining技术可找出存在于数据中的潜在规则,于是我们可能得到例如尿布和啤酒常被同时购买的意料外之发现,这是OLAP所做不到的。
Data Mining常能挖掘出超越归纳范围的关系,但OLAP仅能利用人工查询及可视化的报表来确认某些关系,是以Data Mining此种自动找出甚至不会被怀疑过的数据模型与关系的特性,事实上已超越了我们经验、教育、想象力的限制,OLAP可以和Data Mining互补,但这项特性是Data Mining无法被OLAP取代的。
NO.4 完整的Data Mining 包含哪些步骤?
以下提供一个Data Mining的进行步骤以为参考:
1. 理解业务与理解数据;
2. 获取相关技术与知识;
3. 整合与查询数据;
4. 去除错误或不一致及不完整的数据;
5. 由数据选取样本先行试验;
6. 建立数据模型
7. 实际Data Mining的分析工作;
8. 测试与检验;
9. 找出假设并提出解释;
10. 持续应用于企业流程中。
由上述步骤可看出,Data Mining牵涉了大量的准备工作与规划过程,事实上许多专家皆认为整套Data Mining的进行有80﹪的时间精力是花费在数据前置作业阶段,其中包含数据的净化与格式转换甚或表格的连结。由此可知Data Mining只是信息挖掘过程中的一个步骤而已,在进行此步骤前还有许多的工作要先完成。
NO.5 Data Mining 运用了哪些理论与技术?
Data Mining是近年来数据库应用技术中相当热门的议题,看似神奇、听来时髦,实际上却也不是什么新东西,因其所用之诸如预测模型、数据分割,连结分析(Link Analysis)、偏差侦测(Deviation Detection)等,美国早在二次世界大战前就已应用运用在人口普查及军事等方面。
随着信息科技超乎想象的进展,许多新的计算机分析工具问世,例如关系型数据库、模糊计算理论、基因算法则以及类神经网络等,使得从数据中发掘宝藏成为一种系统性且可实行的程序。
一般而言,Data Mining的理论技术可分为传统技术与改良技术两支。传统技术以统计分析为代表,统计学内所含序列统计、概率论、回归分析、类别数据分析等都属于传统数据挖掘技术,尤其 Data Mining 对象多为变量繁多且样本数庞大的数据,是以高等统计学里所含括之多变量分析中用来精简变量的因素分析(Factor Analysis)、用来分类的判别分析(Discriminant Analysis),以及用来区隔群体的分群分析(Cluster Analysis)等,在Data Mining过程中特别常用。
在改良技术方面,应用较普遍的有决策树理论(Decision Trees)、类神经网络(Neural Network)以及规则归纳法(Rules Induction)等。决策树是一种用树枝状展现数据受各变量的影响情形之预测模型,根据对目标变量产生之效应的不同而建构分类的规则,一般多运用在对客户数据的分析上,例如针对有回函与未回含的邮寄对象找出影响其分类结果的变量组合,常用分类方法为CART(Classification and Regression Trees)及CHAID(Chi-Square Automatic Interaction Detector)两种。
类神经网络是一种仿真人脑思考结构的数据分析模式,由输入之变量与数值中自我学习并根据学习经验所得之知识不断调整参数以期建构数据的型样(patterns)。类神经网络为非线性的设计,与传统回归分析相比,好处是在进行分析时无须限定模式,特别当数据变量间存有交互效应时可自动侦测出;缺点则在于其分析过程为一黑盒子,故常无法以可读之模型格式展现,每阶段的加权与转换亦不明确,是故类神经网络多利用于数据属于高度非线性且带有相当程度的变量交感效应时。
规则归纳法是知识发掘的领域中最常用的格式,这是一种由一连串的「如果…/则…(If / Then)」之逻辑规则对数据进行细分的技术,在实际运用时如何界定规则为有效是最大的问题,通常需先将数据中发生数太少的项目先剔除,以避免产生无意义的逻辑规则。
NO.6 Data Mining包含哪些主要功能?
Data Mining实际应用功能可分为三大类六分项来说明:Classification和Clustering属于分类区隔类;Regression和Time-series属于推算预测类;Association和Sequence则属于序列规则类。
Classification是根据一些变量的数值做计算,再依照结果作分类。(计算的结果最后会被分类为几个少数的离散数值,例如将一组数据分为 "可能会响应" 或是 "可能不会响应" 两类)。Classification常被用来处理如前所述之邮寄对象筛选的问题。我们会用一些根据历史经验已经分类好的数据来研究它们的特征,然后再根据这些特征对其他未经分类或是新的数据做预测。这些我们用来寻找特征的已分类数据可能是来自我们的现有的客户数据,或是将一个完整数据库做部份取样,再经由实际的运作来测试;譬如利用一个大型邮寄对象数据库的部份取样来建立一个Classification Model,再利用这个Model来对数据库的其它数据或是新的数据作分类预测。
Clustering用在将数据分群,其目的在于将群间的差异找出来,同时也将群内成员的相似性找出来。Clustering与Classification不同的是,在分析前并不知道会以何种方式或根据来分类。所以必须要配合专业领域知识来解读这些分群的意义。
Regression是使用一系列的现有数值来预测一个连续数值的可能值。若将范围扩大亦可利用Logistic Regression来预测类别变量,特别在广泛运用现代分析技术如类神经网络或决策树理论等分析工具,推估预测的模式已不在止于传统线性的局限,在预测的功能上大大增加了选择工具的弹性与应用范围的广度。
Time-Series Forecasting与Regression功能类似,只是它是用现有的数值来预测未来的数值。两者最大差异在于Time-Series所分析的数值都与时间有关。Time-Series Forecasting的工具可以处理有关时间的一些特性,譬如时间的周期性、阶层性、季节性以及其它的一些特别因素(如过去与未来的关连性)。
Association是要找出在某一事件或是数据中会同时出现的东西。举例而言,如果A是某一事件的一种选择,则B也出现在该事件中的机率有多少。(例如:如果顾客买了火腿和柳橙汁,那么这个顾客同时也会买牛奶的机率是85%。)
Sequence Discovery与Association关系很密切,所不同的是Sequence Discovery中事件的相关是以时间因素来作区隔(例如:如果A股票在某一天上涨12%,而且当天股市加权指数下降,则B股票在两天之内上涨的机率是 68%)。
NO.7 Data Mining在各领域的应用情形为何?
Data Mining在各领域的应用非常广泛,只要该产业拥有具分析价值与需求的数据仓储或数据库,皆可利用Mining工具进行有目的的挖掘分析。一般较常见的应用案例多发生在零售业、直效行销界、制造业、财务金融保险、通讯业以及医疗服务等。
于销售数据中发掘顾客的消费习性,并可藉由交易纪录找出顾客偏好的产品组合,其它包括找出流失顾客的特征与推出新产品的时机点等等都是零售业常见的实例;直效行销强调的分众概念与数据库行销方式在导入Data Mining的技术后,使直效行销的发展性更为强大,例如利用Data Mining分析顾客群之消费行为与交易纪录,结合基本数据,并依其对品牌价值等级的高低来区隔顾客,进而达到差异化行销的目的;制造业对Data Mining的需求多运用在品质控管方面,由制造过程中找出影响产品品质最重要的因素,以期提高作业流程的效率。
近来电话公司、信用卡公司、保险公司以及股票交易商对于诈欺行为的侦测(Fraud Detection)都很有兴趣,这些行业每年因为诈欺行为而造成的损失都非常可观,Data Mining可以从一些信用不良的客户数据中找出相似特征并预测可能的诈欺交易,达到减少损失的目的。财务金融业可以利用 Data Mining来分析市场动向,并预测个别公司的营运以及股价走向。Data Mining的另一个独特的用法是在医疗业,用来预测手术、用药、诊断、或是流程控制的效率。
NO.8 Web Mining 和数据挖掘有什么不同?
如果将Web视为CRM的一个新的Channel,则Web Mining便可单纯看做Data Mining应用在网络数据的泛称。
该如何测量一个网站是否成功?哪些内容、优惠、广告是人气最旺的?主要访客是哪些人?什么原因吸引他们前来?如何从堆积如山之大量由网络所得数据中找出让网站运作更有效率的操作因素?以上种种皆属Web Mining 分析之范畴。Web Mining 不仅只限于一般较为人所知的log file分析,除了计算网页浏览率以及访客人次外,举凡网络上的零售、财务服务、通讯服务、*机关、医疗咨询、远距教学等等,只要由网络连结出的数据库够大够完整,所有Off-Line可进行的分析,Web Mining都可以做,甚或更可整合Off-Line及On-Line的数据库,实施更大规模的模型预测与推估,毕竟凭借网际网络的便利性与渗透力再配合网络行为的可追踪性与高互动特质,一对一行销的理念是最有机会在网络世界里完全落实的。
整体而言,Web Mining具有以下特性:1. 数据收集容易且不引人注意,所谓凡走过必留下痕迹,当访客进入网站后的一切浏览行为与历程都是可以立即被纪录的;2. 以交互式个人化服务为终极目标,除了因应不同访客呈现专属设计的网页之外,不同的访客也会有不同的服务;3. 可整合外部来源数据让分析功能发挥地更深更广,除了log file、cookies、会员填表数据、线上调查数据、线上交易数据等由网络直接取得的资源外,结合实体世界累积时间更久、范围更广的资源,将使分析的结果更准确也更深入。
利用Data Mining技术建立更深入的访客数据剖析,并赖以架构精准的预测模式,以期呈现真正智能型个人化的网络服务,是Web Mining努力的方向。
NO.9 数据挖掘在 CRM 中扮演的角色为何?
CRM(Customer Relationship Management)是近来引起热烈讨论与高度关切的议题,尤其在直效行销的崛起与网络的快速发展带动下,跟不上CRM的脚步如同跟不上时代。事实上CRM并不算新发明,奥美直效行销推动十数年的CO(Customer Ownership)就是现在大家谈的CRM—客户关系管理。
Data Mining应用在CRM的主要方式可对应在Gap Analysis之三个部分:
针对Acquisition Gap,可利用Customer Profiling找出客户的一些共同的特征,希望能藉此深入了解客户,藉由Cluster Analysis对客户进行分群后再透过Pattern Analysis预测哪些人可能成为我们的客户,以帮助行销人员找到正确的行销对象,进而降低成本,也提高行销的成功率。
针对Sales Gap,可利用Basket Analysis帮助了解客户的产品消费模式,找出哪些产品客户最容易一起购买,或是利用Sequence Discovery预测客户在买了某一样产品之后,在多久之内会买另一样产品等等。利用 Data Mining可以更有效的决定产品组合、产品推荐、进货量或库存量,甚或是在店里要如何摆设货品等,同时也可以用来评估促销活动的成效。
针对Retention Gap,可以由原客户后来却转成竞争对手的客户群中,分析其特征,再根据分析结果到现有客户数据中找出可能转向的客户,然后设计一些方法预防客户流失;更有系统的做法是藉由Neural Network根据客户的消费行为与交易纪录对客户忠诚度进行Scoring的排序,如此则可区隔流失率的等级进而配合不同的策略。
CRM不是设一个(080)客服专线就算了,更不仅只是把一堆客户基本数据输入计算机就够,完整的CRM运作机制在相关的硬软件系统能健全的支持之前,有太多的数据准备工作与分析需要推动。企业透过Data Mining可以分别针对策略、目标定位、操作效能与测量评估等四个切面之相关问题,有效率地从市场与顾客所搜集累积之大量数据中挖掘出对消费者而言最关键、最重要的答案,并赖以建立真正由客户需求点出发的客户关系管理。
NO.10 目前业界常用的数据挖掘分析工具?
Data Mining工具市场大致可分为三类:
1. 一般分析目的用的软件包
SAS Enterprise Miner
KXEN(凯森)
IBM Intelligent Miner
Unica PRW
SPSS Clementine
SGI MineSet
Oracle Darwin
Angoss KnowledgeSeeker
2. 针对特定功能或产业而研发的软件
KD1(针对零售业)
Options & Choices(针对保险业)
HNC(针对信用卡诈欺或呆帐侦测)
Unica Model 1(针对行销业)
3. 整合DSS(Decision Support Systems)/OLAP/Data Mining的大型分析系统
Cognos Scenario and Business Objects
数据挖掘的发展前景
当前数据挖掘应用主要集中在电信、零售、农业、网络日志、银行、电力、生物、天体、化工、医药等方面。看似广泛,实际应用还远没有普及。而据Gartner的报告也指出,数据挖掘会成为未来10年内重要的技术之一。而数据挖掘,也已经开始成为一门独立的专业学科。
具体发展趋势和应用方向主要有:对知识发现方法的研究进一步发展,如对Bayes和Boosting方法的研究和提高;商业工具软件不断产生和完善,注重建立解决问题的整体系统,例如国外的SPSS,JMP;国内的NoSA,SPLM(郭祖超教授),bget,qstat等专业软件。
数据挖掘的发展应是挖掘工具在先进理论指导下的改进,而就给内情况而言,还有至少20年的发展空间。