数据挖掘技术实现.docx
《数据挖掘技术实现.docx》由会员分享,可在线阅读,更多相关《数据挖掘技术实现.docx(14页珍藏版)》请在冰点文库上搜索。
数据挖掘技术实现
数据挖掘技术实现
在技术上可以根据它的工作过程分为:
数据的抽取、数据的存储和管理、数据的展现等关键技术。
·数据的抽取
数据的抽取是数据进入仓库的入口。
由于数据仓库是一个独立的数据环境,它需要通过抽取过程将数据从联机事务处理系统、外部数据源、脱机的数据存储介质中导入数据仓库。
数据抽取在技术上主要涉及互连、复制、增量、转换、调度和监控等几个方面的处理。
在数据抽取方面,未来的技术发展将集中在系统功能集成化方面,以适应数据仓库本身或数据源的变化,使系统更便于管理和维护。
·数据的存储和管理
数据仓库的组织管理方式决定了它有别于传统数据库的特性,也决定了其对外部数据的表现形式。
数据仓库管理所涉及的数据量比传统事务处理大得多,且随时间的推移而快速累积。
在数据仓库的数据存储和管理中需要解决的是如何管理大量的数据、如何并行处理大量的数据、如何优化查询等。
目前,许多数据库厂家提供的技术解决方案是扩展关系型数据库的功能,将普通关系数据库改造成适合担当数据仓库的服务器。
·数据的展现
在数据展现方面主要的方式有:
查询:
实现预定义查询、动态查询、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.1DataMining和统计分析有什么不同?
硬要去区分DataMining和Statistics的差异其实是没有太大意义的。
一般将之定义为DataMining技术的CART、CHAID或模糊计算等等理论方法,也都是由统计学者根据统计理论所发展衍生,换另一个角度看,DataMining有相当大的比重是由高等统计学中的多变量分析所支撑。
但是为什么DataMining的出现会引发各领域的广泛注意呢?
主要原因在相较于传统统计分析而言,DataMining有下列几项特性:
1.处理大量实际数据更强势,且无须太专业的统计背景去使用DataMining的工具;
2.数据分析趋势为从大型数据库抓取所需数据并使用专属计算机分析软件,DataMining的工具更符合企业需求;
3.纯就理论的基础点来看,DataMining和统计分析有应用上的差别,毕竟DataMining目的是方便企业终端用户使用而非给统计学家检测用的。
NO.2数据仓库和数据挖掘的关系为何?
若将DataWarehousing(数据仓库)比喻作矿坑,DataMining就是深入矿坑采矿的工作。
毕竟DataMining不是一种无中生有的魔术,也不是点石成金的炼金术,若没有够丰富完整的数据,是很难期待DataMining能挖掘出什么有意义的信息的。
要将庞大的数据转换成为有用的信息,必须先有效率地收集信息。
随着科技的进步,功能完善的数据库系统就成了最好的收集数据的工具。
数据仓库,简单地说,就是搜集来自其它系统的有用数据,存放在一整合的储存区内。
所以其实就是一个经过处理整合,且容量特别大的关系型数据库,用以储存决策支持系统(DecisionSupportSystem)所需的数据,供决策支持或数据分析使用。
从信息技术的角度来看,数据仓库的目标是在组织中,在正确的时间,将正确的数据交给正确的人。
许多人对于DataWarehousing和DataMining时常混淆,不知如何分辨。
其实,数据仓库是数据库技术的一个新主题,利用计算机系统帮助我们操作、计算和思考,让作业方式改变,决策方式也跟着改变。
数据仓库本身是一个非常大的数据库,它储存着由组织作业数据库中整合而来的数据,特别是指事务处理系统OLTP(On-LineTransactionalProcessing)所得来的数据。
将这些整合过的数据置放于数据仓库中,而公司的决策者则利用这些数据作决策;但是,这个转换及整合数据的过程,是建立一个数据仓库最大的挑战。
因为将作业中的数据转换成有用的的策略性信息是整个数据仓库的重点。
综上所述,数据仓库应该具有这些数据:
整合性数据(integrateddata)、详细和汇总性的数据(detailedandsummarizeddata)、历史数据、解释数据的数据。
从数据仓库挖掘出对决策有用的信息与知识,是建立数据仓库与使用DataMining的最大目的,两者的本质与过程是两回事。
换句话说,数据仓库应先行建立完成,Datamining才能有效率的进行,因为数据仓库本身所含数据是干净(不会有错误的数据参杂其中)、完备,且经过整合的。
因此两者关系或许可解读为DataMining是从巨大数据仓库中找出有用信息的一种过程与技术。
NO.3OLAP能不能代替DataMining?
所谓OLAP(OnlineAnalyticalProcess)意指由数据库所连结出来的在线分析处理程序。
有些人会说:
「我已经有OLAP的工具了,所以我不需要DataMining。
」事实上两者间是截然不同的,主要差异在于DataMining用在产生假设,OLAP则用于查证假设。
简单来说,OLAP是由使用者所主导,使用者先有一些假设,然后利用OLAP来查证假设是否成立;而DataMining则是用来帮助使用者产生假设。
所以在使用OLAP或其它Query的工具时,使用者是自己在做探索(Exploration),但DataMining是用工具在帮助做探索。
举个例子来看,一市场分析师在为超市规划货品架柜摆设时,可能会先假设婴儿尿布和婴儿奶粉会是常被一起购买的产品,接着便可利用OLAP的工具去验证此假设是否为真,又成立的证据有多明显;但DataMining则不然,执行DataMining的人将庞大的结帐数据整理后,并不需要假设或期待可能的结果,透过Mining技术可找出存在于数据中的潜在规则,于是我们可能得到例如尿布和啤酒常被同时购买的意料外之发现,这是OLAP所做不到的。
DataMining常能挖掘出超越归纳范围的关系,但OLAP仅能利用人工查询及可视化的报表来确认某些关系,是以DataMining此种自动找出甚至不会被怀疑过的数据模型与关系的特性,事实上已超越了我们经验、教育、想象力的限制,OLAP可以和DataMining互补,但这项特性是DataMining无法被OLAP取代的。
NO.4完整的DataMining包含哪些步骤?
以下提供一个DataMining的进行步骤以为参考:
1.理解业务与理解数据;
2.获取相关技术与知识;
3.整合与查询数据;
4.去除错误或不一致及不完整的数据;
5.由数据选取样本先行试验;
6.建立数据模型
7.实际DataMining的分析工作;
8.测试与检验;
9.找出假设并提出解释;
10.持续应用于企业流程中。
由上述步骤可看出,DataMining牵涉了大量的准备工作与规划过程,事实上许多专家皆认为整套DataMining的进行有80﹪的时间精力是花费在数据前置作业阶段,其中包含数据的净化与格式转换甚或表格的连结。
由此可知DataMining只是信息挖掘过程中的一个步骤而已,在进行此步骤前还有许多的工作要先完成。
NO.5DataMining运用了哪些理论与技术?
DataMining是近年来数据库应用技术中相当热门的议题,看似神奇、听来时髦,实际上却也不是什么新东西,因其所用之诸如预测模型、数据分割,连结分析(LinkAnalysis)、偏差侦测(DeviationDetection)等,美国早在二次世界大战前就已应用运用在人口普查及军事等方面。
随着信息科技超乎想象的进展,许多新的计算机分析工具问世,例如关系型数据库、模糊计算理论、基因算法则以及类神经网络等,使得从数据中发掘宝藏成为一种系统性且可实行的程序。
一般而言,DataMining的理论技术可分为传统技术与改良技术两支。
传统技术以统计分析为代表,统计学内所含序列统计、概率论、回归分析、类别数据分析等都属于传统数据挖掘技术,尤其DataMining对象多为变量繁多且样本数庞大的数据,是以高等统计学里所含括之多变量分析中用来精简变量的因素分析(FactorAnalysis)、用来分类的判别分析(DiscriminantAnalysis),以及用来区隔群体的分群分析(ClusterAnalysis)等,在DataMining过程中特别常用。
在改良技术方面,应用较普遍的有决策树理论(DecisionTrees)、类神经网络(NeuralNetwork)以及规则归纳法(RulesInduction)等。
决策树是一种用树枝状展现数据受各变量的影响情形之预测模型,根据对目标变量产生之效应的不同而建构分类的规则,一般多运用在对客户数据的分析上,例如针对有回函与未回含的邮寄对象找出影响其分类结果的变量组合,常用分类方法为CART(ClassificationandRegressionTrees)及CHAID(Chi-SquareAutomaticInteractionDetector)两种。
类神经网络是一种仿真人脑思考结构的数据分析模式,由输入之变量与数值中自我学习并根据学习经验所得之知识不断调整参数以期建构数据的型样(patterns)。
类神经网络为非线性的设计,与传统回归分析相比,好处是在进行分析时无须限定模式,特别当数据变量间存有交互效应时可自动侦测出;缺点则在于其分析过程为一黑盒子,故常无法以可读之模型格式展现,每阶段的加权与转换亦不明确,是故类神经网络多利用于数据属于高度非线性且带有相当程度的变量交感效应时。
规则归纳法是知识发掘的领域中最常用的格式,这是一种由一连串的「如果…/则…(If/Then)」之逻辑规则对数据进行细分的技术,在实际运用时如何界定规则为有效是最大的问题,通常需先将数据中发生数太少的项目先剔除,以避免产生无意义的逻辑规则。
NO.6DataMining包含哪些主要功能?
DataMining实际应用功能可分为三大类六分项来说明:
Classification和Clustering属于分类区隔类;Regression和Time-series属于推算预测类;Association和Sequence则属于序列规则类。
Classification是根据一些变量的数值做计算,再依照结果作分类。
(计算的结果最后会被分类为几个少数的离散数值,例如将一组数据分为"可能会响应"或是"可能不会响应"两类)。
Classification常被用来处理如前所述之邮寄对象筛选的问题。
我们会用一些根据历史经验已经分类好的数据来研究它们的特征,然后再根据这些特征对其他未经分类或是新的数据做预测。
这些我们用来寻找特征的已分类数据可能是来自我们的现有的客户数据,或是将一个完整数据库做部份取样,再经由实际的运作来测试;譬如利用一个大型邮寄对象数据库的部份取样来建立一个ClassificationModel,再利用这个Model来对数据库的其它数据或是新的数据作分类预测。
Clustering用在将数据分群,其目的在于将群间的差异找出来,同时也将群内成员的相似性找出来。
Clustering与Classification不同的是,在分析前并不知道会以何种方式或根据来分类。
所以必须要配合专业领域知识来解读这些分群的意义。
Regression是使用一系列的现有数值来预测一个连续数值的可能值。
若将范围扩大亦可利用LogisticRegression来预测类别变量,特别在广泛运用现代分析技术如类神经网络或决策树理论等分析工具,推估预测的模式已不在止于传统线性的局限,在预测的功能上大大增加了选择工具的弹性与应用范围的广度。
Time-SeriesForecasting与Regression功能类似,只是它是用现有的数值来预测未来的数值。
两者最大差异在于Time-Series所分析的数值都与时间有关。
Time-SeriesForecasting的工具可以处理有关时间的一些特性,譬如时间的周期性、阶层性、季节性以及其它的一些特别因素(如过去与未来的关连性)。
Association是要找出在某一事件或是数据中会同时出现的东西。
举例而言,如果A是某一事件的一种选择,则B也出现在该事件中的机率有多少。
(例如:
如果顾客买了火腿和柳橙汁,那么这个顾客同时也会买牛奶的机率是85%。
)
SequenceDiscovery与Association关系很密切,所不同的是SequenceDiscovery中事件的相关是以时间因素来作区隔(例如:
如果A股票在某一天上涨12%,而且当天股市加权指数下降,则B股票在两天之内上涨的机率是68%)。
NO.7DataMining在各领域的应用情形为何?
DataMining在各领域的应用非常广泛,只要该产业拥有具分析价值与需求的数据仓储或数据库,皆可利用Mining工具进行有目的的挖掘分析。
一般较常见的应用案例多发生在零售业、直效行销界、制造业、财务金融保险、通讯业以及医疗服务等。
于销售数据中发掘顾客的消费习性,并可藉由交易纪录找出顾客偏好的产品组合,其它包括找出流失顾客的特征与推出新产品的时机点等等都是零售业常见的实例;直效行销强调的分众概念与数据库行销方式在导入DataMining的技术后,使直效行销的发展性更为强大,例如利用DataMining分析顾客群之消费行为与交易纪录,结合基本数据,并依其对品牌价值等级的高低来区隔顾客,进而达到差异化行销的目的;制造业对DataMining的需求多运用在品质控管方面,由制造过程中找出影响产品品质最重要的因素,以期提高作业流程的效率。
近来电话公司、信用卡公司、保险公司以及股票交易商对于诈欺行为的侦测(FraudDetection)都很有兴趣,这些行业每年因为诈欺行为而造成的损失都非常可观,DataMining可以从一些信用不良的客户数据中找出相似特征并预测可能的诈欺交易,达到减少损失的目的。
财务金融业可以利用D