1 建模与数据挖掘工具

算法和建模作为数据挖掘工具的核心技术,从它诞生之日起就在得到不断完善。对各种算法的支持程度是衡量数据挖掘工具的一大标准。目前的算法技术已经相当成熟,而主流数据挖掘工具也基本.上都提供了对主流算法的支持。从算法上看,业界公认的主要有回归分析、聚类分析、神经网络、遗传算法、支持向量机等几大主流算法。

数据挖掘中的建模主要采用数据建模和算法建模,其中更侧重于算法建模。只要是建模,最终到应用时必然有具体的模型,不然建模只是空谈,区别数据建模和算法建模在于看它们研究的重点是不是模型的具体形式。数据建模偏重模型形式,算法建模偏重算法设计,这些算法可以基于特定的模型来提升模型的预测等性能。

数据挖掘的过程就是一个不断探索数据特征、建立和检验模型,利用适合的模型来解决实际问题的过程。建立模型是数据挖掘工作的核心环节,数据挖掘中具体使用哪一种算法建模,取决于数据集市的特征和需要实现的目标,在实际应用中,往往是对多种建模方法的比较和综合。在建模过程中,把数据分为训练数据和校验数据,训练数据主要用于建模过程中求解模型参数,而校验数据主要用于模型检验。因此模型检验阶段的主要工作是把检验数据代入已经建立的模型中,观察模型的响应,通过比较模型的响应和真实的数据,从而评估模型的准确程度。如果模型的准确性比较差,就需要重新进行数据探索、建立新模型、直至新模型检验。因此,在实际应用中,数据探索、建立模型、模型检验是反复迭代的过程。

目前,数据挖掘建模业界探讨较多的技术内容主要有自动建模和模型转换两点。

1.1自动建模

自动建模是考查数据挖掘工具是否能够自我优化,从而方便一般用户使用的重要功能指标。在这项功能的帮助下,用户无需深刻了解算法的优缺点,即可利用其灵活的参数设置及其帮助信息来增强建模的效率。

目前,诸多主流的数据挖掘工具都在自动建模方面有着良好表现。SAS Enterprise Miner( EM )

的自动建模主要体现在自导向(SEMMA)数据挖掘进程上。SEMMA为执行数据挖掘的核心任务提供了一个灵活的框架,这些任务包括五个主要的步骤,亦即采样( Sample )探索( Explore )

调整( Modity )建模( Model )、评价( Assess )。此外,专业工具厂商美国Unica 公司的Affinium Model (简称Unica Model )的最大优点也是体现在最大限度地将数学建模过程自动化,使得那些数学基础不好的业务人员可以方便地使用该工具。

虽然自动建模被人们寄予厚望,但是还远未达到让用户运用自如的地步。主要是因为:一方面是工具本身的技术实现能力不够;另一方面自动化本身并不能取代一切。

1.2模型转换

数据挖掘工具的多样性造成了模型的种类繁多,因此,不同工具生成的模型是否能够共享或者互相转换就成为一大难题。目前,业界正通过对预测模型标记语言(PredictiveModelMarkup Language,PMML)的应用来解决这一问题。预测模型标记语言在1997年7月由DMG(the Data Mining Group)发布,它利用XML描述和存储数据挖掘模型,可以在不同数据挖掘工具之间用于数据挖掘工具开发与训练数据挖掘模型,是一种已经被W3C组织接受的标准。

PMML标准的目的是一旦一个数据挖掘算法产生了一个挖掘模型,该模型能被其他数据挖掘工具可视化或使用,由于其开发的格式,各个开发商之间能够共享该模型。使得数据挖掘工具的模型外部存储变得可行,尝试将模型与数据、工具分离。

PMML支持许多不同的数据挖掘算法,合并了数据转换与描述统计。目前而言,IBM、SAS、SPSS、Microsoft 和Oracle等许多厂商已经在使用PMML标准导入数据挖掘模型,但也有一些厂商仍未采用该标准。而从标准本身看,对数据仍然具有一定的依赖性,还未真正实现模型与数据的完全分离。

2建模与挖掘的结合

所有的挖掘和建模活动都想达到一些解决识别问题的目标。如果在战略性的层次上,挖掘和建模可以探究和阐明一个完整的问题域,问题或者问题域就是根据挖掘结果和建模框架所做出的决策来解决的。

假说( Hypothesis )经常被用来表示似乎并未在数据中被真正发现,然而直觉上却感觉是正确的猜想。一般而言,局部的或个人的经验的证据都支持提出的假说。数据挖掘在获取关于数据假说的意义.上,力图理解数据提供了什么;但是数据挖掘并不仅仅提出关于数据的假说,同时使得对于假说可靠性的理性评估成为可能,并考虑假说可能在何种真实环境范围内成立。这些假说阐明了关于模型是如何工作的,它们不仅可以通过检查数据被发现,还可以得到检验和确证。

很多种模型被用来表示情形状况,但是无论使用哪些模型来表述情形,所有的模型都需要它们赖以建立的假设并从中得出结论的估计。当然,数据挖掘的任务就是要估计得越精确越好。对于建模和挖掘而言,在建立解决问题方案的系统中,输入越精确,输出就越精确,如果所输入的资料有重大错误,结果也必然是错误的。

2.1问题

挖掘者所面临的挖掘任务的形式总是与轮廓鲜明的问题不一样。有时任务甚至以这样一种形式出现: "这里有些数据,建立一个模型并且告诉我们,我们需要知道什么。”不管挖掘者还可以做它们什么事情,他几乎总是充当要解决问题的顾问,而且作为该问题的一个外部人员来解决它。如果要对有多个需求者面对的问题来做数据挖掘,为了得到更好的支持、观点达成一致以及计划的顺利执行,该项目的时间和资源必须予以补充。挖掘者必须在框架中工作,并且需要发现解决的真实问题,以何种形式分发必须满足的需求和支持,就当前所讨论过的约束条件而言它受到何种限制;如果可能的话,如何达到合作的期望值。或许挖掘者的主要任务是应付组织中其余人员的期望。

一般而言, 可采用系统化方法及其指导方针来发现任务的真实本质,揭示隐藏的假设以及解决所有它们可能遇到的困难,我们主要从下述几个方面来处理。

1.识别问题

对于识别问题,挖掘和建模所涉及的问题基本上不会自动出现。事实上,很多数据挖掘的项目是以这样的方式开始的,一个业务经理说:“这是一些数据,从中发现一些我不知道的有用且有趣的东西,然后告诉我吧!”这样的话,挖掘者就有一个问题一找 出业务经理认为有趣且有用的东西,并且找出为什么业务经理会认为这些东西有趣;或者经常会出现这样的情况,经理会有些不满或者可能觉得事情可以做得更好,但并没有明确为什么会那样或者为什么事情看起来会是那种形式;或者可能经常出现的是经理已经意识到问题的症结,并且希望有一种补救的方法能使它们消失。

然而,如果没有首先认识到这些症结出现的内在原因,找到一个永久性的解决方案就会比较困难。因此,识别挖掘者和建模者所要解决的准确问题并不总是直接的,它们常常不是最初所提出的“问题”。

任何有意义的挖掘和建模的项目都需要业务经理和建模者之间进行足够的交流互动,当他们为问题建立了框架并且确定了需要被发现和阐明的问题的本质以后才能实施挖掘。

2.描述问题

为了有效地描述一个问题,挖掘者和建模者需要抓住围绕问题的隐含边界,就是要创建一个蓝图表示需求者已经了解的情况。最好的创建蓝图的方式就是以一种交互式的、直观的和迭代的方式。交互式是指所有涉及的当事人都需要参与;直观的是指所有参与者可以很容易理解蓝图;迭代的是指经过一次次的交互会话,多次地提炼和更新蓝图。

此处的“需求者”可以包括一组人,这种指代包括了每一个从公司的角度参与定义和解决问题的人。

3.构造问题

构造问题要求识别输入(用于挖掘、假设等的数据)和输出(战略选择、可能性、关系等);并且要求形成一种实际上可以被挖掘和建模的整体。输入是什么?需要什么输出?需要什么数据?

数据有意义么?所有这些还有更多问题都需要解决。但是构造-个问题的最大困难在于发现所有相关的因素,包括哪些隐藏的假设。

4.隐藏的假设

对于一个成功的挖掘项目来说,找到实际所需的答案比找到要求回答的答案更重要。为此,在挖掘开始之前,必须由建模者来努力发现一些假设。最难应付的一类假设就是那些隐藏的假设,甚至那些需求者有时也没意识到他们自己的假设。建模者可能并不熟悉假设所处的背景框架,所以在开始之前,应该对这个领域给予足够的注视。有些技术可以用来发现隐藏的假设:以认知蓝图的形式,通过系统结构来工作;将模型定位于合适的决策图层次:详细检查产生的战略和战术方案如何应用、期望的有效期是多长、由谁来应用、知识的层次是什么、是否需要专家或者专门]的训练,等等。

无论如何,在进行挖掘之前,挖掘者需要清楚表达的问题描述,通过辛勤努力,解决隐藏假设的困扰,最终将解决实际需要的问题。

2.2数据

对于建模和挖掘而言,世界是由数据构成的,而数据无非是记录或存储定性或定量的印象反映。我们使用一种称为计量的技术,来获得那些定量或定性的印象。计量就是将现实世界中某些已定义现象与-些内部和外部的标准进行对比,找出相同点和不同点。收集这些计量的结果,并把它们以某种方式组织起来,就产生了数据挖掘最初的原始材料一数据。

现实世界中的数据集充满了错误、失败、缺失、噪声。而数据挖掘者只能用手边的现实数据来工作,并且必须尽可能地利用这些数据。

在理想情况下挖掘者可以设计和编排需要挖掘的数据。计量的特性与问题是相关的,计量的粒度允许形成一个适当精确的答案,没有遗漏的或者空缺的域,可以-致地收集数据, 可以辅加适当的冗余,可以确认数据真正代表了计量的现象。

1.计量和描述

数据的问题起始于世界的计量特性。在表面的世界中存在外在性,计量总是而并且不可避免地被计量者的世界观所影响。计量只不过是决定和报告某些经验的质或量。因为你所知道的影响到了你所看到的,所以影响是不可避免的。给定“仅有的事实",你所得出的关于数据报告者的结论等于一很可能会多于一被报告的主题的结论。

对于所有搜集的数据也是同样的道理。在很多情况下,这并不是很直观,但是数据采集必须有一个目的,并且采集的数据被假设、认知、兴趣和动机所过滤。和往常一样, 我们已经认知的东西定义了对于计量世界来说认为重要的东西。这是不可避免的,而且挖掘者和建模者不得不使用手边的数据——至少开始的时候是这样的。

“客观的"数据不仅仅是现实世界的无偏表示这样一个事实, 对于参与的需求者来说不一定非常明显。毕竟,许多需求者习惯于“仅从事实”做出决策。所有的事实一有意识的或无意识的一不可避免地沿着占优势的框架模型的轨迹运行,这些框架模型决定了这些事实是重要的事实。即使那样,做最好的打算,捕获所有的事实也是不可能的。世界太复杂,即使被严格限制在一个框架模型中,以至于我们也无法构建全面的计量,所有搜集到的东西都必须被简化。

2.错误和信心

即使要解决非常简单的问题,也必须做出一些假设,此外还可以加上很多其他假设。事实上假设过多时,如果任何一个假设和真实场景不符合,问题就会和您所期望的完全不一样。事实上,整个问题可以被分成许多小的部分,以至于会有很多的不确定性。

关键是所有的数据都是受限制的、不确定的,所有的数据都用-种非常简化的视角来表示非常复杂的世界。我们只能尽我们所能做到最好,但是任何数据集都可能有很多内在的错误源,有很多假设。在数据挖掘中,不仅仅要发现并说明所做的假设,而且还要弄明白可能错误的本源和特性,并且能评估任何洞察、预测和关系的可信度的水平。很幸运,我们有方法来做,但是首先必须弄清楚所有的假设。

3.用假说解释数据

要获得数据,我们总是用某种假说来解释它。同样,还需要一个假说来解释为什么这个特定的数据被认为可以解决待挖掘的问题。但是,假说不仅仅意味着解释数据。同样,还有一些潜在的解释用来说明为什么数据挖掘被认为可以回答现实问题。这一部分介绍在 数据挖掘中出现的关于数据的两个假说:内部假说,解释数据本身;外部假说,解释为什么挖掘这一特定的数据有助于认清问题。

每一个数据集都有-定的模式结构,即使-个包含完全随机数据的数据集也有一个“完全随机”模式。虽然完全随机的数据集没有挖掘的价值,但是如果数据集不是完全随机的,将含有一些非随机的模式。这一模式,不论它是什么,也不论它如何被描述,都包括了会被挖掘的有用信息。数据集含有的模式结构以不同的形式出现。有些类型的结构会在外部建立;有些结构是有意加到数据上的,约束了数据值之间的关系。模式存在于反映世界各种状态的数据中。这些带有期望结果的模式结构就是挖掘所得的信息,我们期望阐明和改进用来解决问题的模型,理清理解和阐明解释的思路,这些都是挖掘者的首要任务。

无论解释什么,一般可以采用“因为"或者“为了"两种等价的表述来表达。挖掘和建模可以构造出任何一种数据的解释。但是,两种解释并不是同等有用的,这当然取决于需要。需求由模型来传达,模型由问题来传达,而问题要由决策来解决。

2.3决策

用决策框架来表示选择,包括各种由统计决策论、博弈论或者其他的理论设计出来的战略,主要有如下5种处理问题的选择方法。

◆忽略问题,用户忽略了某个问题,它可能就消失了。

◆传递问题,通过传递问题把问题从您的范围中移除了。

◆化解问题,当原来问题的价值变小或消失后,问题就被化解了。

◆溶解问题,通过改变问题情形,使其不再成为问题。

◆解决问题,解决问题意味着从其本身的角度来处理问题。

在上述处理问题的方法中,解决问题并非是最佳的选择。解决问题意味着必须遵守建立问题的规则,对于付出、机会等做出最佳的决策。这样,就必须接受情形、规则和限制,根据已有的情况做出最佳行为的决策。而其他几种方法考虑了更多的情形,拓展了问题的框架,可能找到能够改变规则的方法。发展忽略问题、传递问题、化解问题、溶解问题的策略多数情况下并不比找一个解决问题的策略更困难一有时候,还会更容易-一些。但是,唯一正式的解决问题的方法看来就是解决问题。

所有建模和挖掘的最终目的就是决定该做什么,而建模者和挖掘者的整个目的就是为决策提供一些支持。在任何情况下,决策的方法有很多。例如,我们该做什么?或者,换种说法,我们能做什么?再或者,最好做什么?这些问题需要不同的框架来做决策。如果想获得实用且相关的建议,建模者必须对框架做出调整,主要可以从下述两个角度来完成。

1.用规范化的决策来解决我们该做什么

决定该做什么的一个可行方法就是要求某个框架或者引导代码能指示或禁止在特定环境下的动作过程。例如“如果你想得到好成绩,你就必须努力学习。”这些规则的框架被称为规范化的,因为它给出了应该做什么的方向;但是,只有当人们选择它们的时候才是这样。也就是说,接受这些规则集合的有效性和相关性是可选的,如果任何人只要选择不接受它们,至少在考虑决策的范围内就可以不受其约束。对于决定该做什么,存在--个类似自然定律的规范框架。它是建立在通过观察真实世界的真实面貌的基础上得到的框架,是建模者总要在其范围内工作的框架。

2.通过发现可能性来解决我们能做什么

决策由问题驱动,而问题是由对变化的可感知需求来驱动的。也就是说,为了在选项中做出选择,我们需要决策,此时,人们觉得需要对事件的过程做出改变以期获得更多的好处。从这种意义上来说,我们做出的决策是关于管理变化,甚至促成变化的。并非所有的改变都是一样的,同样并非所有的改变都是相同类型的,而且做出选择多半取决于期望的转变类型。