资源预览内容
第1页 / 共80页
第2页 / 共80页
第3页 / 共80页
第4页 / 共80页
第5页 / 共80页
第6页 / 共80页
第7页 / 共80页
第8页 / 共80页
第9页 / 共80页
第10页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第六讲:数据分析技术(四)-数据挖掘技术数据挖掘工作意图数学挖掘工作意图是揭示海量数据中的隐蔽规律,以预测目标顾客、风险控制、欺诈模式识别等工作为主要目的。做好数据挖掘工作需要准备好三件事:()定义好问题谁是目标消费者?()高质量的历史数据几年的客户购买记录()一个强大的建模工具数据挖掘软件数据挖掘工作流程抽样定义问题数据探测数据清冼定义数据属性建模模型评估预测或计算得分分析报告问题背景假如你为一个邮购公司工作。公司为了配合销售活动,希望每月发送家具和家用器品产品目录给潜在消费者,内容包括厨房用具、碗碟和餐具产品的目录。假如向全部消费者寄送费用太贵,必须选择购买该类产品概率较大消费者邮寄。现在如何确定一份待邮寄名册?我们将通过建立消费倾向模型,使用数据挖掘工具来确定邮寄名单和分析活动效益情况。 假如你有一个珍贵的顾客购买记录数据。这个数据包括能显示顾客过去两年是否购买过厨房用具、碗碟和餐具等信息。数据文件名为CUSTDET1,它包括了如下49个变量和标签:PurchaseDollarsSpentYearlyIncomeHomeValueOrderFrequencyRecencyMarriedNamePrefixAgeSexTelemarketInd.RentsApartmentOccupied0,则DINBEIN1;当Dining0,则DINBEIN0;TransformVariablesToolboxTransform Variables使用软件提供的变换公式创建一个新变量Create Variable使用CreateVariableswindow创建自定义变换Delete Variables删除变换后的新变量,但不能删除原变量。原数据变量窗口数值键板运算符面板自定义变换公式函数窗uTraining用来拟合模型的数据集.uValidation用来评估模型和模型调整的数据集。uTest用来获得最终模型误差的无偏估计。uScore得分数据集,可以包括目标变量,也可以不包括。分割p分位数(Quantile)用来划分频数相同的组。p分割(Bucket)为等间隔区间,每组间的样本数不一定等。pOptimalBinningforRelationshiptoTarget:把变量分成n组,使分组后变量与目标变量相关系数最大。适合在二值变量与输入变量之间存在非线性关系的情况。Maximize normalityPower Transformation :变换后变量最接近正态分布。 Maximize Correlation with Target Power Transformation :变换后变量与目标变量线性相关系数最大,适合区间目标变量。Equalize Spread with Target Levels Power Transformation :变换后变量与目标变量具有方差稳定性。选择选择x、log(x)、x1/4、sqrt(x)、x2、x4、ex中之一作为变换式中之一作为变换式在建模前,我们除了要定义变量模型角色、数据类型外,还必需定义决策成本、收益信息,即决策函数。在商业智能中,分析模式都是商业决策模型。例如,消费响应预测、信用等级评估和商品关联描述等模型。在本问题中,我们要定义DINBEIN为目标变量,是二值变量;放弃与它共线性的四个变量。依据邮送成本收益和原总体响应比例情况,定义决策矩阵和先验概率。数据集属性节点能完成上述任务。设置数据集属性它能修改数据属性。例如,数据集名、描述、角色。也能修改样本信息,例如,变量角色、测度水平。在变量表中可以定义目标变量框架。预测模型需要定义唯一的目标变量和多个输入变量,模型评价需要定义目标变量的决策矩阵和样本权重,预测需要定义DI变量。变量表决定变量是输出还是不输出修改变量角色修改变量测度本次数据挖掘工作:本次数据挖掘工作:()把Dining、Kitch、dish、flat四个变量角色改为Rejected,DINBEIN变量角色改为Target。()把DINBEIN变量测度改为binary。定义目标变量框架成本收益假设:()制作、印刷和邮寄一份产品目录成本10元;()若正确预测,即邮寄一份,顾客将来购物,每顾客平均花费90元,即赢得利润80元;若预测不正确,即邮寄一份,但顾客未来购物,此时亏本10元。编辑目标框架评估信息,即定义决策目标函数先验概率定义注:由于目标变量值较少,仅在总体中占12,但为了有足够训练目标值,在数据库中对样本进行了重抽样,产生了足够多的目标值,占样本中的54左右,为此建模需要加权处理。数据分割DataPartition节点将输入数据分割为下列互斥数据:uTraining用来拟合模型的数据集.uValidation用来评估模型和模型调整的数据集。uTest用来获得最终模型误差的无偏估计。为了拟合模型需要定义一个训练数据集;为了保证模型的稳健性,需要定义效验数据集评估模型,决策稳建模型;为得到模型参数的一致最小无偏估计,需要定义测试数据集。它们均来自样本的随机抽样的互斥数据集。前面过程输入的数据只有观察数据的角色、测度等信息,不能改变。简单随机抽样分层抽样自定义数集将总体分成若干个层,指定每层样本数,在每层中进行简单随机抽样,得到的总样本,这种抽样方式称为分层抽样。自定义数集就是指定具有标志的分割数据集变量作为分割变量,依据此变量将输入数据分为训练集、效验集、或测试集。观察结果缺失值处理Replacement节点用来处理缺失值。缺失值是不能用来回归建模和神精网络建模。若用放弃所有的缺失值的样本来估计,可能会得有偏估计模型。使用适当的缺失值处理方法有利得到更准确的预测。本例中DINBEIN没有缺失数据,可以省掉此过程。现实调查、观察和记录难免产生缺失数据,可是缺失数据经常会影响模型的精度。例如,不回答者可能就是不赞成者,若你把他们全排除,你的模型结论可能出现严重偏差。因此,在建前应该仔细研究缺失数据的情况和原因,采取全适的方法处理,尽量减少缺失数据可能对模型影响的程度。Replacement节点专门处理缺失数据的功能模块,但处理缺失数据的方法很多,要选择合适的方法,不仅需要专业统计知识,更需要熟习数据采集情况,要了解产生缺失数据的原因。在本例中没有缺失数据,因此,可以不要此过程。回归模型建模之前需要处理缺失数据,决策树模型不需要,自动把缺失数据归于一类。选择具备一定角色的数据集随机抽样补缺使用Defaults栏指定方法:在处理缺失值之前指定缺失值代替方法。用得分集代替不清楚类变量的值。对每一个变量创建带有标志的处理变量来处理观察值。类变量统计处理方法:u最大频率法u基于分布法u树支处理法u树支首规则处理法u常数法u无处理对区间变量处理缺失值统计方法:Mean均值法Median中位数法Midrange极值的中间值法Distributionbased基于分布法Treeimputation树支处理法Treeimputationwithsurrogates树支首规则处理法Mid-minimumspacing中间平均值估计法TukeysbiweightTukey加权法HubersHuber加权法AndrewsWaveAndrew波动法Defaultconstant常数法None不处理树模型一个完整的树是指通过一系列简单规则分割数据。每一个规则就是根据某变量值将样本分给一个数据块,在数据块内一个规则接一个规则应用,将数据块分为更细的数据块。层次称为树,每块数据称为节。原始数据称为根,具有多个后续节的节称为支,最终节称为叶。每一个叶为对全部样本的一个决策结果,它依赖上下文,这种预测模型称为决策树模型。检验,使叶间方差与叶内方差比足够大。减小节点平均值的均方误减少熵值,提高节的纯度减小Gini值,提高节的纯度。分支标准设置显著性水平,不宜太高节中保证的最少观察数在每节中替补值个数树节点支持下列模型评价标准:树节点支持下列模型评价标准:区间目标变量:区间目标变量:Profitorloss平均利润最大,或平均损失最小。ASE最小平均误差。Average,profit,orlossinthetop10,25,or50%-对n顶部样本最大平均利润,或最小平均损失。顺序目标变量:顺序目标变量:Proportionmisclassified最小错判率。Ordinal-proportioncorrect,profit,orloss最好的秩序正判率。Proportionofevent,profit,orlossintop10,25,or50%-在数据n的顶部最大利润或最小损失。TotalLeafImpurity(GiniIndex)最大叶内纯度(最小Gini指数)。二值或名义目标变量:二值或名义目标变量:Proportionmisclassified误判比例最小。ProfitorLoss最大平均利润或最小平均损失。Proportionofevent,profit,orlossintop10,25,or50%-对n顶部样本最大平均利润,或最小平均损失。TotalLeafImpurity(GiniIndex)-最大叶内纯度(最小Gini指数)。分支法则:l最好的评估值l最多叶l最少有n叶的最大支足够样本分裂全部样本分裂给定P值,即显著性水平给出树的最多层次给出有效变量数,避免过多的自变量本例设置运行结果例如,得分前10的样本中有19左右的响应,高于12;在得分前20中有20左右的响应。例如,得分前10的样本中有捕获了全部响应的16左右;在得分前20中捕获了全部响应的32左右。若提取得分前10样本,则比不使用模型捕获率提高1.58倍。若对得分前20的消费者邮寄产品册,这项活动则获得每个样本的平均利润7.5元左右。若对得分前20的消费者邮寄产品册,这项活动则获得投资回报率0.75。回归模型Regression节点能建立线性模型和logistic模型。线性回归模型是用一个或几个输入变量的线性函数预测连续型的目标变量的值;Logistic回归模型是用一个或几个输入变量函数预测分类目标变量有利事件发生的概率。回归模型的类型:()线性模型()Logistic模型Logistic回归函数:()Logit:()CLOGLOG:()PROBIT:回归方法:()Backward后退法()Forward前进法()Stepwise逐步回归法交互作用模型评估Assessment节点提供了决策树模型、神精网络模型、回归模型、组合模型和自定义模型的比较和预测的平台。模型和预测工具的共同标准是比较从模型结果中得到的期望利润或损失。它能比较多个模型节点产生的模型。不同的模型是由不同变量组成,所以对响应是用不同数据信息预测,因此,对同一对象预测值不相同。这样我们应用模型预测时就要选择模型,也就要对模型进行评价。评价模型好坏的唯一标准是决策目标函数平均误差最小(有时是利润、有时是误判率)。可是不同的模型,对不同数据集的预测效果是不一样的,就同一模型给定不同阀值,也使误判不一样,因此,对阀值的选择就有优化决策。特性曲线敏感性:正判数除于响应数特异性:误判数除于非响应数Reg模型好Tree模型好报告Reporter节点把数据挖掘流程产生的结果集成为HTML格式报告,以便网页浏览。报告内容包括报告描述、流程图和每个节点的子报告。一般报告放在数据挖掘流程最后。结果浏览得分或预测Score节点管理、编辑、输出、执行由训练模型产生的得分代码。对一个没有目标值的数据集进行预测,它是数据挖掘工作的最终结果。训练和测试模型后,对目标用Logistic回归,选择10得分高的客户邮寄产品目录。现在需要对客户数据预测目标值,使用Score节点完成工作。我们只有提取的前面模型运算程序代码,将来才能离开SAS Enterprise Enterprise MinerMiner 环境运行。 Score节点就是用来提取代码的,以便用在BASE SAS 环境下运行。为了产生邮寄名册,我们需要应用前面模型来预测更广泛的客户数据库,即运用提取的代码在BASE SAS 上运行,得到目标变量的响应预测值,依据判断阀值,选择得分值高于阀值的客户,从而产生了邮寄名册。在本例中,我们以原数据集作为预测数据集。选择前断节点输入的数据操作设置:lInactive输出最近数据集产生的模型计算代码。lApply training data score code to score data set从训练数据集到得分数据集应用模型计算代码。lAccumulate data sets by type复制和输出前续节点输入的数据集。lMerge data sets by type 合并前续节点输入的数据集。lCurrent imports列出前续节点输入当前得分代码。lAccumulated runs列出最近运行路径(训练操作)前续节点输出的得分代码。lSaved列出已保存或合并的代码项。lAll列出由节点管理的代码项。把代码文件输出保存为:REGRESSION。在BASESAS中显示并编辑。编辑代码/*-*/*ENTERPRISEMINER:BEGINSCORECODE*/*-*/%macroDMNORLEN;32%mendDMNORLEN;%macroDMNORMCP(in,out);&out=substr(left(&in),1,min(%dmnorlen,length(left(&in);&out=upcase(&out);%mendDMNORMCP;%macroDMNORMIP(in);&in=left(&in);&in=substr(&in,1,min(%dmnorlen,length(&in);&in=upcase(&in);%mendDMNORMIP;DATA&_PREDICT;SET&_SCORE;运行代码创造&_PREDICT数据集,它放置预测值。它由得分数据集&_SCORE描述。在&_PREDICT和&_SCORE插入:%let_PREDICT=x;%let_SCORE=sampsio.custdet1;注:用哑元值初始化_PREDICT。不存在X数据集;_PREDICT数据集由后来的得分代码创建。%macroDMNORMIP(in);&in=left(&in);&in=substr(&in,1,min(%dmnorlen,length(&in);&in=upcase(&in);%mendDMNORMIP;%let _PREDICT=x;%let _SCORE=sampsio.custdet1;DATA&_PREDICT;SET&_SCORE;*;*CODE_CLEAN*;为了高分列在前列要进行观察值排序和观察得分情况,在代码结束前要增加下列代码:procsortdata=&_PREDICT;bydescendingP_DINEBIN1;run;procprintdata=&_PREDICT;vardinebinP_DINEBIN1P_DINEBIN0;run;预测对预测集应用训练集对预测集应用训练集得到的得分代码预测。得到的得分代码预测。浏览预测结果例如,我们要取得分前10的客户邮寄,则依据预测数据集选出名单。信用评分模型寅示使用数据挖掘方法对客户信用进行评分,主要研究当个人申请服务和购物贷款时如何对其信用可靠性进行评估。各种贷方(银行、投资公司、信用卡公司)每天都会收到成千上万的申请,因此需要有一个自动决策系统帮助决定接受或拒绝申请。我们以德国银行数据为基础,构建一个客户信用评分模型。数据中含有1000个申请者观察数据,21个变量,其中一个表示信用可靠性的二值变量(good_bad),其它意义如下:社会人口变量marital性别与婚姻状况Age年龄Resident在现在住所居住年数个人和金融变量Checking是否有银行帐户savings是否有银行存折History返款历史Property已前财富数量Coapp是否申请其它资金job职业类型Employed工作年限Foreign是否是外国职员具体贷款变量Amount数量Purpose贷款用途Duration贷款期Installp分期付款Other是否有其它共同债务人债权人财产Housing是否有房Depends是否拥有动产Existcr是否拥有不动产问题背景以目标值分层抽取样本,从比例上是不合实际的,虽然不影响建模,但解释时要加以注意。数据探索分析预备工作:预备工作:将Duration变为二值变量,即大于18月对应1,小于或等对应0;将Checking拆分为两个变量,即good_Checking表示“余额大于200马克”,bad_Checking表示“负余额”;将marital分为两个变量,即sex和marital.流程图参考书籍编著:黄平梁满发华南理工大学出版社著:OliviaParrRud译者:朱扬勇等机械工业出版社著:PaoloGiudici译者:袁方等电子工业出版社
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号