您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 数据挖掘,SAS。逻辑回归
一、摘要数据挖掘就是对观测到的庞大数据集进行分析,目的是发现未知的关系和以数据拥有者可以理解并对其有价值的新颖方式来总结数据。一个数据挖掘工程需要足够的软件来完成分析工作,为了计划、实现和成功建立一个数据挖掘工程,需要一个集成了所有分析阶段的软件解决方案,包括从数据抽样到分析和建模,最后公布结果信息。大部分专业统计数据分析软件只实现特定的数据挖掘技术,而SAS9.1.3EnterpriseMiner是一个集成的数据挖掘系统,允许使用和比较不同的技术,同时还集成了复杂的数据库管理软件。用逻辑回归分类方法预测最有可能购买的顾客群体。【关键字】数据挖掘数据挖掘工程SAS9.1.3EnterpriseMiner逻辑回归二、问题描述作为某商品类目公司的市场分析师,你可能需要为二值目标变量(purchase)建立逻辑回归模型,判断某个顾客是否会产生购买。输入数据集存放在SAS安装文件SAMPSIO.CUSTDET1中。该逻辑回归模型产生的打分公式应用在新的数据集中,给那些可能产生购买的顾客发送邮件。三、创建一个工程3.1调用EM启动SAS系统后,有两种方式调用EM,一种是通过菜单调用,一种是通过在命令窗口输入命令调用。我采用第一种调用方法:在SAS系统主菜单中选择“解决方案—〉分析—〉企业数据挖掘”。3.2新建一个工程在EM窗口打开后,建立一个新数据挖掘工程的步骤如下:(1)在SAS主菜单中选择“文件—〉新建—〉项目”,会出现建立新项目的对话框,在Createnewproject窗口中的Name域输入DiningList。(如图1所示)图11(2)单击Create按钮后,DiningList工程名将显示在EM窗口的左侧,下面是默认的工作流的名称Untitled,单击Untitled输入新的工作流名称Propensity,如下图2所示,则一个名为Propensity的工作流程就建立起来了。图2四、数据挖掘工作流程EM工作流程主要包括六个环节:定义数据源(InputDataSource)、探索数据(Exploredata)、为建模准备数据(Preparedataformodeling)、建立模型(Buildmodel)、评价模型(Evaluatemodel)和应用模型(Applymodel),每个环节可能由一个或多个节点来完成。4.1定义数据源EM定义数据源的工具是InputDataSource节点,利用InputDataSource节点引入一个数据源的过程如下:(1)添加输入数据源节点,如图3所示。图32(2)设置SAMPSIO.CUSTDET1数据集作为输入数据源,如图4所示。图4可以看到当选择完数据源以后,EM会自动创建节点输出数据和元数据样本。元数据样本的默认容量(size)是2000,当数据源的记录小于2000时,元数据容量会等于数据源的大小。如果需要改动元数据样本大小可以通过单击change按钮实现。(3)选择完数据源后关闭InputDataSource,单击“是”按钮保存修改返回到EM工作区,EM会自动将InputDataSource节点名称改为所选数据集的名称。(如图5所示)图54.2探索数据数据源中的缺失值、边界值、不规则分布都可能会影响到挖掘得建模甚至歪曲挖掘得结果。所以,清楚的了解数据源的内容和结构对于建立一个数据挖掘项目来说是非常重要的。34.2.1设置Insight节点EM实现探索数据的步骤如下:(1)将Insight节点拖拽到工作区中方在名为SASUSER.CUSTDET1的InputDataSource节点下方,并连接InputDataSource节点和Insight节点。(如图6所示)图6(2)双击Insight节点,出现InsightSettings窗口(如图7所示)。图7由于不同的数据源的数据量可能不同,而且有些数据源的数据量可能是非常巨大的,所以Insight节点默认抽取2000条数据记录来探索数据源,当数据源的记录数小于2000时,可以选择InsightBasedOn设置中的Entiredataset来改变探索数据的样本数量。(3)单击Entiredataset后关闭InsightSettings窗口,在弹出对话框中单击“是”保存设置。4.2.2察看Insight节点输出结果当设置完Insight节点之后,通过运行该节点可以查看探索数据的结果,其过程如下:(1)运行Insight节点,其运行结果如图8所示。图84(2)选择分析变量。出现的变量的分布窗口包括每个变量的分布图和一些重要的统计变量以及一组分位数。(如图9所示)图95在这个例子中我们重点要看的是DINING的分布。可以看到DINING的值从0到28,0值居多。那么我们要建立预测客户购买Dining产品倾向的模型,应该把目标锁定在目标变量Dining的值大于0的客户身上。(3)数据探索完毕,关闭分布窗口和EMDATA.VIEW_QMY窗口返回到EM工作区。4.3准备建模数据此例将准备建模数据阶段分成了四个环节:建立目标变量、设置目标变量、数据分割和替换缺失值。4.3.1建立目标变量前面已经分析了我们的目标人群是Dining变量大于0的客户群,但是对于目前数据集SASUSER.CUSDET1中的Dining变量的值是从0到28的一个分布,而我们只关心Dining值大于或者小于0,所以这里要对Dining变量作个转换,让大于0的Dining值为1。EM中用来建立变量的工具是TransformVariables节点,步骤如下:(1)将TransformVariables节点拖拽到工作区中InputDataSource节点的右侧连接InputDataSource节点到TransformVariables节点。(如图10所示)图10(2)双击TransformVariables节点,出现Transformvariables窗口。(3)单击工作区上方工具栏中的Createvariable图标,出现CreateVariable窗口(4)在Name区域输入Dinebin,在Label区域输入DiningNo/Yes6(5)单击Define,出现Customize窗口(如图11)。图11(6)在DINEBIN(N)=formula域中输入“dining〉0”(7)单击OK按钮,关闭TransformVariable窗口,选择“是”保存修改,则DINEBIN即为我们建立好的目标变量。4.3.2设置目标变量EM实现对目标变量的设置使用的工具是DataSetAttributes节点(1)将DataSetAttributes节点拖放到TransformVariable节点右侧,并连接TransformVariable节点到DataSetAttributes节点。(如图12)图12(2)单击Variables标签后,找到DINEBIN变量,右单击DINEBIN变量的NewModelRole属性(input值),选择弹出菜单中的SetNewModelRole,选择target,则原来的input值变为target值。(如图13)图137在这个建立和设置目标变量的过程中隐藏着一个问题。DINEBIN的值是建立在DINING的基础上的,而DINGING的值又是建立在另外三个变量KITCHEN,DISHES和FLATWARE的基础上的,这将导致目标变量与这四个预测变量之间的完全线性相关。这样就产生了一个逻辑循环,即输入导出的预测值是我们已知的,也就是说这种输入的结果是我们通过已知变量就可以知道的,而失去了预测的意义。所以,在我们建立预测模型时必须将形成目标变量的四个变量排除在外。(3)在DataSetAttributes窗口中将KITCHEN、DISHES、FLATWARE和DINING的NewModelRole属性值改为rejected。如图14所示。图14EM建立预测模型要求确定变量的数据类型。EM能够识别的数据类型有五种:unary——只有唯一值型、binary——只有两个值型、nominal——两个以上的无序非数字值型、ordinal——多于两种情况的小于10的数值型和interval——8大于10的数值型。(4)将DINEBIN变量的NewMeasurement属性值被改为binary。如图15所示。图15在我们建模的时候,EM会默认目标事件为目标变量排序的第一个值,默认排序方法为升序。我们这里的目标变量DINEBIN只有0和1值,1值代表对厨房用品的购买。所以这里需要将目标变量按降序排列来锁定那些有购买倾向的客户群。(5)将DINEBIN变量的NewOrder属性值改为Descending。如图16所示。图16当设置好目标变量的元数据特征(包括数据类型,排序等)后,下一步我们要对目标变量的商业属性进行设置。由于我们对目标变量的预测值将涉及到我们的商业决策,而任何商业决策都要承担一定的成本。建立数据挖掘预测模型,明9确预测模型的隐含成本是非常重要的,因为错误的预测结果与真实结果巧合相同的概率太小了,我们更不应该存有这种侥幸心理。在本例中,生产、印刷和邮寄一份宣传单的成本为$10;每份宣传单的收入为$90;这样的话,我们的预测将涉及到如下的产出:正确的预测:发出目录,客户购买,平均利润为$80(90-10);错误的预测:发出目录,客户没有购买,固定成本为$10;任何模型的建立都必须考虑到正确的预测和错误的猜测所带来的不同结果,在应用一个预测模型之前,必须明确商业问题的成本结构及其对建模的含义。EM提供了一种直接定义“收入—成本”矩阵的方法(6)在选择Maximizeprofitwithcosts,将Decision为1的Cost值改为10;其他内容不变。(如图17)图17此处修改EditingDecisionsandUtilities的含义为:当DINEBIN值为1的时候,我们会发出邮件,那么我们的固定成本为$10;而当DINEBIN为0时,我们不发出邮件,那么成本为0。(7)当设置好成本矩阵后,我们接下来要做的是确定期望收入在TargetProfilesforDINEBIN窗口中,Name域下面的LEVEL矩阵中,行属性1代表有购买行为,0代表没有购买;列属性1代表有目录发出,0代表没有目录发出。所以,对于本例,LEVEL都为1时,表示有目录发出同时客户购买,那么按照前面我们分析过的目标变量的商业属性,此时将有$90的期望收入;当LEVEL的值都为0以及LEVEL行为0,列为1时,没有购买行为,所以将产生0收入;而LEVEL行为1,列为0时,表示没有订单发出却产生购买,这显然是个不合理的结论,所以保持它的值。执行图18所示操作。图1810在TargetProfilesforDINEBIN窗口中可能涉及到的最后一个设置是Prior标签。对于商业建模来说,我们要挖掘的数据量可能是非常巨大的,可能会涉及到抽样的过程,我们这里使用的CUSTDET1本身是对原有数据集的随机抽样,这种随机抽样可能会导致目标变量分布的改变。例如在本例中,总体数据中的目标变量占12%,而通过抽样得到的CUSDET1中,TARGET所占百分比达到了54%,这种抽样保留了更多的TARGET事件,被称作OverSampling。OverSampling对于TrainingData有足够的数据来建模是有必要的,但是对于测试数据,则需要在EM中指出原有数据的TARGET的真实分布。解决这个问题我们是通过设置Prior标签来实现的。(8)在TargetProfilesforDINEBIN窗口中,新增加的Priorvector选项,将其右侧的TargetValue为1和0的PriorProbability的值改为0.12和0.88。4.3.3数据分割EM实现数据分割的工具是DataPartition。(1)将DataPartition节点拖到工作区中,放到DataSetAttribute的右边,连接DataSetAttribute节点到DataPartition节点;双击DataPartition节
本文标题:数据挖掘,SAS。逻辑回归
链接地址:https://www.777doc.com/doc-6207565 .html