SPSS Clementine和KNIME数据挖掘入门Word下载.docx
- 文档编号:19191618
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:65
- 大小:3.06MB
SPSS Clementine和KNIME数据挖掘入门Word下载.docx
《SPSS Clementine和KNIME数据挖掘入门Word下载.docx》由会员分享,可在线阅读,更多相关《SPSS Clementine和KNIME数据挖掘入门Word下载.docx(65页珍藏版)》请在冰豆网上搜索。
Clementine的输出不仅仅是ETL过程中的load过程,它的输出包括了对数据的统计分析报告输出。
※在ver11,Output中的ETL数据目的工具被分到了Export的工具栏中。
模型(Model)
Clementine中包括了丰富的数据挖掘模型。
数据流设计区
这个没什么好说的,看图就知道了,有向的箭头指明了数据的流向。
Clementine项目中可以有多个数据流设计区,就像在PhotoShop中可以同时开启多个设计图一样。
比如说,我这里有两个数据流:
Stream1和Stream2。
通过在管理区的Streams栏中点击切换不同的数量流。
管理区
管理区包括Streams、Outputs、Models三栏。
Streams上面已经说过了,是管理数据流的。
Outputs
不要跟工具栏中的输出搞混,这里的Outputs是图形、输出这类工具产生的分析结果。
例如,下面的数据源连接到矩阵、数据审查、直方图工具,在执行数据流后,这个工具产生了三个输出。
在管理区的Outputs栏中双击这些输出,可看到输出的图形或报表。
Models
经过训练的模型会出现在这一栏中,这就像是真表(TruthTable)的概念那样,训练过的模型可以加入的数据流中用于预测和打分。
另外,模型还可以导出为支持PMML协议的XML文件,但是PMML没有给定所有模型的规范,很多厂商都在PMML的基础上对模型内容进行了扩展,Clementine除了可以导出扩展的SPSSSmartScore,还可以导出标准的PMML3.1。
下面使用AdventureWorks数据库中的TargetMail作例子,通过建立分类树和神经网络模型,决策树用来预测哪些人会响应促销,神经网络用来预测年收入。
TargetMail数据在SQLServer样本数据库AdventureWorksDW中的dbo.vTargetMail视图,关于TargetMail详见:
或者我之前的随笔:
1.
定义数据源
将一个Datebase源组件加入到数据流设计区,双击组件,设置数据源为dbo.vTargetMail视图。
在Types栏中点“ReadValues”,会自动读取数据个字段的Type、Values等信息。
Values是字段包含的值,比如在数据集中NumberCardsOwned字段的值是从0到4的数,HouseOwnerFlag只有1和0两种值。
Type是依据Values判断字段的类型,Flag类型只包含两种值,类似于boolean;
Set是指包含有限个值,类似于enumeration;
Ragnge是连续性数值,类似于float。
通过了解字段的类型和值,我们可以确定哪些字段能用来作为预测因子,像AddressLine、Phone、DateFirstPurchase等字段是无用的,因为这些字段的值是无序和无意义的。
Direction表明字段的用法,“In”在SQLServer中叫做“Input”,“Out”在SQLServer中叫做“PredictOnly”,“Both”在SQLServer中叫做“Predict”,“Partition”用于对数据分组。
2.
理解数据
在建模之前,我们需要了解数据集中都有哪些字段,这些字段如何分布,它们之间是否隐含着相关性等信息。
只有了解这些信息后才能决定使用哪些字段,应用何种挖掘算法和算法参数。
在除了在建立数据源时Clementine能告诉我们值类型外,还能使用输出和图形组件对数据进行探索。
例如先将一个统计组件和一个条形图组件拖入数据流设计区,跟数据源组件连在一起,配置好这些组件后,点上方绿色的箭头。
等一会,然后这两个组件就会输出统计报告和条形图,这些输出会保存在管理区中(因为条形图是高级可视化组件,其输出不会出现在管理区),以后只要在管理区双击输出就可以看打开报告。
3.
准备数据
将之前的输出和图形工具从数据流涉及区中删除。
将FieldOps中的Filter组件加入数据流,在Filter中可以去除不需要的字段。
我们只需要使用MaritalStatus、Gender、YearlyIncome、TatalChildren、NumberChildrenAtHome、EnglishEducation、EnglishOccupation、HouseOwnerFlag、NumberCarsOwned、CommuteDistance、Region、Age、BikeBuyer这些字段。
加入Sample组件做随机抽样,从源数据中抽取70%的数据作为训练集,剩下30%作为检验集。
注意为种子指定一个值,学过统计和计算机的应该知道只要种子不变,计算机产生的伪随机序列是不变的。
因为要使用两个挖掘模型,模型的输入和预测字段是不同的,需要加入两个Type组件,将数据分流。
决策树模型用于预测甚麽人会响应促销而购买自行车,要将BikeBuyer字段作为预测列。
神经网络用于预测年收入,需要将YearlyIncome设置为预测字段。
有时候用于预测的输入字段太多,会耗费大量训练时间,可以使用FeatureSelection组件筛选对预测字段影响较大的字段。
从Modeling中将FeatureSelection字段拖出来,连接到神经网络模型的组件后面,然后点击上方的ExecuteSelection。
FeatureSelection模型训练后在管理区出现模型,右击模型,选Browse可查看模型内容。
模型从12个字段中选出了11个字段,认为这11个字段对年收入的影响比较大,所以我们只要用这11个字段作为输入列即可。
将模型从管理区拖入数据流设计区,替换原来的FeatureSelection组件。
4.
建模
加入NearalNet和CHAID模型组件,在CHAID组件设置中,将Mode项设为”Launchinteractivesession”。
然后点上方的绿色箭头执行整个数据流。
Clementine在训练CHAID树时,会开启交互式会话窗口,在交互会话中可以控制树生长和对树剪枝,避免过拟合。
如果确定模型后点上方黄色的图标。
完成后,在管理区又多了两个模型。
把它们拖入数据流设计区,开始评估模型。
5.
模型评估
修改抽样组件,将Mode改成“DiscardSample”,意思是抛弃之前用于训练模型的那70%数据,将剩下30%数据用于检验。
注意种子不要更改。
我这里只检验CHAID决策树模型。
将各种组件跟CHAID模型关联。
执行后,得到提升图、预测准确率表……
6.
部署模型
Export组件都可以使用Publish发布数据流,这里会产生两个文件,一个是pim文件,一个是par文件。
pim文件保存流的所有信息,par文件保存参数。
有了这两个文件就可以使用clemrun.exe来执行流,clemrun.exe是ClementineSolutionPublisher的执行程序。
ClementineSolutionPublisher是需要单独授权的。
在SSIS中pim和par类似于一个dtsx文件,clemrun.exe就类似于dtexec.exe。
如果要在其他程序中使用模型,可以使用Clementine执行库(CLEMRTL),相比起Microsoft的oledbfordm,SPSS的提供的API在开发上还不是很好用。
了解SPSSClementine的基本应用后,再对比微软的SSAS,各自的优缺点就非常明显了。
微软的SSAS是ServiceOriented的数据挖掘工具,微软联合SAS、Hyperion等公司定义了用于数据挖掘的web服务标准——XMLA,微软还提供OLEDBforDM接口和MDX。
所以SSAS的优势是管理、部署、开发、应用耦合方便。
但SQLServer2005使用VisualStudio2005作为客户端开发工具,VisualStudio的SSAS项目只能作为模型设计和部署工具而已,根本不能独立实现完整的Crisp-DM流程。
尽管MSExcel也可以作为SSAS的客户端实现数据挖掘,不过Excel显然不是为专业数据挖掘人员设计的。
PS:
既然说到VisualStudio,我又忍不住要发牢骚。
大家都知道VisualStudioTeamSystem是一套非常棒的团队开发工具,它为团队中不同的角色提供不同的开发模板,并且还有一个服务端组件,通过这套工具实现了团队协作、项目管理、版本控制等功能。
SQLServer2005相比2000的变化之一就是将开发客户端整合到了VisualStudio中,但是这种整合做得并不彻底。
比如说,使用SSIS开发是往往要一个人完成一个独立的包,比起DataStage基于角色提供了四种客户端,VS很难实现元数据、项目管理、并行开发……;
现在对比Clementine也是,Clementine最吸引人的地方就是其提供了强大的客户端。
当然,VisualStudio本身是很好的工具,只不过是微软没有好好利用而已,期望未来的SQLServer2K8和VisualStudio2K8能进一步改进。
所以我们不由得想到如果能在SPSSClementine中实现Crisp-DM过程,但是将模型部署到SSAS就好了。
首先OLEDBforDM包括了Model_PMML结构行集,可以使用DMX语句“CreateMiningModel<
ModelName>
FromPMML<
xmlstring>
”将SPSSClementine导出的PMML模型加入SSAS。
如果我记得没错的话,SQLServer2005最初发表版本中AnalysisServices是PMML2.1标准,而Clementine11是PMML3.1的,两者的兼容性不知怎样,我试着将一个PMML文件加入SSAS,结果提示错误。
另外,在SPSSClementine中可以整合SSAS,通过使用SSAS的算法,将模型部署到SSAS。
具体的做法是:
在SSAS实例中修改两个属性值。
在Clementine菜单栏选Tools
->
HelperApplications。
然后启用SSAS整合,需要选择SSAS数据库和SQLServerRMDBS,RMDBS是用来存储临时数据的,如果在Clementine的流中使用了SAS数据源,但SSAS不支持SAS数据文件,那么Clementine需要将数据源存入临时数据表中以便SSAS能够使用。
启用整合后,就可以在工具栏中看到多出了一类DatebaseModeling组件,这些都是SSAS的数据挖掘算法,接下来的就不用说了……
可惜的是SSAS企业版中就带有9种算法,另外还有大量第三方的插件,但Clementine11.0中只提供了7种SSAS挖掘模型。
一接触数据挖掘,用的就是Knime,什么Weka,SPSS,SAS基本都只限于听说过而已-_-.由于是基于eclipse的,对我来说自然是十分亲切,所以用起来也十分顺手,用了也有一段时间,打算做个阶段性小结,也顺便提高自己。
Knime是基于Eclipse的开源数据挖掘软件,它通过工作流的方式来完成数据仓库以及数据挖掘中数据的抽取-转换-加载(Extract-Transform-Load)操作。
其中工作流又是由各个功能便利的结点来完成,节点之间相互独立,可以单独执行并将执行后的数据传给下一个结点。
界面如下:
将左下角NodeRepository区域的结点以此拖入中间的WorflowEditor形成工作流:
结点的状态:
结点上有三盏灯,就像红黄绿交通灯一样。
当结点刚被拖入工作区的时候,红灯亮起表示数据无法通过,这时需要对结点进行配置,让它可以执行。
右键单击结点选择“Configure”对结点进行配置;
配置完成并且正确的话,便会亮起黄灯,表示准备就绪数据可以通过;
再次右键单击结点选择“Execute”运行这个结点,当绿灯亮起时表示结点执行成功,数据已经通过并传给下一个结点。
结点分类,一共有以下几类结点:
1、IO类结点,用于文件、表格、数据模型的输入和输出操作;
2、数据库操作类结点,通过JDBC驱动对数据库进行操作;
3、数据操作类结点,对上一结点传进来的数据进行筛选、变换以及简单的统计学计算等操作;
4、数据视图类结点,提供了数据挖掘中最常用的表格及图形的展示,包括盒图,饼图,直方图,数据曲线等;
5、统计学模型类结点,封装了统计学模型算法类的结点,如线性回归、多项式回归等;
6、数据挖掘模型类结点,提供了贝叶斯分析,聚类分析,决策树,神经网络等主要的DM分类模型以及相应的预测器;
7、META原子结点,该类结点可以对任意的及结点进行嵌套封装,还提供了后向传播、迭代、循环、交叉验证等方法;
8、其他,可供我们自定义java代码段,以及设置规则引擎。
本文来自CSDN博客,转载请标明出处:
作者:
数据挖掘技术研究小组
版本:
1.0
日期:
20050806
第三部分应用实例
一、市场购物篮问题分析
1.Businessanddataunderstanding
目标:
客户细分,发现购买相似的客户群,用人口统计学特征进行描述。
方法:
关联规则建模
数据集:
baskets包括字段:
Candid:
该购物篮使用者的忠诚卡识别字
Value:
付款总额Pmethod:
付款方法
持卡者详细的个人资料
sex:
性別homeown:
持有信用卡的人是否是有自己的住房
income:
收入age:
年齡
购物篮內容:
fruitveg水果蔬菜freshmeat新鲜肉品
dairy牛奶cannedveg罐装蔬菜
cannedmeat罐装肉品frozenmeal冷冻肉品
beer啤酒wine酒
softdrink苏打饮料fish鱼
confectionery糖果
过程:
2.Explore
使用web图和GRI节点来观察客户购买的商品之间的联系。
首先要在type节点中定义变量类型和方向,将candid设置为typeless,个人资料字段设置为none,其他购物篮内容设置为both(即可以作为输入也可作为输出)流程如下:
图3.1.1
GRI输出结果:
图3.1.2
从上面的结果中看出:
肉类、啤酒、罐装蔬菜关联性比较大。
提高此web图的门槛值,只留下最强的连接。
操作步骤如下:
(1)移动工具栏上的滑标,设置只有到达50个的连接才显示出来。
滑标上的工具提示目前的连接强度。
(2)选择显示若连接还是强连接。
单击工具条上的黄色箭头按钮,扩展对话方框来显示web输出概要和控制项。
(3)选择显示强/正常/弱的大小。
这将启动下面的滑标控制项。
(4)使用滑标或在文本框中指定一个数来设置低于90的弱连接。
(5)使用滑标或在文本框中指定一个数来设置高于100的强连接。
图3.1.3
从web和GRI分析结果来看可以找出三组强连接:
(1)beer、cannedveg、frozenmeal
(2)wine、confectionery
(3)fruitveg、fish
从而可以归纳出三类客户,通过derive节点生成一个标记字段来区别这三类客户,在derive节点中增加一个set类型字段,如下:
图3.1.4
更正:
上式中3对应得条件应为('
frozenmeal'
=='
T'
and'
beer'
)and('
cannedveg'
)
图3.1.5
另一种方法:
把鼠标放在连线上,线变成红色后点击右键的generatederivenodeforlink这时就生成了一个二分变量。
由web显示器生成三个二分变量来标记三种客户:
图3.1.6
3.model
欲描述这些客户群的特征,我们可以通过关联规则或决策树来观察,增加一个type节点,把关于客户资料的一些变量设置为in,beer_beans_pizza设置为out,其他的为none,通过C5.0节点,运行得到结果,可以看出,属于这类群的客户特征:
收入低于16900的女性
图3.1.7
4.Modelassessment
通过节点analysis来评价模型,可以使用另一个数据集来进行验证模型,这里继续使用原数据来看模型的效果。
在analysis节点中选择coincidencematices
图3.1.8
最后得到的效果如下:
Correct96796.7%
Wrong333.3%
Total1000
二、客户流失
下面的试验是对客户流失预警的模拟,数据资料来源于05年1月份以前,我们要做的是在试验当月(12月份)根据客户11月份及以前的数据,预测用户1月份的流失状态。
按如下规则抽样:
选取在网时长大于90天,11月份mou值大于零,且倒数第二位号码为0的客户10000人。
用户流失状态按如下定义:
1月份mou值为零则定义为流失,赋值输出变量为0,否则为不流失,赋值输出变量为1。
1.用节点SQL读取数据并编辑字段属性
我们选用SQL节点从oracle中读取数据。
如图1在SQL节点编辑中首先需要建立数据源和clementine的连接,在datasource下选择addnew就会弹出图3.2.1窗口,选择我们需要的数据源即可。
图3.2.2
图3.2.2中的datasources都是已在ODBC中建立好的连接。
然后在tablename中选择数据表,如图3.2.3:
图3.2.3
接着在type标签里设置字段的类型和在模型中的角色(输入或输出),如图3.2.4:
图3.2.4
其中我们设置最后一个变量为flag(二值型),并当作目标输出。
2.选择抽样数据集
如图3.2.5所示在添加的sample节点中设置随机抽取50的样本,
图3.2.5
3.平衡数据集
由于流失与否的客户在样本中所占比例相差很大(约3:
7),这对许多训练模型来说会有错误的诱导趋势,使训练结果向比例大的一方转变,而忽视对比例小的一方的学习,比如神经网络等,这里我们用balance节点对数据集进行平衡处理,如图3.2.6:
图3.2.6
图6中表示的是目标变量为0的用户数增为原来的3倍,多于的部分复制原有客户即可;
目标变量为1的客户取原来的0.6*100%,这样样本中目标为0和1的客户数量就基本持平了。
4.选择模型并训练
这里我们选择两个模型,神经网络(NN节点)和决策树(C5.0节点),分别设置它们的目标变量和输入变量(由于前面都已经设置好了,所以此处用默认值也可以),如图3.2.7:
左侧为C5.0,右侧为NN,他们选择输入和目标的方法相似,只是在NN设置时选择50%的样本为测试集,如右侧图中preventovertraining一栏。
图3.2.7
5.执行流并得到输出模型
到目前为止,我们的整个的处理过程已如下图所示:
图3.2.8
执行此流我们能得到如下图示的两个模型:
图3.2.9
6.评价所得模型
首先,把在第5步得到的模型(Models)加入到流中,直接从Model面板将其拖入流程区即可。
如图3.2.10所示连接,在串联了两个Model后,再增加一个Analysis节点,对模型进行评估。
Analysis节点只能判断模型总的准确率,而我们更关心的是模型对1和0分别进行预测的正确率,所以在两个Model下各自加入一个Matrix节点,他们的设置如图3.2.11,其中$N-SYH2NISOMOUZ和$C-SYH2NISOMOUZ分别是两个模型预测的结果,右面的Appearance标签中选中行列百分比。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SPSS Clementine和KNIME数据挖掘入门 Clementine KNIME 数据 挖掘 入门