-
SPSS Clementine
是
Spss<
/p>
公司收购
ISL
获得的数据挖掘工具。在
Gartner
的客户数据挖掘工具评估中,仅有
两家厂商被列为领导者:
SAS
和
< br>SPSS
。
SAS
获得了最高<
/p>
ability to execute
评分,代表着
SAS
在市场执行、
推广、认知方面有最佳表现;
而
SPSS
获得了最高的
comple
teness of vision
,表明
SPSS
在技术创新方面遥遥
领先。
客户端基本界面
SPSS Clementine
(在此简称
clementine
)在安装好后会自
动启用服务,服务端的管理需要使用
SPSS
Predictive Enterprise Manager
,在服务端
clementine
没有复杂的管理工具,一般
的数据挖掘人员通过客户
端完成所有工作。下面就是
cleme
ntine
客户端的界面。
一看到上面这个界面,我相信只要是使用过
< br>SSIS+SSAS
部署数据挖掘模型的,应该已经明白了六、七分。是否
以跃跃欲试了呢,别急,精彩的还在后面
^_’
项目区
顾名思义,
是对项目的管理,
提供了两种视图。
其中
CRISP-DM
(
Cross Industry Standard
Process for Data
Mining
,数据挖掘
跨行业标准流程)是由
SPSS
、
Da
imlerChrysler
(戴姆勒克莱斯勒,汽车公司)、
NCR
(就
是那个拥有
Teradat
a
的公司)共同提出的。
Clementine
里通过组织
CRISP-DM
的六个步骤完成项目。在
项目
中可以加入流、节点、输出、模型等。
工具栏
工具栏总包括了
ETL
、数据分析、挖掘模型工具,工具可以加入到数据流设计区中,跟
SSIS
中的数据流非常相
似。
Clement
ine
中有
6
类工具。
源工具(
Sources
)
相当
SSIS
数据流中的源组件啦,
clementine
支持的数据源有
数据库、
平面文件、
Excel
、
p>
维度数据、
SAS
数据、
< br>用户输入等。
记录操作(
Record
Ops
)和字段操作(
Field
Ops
)
相当于
SSIS
数据流的转换组件,
Record
Ops
是对数据行转换,
Field Ops
< br>是对列转换,有些类型
SSIS
的异步
< br>输出转换和同步输出转换(关于
SSIS
异步和同步输出
的概念,详见拙作:
/esestt/archive/2007/06/03/
)。
图形(
Gra
phs
)
用于数据可视化分析。
输出(
Output
)
C
lementine
的输出不仅仅是
ETL
过程中的
load
过程,它的输出包括了对数据的统计分析
报告输出。
※在
ver 11
,
< br>Output
中的
ETL
数据目
的工具被分到了
Export
的工具栏中。
模型(
Model
)
Clementi
ne
中包括了丰富的数据挖掘模型。
数据流设计区
< br>这个没什么好说的,
看图就知道了,
有向的箭头指明了数
据的流向。
Clementine
项目中可以有多个数据流设计
区,
就像在
PhotoShop
中可以
同时开启多个设计图一样。
比如说,我这里有两个数据流:<
/p>
Stream1
和
Stream2
。通过在管理区的
Streams
栏中点击切
换不同的数量流。
管理区
管理区包括
Streams
、
Outputs
、
Models
三栏。
Streams
上面已经说过了,是管理数据流
的。
Outputs
不要跟工具栏中的输出搞混,这里的
Outputs
是图形、输出这类工具产生的分析结果。例如,下面的数据源连接
到矩阵、数据审查、直
方图工具,在执行数据流后,这个工具产生了三个输出。在管理区的
Outputs
p>
栏中双击这
些输出,可看到输出的图形或报表。
Models
经过训练的模型会出现在这一栏中,这就像是真表(
Truth
Table
)的概念那样,训练过的模型可以加入的数据流
中用
于预测和打分。另外,模型还可以导出为支持
PMML
协议的<
/p>
XML
文件,但是
PMML
没有给定所有模型的规
范,
很多厂商都在
PMML
的基础上对模型内容进行了扩展,
Cle
mentine
除了可以导出扩展的
SPSS SmartSc
ore
,
还可以导出标准的
PMML
3.1
。
下面使用
Adventure
Works
数据库中的
Target Mail
作例子,通过建立分类树和神经网络模型,决策树用来预
测哪些人会响应促销,
神经网络用来预测年收入。
Target
Mail
数据在
SQL Server
样本数据库
AdventureWorksDW
中的
tMail
视图,关于
Target
Mail
详见:
/zh-cn/library/#DataMining
或者我之前的随笔:
/esestt/archive/2007/06/06/
1.
定义数据源
< br>将一个
Datebase
源组件加入到数据流设计区,双
击组件,设置数据源为
tMail
视图。
在
Types
栏中点
“Read Va
lues”
,会自动读取数据个字段的
Type
、
Values
等信息。
Va
lues
是字段包含的值,
比如在数据集中
NumberCardsOwned
字段的值是从
0
到
4
的数,
Hous
eOwnerFlag
只有
1
和
0
两种值。
Type
是依据
Values
判断字段的类型,
Flag
类型只包含两种值,类似于
boolean
;
Set
是
指包含有限个
值,类似于
enumeration
;
Ragnge
是连续性数值,类似于
float
。通过了解字段的类型和值,我
们可以确定哪些字段能用来作为预测因子,像<
/p>
AddressLine
、
Phone<
/p>
、
DateFirstPurchase
等字段是无用的,因
为这些字段的值是无序和无意义的。
p>
Direction
表明字段的用法,
“I
n”
在
SQL Server
中叫做<
/p>
“Input”,“Out”
在
SQL
Server
中叫做
“PredictOnly”,“Both
”
在
SQL Server
中叫做
p>
“Predict”
,
“Partitio
n”
用于对数据分组。
2.
理解数据
在建模之前,我们需要了解数据集中都有哪些字段,这些字段如何分布,它们之间是否隐含着相关性等信息。只<
/p>
有了解这些信息后才能决定使用哪些字段,应用何种挖掘算法和算法参数。
在除了在建立数据源时
Clementine
能告诉我们值类型外,还能使用输出和图形组件对数据进行探索。
例如
先将一个统计组件和一个条形图组件拖入数据流设计区,跟数据源组件连在一起,配置好这些组件后,点上
方绿色的箭头。
等一会,然后这两个组件就会输出
统计报告和条形图,这些输出会保存在管理区中(因为条形图是高级可视化组
件,其输出
不会出现在管理区),以后只要在管理区双击输出就可以看打开报告。
3.
准备数据
将之前的输出和图形工具从数据流涉及区中删除。
将
Field Ops
中的
Filter
组件加入数据流,在
Filter<
/p>
中可以去除不需要的字段。
我们只需要
使
用
MaritalStatus
、<
/p>
Gender
、
YearlyIncom
e
、
TatalChildren
、<
/p>
NumberChildrenAtHome
、
< br>EnglishEducation
、
EnglishO
ccupation
、
HouseOwnerFlag
、
NumberCarsOwned
、
CommuteDistance
、
Regio
n
、
Age
、
BikeBuyer
这些字段。
加入
Sample
组件做随机抽样,从源数据中抽取
70%
的数据作为训练集,剩下
30%
作为检验集。
注意为种子指定一个值,学过统计和计算机的应该知道只要种子不变,计算机产生的伪随机序列是
不变的。
因为要使用两个挖掘模型,模型的输入和预测字段是
不同的,需要加入两个
Type
组件,将数据分流。
决策树模型用于预测甚麽人会响应促销而购买自行车,要将
BikeBuyer
字段作为预测列。
神经
网络用于预测年收入,需要将
YearlyIncome
设置为
预测字段。
< br>有时候用于预测的输入字段太多,会耗费大量训练时间,可以使用
Feature
Selection
组件筛选对预测字段影响
较大的字段。
p>
从
Modeling
中将
Feature Selection
字段拖出来,连
接到神经网络模型的组件后面,然后点击上方的
Execute
Selection
。
Feature Selection
模型训练后在管理区出现
模型,右击模型,选
Browse
可查看模型内容。模型从
p>
12
个字段中
选出了
11
个字段,认为这
11
个字段对年
收入的影响比较大,所以我们只要用这
11
个字段作为输入列即
可。
将模型从管理区拖入数据流设计区,替换原来的
Feature
Selection
组件。
4.
建模
加入
Nearal Net
和
CHAID
模型组件,
在
CHAID
组件设置中,
将
Mode
项设为
”Launch interactive sessi
on”
。
然后点上方的绿色箭头执行整个数据流。
Clementin
e
在训练
CHAID
树时,会开启交互
式会话窗口,在交互会话中可以控制树生长和对树剪枝,避免过拟
合。如果确定模型后点
上方黄色的图标。
完成后,在管理区又多了两个模型。把它们拖入数据流设计区
,开始评估模型。
5.
模型评估
修改抽样组件,将
Mode
改成
“Discard Sample
”
,意思是抛弃之前用于训练模型的那
70%
< br>数据,将剩下
30%
数据用于检验。注意种子不要更改。
<
/p>
我这里只检验
CHAID
决策树模型。将
各种组件跟
CHAID
模型关联。
执行
后,得到提升图、预测准确率表
……
6.
部署模型
Export
组件都可以使用
Publish
发布数据流,这里会
产生两个文件,一个是
pim
文件,一个是
par
文件。
pim
文件保存流的所有信息,
p>
par
文件保存参数。有了这两个文件就可以使用
< br>
来执行流,
是
< br>Clementine Solution Publisher
的执行程序。
Clementine
Solution Publisher
是需要单独
授权的。在
SSIS
中
pim
和
par
类似于一个
dtsx
p>
文件,
就类似于
<
/p>
。
如果要在其他程序中使用模型,
p>
可以使用
Clementine
执行库
p>
(
CLEMRTL
)
,
相比起
Microsoft
的
p>
ole db for dm
,
SPSS<
/p>
的提供的
API
在开发上还不是很好用。
了解
SPSS Clementin
e
的基本应用后,
再对比微软的
SSA
S
,
各自的优缺点就非常明显了。
微软
的
SSAS
是
Service Ori
ented
的数据挖掘工具,
微软联合
SAS
、
Hyperion
等公司定义
了用于数据挖掘的
web
服务标准
——
XMLA
,
微软还提供
OLE DB for
DM
接口和
< br>MDX
。所以
SSAS
的优势是
管理、部署、开发、应用耦合方便。
但
SQL Server
2005
使用
Visual Studio
2005
作为客户端开发工具,
Visual Studio<
/p>
的
SSAS
项目只能作为模型设计和部<
/p>
署工具而已,
根本不能独立实现完整的
C
risp-DM
流程。
尽管
MS Ex
cel
也可以作为
SSAS
的客户端实
现数据挖掘,
不过
Excel
显然不是
为专业数据挖掘人员设计的。
PS
:既然说到
Visual
Studio
,我又忍不住要发牢骚。大家都知道
Visual
Studio Team System
是一套非常棒的团队开发工
具,它为团队中不同的角色提供不同的开发模板,并且还有一个服务端组件,通过这套工具实现了团队协作、 项目管理、版本
控制等功能。
SQL Server 2005
相比
2000
的变化之一就是将开发客
户端整合到了
Visual Studio
中,但是这种整合做
得并
不彻底。比如说,使用
SSIS
开
发是往往要一个人完成一个独立的包,比起
DataStage
基于角色提供了四种客户端,
VS
很难
实现元数据、项目管理、并行开发
……
;现在对比
Clementine
也是,
Clementine
最吸引人的地方就是其提供了强大的客户
端。
< br>当然,
Visual Studio
本身是很好的工具,
只不过是微软没有好好利用而已,
期望未来的
< br>SQL Server 2K8
和
Visual
Studio
2K8
能进一步改进。
所以我们不由得想到如果能在
SPSS
Clementine
中实现
Crisp-DM
过程,但是将模型部署到
SSAS
就好了。
首先
OLE DB for DM
包括了
Model_PMML
结构行集,可以使用<
/p>
DMX
语句
“Create
Mining Model
PMML
将
SPSS Clementin
e
导出的
PMML
模型加入
SSAS
。
如果我记得没错的话,
SQL Server 2005
最初发表版本中
Analysis
Services
是
PMML
2.1
标准,而
Clementine
11
是
PMML 3.1
的,两者的兼
容性不知怎样,我试着将一个
PMML
文件加入
SSAS
,结果提示错误。
另外,在
SPSS Clement
ine
中可以整合
SSAS
,通过使用
SSAS
的算法,将模型部署到
SSA
S
。具体的做法是:
在
SSAS
实例中修改两个属性值。
在
Clementine
菜单栏选
Tools -> Helper
Applications
。
然后启用
SSAS
整合,
需要选择
SSAS
p>
数据库和
SQL Server RMDBS
,
RMDBS
是用来存储临时数据的,
如果在
Clementine
的流中使用了
< br>SAS
数据源,但
SSAS
不支
持
SAS
数据文件,那么
Clemen
tine
需要将数据源存入临时数据表中以便
SSAS
能够使用。
p>
启用整合后,就可以在工具栏中看到多出了一类
Datebase
Modeling
组件,这些都是
SSAS
的数据挖掘算法,接下来的就不
用说了
……
可惜的是
SSAS
企业版中就带有
9
种算法,另外还有大量第三方的插件,但
Clementine 11.0
中只提供了
7
种
SSAS<
/p>
挖掘
模型。
一接触
数据挖掘,用的就是
Knime
,什么
Weka
,
SPSS
,
SAS
基本都只限于听说过而已
-_-.
由于是基于
eclipse
的,对我来说自然是十分
亲切,所以用起来也十分顺手,用了也有一段时间,打算做个阶段性小结,也顺便
提高自
己。
Kni
me
是基于
Eclipse
的开源数据
挖掘软件,
它通过工作流的方式来完成数据仓库以及数据挖掘中数据
的抽取
-
转换
-
< br>加载(
Extract-Transform-Load
)操作。其中工作流又是由各个功能便利的结点来完成,节点之间
相互独立,可以单独执
行并将执行后的数据传给下一个结点。界面如下:
将左下角
Node Repository
区域的结点以此拖入中间的
Worflow
Editor
形成工作流:
结点的状态:
p>
结点上有三盏灯,
就像红黄绿交通灯一样。
当结点刚被拖入工作区的时候,
红灯亮起表示数据无法通过,
这
时需要对结点进行配置,让它可以执行。右键单击结点选择“
Configure
”对结点进行配置;配置完成并且
正确的话,便会亮起黄灯,表示准备
就绪数据可以通过;再次右键单击结点选择“
Execute
”
运行这个结点,
当绿灯亮起时表示结点执行成功,数据已经通过并传给下一个结点。
p>
结点分类,一共有以下几类结点:
1
p>
、
IO
类结点,用于文件、表格、数据模型
的输入和输出操作;
2
、数据库操作类结点,通过
JDBC
驱动对数据库进行操作;
3
p>
、数据操作类结点,对上一结点传进来的数据进行筛选、变换以及简单的统计学计算等操作;
p>
4
、数据视图类结点,提供了数据挖掘中最常用的表格及图形的展示
,包括盒图,饼图,直方图,数据
曲线等;
5
p>
、统计学模型类结点,封装了统计学模型算法类的结点,如线性回归、多项式回归等;
p>
6
、数据挖掘模型类结点,提供了贝叶斯分析,聚类分析,决策树,
神经网络等主要的
DM
分类模型以
及相
应的预测器;
7
、
MET
A
原子结点,该类结点可以对任意的及结点进行嵌套封装,还提供了后向传播、迭代、循
环、
交叉验证等方法;
8
、其他
,可供我们自定义
java
代码段,以及设置规则引擎。
本文来自
CSDN
博客,转载请标明出处:
/ipis_gx/archive/2009/09/15/
Cle
mentine
应用图
解
作者:数据挖掘技术研究小组
版本:
1.0
日期:
20050806
第三部分
应用实例
一、市场购物篮问题分析
ss
and data understanding
目标:客户细分,发现购买相似的客
户群,用人口统计学特征进行描述。
方法:关联规则建模
数据集:
baskets
包括字段:
Candid
:该购物篮使用者的忠诚卡识别字
Value
:付款总额
Pmethod
:付款方法
持卡者详细的个人资料
sex
:性別
homeown
< br>:持有信用卡的人是否是有自己的住房
income
:收入
age
:年齡
购物篮內容
:
fruitveg
水果蔬菜
freshmeat
新鲜肉品
dairy
牛奶
cannedveg
罐装蔬菜
cannedmeat
罐装肉品
frozenmeal
冷
冻肉品
beer
啤酒
wine
酒
softdrink
苏打饮料
fish
鱼
confectionery
糖果
过程:
e
使用
web
图和
GRI
节点来观察客户购买的商品之间的联系。
首先要在
type
节
点中定义变量类型和方向,将
candid
设置为
typeless
,个人
资料字段设置为
none
,其他购物篮内容设置为
both
(即可以作为输入也可作为输
出)流程如下:
图
3.1.1
GRI
输出结果:
图
3.1.2
从上面的结果中看出
:
肉类、啤酒、罐装蔬菜关联性比较大
。
提高此
web
图的门
槛
值,只留下最强的连接。操作步骤如下:
(1)
移动工具栏上的滑标,设置只有到达
50
p>
个的连接才显示出来。
滑标上的工具提示目前的连接强度。
(2)
选择显示若连接还是强连接。
单击工具条上的黄色箭头按钮,<
/p>
扩展对话方框
来显示
web
输出概要和控制项。
(3)
选择显示强
< br>/
正常
/
弱的大小。这将启动下
面的滑标控制项。
(4)
使用滑标或在文本框中指定一
个数来设置低于
90
的弱连接。
(5)
使用滑标或在文本框中指定一个数来设置高于
100
的强连接。
图
3.1.3
从
web
和
GRI
分析结果来看可以
找出三组强连接:
(
1
)
p>
b
eer
、
can
nedveg
、
frozenmeal
(
2
)
p>
w
ine
、
con
fectionery
(
3
)
p>
f
ruitveg
、
fish
从而可以归纳出三类客户,通过
derive
p>
节点生成一个标记字段来区别这三类
客户,在
derive
节点中增加一个
set
类型字段,如下:
图
3.1.4
更正:上式中
3
对应得条件应为
('frozenmeal' == 'T' and
'beer' == 'T')
and ('cannedveg' == 'T'
and 'beer' == 'T') and ('cannedveg' == 'T' and
'frozenmeal' == 'T')
图
3.1.5
另一种方法:把鼠标放在连线上,线变成红色后点击右键的
generate
derive
node for link
这时就生成了一个二分变量。
由
p>
web
显示器生成三个二分变量来标记三种客户:
< br>
图
3.1.6
欲描述
这些客户群的特征,我们可以通过关联规则或决策树来观察,增加一
个
< br>type
节点,
把关于客户资料的一些变量设置为
in
,
beer_beans_pizza<
/p>
设置为
out
,
其他的为
none
,通过
C5.0
p>
节点,运行得到结果,可以看出,属于这类群的客户特
征
:
收入低于
16900
的
女性
assessment
通过节点
analysis
来评价模型,
可以使用另一个数据集来进行验证模型,
这里
继续使用原数据来看模型的效果。在
analysis
节点中选择
coincidence matices
图
3.1.7
图
3.1.8
最后得到的效果如下:
Correct
967
96.7%
Wrong
33
3.3%
Total
1000
-
-
-
-
-
-
-
-
-
上一篇:7000雅思词汇用100个句子记完.pdf
下一篇:研究生学术综合英语课后题