spssclementine数据挖掘入门_第1页
spssclementine数据挖掘入门_第2页
spssclementine数据挖掘入门_第3页
spssclementine数据挖掘入门_第4页
spssclementine数据挖掘入门_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

spssclementine数据挖掘入门 S SPSS Clementine1目录S SPSSe Clementine门数据挖掘入门 (11)SPSS Clementine是Spss公司收购ISL获得的数据挖掘工具。 在Gartner的客户数据挖掘工具评估中,仅有两家厂商被列为领导者SAS和SPSS。 SAS获得了最高ability toexecute评分,代表着SAS在市场执行、推广、认知方面有最佳表现;而SPSS获得了最高的pleteness ofvision,表明SPSS在技术创新方面遥遥领先。 S SPSS Clementine3客户端基本界面SPSS Clementine(在此简称clementine)在安装好后会自动启用服务,服务端的管理需要使用SPSSPredictive EnterpriseManager,在服务端clementine没有复杂的管理工具,一般的数据挖掘人员通过客户端完成所有工作。 下面就是clementine客户端的界面。 一看到上面这个界面,我相信只要是使用过SSISSSAS部署数据挖掘模型的,应该已经明白了 六、七分。 是否以跃跃欲试了呢,别急,精彩的还在后面_项目区顾名思义,是对项目的管理,提供了两种视图。 其中CRISPDM(Cross IndustryStandard Processfor DataMining,数据挖掘跨行业标准流程)是由SPSS、DaimlerChrysler(戴姆勒克莱斯勒,汽车公司)、NCR(就是那个拥有Teradata的公司)共同提出的。 Clementine里通过组织CRISPDM的六个步骤完成项目。 在项目中可以加入流、节点、输出、模型等。 工具栏工具栏总包括了ETL、数据分析、挖掘模型工具,工具可以加入到数据流设计区中,跟SSIS中的数据流非常相似。 Clementine中有6类工具。 源工具(Sources)相当SSIS数据流中的源组件啦,clementine支持的数据源有数据库、平面文件、Excel、维度数据、SAS数据、用户输入等。 S SPSS Clementine4记录操作(d Record Ops)和字段操作(d Field Ops)相当于SSIS数据流的转换组件,RecordOps是对数据行转换,Field Ops是对列转换,有些类型SSIS的异步输出转换和同步输出转换(关于SSIS异步和同步输出的概念,详见拙作/blogs/esestt/archive/xx/06/03/769411html)。 图形(Graphs)用于数据可视化分析。 输出(Output)Clementine的输出不仅仅是ETL过程中的load过程,它的输出包括了对数据的统计分析报告输出。 在ver11,Output中的ETL数据目的工具被分到了Export的工具栏中。 模型(Model)Clementine中包括了丰富的数据挖掘模型。 数据流设计区这个没什么好说的,看图就知道了,有向的箭头指明了数据的流向。 Clementine项目中可以有多个数据流设计区,就像在PhotoShop中可以同时开启多个设计图一样。 比如说,我这里有两个数据流Stream1和Stream2。 通过在管理区的Streams栏中点击切换不同的数量流。 S SPSSClementine5管理区管理区包括Streams、Outputs、Models三栏。 Streams上面已经说过了,是管理数据流的。 Outputs不要跟工具栏中的输出搞混,这里的Outputs是图形、输出这类工具产生的分析结果。 例如,下面的数据源连接到矩阵、数据审查、直方图工具,在执行数据流后,这个工具产生了三个输出。 在管理区的Outputs栏中双击这些输出,可看到输出的图形或报表。 Models经过训练的模型会出现在这一栏中,这就像是真表(Truth Table)的概念那样,训练过的模型可以加入的数据流中用于预测和打分。 另外,模型还可以导出为支持PMML协议的XML文件,但是PMML没有给定所有模型的规范,很多厂商都在PMML的基础上对模型内容进行了扩展,Clementine除了可以导出扩展的SPSS SmartScore,还可以导出标准的PMML31。 S SPSSClementine6最新网络班和面授班xx年统计从业人员资格络课程xx年助理统计师(初级)网络课程xx年统计师(中级)网络课程S SPSSe Clementine门数据挖掘入门 (22)下面使用Adventure Works数据库中的Target Mail作例子,通过建立分类树和神经网络模型,决策树用来预测哪些人会响应促销,神经网络用来预测年收入。 Target Mail数据在SQL Server样本数据库AdventureWorksDW中的dbovTargetMail视图,关于Target Mail详见/techmicrosoft/zh/library/ms124623aspx#DataMining或者我之前的随笔/blogs/esestt/archive/xx/06/06/773705html11定义数据源将一个Datebase源组件加入到数据流设计区,双击组件,设置数据源为dbovTargetMail视图。 S SPSSClementine7在Types栏中点“Read Values”,会自动读取数据个字段的Type、Values等信息。 Values是字段包含的值,比如在数据集中NumberCardsOwned字段的值是从0到4的数,HouseOwnerFlag只有1和0两种值。 Type是依据Values判断字段的类型,Flag类型只包含两种值,类似于boolean;Set是指包含有限个值,类似于enumeration;Ragnge是连续性数值,类似于float。 通过了解字段的类型和值,我们可以确定哪些字段能用来作为预测因子,像AddressLine、Phone、DateFirstPurchase等字段是无用的,因为这些字段的值是无序和无意义的。 Direction表明字段的用法,“In”在SQL Server中叫做“Input”,“Out”在SQL Server中叫做“PredictOnly”,“Both”在SQL Server中叫做“Predict”,“Partition”用于对数据分组。 S SPSSClementine822理解数据在建模之前,我们需要了解数据集中都有哪些字段,这些字段如何分布,它们之间是否隐含着相关性等信息。 只有了解这些信息后才能决定使用哪些字段,应用何种挖掘算法和算法参数。 在除了在建立数据源时Clementine能告诉我们值类型外,还能使用输出和图形组件对数据进行探索。 例如先将一个统计组件和一个条形图组件拖入数据流设计区,跟数据源组件连在一起,配置好这些组件后,点上方绿色的箭头。 S SPSSClementine9等一会,然后这两个组件就会输出统计报告和条形图,这些输出会保存在管理区中(因为条形图是高级可视化组件,其输出不会出现在管理区),以后只要在管理区双击输出就可以看打开报告。 33准备数据将之前的输出和图形工具从数据流涉及区中删除。 将FieldOps中的Filter组件加入数据流,在Filter中可以去除不需要的字段。 S SPSSClementine10我们只需要使用MaritalStatus、Gender、YearlyIne、TatalChildren、NumberChildrenAtHome、EnglishEducation、EnglishOupation、HouseOwnerFlag、NumberCarsOwned、CommuteDistance、Region、Age、BikeBuyer这些字段。 加入Sample组件做随机抽样,从源数据中抽取70%的数据作为训练集,剩下30%作为检验集。 注意为种子指定一个值,学过统计和计算机的应该知道只要种子不变,计算机产生的伪随机序列是不变的。 因为要使用两个挖掘模型,模型的输入和预测字段是不同的,需要加入两个Type组件,将数据分流。 决策树模型用于预测甚麽人会响应促销而购买自行车,要将BikeBuyer字段作为预测列。 S SPSSClementine11神经网络用于预测年收入,需要将YearlyIne设置为预测字段。 有时候用于预测的输入字段太多,会耗费大量训练时间,可以使用Feature Selection(特征选择)组件筛选对预测字段影响较大的字段。 S SPSSClementine12从Modeling中将Feature Selection字段拖出来,连接到神经网络模型的组件后面,然后点击上方的Execute Selection。 Feature Selection模型训练后在管理区出现模型,右击模型,选Browse可查看模型内容。 模型从12个字段中选出了11个字段,认为这11个字段对年收入的影响比较大,所以我们只要用这11个字段作为输入列即可。 将模型从管理区拖入数据流设计区,替换原来的Feature Selection组件。 S SPSSClementine1344建模加入Nearal Net和CHAID模型组件,在CHAID组件设置中,将Mode项设为”Launch interactivesession”。 然后点上方的绿色箭头执行整个数据流。 Clementine在训练CHAID树时,会开启交互式会话窗口,在交互会话中可以控制树生长和对树剪枝,避免过拟合。 如果确定模型后点上方黄色的图标。 S SPSSClementine14完成后,在管理区又多了两个模型。 把它们拖入数据流设计区,开始评估模型。 55模型评估修改抽样组件,将Mode改成“Discard Sample”,意思是抛弃之前用于训练模型的那70%数据,将剩下30%数据用于检验。 注意种子不要更改。 S SPSSClementine15我这里只检验CHAID决策树模型。 将各种组件跟CHAID模型关联。 执行后,得到提升图、预测准确率表66部署模型Export组件都可以使用Publish发布数据流,这里会产生两个文件,一个是pim文件,一个是par文件。 S SPSSClementine16pim文件保存流的所有信息,par文件保存参数。 有了这两个文件就可以使用clemrunexe来执行流,clemrunexe是Clementine SolutionPublisher的执行程序。 Clementine SolutionPublisher是需要单独授权的。 在SSIS中pim和par类似于一个dtsx文件,clemrunexe就类似于dtexecexe。 如果要在其他程序中使用模型,可以使用Clementine执行库(CLEMRTL),相比起Microsoft的oledb fordm,SPSS的提供的API在开发上还不是很好用。 S SPSSClementine17S SPSSe Clementine门数据挖掘入门 (33)了解SPSSClementine的基本应用后,再对比微软的SSAS,各自的优缺点就非常明显了。 微软的SSAS是Service Oriented的数据挖掘工具,微软联合SAS、Hyperion等公司定义了用于数据挖掘的web服务标准XMLA,微软还提供OLE DBfor DM接口和MDX。 所以SSAS的优势是管理、部署、开发、应用耦合方便。 但SQL Serverxx使用Visual Studioxx作为客户端开发工具,Visual Studio的SSAS项目只能作为模型设计和部署工具而已,根本不能独立实现完整的CrispDM流程。 尽管MS Excel也可以作为SSAS的客户端实现数据挖掘,不过Excel显然不是为专业数据挖掘人员设计的。 PS既然说到Visual Studio,我又忍不住要发牢骚。 大家都知道Visual StudioTeam System是一套非常棒的团队开发工具,它为团队中不同的角色提供不同的开发模板,并且还有一个服务端组件,通过这套工具实现了团队协作、项目管理、版本控制等功能。 SQL Serverxx相比2000的变化之一就是将开发客户端整合到了Visual Studio中,但是这种整合做得并不彻底。 比如说,使用SSIS开发是往往要一个人完成一个独立的包,比起DataStage基于角色提供了四种客户端,VS很难实现元数据、项目管理、并行开发;现在对比Clementine也是,Clementine最吸引人的地方就是其提供了强大的客户端。 当然,Visual Studio本身是很好的工具,只不过是微软没有好好利用而已,期望未来的SQL Server2K8和Visual Studio2K8能进一步改进。 所以我们不由得想到如果能在SPSSClementine中实现CrispDM过程,但是将模型部署到SSAS就好了。 首先OLE DBfor DM包括了Model_PMML结构行集,可以使用DMX语句“Create MiningModel”将SPSSClementine导出的PMML模型加入SSAS。 S SPSSClementine18如果我记得没错的话,SQL Serverxx最初发表版本中Analysis Services是PMML21标准,而Clementine11是PMML31的,两者的兼容性不知怎样,我试着将一个PMML文件加入SSAS,结果提示错误。 另外,在SPSSClementine中可以整合SSAS,通过使用SSAS的算法,将模型部署到SSAS。 具体的做法是在SSAS实例中修改两个属性值。 在Clementine菜单栏选ToolsHelper Applications。 S SPSSClementine19然后启用SSAS整合,需要选择SSAS数据库和SQL ServerRMDBS,RMDBS是用来存储临时数据的,如果在Clementine的流中使用了SAS数据源,但SSAS不支持SAS数据文件,那么Clementine需要将数据源存入临时数据表中以便SSAS能够使用。 启用整合后,就可以在工具栏中看到多出了一类Datebase Modeling组件,这些都是SSAS的数据挖掘算法,接下来的就不用说了可惜的是SSAS企业版中就带有9中算法,另外还有大量第三方的插件,但Clementine110中只提供了7种SSAS挖掘模型。 S SPSSClementine20分类分类是用于识别什么样的事务属于哪一类的方法,可用于分类的算法有决策树、bayes分类、神经网络、支持向量机等等。 决策树例例1111一个自行车厂商想要通过广告宣传来吸引顾客。 他们从各地的超市获得超市会员的信息,计划将广告册和礼品投递给这些会员。 但是投递广告册是需要成本的,不可能投递给所有的超市会员。 而这些会员中有的人会响应广告宣传,有的人就算得到广告册不会购买。 所以最好是将广告投递给那些对广告册感兴趣从而购买自行车的会员。 分类模型的作用就是识别出什么样的会员可能购买自行车。 自行车厂商首先从所有会员中抽取了1000个会员,向这些会员投递广告册,然后记录这些收到广告册的会员是否购买了自行车。 数据如下事例列会员编号12496141772438125597输入列婚姻状况Married MarriedSingle Single性别Female Male MaleMale收入40000800007000030000孩子数1500教育背景Bachelors PartialCollegeBachelors Bachelors职业Skilled ManualProfessionalProfessionalClerical是否有房Yes NoYes No汽车数0210S SPSSClementine21上班距离0-1Miles2-5Miles5-10Miles0-1Miles区域Europe EuropePacific Europe年龄42604136预测列是否购买自行车No NoYes Yes在分类模型中,每个会员作为一个事例,居民的婚姻状况、性别、年龄等特征作为输入列,所需预测的分类是客户是否购买了自行车。 使用1000个会员事例训练模型后得到的决策树分类如下图中矩形表示一个拆分节点,矩形中文字是拆分条件。 矩形颜色深浅代表此节点包含事例的数量,颜色越深包含的事例越多,如全部节点包含所有的1000个事例,颜色最深。 经过第一次基于年龄的拆分后,年龄大于67岁的包含36个事例,年龄小于32岁的133个事例,年龄在39和67岁之间的602个事例,年龄32和39岁之间的229个事例。 所以第一次拆分后,年龄在39和67岁的节点颜色最深,年龄大于67岁的节点颜色最浅。 S SPSSClementine22节点中的条包含两种颜色,红色和蓝色,分别表示此节点中的事例购买和不购买自行车的比例。 如节点“年龄=67”节点中,包含36个事例,其中28个没有购买自行车,8个购买了自行车,所以蓝色的条比红色的要长。 表示年龄大于67的会员有74.62%的概率不购买自行车,有23.01%的概率购买自行车。 在图中,可以找出几个有用的节点1.年龄小于32岁,居住在太平洋地区的会员有72.75%的概率购买自行车;2.年龄在32和39岁之间的会员有68.42%的概率购买自行车;3.年龄在39和67岁之间,上班距离不大于10公里,只有1辆汽车的会员有66.08%的概率购买自行车;4.年龄小于32岁,不住在太平洋地区,上班距离在1公里范围内的会员有51.92%的概率购买自行车;在得到了分类模型后,将其他的会员在分类模型中查找就可预测会员购买自行车的概率有多大。 随后自行车厂商就可以有选择性的投递广告册。 数据挖掘的一般流程第一步,建立模型,确定数据表中哪些列是要用于输入,哪些是用于预测,选择用何种算法。 这时建立的模型内容是空的,在模型没有经过训练之前,计算机是无法知道如何分类数据的。 第二步,准备模型数据集,例子中的模型数据集就是1000个会员数据。 通常的做法是将模型集分成训练集和检验集,比如从1000个会员数据中随机抽取700个作为训练集,剩下300个作为检验集。 第三步,用训练数据集填充模型,这个过程是对模型进行训练,模型训练后就有分类的内容了,像例子图中的树状结构那样,然后模型就可以对新加入的会员事例进行分类了。 由于时效性,模型内容要经常更新,比如十年前会员的消费模式与现在有很大的差异,如果用十年前数据训练出来的模型来预测现在的会员是否会购买自行车是不合适的,所以要按时使用新的训练数据集来训练模型。 第四步,模型训练后,还无法确定模型的分类方法是否准确。 可以用模型对300个会员的检验集进行查询,查询后,模型会预测出哪些会员会购买自行车,将预测的情况与真实的情况对比,评估模型预测是否准确。 如果模型准确度能满足要求,就可以用于对新会员进行预测。 第五步,超市每天都会有新的会员加入,这些新加入的会员数据叫做预测集或得分集。 使用模型对预测集进行预测,识别出哪些会员可能会购买自行车,然后向这些会员投递广告。 S SPSSClementine23Na?ve BayesNa?ve Bayes是一种由统计学中Bayes法发展而来的分类方法。 例例1111有A、B两个政党对四个议题进行投票,A政党有211个国会议员,B政党有223个国会议员。 下表统计了政党对四个议题赞成或反对的票数。 国家安全法个人财产保护法遗产税反分裂法总计赞成反对赞成反对赞成反对赞成反对A政党41166871141841117823B政党21442116172362101A政党20%80%43%57%94%6%89%11%B政党98%2%97%3%83%17%99.50%0.50%A政党的议员有20%概率赞成国家安全法,43%概率赞成个人财产保护法,94%概率赞成遗产税,89%概率赞成反分裂法。 B政党的议员有98%概率赞成国家安全法,97%概率赞成个人财产保护法,83%概率赞成遗产税,99.5%概率赞成反分裂法。 基于这样的数据,Na?ve Bayes能预测的是如果一个议员对国家安全法投了赞成票,对个人财产保护法投了反对票,对遗产税投了赞成票,对反分裂法投了赞成票。 哪么,这个议员有多大的概率属于A政党,又有多少的概率属于B政党。 例例2222一个产品在生产后经检验分成一等品、二等品、次品。 生产这种产品有三种可用的配方,两种机器,两个班组的工人。 下面是1000个产品的统计信息。 S SPSSClementine24配方机器工人总计配方1配方2配方3机器1机器2班组1班组2一等品4711012123255130148278二等品299103165392175327240567次品742556698638117155一等品16.91%39.57%43.53%8.27%91.73%46.76%53.24%27.80%二等品52.73%18.17%29.10%69.14%30.86%57.67%42.33%56.70%次品47.74%16.13%36.13%44.52%55.48%24.52%75.48%15.50%使用Na?ve Bayes模型,每次在制定生产计划,确定生产产品所用的配方、机器及工人,便能预测生产中有多少的一等品、二等品和次品。 神经网络神经网络是一种模拟生物上神经元的工作的机器学习方法。 S SPSSClementine25下面是银行用来识别给申请信用卡的客户发放何种信用卡的神经网络。 图中每个椭圆型节点接受输入数据,将数据处理后输出。 输入层节点接受客户信息的输入,然后将数据传递给隐藏层,隐藏层将数据传递给输出层,输出层输出客户属于哪类信用卡。 这类似于人脑神经元受到刺激时,神经脉冲从一个神经元传递到另一个神经元。 每个神经元节点内部包含有一个组合函数和激活函数f。 X1,X2是其他神经元的输出值,对此神经元来说是输入值,组合函数将输入值组合后传递给激活函数。 激活函数经过特定的计算后得到输出值y,y有被传递给其他神经元。 输入边上的w1和w2是输入权值,用于在组合函数中对每个输入值进行加权。 训练模型时,客户事例输入,神经网络计算出客户的类别,计算值与真实值比较后,模型会修正每个输入边上的权值。 在大量客户事例输入后,模型会不断调整,使之更吻合真实情况,就像是人脑通过在同一脉冲反复刺激下改变神经键连接强度来进行学习。 S SPSSClementine26回归分类算法是建立事例特征对应到分类的方法。 分类必须是离散的,像信用卡的种类只有三种,如果是要通过客户收入、婚姻状况、职业等特征预测客户会使用信用卡消费多少金额时,分类算法就无能为力了,因为消费金额可能是大于0的任意值。 这时只能使用回归算法。 例如,下表是工厂生产情况。 机器数量工人数量生产数量12604007783891181674使用线性回归后,得到了一个回归方程生产数量=+机器数量+工人数量。 代表每多一台机器就可以多生产单位的产品,每多一个工人就可以多生产单位的产品。 除了简单的线性回归和逻辑回归两种,决策树可以建立自动回归树模型,神经网络也可以进行回归,实际上,逻辑回归就是去掉隐藏层的神经网络。 例如,服装销售公司要根据各地分销店面提交的计划预计实际销售量。 S SPSSClementine27使用自动回归树得到上图的模型,假如山东销售店提交的计划童装数量是500套,预计销售量是-100+0.6500=200套,按6Sigma原则,有99.97%的概率实际销售量可能是20090套。 广州提交计划童装300套,预计销售量是20+0.98300=31430套。 广州的销售店制定的童装计划比山东的准确。 聚类分类算法的目的是建立事例特征到类别的对应法则。 但前提是类别是已存在的,如已知道动物可以分成哺乳类和非哺乳类,银行发行的信用卡有银卡、金卡、白金卡三种。 有时在分类不存在前,要将现有的事例分成几类。 比如有同种材料要分类装入到各个仓库中,这种材料有尺寸、色泽、密度等上百个指标,如果不熟悉材料的特性很难找到一种方法将材料分装。 又例如,银行刚开始信用卡业务时,没有将客户分类,所有的客户都使用同一种信用卡。 在客户积累到一定的数量后,为了方便管理和制定市场策略,需要将客户分类,让不同类别的客户使用不同的信用卡。 但问题是,银行该把客户分成几个类别,谁该属于哪一类。 假定银行仅仅要参照客户的收入和使用信用卡销售金额两个指标对客户分类。 通常情况下,仅仅是衡量这些指标的高低来分类,如规定收入小于4000,且消费小于2000的客户分成第一类;收入在4000至8000,消费在2000至4000的客户分成第二类;收入在8000至12000,消费在4000至6000的客户分成第三类;收入在12000以上,消费在6000以上分成第四类。 下面的图S SPSSClementine28展示了这种分类。 图中三角形的点代表客户,图中的红色线条是对客户的分类。 可以看到这种不合理,第一类别没有包含任何事例,而第四类也只有少量事例,而第二和第三类分界处聚集着大量事例。 观测图像,发现大部分客户事例聚集在一起形成了三个簇,下图中用三个椭圆标出了这些簇。 同在一个簇中的客户有着类似的消费行为,黑色簇中的客户消费额与收入成正比;蓝色簇中的客户不习惯使用信用卡消费,可以对这类客户发放一种低手续费的信用卡,鼓励他们使用信用卡消费;绿色簇中的客户消费额相对收入来说比较高,应该为这类客户设计一种低透支额度的信用卡。 聚类模型就是这种可以识别有着相似特征事例,把这些事例聚集在一起形成一个类别的算法。 聚类模型除了能将相似特征的事例归为一类外,还常用来发现异常点。 S SPSSClementine29像上图中用红圈标出的点,这两个客户偏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论