6.5.2 数据挖掘的功能
管理层可能常常会面临这样的问题:新的购物广场建在哪里会带来更多收益?商品以何种方式进行促销会更吸引顾客?这些都是之前的分析工具所无法解决的,而各种形式的数据挖掘功能可以使这些问题迎刃而解。一般来说,可以根据数据挖掘产生的模式所具有的特征,将数据挖掘划分为以下几类:
(1)关联分析。识别发生在相同时间的事件之间的关联关系。关联分析可用于解决市场“购物篮”一类的分析问题,如零售业中,关联分析常用来识别哪些商品更可能被同时购买,多大程度上如此。
(2)序列分析。和关联分析类似,不过序列分析的对象是在一段时间内发生的事件之间的时间上的先后关系或因果关系,例如重复光顾超市的顾客所购买物品之间的联系。
(3)分类分析。找出描述并区分数据类或者概念的模型(或函数),然后使用这个模型预测未知对象的类别。这种方法是基于已知类型集合的基础之上,将其他的数据项归入这些已知类别。
(4)聚类分析。与分类不同,聚类不知道已知数据的类标记,它用于将数据分成簇,使得在一个簇中的数据具有很高的相似性,而与其他簇中的数据的相似度较低。
(5)孤立点分析(异类分析)。数据库中可能会包含一些数据对象,它们与大多数数据的一般行为或模型不一致,这些数据对象就成为孤立点。通过分析孤立点我们可以发现产生这些异常的原因并有所行动,例如信用卡的欺骗检测。
(6)演变分析。数据演变分析就是描述对象行为随时间变化的规律或趋势,并对其建模。
下面我们对其中的主要任务和其相关技术进行更加详细地描述。
关联分析与序列分析
在超市中购物时,你也许会注意到这样一个现象:一个母亲给孩子购买儿童溜冰鞋时,往往会在购物车中再加入一个护膝或头盔。因为她买的是一双儿童溜冰鞋,那么作为一个刚开始学习溜冰的小孩,母亲一定会担心他在练习过程中摔跤。所以超市都会将溜冰鞋和各种护具放在相邻的位置,以便顾客选购,从而提高销售量。
从上例中可以看出,关联分析就是分析两个或多个事物之间的相互关系,就是从给定的数据集中发现频繁出现的项集之间的关联。从商业角度讲,通过关联分析可以得到这样的知识:“同一个交易中,一项物品的出现往往也会引起另一项物品的出现”。注意我们说的是“往往”,而不是“一定”。在满足一定的支持度和置信度基础上,关联分析得到的规律是成立的。也就是说,它只在一定概率上服从,而不是100%服从。
从技术层面讲,关联规则挖掘是在给定的事务数据库中找到所有满足最小支持度和最小置信度的形如X≥Y的规则,其中X和Y分别代表属性集合(称为项集),并且X和Y的交集非空。X≥Y的规则表示“数据库中满足X条件的记录也会满足Y条件”。
所谓规则的支持度表示X和Y同时出现的概率,它用来描述该规则在数据库中是否具有代表性,即:支持度=P(X,Y)。置信度用来表示在出现X的前提下出现Y的概率,描述规则成立的可信度。即:置信度=P(Y|X)=P(X,Y)/P(X)。用户可以设定最小的支持度和置信度,然后通过关联规则算法将所有满足条件的规则挖掘出来。
下面我们继续用上面的实例来详细说明关联分析的应用。假设你正经营一家溜冰鞋专卖店,如何运用关联分析来了解商品销售之间的关联,从而制定更完备的销售策略呢?
表6-5列出了近期1000笔儿童类产品的交易数据。每栏最后一行的数据表示这1000笔交易中涉及该栏产品的交易数,其余的数据表示1000笔交易中同时涉及该栏产品和该列产品的交易数。例如:儿童头盔栏最后一行的210表示1000笔交易中有210笔涉及儿童头盔的交易;儿童护膝栏第一行的130表示1000笔交易中有130笔交易同时购买了儿童溜冰鞋和儿童头盔。
表6-5 关联分析案例
我们用X表示消费者购买儿童溜冰鞋的事件,Y表示购买儿童护膝的事件。通过使用最后一行的数据,我们可以计算出消费者购买某种产品的概率。如:消费者购买儿童溜冰鞋的概率P(X)为270/1000;购买儿童护膝的概率P(Y)为240/1000。通过使用其余行的数据,我们可以计算出消费者同时购买某两种产品的概率。如:消费者同时购买儿童溜冰鞋和儿童护膝的概率P(X,Y)为130/1000。
假设我们在此次关联分析中设定的最小支持度和最小关联度分别为0.1和0.4。那么在这个实例分析中,“购买溜冰鞋,同时也购买护膝”这条关联规则的支持度P(X,Y)就为0.13,即消费者同时购买这两种产品的概率为0.13。而规则的置信度=P(X,Y)/P(X)=0.13/0.27=0.48,即消费者在购买溜冰鞋的基础上又购买护膝的概率为0.48。可以看出,实例中规则的支持度和关联度均满足最小条件,所以关联规则成立,即消费者购买溜冰鞋后也有很大可能会购买护膝。
进一步分析置信度的意义:从上面数据看出,某消费者购买护膝的概率是0.24,而他购买溜冰鞋后又购买护膝的概率为0.48。这意味着,顾客购买溜冰鞋后,其购买护膝的概率也大大提高了,从0.24上升到0.48。所以作为经营者,我们应该努力尝试着把护膝推销给每一位溜冰鞋购买者,以期提高护膝的销售量。
现实生活中,像这样能建立起关联规则的例子还有很多。比如肯德基里的汉堡与可乐的关系,超市中牛奶和面包的关系等。除了运用在分析两种商品之间的联系,关联分析也可以分析三种或三种以上商品之间的联系,只是数据的计算更加复杂,这里我们就不一一介绍。
序列分析同样是分析事件之间的联系,但是与关联分析有所不同,序列分析更侧重于分析一段时间内发生的事件在时间上的先后关系或因果联系。而关联规则只是说明了事物之间存在联系,并没有更进一步指明联系是什么类型。
序列分析能发现数据中形如“在某一段时间内,顾客购买商品A,接着购买商品B,而后购买商品C,即序列A→B→C出现的频度较高”之类的知识。比如,在所有购买了激光打印机的人中,半年后80%的人再购买新硒鼓,20%的人用旧硒鼓装碳粉;在所有购买了彩色电视机的人中,有60%的人再购买DVD产品。当然,序列分析同样需要计算支持度与置信度。由于与关联分析类似,因此我们就不再对序列分析赘述。
分类分析
生活中遇到烦心事,你会找一个好朋友倾诉,那么寻找好朋友就是你对周围人群进行分类的过程。此外,商业领域中分类的例子也很多,比如百货商场可以根据客户的历史交易记录及一定的分类算法将他们分为高、中、低档商品的消费者。确定这个分类模型后,对于新的消费者,就可以根据这个分类规则确定其属于高、中、低档消费者中的哪一类。分类工作完成后,每当有新产品上市时,百货商场可以很快确定新产品的潜在消费者有哪些,并针对这些特定人群制定相应的营销策略。
从上述例子中可以看出,分类分析就是找出一组能够描述数据集合典型特征的模型(或函数),以便能够识别未知数据的归属或类别的方法。要注意的是,在分类之前,数据的类别已经存在。因此分类过程主要有两个阶段:首先给定已有的数据和类别,通过分类算法得到描述和区分数据类别或概念的分类模型;然后,将此分类模型应用到要进行测试的数据上,把未来或者未知的数据划分到若干已知类别之中。
分类挖掘所用的分类模型可以采用多种形式加以描述输出。其中主要的表示方法有:分类规则(IF-THEN)、决策树(decision trees)、数学公式(mathematical formula)和神经网络等。下面我们对决策树进行详细介绍,以进一步探讨分类分析的原理。
决策树是一个具有层次结构的树状结构,它按照条件进行分级排列,从而预测类别或预测价值,因此可以很容易地转换为分类规则。决策树的基本思想是选择在某些标准下最有利于分类的属性,并通过一系列格式为“如果……那么……”的决策法则,可以将总体划分成组内差异尽可能小的小组。下面我们用实例说明。
假设我们想根据以往客户贷款还款的情况对他们进行分类,通过用决策树分析哪些特征的客户违约风险较大,我们就可以制定接受或拒绝某客户贷款请求的条件。要建立一个决策树,我们首先要收集客户的历史还款记录(包括贷款额、贷款拖欠额、信用积分等)和其他特征等相关数据。
然后我们将数据输入到决策树程序中。程序会自动分析客户的所有特征,并选择能使小组间差异最大的特征。这里暗含的逻辑关系就是:各小组差异越大,分类就越好。例如,如果每一个贷款拖欠额百分比<50%的客户均没有违约现象,而每一个贷款拖欠额百分比≥50%的客户均有违约现象,那么,程序将用“贷款拖欠额百分比是否<50%”这一变量来对客户进行分类。在这个虚拟的例子中,决策树程序是一种完美的分类方法,因为每一个小组中完全没有错分的现象。
更为实际的情况如图6-12所示,图中虚构了一个客户贷款数据的决策树分析。我们仍然假设对客户的分类取决于该客户是否违约。
图6-12 贷款客户的决策树分析
为生成这一树形图,决策树分析工具分析了客户的各种特征,接着运用这些特征值,并以客户是否有过违约记录为分类基础,划分出尽可能不同的小组。
从图6-12所示的结果来看,决策树程序认为最佳的第一分类标准是:客户的贷款拖欠额百分比是否<50%。但是由图可知,这个分类并不完美,因为无论贷款拖欠额百分比是否<50%,都有客户违约。但是从图中也可以反映出,当客户的贷款拖欠额百分比<50%时,其中绝大多数客户没有违约记录。
接着,决策树程序继续审查其他条件,将拖欠额百分比≥50%的条件继续细分为两组:信用积分是否达到580。通过审查这些数据,我们发现,信用积分>580且拖欠额百分比≥50%的客户基本没有违约记录,而信用积分<580且拖欠额百分比≥50%的客户大部分都有违约记录。
接下来,程序对信用积分>580的客户进行进一步细分,以找到这部分客户里不违约的更严格的条件。如图显示,当前贷款值<1w且信用积分>580,拖欠额百分比≥50%的客户基本没有违约现象,而当前贷款值≥1w且信用积分>580,拖欠额百分比≥50%的客户有很大可能出现违约现象。(这里所用的数据均为假设的,没有真实性,只是为了说明决策树的运用)。
以上这些操作完成了分类分析的第一阶段:即根据历史的数据和类别,通过决策树算法得到区分哪些客户容易违约的分类模型,从而帮助我们确定高风险客户的判断条件。将图中所示的决策树转换成一系列格式为“如果…那么…”的决策准则,如下:
如果客户贷款拖欠额百分比<50%,那么接受贷款;
如果客户贷款拖欠额百分比≥50%,同时
信用积分>580,同时
当前贷款值<1w,那么接受贷款;
否则,拒绝该贷款。
建立判别规则后,接下来进入第二阶段:即将此分类模型应用到要进行测试的数据上,把未来或者未知的数据划分到若干已知类别之中。当有新客户申请贷款时,我们就可以使用判别条件帮助决策“可以接受哪些人的贷款,而应该拒绝哪些人的贷款。
通过上例可以知道,分类通常还可以用于预测未知数据实例的归属类别(有限离散值),如一个银行客户的信用等级是属于A级、B级还是C级。但在一些情况下,需要预测某数值属性的值(连续数值),这样的分类就被称为预测(prediction)。尽管预测既包括连续数值的预测,也包括有限离散值的分类;但一般还是使用预测(prediction)来表示对连续数值的预测;而使用分类来表示对有限离散值的预测。
聚类分析
聚类分析(clustering analysis)就是按照“物以类聚”的原则把一个数据集合按照某个标准分成几个簇的过程。其结果使得在每个簇内部的数据按照该标准具有很高的相似性,而簇与簇之间的数据的相似性很低。
例如,我们拿到如下一些人的身高、体重和性别的数据,按照“物以类聚”的原则,根据一定的聚类规则,从身高和体重两个维度可以把这些数据分成三组,如图6-13所示。
图6-13 聚类分析示意描述
从这个例子可以看出,聚类分析的输入数据集是一组未标记(没有类别归属)的对象。聚类分析的目的就是根据一定的规则,对这些数据进行分组,并用显示或隐示的方法描述不同的类别,也就是说,聚类分析的输出是得到若干类别及类别的描述。通过聚类分析获得同类别归属的数据对象集合后,我们可以更进一步用分类学习获得相应的分类预测模型(规则)。
聚类分析与分类分析的不同之处在于:在分类中,数据事先是给出类标记的,然后选择分类算法对这些类进行划分;而进行聚类前并不知道将要划分成几个组和什么样的组,也不知道根据哪些空间区分规则来定义组。因此,分类是有指导的类别划分,在若干先验标准的指导下进行,效果好坏取决于标准选取的好坏。聚类则是没有先验标准,完全依靠事先的聚类原则(距离,近邻等),进行类别划分,效果好坏取决于聚类原则的选取。
聚类分析在金融、市场、销售等领域中的应用十分广泛。比如,利用聚类分析可以有助于市场分析人员对顾客群进行区别定位,然后根据不同特点的顾客群推出相应的产品;又比如可以在房地产市场上,分别根据房屋的类型、市值、地理位置等特性对房屋进行归类,然后制定相应的销售策略进行促销活动。下面我们将以保险公司划分顾客群体为例来说明聚类分析的应用。
假设SIA是美国最大的保险机构,有着1500多个分支机构及400万会员。该公司除了在常规保险业务之外还提供银行、证券、期货等投资业务。为了识别会员的潜在需求而提供盈利性服务,也为了获取更多的市场份额,公司决定对会员进行聚类分析,从而了解不同类别的会员有什么样的需求。
银行对18000名会员样本进行了聚类分析,识别了反映保险交易模式特征的15个变量,并划分出了30个会员类型。接下来我们就将所有的400万会员按照那15个变量计算,将他们划分到30个会员类型中。这样,我们就可以按类管理,对每一类会员提供不同的保险及投资建议,使顾客满意度达到一个更高的水平。同时,也可以帮助公司识别每类会员的潜在需求而获取更多的市场份额。另一方面,聚类分析也可以提高公司的营销效率,聚类分析后,公司营销更有目的性,可以将正确的产品推销给正确的人,从而减少盲目推销的成本。
异类分析
一个数据库中的数据一般不可能都符合分类预测或聚类分析所获得的模型。那些不符合大多数数据对象所构成的规律(模型)的数据对象就被称为异类(outlier)。以往的数据挖掘方法常常将这些异类视为噪声而丢弃,然而在一些应用场合中,如各种商业欺诈行为的自动检测,这些异类的数据往往比常规数据更具有挖掘价值。因此,异类分析也是数据挖掘的重要方法之一。
对异类数据的分析处理通常就称为异类挖掘。数据中的异类可以利用数理统计方法分析获得。它根据历史数据获得一个数据分布或概率模型,并使用距离度量,到其他聚类的距离很大的对象就被视为异类。另外也可以用偏差的方法来确定异类。基于偏差的方法是通过考察一群对象主要特征上的差别来识别异类,而不是使用统计或距离度量。
异类分析常可用来检测商业欺诈行为。例如:信用卡公司记录每个持卡人所做的每笔交易,同时也记录信用限度,年龄,年薪和地址等信息。从持卡人大量的商品购买记录中(包括购买的发生地点、购买商品类型和购买频率等),信用卡公司可以依据各账户平常所发生的购买行为建立一个用户合法交易的轮廓。当一笔新的交易发生时,就与已构建的交易轮廓相对比。如果该交易的特性与先前轮廓差异较大,就把该交易记为可能性欺诈。
此外,对于一个制造型企业的生产部门而言,与前几周相比,本周产品生产的合格率突然下降,就是一种异类分析。当合格率下降幅度较大时,我们就可以利用数据挖掘工具来帮助分析产生这一异常情况的原因。如:某一零件与以往的供应批货相比,尺寸上出现变化。那么分析人员就可以进一步确认零件尺寸的变化导致产品的不良,从而可以与供应商洽谈解决方案。
演化分析
数据演化分析(evolution analysis)就是对随时间变化的数据对象的变化规律和趋势进行建模描述。这一建模手段包括对时间相关数据的特征化、区分、关联、分类或聚类等,但与前面所述的分析不同,这类分析还包括时间序列数据分析、序列或周期模式匹配等数据分析。
例如,演化分析的一个典型应用是股票市场的预测。假如,你有纽约股票交易所过去几年的主要股票市场(时间序列)数据,并希望投资于高科技工业公司的股票。那么你就可以利用演化分析方法对股市主要股票交易数据(时间序列数据)进行分析,以便获得整个股票市场和特定公司的股票演化规律,这种规律或许能够帮助预测股票价格的未来走向,从而有效提高投资回报率。
数据挖掘结果的评估
一个数据挖掘系统在完成一个挖掘算法之后,常常会获得成千上万的模式或规则。关联规则挖掘就是一个典型的例子,关联规则挖掘算法的执行结果,即使是对一个规模较小的数据库,也会得到数千条关联规则。你可能会问:“所有的这些关联规则都是有用的吗?”答案是否定的。实际上,对于给定的用户,在所有产生的规则中,只有一小部分是有价值的。
那么如何对数据挖掘所获得的挖掘结果进行有效的评估,以便最终能够获得有价值的模式(或知识)?这就给数据挖掘提出了许多需要解决的问题:“使一个模式有价值的因素是什么?”、“一个数据挖掘算法能否产生所有有价值的模式(知识)?”、“一个数据挖掘算法能否只产生有价值的模式(知识)?”。
对于第一个问题,评估一个模式(知识)是否有意义通常依据以下四条标准:(1)易于用户理解;(2)对新数据或测试数据能够确定有效程度;(3)具有潜在价值;(4)新奇的。一个有价值的模式就是知识。
在实际应用中,我们主要有两种方法来评估挖掘结果是否有价值。一种是客观度量。这种方法是用客观数据来衡量模式(知识)的有效性。比如在关联分析中我们提到的支持度和置信度,其中支持度表示满足规则的样本百分比,也即这一规则出现的概率,常用“X和Y同时出现的概率P(X,Y)”表示;而置信度表示规则的有效性,常用“在出现X的前提下出现Y的概率P(Y|X)”表示。一般我们将这些度量标准设置一个阈值,如最小支持度和最小置信度。如果规则不能满足这些阈值,则认为规则为噪声、异常或不太有价值;若规则能满足阈值,则认为规则有一定价值。
另一种方法是反映特定用户需要和兴趣的主观度量。例如,对于屈臣氏市场经理来说,描述频繁在屈臣氏购物的顾客特性的模式应当是有价值的;而分析雇员业绩模式可能是没有价值的。因此,主观兴趣度度量是基于用户对数据的确信。如果所挖掘的模式与用户所设想的模式不一致,或者能提供给用户采取行动的策略信息,在这两种情况下,用户就会认为此模式是有价值的。
第二个问题:“数据挖掘系统能够产生所有有价值的模式吗?”这就涉及数据挖掘算法的完全性。期望数据挖掘系统产生所有可能的模式是不现实的,也是低效的。实际上,高效的做法是根据用户提供的限制和兴趣度而进行聚焦搜索。这样,或许能够确保算法的完全性,而且也能获得让用户认可的模式。
第三个问题:“数据挖掘系统能够只产生有价值的模式吗?”这是关于数据挖掘的优化问题。对于用户和数据挖掘系统本身来讲,仅产生有价值的模式是非常有效的数据挖掘方式。因为这样就不需要搜索所有的模式,以便识别真正有价值的模式。目前数据挖掘在这方面已经有了进展。然而,这种优化仍然是个挑战。
总而言之,为了有效地发现对于给定用户有价值的模式,模式兴趣度度量是必需的。这种度量可以在数据挖掘这一步之后使用,根据它们的兴趣度评估所发现的模式,过滤掉不感兴趣的那些。更重要的是这种度量可以用来指导和限制发现过程,剪去模式空间中不满足预先设定的兴趣度限制的子集,改善搜索性能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。