SAS EM实例进阶Created by:Ning Gang****************HP GDCC GAPSE2008-12-29 1.SAS Enterprise Miner简介1.1. 数据挖掘简介数据仓库的发展,为分析人员提供了在各种层次上、历史回溯的数据信息。
对未来的信息要进行预测,这就演化出来数据挖掘技术。
数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
目前数据挖掘应用于很多行业中,来解决众多的商业问题,如数据库营销(Database Marketing)、客户群体划分(Customer Segmentation & Classification)、背景分析(Profile Analysis)、交叉销售(Cross-selling)等市场分析行为,以及客户流失性分析(Churn Analysis)、客户信用记分(Credit Scoring)、欺诈发现(Fraud Detection)等等。
1.2. EM简介SAS Enterprise Miner简称EM,它把统计分析系统和图形用户界面(GUI)紧密结合,对用户友好、直观、灵活、使用方便,使对统计学无经验的用户也可以理解和使用。
SAS定义了数据挖掘方法——SEMMA方法,即抽样(Sample)、探索(Explore)、修改(Modify)、建模(Model)、评价(Assess)。
以下SEMMA方法从SAS Help文档中拷贝,不再翻译以求理解准确。
∙Sample the data by creating one or more data tables. The sample should be large enough to contain the significant information, yet smallenough to process.∙Explore the data by searching for anticipated relationships, unanticipated trends, and anomalies in order to gain understanding and ideas.∙Modify the data by creating, selecting, and transforming the variables to focus the model selection process.∙Model the data by using the analytical tools to search for a combination of the data that reliably predicts a desired outcome.Assess the data by evaluating the usefulness and reliability of the findings from the data mining process.EM建立分析流程中,不必包含SEMMA方法每一步,同时其中的步骤可以重复出现。
在SAS窗口菜单中依此选择“解决方案”---“分析”---“企业数据挖掘”,即打开下图所示的EM的窗口。
EM为那些非统计学专家的分析员提供了GUI界面,在工作空间(workspace)中按照一定的顺序添加各种可以实现不同功能的节点,然后对各节点进行相应的设置,最后运行整个工作流程(workflow),便可以得到相应的结果。
数据挖掘专家则可以在更深层次的后台进行编程,得到更优更好的分析流程。
EM在市场中的竞争产品有SPSS的Clementine,数据挖掘的方法是类似的。
2.SAS数据挖掘实例2.1. 分类的基本概念与步骤在介绍EM实例之前,还是来学习一下数据挖掘的分类方法吧。
数据挖掘有一些常用的模型和算法,如分类方法、聚类方法、关联规则等等。
分类是数据挖掘中一项非常重要的任务。
通过例子来理解分类吧。
老师根据分数把学生分成A、B、C、D、E五类,这里只要通过简单的分界线(60,70,分类可用于预测,预测的目的是从历史数据记录中自动推导出对给定数据的趋势描述,从而能对未来数据进行预测。
分类的目的是学会一个分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给定类别的某一个类别中。
通过以下这个例子来了解如何通过分类方法来预测吧。
属性PlayTennis的两个取值Yes/No表示是否适宜与打网球。
历史数据记录了哪些天气情况适合打网球,哪些不适合。
现在我们想预测未来的天气情况下是否适合网球运动。
分类方法可以解决这个问题,通过历史数据来构造一个分类模型,历史数据中提供了一个特定的标签(这里即为PlayTennis),通过学习构造出了以下的分类规则。
这里使用易于理解的决策树分类方法。
当这个模型的准确率可以接受,就可以被用来预测未来日子的天气状况是否适合于打网球。
如明天的天气状况为(Rain,Windy),想要得到PlayTennis?,那么就可以通过上面图示的规则知道,明天不适合打网球。
一般的,数据分类(Data Classification)分为两个步骤:建模和使用。
1.建立一个模型,描述预定的数据类集或概念集要构造分类模型,需要有一个训练样本数据集作为输入,训练样本有一个特定的类标签与之对应。
由于提供了每个训练样本的类标签,那么分成了多少类就确定了。
构造分类模型有不同的算法,可参考数据挖掘算法书籍。
模型的描述可以用分类规则、决策树或等式、规则式等形式。
2.使用模型进行分类首先要评估分类模型的预测准确率。
有别于训练样本,需要从数据集中随机抽取样本构造测试样本。
对于每个测试样本,将已知的类标号与该样本的学习模型类预测比较。
模型在给定测试集上的准确率即为被模型正确分类的测试样本的百分比。
如果认为模型的准确率可以接受,就可以用它对类标号未知的数据元组或对象进行分类,从而达到预测的目的。
2.2. 使用EM进行数据挖掘在下文中,用一个简单数据挖掘实例来让大家熟悉EM,在SAS的帮助文档里有更多的例子,读者可以自学代码,来熟悉EM中的各种模型。
在此例中,EM进行数据挖掘的基本思路是,1.定义商业应用的目标。
目标即为前文所述的类标签。
2.在待挖掘的数据进行采样,样本数据要有一定的数量,特征要明显。
3.对采样数据进行探索,了解数据的分布特征。
4.如果数据需要清洁、转换等,要对数据进行一定的预处理。
5.对样本数据进行建模。
EM提供了很多的模型,如决策树,神经网络,回归模型等。
可以使用多个模型对样本数据进行建模。
6.评估哪个模型对测试数据表现出色,选择对此应用最适宜的模型。
7.将选中的模型应用于所有的数据上,然后获得应用定义的目标。
2.2.1.例程背景描述EM随机带有一个数据集SAMPSIO.DMAGECR (the German Credit benchmark data set)。
该数据集中包括了过去1000个申请人和相应的信用评级(“GOOD”or“Bad”),数据的SAMPSIO.DMAGECR数据集中60%的样本数据(training data)被用来构造模型(train the model),剩余的40%测试数据(validation data)用来调整模型,并用来对模型进行比较,从多个模型中选择最适合此应用的。
另外一个数据集SAMPSIO.DMAGESCR中有75个新的申请人,新申请人的信用评级未知(即类标签GOOD_BAD字段未知)。
将选定的分类模型应用到新的数据,即可确定新申请人的信用等级。
下面请大家一步一步做,最后会生成如下的图,并对那75个新申请人进行信用评价。
2.2.2.第一步—新建项目1.在SAS窗口中依次选择“解决方案”—“分析”—“企业数据挖掘”,打开EM。
2.新建项目,命名为“myProject”,并选择目录存放。
3.点击“Create”,创建新项目,项目中缺省有一个空白的Diagram。
4.右键点击“Diagram”,Rename为“My Sample Flow”。
2.2.3.第二步—定义输入数据集1.从左侧Project Navigator窗口的Tools页拖拽Input Data Source node至DiagramWorkspace。
2.双击Input Data Source node打开配置界面。
3.在Source Data框中填入“SAMPSIO.DMAGECR”。
Metadata会随之自动创建。
2.2.4.第三步—设置目标变量必须对input data source中设置目标变量(即类标签),目标变量可以是一组变量,在此例中,目标变量只有一个,为GOOD_BAD,即申请人的信用评级。
1.选择Variable属性页。
2.在GOOD_BAD的Model Role列上右击,选择“Set Model Role”,另一个对话框弹出。
3.选择“target”。
先不要关闭Input Data Source node。
2.2.5.第四步—为目标变量Variable设置Target Profile1.右击目标变量GOOD_BAD,选择“Edit target profile”,窗口“Target Profiles for theGOOD_BAD”弹出。
2.设置Target Event Level。
选择Target tab,这里缺省设置Descending Order,TargetEvent Level是“Good”,这就是说你要对有良好信用的客户进行建模。
选用缺省,不用修改。
3.定义目标变量GOOD_BAD的Loss Matrixa)选择Assessment Information tab,预定义了四种decision matrices。
我们要新定义realistic loss matrix。
b)右键点击“Default Loss matrix”,选择“Copy”,创建了一个新的decision matrix,名字是“Profit matrix”。
c)只有一种matrix可以被设置成使用状态,右击“Profit matrix”,选择“Set touse”,星号移到了Profit matrix选项,表明在随后的建模和评估过程中要使用的active decision matrix。
d)将Profit matrix改名为“Realistic Loss”。
e)单击“Edit Decisions”,将“good”更名为“accept”,“bad”更名为“reject”。