第一章 数据挖掘简介
数据挖掘现在得到了越来越多商业机构的关注。现在人们经常说:“我们需要采用数据挖掘工具队我们的客户进行分类”,“数据挖掘能有效的增加客户的满意度”,甚至在说:“我们的竞争对手正在使用数据挖掘技术扩大市场份额——我们应当尽快的赶上去。”
所以什么是数据挖掘?数据挖掘会给我们带来什么价值?该如何引入商务智能技术解决我们商务活动中的问题?数据挖掘究竟采用了哪些技术?数据挖掘项目的典型生命周期事怎样的?在本章中我们将回答上述的所有问题,并对数据挖掘世界进行较深入的介绍。在本章中我们将会学到如下内容:
- 数据挖掘的定义
- 明确哪些商务问题能用数据挖掘技术解决
- 数据挖掘的任务
- 采用不同的数据挖掘技术
- 数据挖掘流程
- 数据挖掘项目的生命周期
- 当前的数据挖掘标准
- 一些数据挖掘的发展方向
什么是数据挖掘
数据挖掘是商务智能应用的关键组成部分。商务智能技术还包括:联机数据分析系统(OLAP)、企业报表和ETL(数据提取、转换和载入)系统。
数据挖掘是指采用自动化或半自动化的技术手段,对数据进行分析,并发现数据中隐藏的潜在模式的过程。在过去的十几年中,大量的数据已经被采集并存储在数据库中。这些数据主要来源于商务管理软件,包括:财务系统、ERP系统、客户关系管理系统以及博客系统等。对这些数据的拥有,使企业变得富有数据而知识贫乏。当前,企业的数据量已经变的非常庞大,并且增长迅速,对这些数据的利用也变得越来越不现实。数据挖掘的主要目的是从已有的数据中提取模式,将数据变为知识,以增加数据的内在价值。你可能会问,用SQL从数据中提取知识可能吗?换句话说,你会想知道数据挖掘系统和关系型数据库系统的主要差别是什么呢?让我们看看下面的例子.
图1.1显示了一个存有中学毕业生的关系型数据表。在数据表中存有性别、智商(IQ)、父母对孩子的鼓励程度、父母的收入、学生对读大学的意向。如果有人问你:是什么因素驱使一个中学毕业生选择读大学的呢?
你可能会写一个查询,得出有多少男生毕业后上了大学,以及有多少女生毕业后上了大学。你也可能会写一个查询,得出父母的鼓励对孩子是否上大学的影响。那么父母的鼓励对男生的影响呢?父母的鼓励对女生的影响呢?你需要些成百上千的查询来覆盖这些可能的查询组合。对于采用数值形式的数据项[1](比如父母的收入、智商等)将会使分析变的更加困难。这时的查询可能会涉及到该数据项的任意取值区间。试想如果在你的数据表中有成百的数据列呢?你很快就会发现,你将面对一个无法处理的规模庞大的查询组合,来满足可能的查询需求。
相反采用数据挖掘的方法将使这些问题变得非常的简单。你所需要做的仅仅是选择合适的数据挖掘算法,设置各数据列的使用方式(指:将数据列作为输入项还是预测项)。决策树模型是挖掘父母鼓励程度对学生上大学重要性程度的一个很好的选择。此时,你也可以将学生智商、性别、父母收入以及父母鼓励程度的数据作为输入,将学生上大学的计划作为输出。当决策树算法在扫描数据的时候,它会分析每一个输入项对结果项的影响,从而识别最能有效划分结果项的输入项。这个输入项的不同取值将整个数据集划分为两部分,在这两个数据集中,结果项的取值分布具有最大的差异性。这个过程将在每一个划分子集中重复的递归进行,直到完成整个决策树的构建。当整个训练过程结束后,你可以浏览构建好的决策树,从而识别数据中潜在的模式。
图1.2表示了由入学计划数据集所生成的决策树。从根节点开始到叶结点的每一条路径,均各自表达了一条规则。现在,我们可以发现学生中智商高于100,并且受到父母鼓励的学生,会有94%的可能性上大学。这样我们就从数据中发现了知识。
如图1.2所示例,数据挖掘是指通过采用算法(比如:决策树、聚类、关联规则、时间序列等)对数据集中的数据进行分析。这种分析的结果将产生一些模式,这些模式展示了一些有价值的信息。随着所采用挖掘算法的不同,这些模式有多种的表示方式,包括:树、规则、聚集、或一些数学公式的集合。在这些模式中发现的信息,可用于报表中以指导商业策略,或更重要的是进行预测。比如通过前面挖掘出的决策树模型,你可以以很高的准确度预测高校的哪些毕业生将会读大学。
数据挖掘能为企业提供了很多的商业价值。下面给出了一些我们对数据挖掘感兴趣理由:
我们已经拥有大量的数据: 在过去的十几年中,硬件的价格(特别是硬盘的价格)飞快的下降。与此同时,企业的应用系统业也已经产生了大量的数据。企业越来越希望能够发现这些数据中的潜在模式,以指导他们的商业策略。
竞争的加剧: 随着现代市场和分销渠道的采用(比如:互联网和电信),商业竞争越来越激烈。企业正面临全球的竞争,而竞争成败的关键是如何能保持现有的客户,并努力赢得新的客户。数据挖掘为进行这些因素和影响的分析提供了技术手段。
技术已经成熟: 数据挖掘技术以前只是学术界研究的范畴,但是现在这些技术已经成熟,并逐渐的进入产业应用阶段。目前,数据挖掘的算法越来越精确,越来越高效,越来越能处理复杂的数据。
注:本文翻译自Wiley.Data.Mining.with.SQL.Server.2005
[1] 此处数值形式的数据项指的是非离散的数据项,比如年龄、收入等。
数据挖掘能解决的商务问题
数据挖掘技术能被用于许多应用领域,解决各种各样的商务问题。下面所列出的是一些能用该技术解决的典型问题:
流失分析:哪些客户最有可能转向购买竞争对手的产品?目前,电信、银行和保险领域正面对严峻的竞争局面。平均每个电话用户会消耗掉电信公司200美金的市场投入。每个企业都在尽可能的流住更多的客户。影响分析能帮助市场经理理解导致客户流失的原因,提高客户满意度,并最终提高客户忠诚度。
交叉销售:哪一种商品是客户喜欢购买的?交叉销售对零售商是一个很重要的商业挑战。许多零售商,特别是在线零售商,采用这个特性来增加它们的销售额。比如,如果你到一个在线书店(如亚马逊或BarnesAndNoble.com)去购买书籍,你会注意到这些网站会给你一系列相关书籍的建议。这些建议的提出需要采用数据挖掘的分析手段。
欺诈识别:某笔保险申请会有欺诈可能吗?保险公司每天需要处理成千上万的保险申请。这使得保险公司无法做到对每一笔申请进行有效的调查。数据挖掘技术能有效帮助保险公司识别在申请中有哪些最有可能存在欺诈行为。
风险管理:某笔贷款应当批准吗?这是在银行经营过程中经常碰到的问题。数据挖掘技术能为银行提供每笔贷款的风险等级,帮助经理对每一笔申请做出正确的决策。
客户分类:谁是我们的客户?客户分类帮助市场经理理解不同类型的客户,并对不同的客户分类采取不同的营销手段。
定向广告:对不同的访问者应当在网站上显示何种广告?在线零售商和门户网站希望为它们的客户提供个性化的内容。通过采用数据挖掘技术,对客户网页浏览数据和购物行为数据进行分析,得出相关的模式信息,以此来为自己的客户提供定向广告。
销售预测:在下周这个门店能卖出多少瓶酒?这个月的库存水平该保持一个什么样的水平?数据挖掘中的预测技术能帮助解决这些与时间相关的问题。
数据挖掘的任务类型
数据挖掘能用来解决成百上千的商务问题。根据这些问题的内在本质,我们可以将数据挖掘的任务划分为如下的几种类型。
1 分类(Classification)
分类是数据挖掘应用中最常见的一类问题。通常,象流失分析、风险管理、定向广告等商务问题都会涉及到分类问题。
分类指根据预测属性的取值不同,将样本划分为不同的分类。每个样本都由一系列的属性构成,其中之一称为分类属性(及预测属性)。分类任务需要寻找一个以分类属性为参数的分类函数。在前面提到的大学计划案例中,分类属性就是“College Plans”属性,该属性有两种取值:Yes和No。为了能得到数据的分类模型,需要用历史数据进行训练,历史数据中需要给出每一个样本的分类值。在数据挖掘算法中需要给定样本目标值的算法,称作指导型算法(supervised algorithms)。
典型的分类算法包括决策树、神经元网络、Naïve Bayes。
2 聚类(Clustering)
聚类也被称作分割。它被用于基于样本的属性,识别在样本中存在的分组。在同一分组内的样本具有更多类似的属性值。
图1.3显示了一个包含有两个属性(年龄和收入)的客户数据集。聚类算法将这些客户划分为3个分割。分割1包含了年轻收入低的客户,分割2包含了中年收入高的客户,分割3包含了老年收入相对较低的客户。
聚类算法是一个非指导型(unsupervised)数据挖掘任务。所有的输入都同样对待,没有一个属性直接用来指导模型的构建。大多数聚类算法在构建模型时,都需要进行多次的迭代直到算法收敛。算法收敛指模型中所有分割的边界都已经趋于稳定。
图 1.3 聚类
3 关联规则(Association)
关联规则是另一类常用的数据挖掘任务。关联规则也被称作购物篮分析。一个典型的基于关联规则的数据挖掘任务是,通过对销售事务表的分析,得出经常出现在同一个购物篮中的商品有哪些。从一般化角度来说,关联规则通常用于识别一些经常出现的商品集合和规则,其识别结果将用于指导交叉销售。
对关联规则任务来说,每一个商品或(更一般化的)每一个属性/值对,被称作一个项。关联规则任务有两个目标,一个是识别一些项的集合(如商品的集合),一个是识别这些项集之间的关联规则。
大多数关联规则算法通过多次扫描数据集,得到经常出现的一些项集。而衡量经常出现次数的门槛(及支持度),由用户在进行模型识别前指定。比如,支持度=2%,表示只有那些在购物车中出现频率高于2%的商品组合,将被识别出来进入模型。一个经常出现的项集会表达为 {Product = "Pepsi", Product="Chips", Product = "Juice"}。每一个项集都有一个大小,表示在项集中存在的项的数目。比如,前面的项集的大小为3。
除了基于支持度识别经常发生的项集外,大多数关联规则算法同时还将识别关联规则。一个关联规则表达为:A, B => C,其中A, B, C都是经常出现的项集。同时每个规则也被赋予了一个概率值,该值在数据挖掘的术语中被称作是可信度(confidence)。在用户进行模型识别前,需要指定关联规则概率值得门槛(概率值小于该门槛的规则将被丢弃)。比如,一个典型的关联规则为:Product = "Pepsi", Product ="Chips" => Product = "Juice" (概率值80%)。这个规则所表达的意思非常直观,当一个客户已经购买了Pepsi和Chips,那么他有80%的可能性会购买juice。图1.4展示了一个产品关联规则的模型。图中每一个节点表示了一种产品,每一条边表示了产品间的关系,边的指向表示了预测的方向。比如,在Milk和Cheese间的边表示了,那些购买了Milk的客户有可能会购买Cheese。
4 回归(Regression)
回归任务与分类任务很相似。它们之间的主要差异是预测属性(分类属性)为连续变量。回归技术在统计学领域得到了广泛的研究。线形回归(Linear regression)和Logistic回归(logistic regression)是两种最流行的方法。其它的回归技术还包括回归树(regression trees)和神经元网络(neural networks)
回归任务可以解决很多商务问题。比如,它可以用于基于发行面值、发行方式和发行量,预测债券发行率(coupon redemption rates),或者基于温度、气压和湿度预测风速。
5 预测(Forecasting)
预测也是一种重要的数据挖掘任务。MSFT的股值明日会是多少?下个月Pepsi的销售量会是多少?预测技术可用以帮助回答这类问题。该算法通常需要输入一个时间序列数据集(比如一个时间属性和一系列的数值属性)。时间序列数据通常含有一系列相邻的样本,这些样本之间存在顺序关系。预测技术在预测过程中,考虑了基本趋势、周期性、噪声滤波等问题的处理。最流行的时间序列处理技术是ARIMA(AutoRegressive Integrated MovingAverage model)
图1.5中有两条曲线。实心曲线表示了微软股值变化的实际情况,虚线表示了采用ARIMA算法的预测结果。
图 1.4 产品相关性
图 1.5 时间序列
6 序列分析(Sequence Analysis)
序列分析用于在一系列离散的序列数据间发现模式。一个序列由一系列离散的取值(或状态)构成。比如,一个DNA序列是一个由4种状态(A, G, C和T)组成的很长的序列。一个Web点击序列是由一系列的URL构成的序列。客户的购买活动也可被模型化为一个序列。比如,客户首先买了一台计算机,然后买了一个音箱,最后买了一个网络摄像机(Webcam)。其中的序列数据和时间数据都表达了相邻样本的顺序关系。它们的不同之处在于序列数据是离散的,时间数据是连续的。
序列分析和关联规则的相似之处在于,它们所用的样本数据中,每一个样本都包含了一个项集或状态集合。其不同之处在于序列分析研究的是项集(或状态)间的转换,而关联规则模型研究的是项集之间的相关性。在序列分析模型中,先购买计算机再购买音箱,和先购买音箱再购买计算机是两种不同的序列。而在关联规则中这两种行为都表达了一个同样的项集{计算机, 音箱}。
图1.6展示了一个Web点击的序列图。图中每一个节点表达了一个URL分类,每一条边都有一个指向,表达了在URL分类之间的转换关系。每一条转换关系都被赋予了一个数值,表示了从一种类型的URL转向另一种类型URL的概率。
序列分析是一种相对较新的数据挖掘任务。这种类型的挖掘变得越来越重要的原因,主要来源于它所支撑的两种应用:Web日志分析和DNA分析。目前,已经出现了一些不同的序列分析技术,比如Markov链。研究人员目前正积极的在这个领域寻找新的算法。图1.6展示了从Web点击数据中挖掘出的,在不同类型URL间进行状态转换的关系图。
7 异常分析(Deviation Analysis)
异常分析用于从样本数据中,发现与其它样本差别很大的异常数据。它也被称作特列识别,用于从以前的观测数据中识别主要的变化。异常分析能被用在很多领域。其中一个最主要的应用领域是信用卡欺诈识别。在几百万的信用卡交易事务中识别异常情况是一件有很大挑战性的工作。其它应用还包括:网络入侵识别、制造事故分析等。
目前没有用于异常分析的标准技术,目前还处于一个被活跃研究的阶段。通常分析师会在常用算法(如:决策树、聚类或神经元网络)上进行一些改进,以满足异常分析任务的要求。为了能够产生有效的规则,分析师需要对样本集中的异常样本进行过采样(Over Sample)
图 1.6 Web浏览序列
数据挖掘技术
虽然数据挖掘的名词还比较新,但是很多数据挖掘技术已经存在了很多年了。如果我们了解一下这些技术的起源,我们会发现这些技术都起源于如下三个领域:统计学、机器学习和数据库。
许多上一节提到的数据挖掘任务,都集中于统计学研究领域。许多数据挖掘算法(包括回归算法、时间序列算法、决策树算法等)都是被统计学专家提出的。回归技术已经有几个世纪的研究历史了,时间序列算法也有几十年了。决策树算法是从19世纪80年代开始研究的,是较新的几种算法之一。
数据挖掘应用是指采用自动化或半自动化的手段从数据中进行模式识别。一些机器学习算法已经被应用到数据挖掘应用中。神经元网络属于这类学习算法,它在分类(Classification)任务和回归(Regression)任务中有着非常出色的表现,特别是当属性之间的关系呈现非线性特性时。遗传算法也是一种机器学习算法。遗传算法对一组候选目标通过一个选择函数,模拟自然界的遗传和进化原理,从而逐步得到适应性更好的后代(模型)。其中,选择函数用于对候选目标进行筛选,得到下一步的子代。如此循环往复,得到最能满足要求的后代(模型)。遗传算法可以用于分类应用和聚类应用。它也可以和其它算法一起使用,比如帮助神经元网络算法找到最佳的权重。
数据库是又一种被数据挖掘涉及到的技术。传统的统计工具假设所有的数据都能被同时调入内存。但不幸的是,在现代应用中,全部调入数据在大多数情况下不现实。比如,在一个拥有几百万条记录的数据表中发现相关性规则。而数据库则是处理海量数据的专家。正因为如此,处于实用阶段的关联规则发现算法都来自于数据库的研究成果。目前,也存在一些采用数据库技术,用于处理大数据量下的分类任务和聚合任务的算法,比如微软的聚类算法(Microsoft Clustering algorithm)。
数据流
数据挖掘是数据仓库技术中的一个关键成员。数据挖掘技术在一个完整的商业场景中是如何发挥作用的呢?图1.7展示了这样一个典型的在业务处理的不同阶段,应用数据挖掘技术的例子。
企业的业务系统在联机事务处理数据库中存储了大量的事务数据(Transaction Data)。这些事务数据通常通过一个提取、转换和装载过程进入数据仓库。通常情况下,数据仓库所采用的数据结构和OLAP数据库是不同的。一个典型的数据仓库数据结构是星形或雪花形的。这种结构由中心的一个事实表(Fact Table)和周围的维度表构成。在数据仓库存入数据后,就能在此基础上构建OLAP数据立方(Cubes)。
数据挖掘技术是在企业数据流的什么地方产生作用的呢?首先也是最常见的,是在数据仓库已被清洗过的数据中应用数据挖掘技术。从数据挖掘模型中发掘出的模式,可以通过报表的方式提供给市场经理。通常在小规模的企业中没有数据仓库。如此,人们可以直接在OLTP数据表中进行数据挖掘。这种情况下,最好是将OLTP数据库中的数据表复制一份,到另外一个数据库中进行数据挖掘。
数据挖掘也可直接用于企业业务系统,以提供预测数据。在企业业务系统中嵌入数据挖掘特征已经变的越来越流行。在一个Web交叉销售的例子中,当客户在Web上加入一种产品到购物篮后,数据挖掘中的预测查询被调用,从而基于相关性分析的结果产生针对该客户的推荐产品。
数据挖掘也可以在OLAP数据立方上进行。数据立方是一个有着多个指标(Measure)和多个维度(Dimension)的数据库。一个大的维度可能含有几百万个数据成员,数据立方中的元素(Cell)个数是各个维度元素个数的乘积。这对于手工寻找数据中蕴含的模式是不现实的。数据挖掘技术能在一个数据立方上进行模式发现。比如,关联规则算法能用于在销售数据立方中,分析在一段时期内,某区域的客户的购物模式。我们可以用发现的购物模式预测门店销售额和销售利润。另一个例子是聚类分析。数据挖掘能将消费者通过维度的属性和指标聚分割成不同的类型。数据挖掘不仅能从数据立方中发现模式,还能对数据立方进行重新组织。比如,我们可以建立一个新的客户维度,该维度的数据基于来源于聚类分析的结果,表示每个客户属于哪一种识别出的类别,从而进行更有效的分析。
图 1.7 数据流
XML与Web数据挖掘
【导读】面向Web的数据挖掘是一项复杂的技术,由于Web数据挖掘比单个数据仓库的挖掘要复杂的多,因而面向Web的数据挖掘成了一个难以解决的问题。而XML的出现为解决Web数据挖掘的难题带来了机会。
面向Web的数据挖掘面临的挑战
Web 上有海量的数据信息,怎样对这些数据进行复杂的应用成了现今数据库技术的研究热点。数据挖掘就是从大量的数据中发现隐含的规律性的内容,解决数据的应用质量问题。充分利用有用的数据,废弃虚伪无用的数据,是数据挖掘技术的最重要的应用。
相对于Web的数据而言,传统的数据库中的数据结构性很强,即其中的数据为完全结构化的数据,而Web上的数据最大特点就是半结构化。所谓半结构化是相对于完全结构化的传统数据库的数据而言。显然,面向Web的数据挖掘比面向单个数据仓库的数据挖掘要复杂得多。
1.异构数据库环境
从数据库研究的角度出发,Web网站上的信息也可以看作一个数据库,一个更大、更复杂的数据库。Web上的每一个站点就是一个数据源,每个数据源都是异构的,因而每一站点之间的信息和组织都不一样,这就构成了一个巨大的异构数据库环境。如果想要利用这些数据进行数据挖掘,首先,必须要研究站点之间异构数据的集成问题,只有将这些站点的数据都集成起来,提供给用户一个统一的视图,才有可能从巨大的数据资源中获取所需的东西。其次,还要解决Web上的数据查询问题,因为如果所需的数据不能很有效地得到,对这些数据进行分析、集成、处理就无从谈起。
2.半结构化的数据结构
Web 上的数据与传统的数据库中的数据不同,传统的数据库都有一定的数据模型,可以根据模型来具体描述特定的数据。而Web上的数据非常复杂,没有特定的模型描述,每一站点的数据都各自独立设计,并且数据本身具有自述性和动态可变性。因而,Web上的数据具有一定的结构性,但因自述层次的存在,从而是一种非完全结构化的数据,这也被称之为半结构化数据。半结构化是Web上数据的最大特点。
3.解决半结构化的数据源问题
Web 数据挖掘技术首要解决半结构化数据源模型和半结构化数据模型的查询与集成问题。解决Web上的异构数据的集成与查询问题,就必须要有一个模型来清晰地描述 Web上的数据。针对Web上的数据半结构化的特点,寻找一个半结构化的数据模型是解决问题的关键所在。除了要定义一个半结构化数据模型外,还需要一种半结构化模型抽取技术,即自动地从现有数据中抽取半结构化模型的技术。面向Web的数据挖掘必须以半结构化模型和半结构化数据模型抽取技术为前提。
XML与Web数据挖掘技术
以XML 为基础的新一代WWW环境是直接面对Web数据的,不仅可以很好地兼容原有的Web应用,而且可以更好地实现Web中的信息共享与交换。XML可看作一种半结构化的数据模型,可以很容易地将XML的文档描述与关系数据库中的属性一对应起来,实施精确地查询与模型抽取。
1.XML的产生与发展
XML (eXtensibleMarkupLanguage)是由万维网协会(W3C)设计,特别为Web应用服务的SGML (StandardGeneralMarkupLanguage)的一个重要分支。
总的来说,XML是一种中介标示语言(Meta- markupLanguage),可提供描述结构化资料的格式,详细来说,XML是一种类似于HTML,被设计用来描述数据的语言。XML提供了一种独立的运行程序的方法来共享数据,它是用来自动描述信息的一种新的标准语言,它能使计算机通信把Internet的功能由信息传递扩大到人类其他多种多样的活动中去。XML由若干规则组成,这些规则可用于创建标记语言,并能用一种被称作分析程序的简明程序处理所有新创建的标记语言,正如HTML为第一个计算机用户阅读Internet文档提供一种显示方式一样,XML也创建了一种任何人都能读出和写入的世界语。XML解决了HTML不能解决的两个Web问题,即Internet发展速度快而接入速度慢的问题,以及可利用的信息多,但难以找到自己需要的那部分信息的问题。XML能增加结构和语义信息,可使计算机和服务器即时处理多种形式的信息。因此,运用XML的扩展功能不仅能从Web服务器下载大量的信息,还能大大减少网络业务量。
XML 中的标志(TAG)是没有预先定义的,使用者必须要自定义需要的标志,XML是能够进行自解释(SelfDescribing)的语言。XML使用DTD (DocumentTypeDefinition文档类型定义)来显示这些数据,XSL(eXtensibleStyleSheetLanguage)是一种来描述这些文档如何显示的机制,它是XML的样式表描述语言。XSL的历史比HTML用的CSS(层叠式样式表 CascadingStyleSheets)还要悠久,XSL包括两部分:一个用来转换XML文档的方法;一个用来格式化XML文档的方法。XLL (eXtensibleLinkLanguage)是XML连接语言,它提供XML中的连接,与HTML中的类似,但功能更强大。使用XLL,可以多方向连接,且连接可以存在于对象层级,而不仅仅是页面层级。由于XML能够标记更多的信息,所以它就能使用户很轻松地找到他们需要的信息。
利用XML,Web 设计人员不仅能创建文字和图形,而且还能构建文档类型定义的多层次、相互依存的系统、数据树、元数据、超链接结构和样式表。
2.XML的主要特点
正是XML的特点决定了其卓越的性能表现。XML作为一种标记语言,有许多特点:
(1)简单。XML经过精心设计,整个规范简单明了,它由若干规则组成,这些规则可用于创建标记语言,并能用一种常常称作分析程序的简明程序处理所有新创建的标记语言。XML能创建一种任何人都能读出和写入的世界语,这种创建世界语的功能叫做统一性功能。如XML创建的标记总是成对出现,以及依靠称作统一代码的新的编码标准。
(2)开放。XML是SGML在市场上有许多成熟的软件可用来帮助编写、管理等,开放式标准XML的基础是经过验证的标准技术,并针对网络做最佳化。众多业界顶尖公司,与W3C的工作群组并肩合作,协助确保交互作业性,支持各式系统和浏览器上的开发人员、作者和使用者,以及改进XML标准。XML解释器可以使用编程的方法来载入一个XML的文档,当这个文档被载入以后,用户就可以通过XML文件对象模型来获取和操纵整个文档的信息,加快了网络运行速度。
(3)高效且可扩充。支持复用文档片断,使用者可以发明和使用自己的标签,也可与他人共享,可延伸性大,在XML中,可以定义无限量的一组标注。XML提供了一个标示结构化资料的架构。一个XML组件可以宣告与其相关的资料为零售价、营业税、书名、数量或其它任何数据元素。随着世界范围内的许多机构逐渐采用 XML标准,将会有更多的相关功能出现:一旦锁定资料,便可以使用任何方式透过电缆线传递,并在浏览器中呈现,或者转交到其他应用程序做进一步的处理。 XML提供了一个独立的运用程序的方法来共享数据,使用DTD,不同的组中的人就能够使用共同的DTD来交换数据。你的应用程序可以使用这个标准的DTD 来验证你接受到的数据是否有效,你也可以使用一个DTD来验证你自己的数据。
(4)国际化。标准国际化,且支持世界上大多数文字。这源于依靠它的统一代码的新的编码标准,这种编码标准支持世界上所有以主要语言编写的混合文本。在HTML 中,就大多数字处理而言,一个文档一般是用一种特殊语言写成的,不管是英语,还是日语或阿拉伯语,如果用户的软件不能阅读特殊语言的字符,那么他就不能使用该文档。但是能阅读XML语言的软件就能顺利处理这些不同语言字符的任意组合。因此,XML不仅能在不同的计算机系统之间交换信息,而且能跨国界和超越不同文化疆界交换信息。
3.XML在Web数据挖掘中的应用
XML 已经成为正式的规范,开发人员能够用XML的格式标记和交换数据。XML在三层架构上为数据处理提供了很好的方法。使用可升级的三层模型,XML可以从存在的数据中产生出来,使用XML结构化的数据可以从商业规范和表现形式中分离出来。数据的集成、发送、处理和显示是下面过程中的每一个步骤:
促进XML应用的是那些用标准的HTML无法完成的Web应用。这些应用从大的方面讲可以被分成以下四类:需要Web客户端在两个或更多异质数据库之间进行通信的应用;试图将大部分处理负载从Web服务器转到Web客户端的应用;需要Web客户端将同样的数据以不同的浏览形式提供给不同的用户的应用;需要智能Web代理根据个人用户的需要裁减信息内容的应用。显而易见,这些应用和Web的数据挖掘技术有着重要的联系,基于Web的数据挖掘必须依靠它们来实现。
XML 给基于Web的应用软件赋予了强大的功能和灵活性,因此它给开发者和用户带来了许多好处。比如进行更有意义的搜索,并且Web数据可被XML唯一地标识。没有XML,搜索软件必须了解每个数据库是如何构建的,但这实际上是不可能的,因为每个数据库描述数据的格式几乎都是不同的。由于不同来源数据的集成问题的存在,现在搜索多样的不兼容的数据库实际上是不可能的。XML能够使不同来源的结构化的数据很容易地结合在一起。软件代理商可以在中间层的服务器上对从后端数据库和其它应用处来的数据进行集成。然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从描述搜集的Web页到数据记录,从而通过多种应用得到数据。
同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。利用XML,用户可以方便地进行本地计算和处理,XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据,数据计算不需要回到服务器就能进行。 XML可以被利用来分离使用者观看数据的界面,使用简单灵活开放的格式,可以给Web创建功能强大的应用软件,而原来这些软件只能建立在高端数据库上。另外,数据发到桌面后,能够用多种方式显示。
XML 还可以通过以简单开放扩展的方式描述结构化的数据,XML补充了HTML,被广泛地用来描述使用者界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。CSS和XSL为数据的显示提供了公布的机制。通过XML,数据可以粒状地更新。每当一部分数据变化后,不需要重发整个结构化的数据。变化的元素必须从服务器发送给客户,变化的数据不需要刷新整个使用者的界面就能够显示出来。但在目前,只要一条数据变化了,整一页都必须重建。这严重限制了服务器的升级性能。XML也允许加进其他数据,比如预测的温度。加入的信息能够进入存在的页面,不需要浏览器重新发一个新的页面。XML应用于客户需要与不同的数据源进行交互时,数据可能来自不同的数据库,它们都有各自不同的复杂格式。但客户与这些数据库间只通过一种标准语言进行交互,那就是XML。由于 XML的自定义性及可扩展性,它足以表达各种类型的数据。客户收到数据后可以进行处理,也可以在不同数据库间进行传递。总之,在这类应用中,XML解决了数据的统一接口问题。但是,与其他的数据传递标准不同的是,XML并没有定义数据文件中数据出现的具体规范,而是在数据中附加TAG来表达数据的逻辑结构和含义。这使XML成为一种程序能自动理解的规范。
XML 应用于将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。如按传统的 “Client/Server”工作方式,客户向服务器发出不同的请求,服务器分别予以响应,这不仅加重服务器本身的负荷,而且网络管理者还须事先调查各种不同的用户需求以做出相应不同的程序,但假如用户的需求繁杂而多变,则仍然将所有业务逻辑集中在服务器端是不合适的,因为服务器端的编程人员可能来不及满足众多的应用需求,也来不及跟上需求的变化,双方都很被动。应用XML则将处理数据的主动权交给了客户,服务器所作的只是尽可能完善、准确地将数据封装进XML文件中,正是各取所需、各司其职。XML的自解释性使客户端在收到数据的同时也理解数据的逻辑结构与含义,从而使广泛、通用的分布式计算成为可能。
XML 还被应用于网络代理,以便对所取得的信息进行编辑、增减以适应个人用户的需要。有些客户取得数据并不是为了直接使用而是为了根据需要组织自己的数据库。比方说,教育部门要建立一个庞大的题库,考试时将题库中的题目取出若干组成试卷,再将试卷封装进XML文件,接下来在各个学校让其通过一个过滤器,滤掉所有的答案,再发送到各个考生面前,未经过滤的内容则可直接送到老师手中,当然考试过后还可以再传送一份答案汇编。此外,XML文件中还可以包含进诸如难度系数、往年错误率等其他相关信息,这样只需几个小程序,同一个XML文件便可变成多个文件传送到不同的用户手中。
结束语
面向Web的数据挖掘是一项复杂的技术,由于Web数据挖掘比单个数据仓库的挖掘要复杂的多,因而面向Web的数据挖掘成了一个难以解决的问题。而XML的出现为解决Web数据挖掘的难题带来了机会。
由于XML能够使不同来源的结构化的数据很容易地结合在一起,因而使搜索多样的不兼容的数据库能够成为可能,从而为解决Web数据挖掘难题带来了希望。XML的扩展性和灵活性允许XML描述不同种类应用软件中的数据,从而能描述搜集的Web页中的数据记录。
同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。作为表示结构化数据的一个工业标准,XML为组织、软件开发者、Web站点和终端使用者提供了许多有利条件。相信在以后,随着XML作为在Web上交换数据的一种标准方式的出现,面向Web的数据挖掘将会变得非常轻松。
数据挖掘的10个常见问题
Q1. 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目的是方便企业末端用者使用而非给统计学家检测用的。
Q2. Data Warehousing 和 Data Mining 的关系为何?
若将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是从巨大资料仓储中找出有用信息的一种过程与技术」。
Q3. 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取代的。
Q4. 完整的Data Mining 包含哪些步骤?
以下提供一个Data Mining的进行步骤以为参考:
1. 明确目标与理解资料;
2. 获取相关技术与知识;
3. 整合与查核资料;
4. 去除错误或不一致及不完整的资料;
5. 由数据选取样本先行试验;
6. 研发模式(model)与型样(pattern);
7. 实际Data Mining的分析工作;
8. 测试与检核;
9. 找出假设并提出解释;
10. 持续应用于企业流程中。
由上述步骤可看出,Data Mining牵涉了大量的准备工作与规划过程,事实上许多专家皆认为整套Data Mining的进行有80﹪的时间精力是花费在资料前置作业阶段,其中包含资料的净化与格式转换甚或表格的连结。由此可知Data Mining只是信息挖掘过程中的一个步骤而已,在进行此步骤前还有许多的工作要先完成。
Q5. 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)」之逻辑规则对资料进行细分的技术,在实际运用时如何界定规则为有效是最大的问题,通常需先将资料中发生数太少的项目先剔除,以避免产生无意义的逻辑规则。
Q6. 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%)。
Q7. Data Mining在各领域的应用情形为何?
Data Mining在各领域的应用非常广泛,只要该产业拥有具分析价值与需求的资料仓储或数据库,皆可利用Mining工具进行有目的的挖掘分析。一般较常见的应用案例多发生在零售业、直效行销界、制造业、财务金融保险、通讯业以及医疗服务等。
于销售资料中发掘顾客的消费习性,并可藉由交易纪录找出顾客偏好的产品组合,其它包括找出流失顾客的特征与推出新产品的时机点等等都是零售业常见的实例;直效行销强调的分众概念与数据库行销方式在导入Data Mining的技术后,使直效行销的发展性更为强大,例如利用Data Mining分析顾客群之消费行为与交易纪录,结合基本资料,并依其对品牌价值等级的高低来区隔顾客,进而达到差异化行销的目的;制造业对Data Mining的需求多运用在品质控管方面,由制造过程中找出影响产品品质最重要的因素,以期提高作业流程的效率。
近来电话公司、信用卡公司、保险公司以及股票交易商对于诈欺行为的侦测(Fraud Detection)都很有兴趣,这些行业每年因为诈欺行为而造成的损失都非常可观,Data Mining可以从一些信用不良的客户资料中找出相似特征并预测可能的诈欺交易,达到减少损失的目的。财务金融业可以利用 Data Mining来分析市场动向,并预测个别公司的营运以及股价走向。Data Mining的另一个独特的用法是在医疗业,用来预测手术、用药、诊断、或是流程控制的效率。
Q8. Web Mining 和Data 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努力的方向。
Q9. Data Mining 在 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可以分别针对策略、目标定位、操作效能与测量评估等四个切面之相关问题,有效率地从市场与顾客所搜集累积之大量资料中挖掘出对消费者而言最关键、最重要的答案,并赖以建立真正由客户需求点出发的客户关系管理。
Q10. 目前业界有哪些常用的Data Mining分析工具?
Data Mining工具市场大致可分为三类:
1. 一般分析目的用的软件包
SAS Enterprise Miner
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