下面使用Adventure Works数据库中的Target Mail作例子,通过建立分类树和神经网络模型,决策树用来预测哪些人会响应促销,神经网络用来预测年收入。

Target Mail数据在SQL Server样本数据库AdventureWorksDW中的dbo.vTargetMail视图,关于Target Mail详见:

http://technet.microsoft.com/zh-cn/library/ms124623.aspx#DataMining

或者我之前的随笔:

http://www.cnblogs.com/esestt/archive/2007/06/06/773705.html

1. 定义数据源

将一个Datebase源组件加入到数据流设计区,双击组件,设置数据源为dbo.vTargetMail视图。

在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”用于对数据分组。

 

2. 理解数据

在建模之前,我们需要了解数据集中都有哪些字段,这些字段如何分布,它们之间是否隐含着相关性等信息。只有了解这些信息后才能决定使用哪些字段,应用何种挖掘算法和算法参数。

在除了在建立数据源时Clementine能告诉我们值类型外,还能使用输出和图形组件对数据进行探索。

例如先将一个统计组件和一个条形图组件拖入数据流设计区,跟数据源组件连在一起,配置好这些组件后,点上方绿色的箭头。

等一会,然后这两个组件就会输出统计报告和条形图,这些输出会保存在管理区中(因为条形图是高级可视化组件,其输出不会出现在管理区),以后只要在管理区双击输出就可以看打开报告。

3. 准备数据

将之前的输出和图形工具从数据流涉及区中删除。

将Field Ops中的Filter组件加入数据流,在Filter中可以去除不需要的字段。

我们只需要使用MaritalStatus、Gender、YearlyIncome、TatalChildren、NumberChildrenAtHome、EnglishEducation、EnglishOccupation、HouseOwnerFlag、NumberCarsOwned、CommuteDistance、Region、Age、BikeBuyer这些字段。

加入Sample组件做随机抽样,从源数据中抽取70%的数据作为训练集,剩下30%作为检验集。

注意为种子指定一个值,学过统计和计算机的应该知道只要种子不变,计算机产生的伪随机序列是不变的。

因为要使用两个挖掘模型,模型的输入和预测字段是不同的,需要加入两个Type组件,将数据分流。

决策树模型用于预测甚麽人会响应促销而购买自行车,要将BikeBuyer字段作为预测列。

神经网络用于预测年收入,需要将YearlyIncome设置为预测字段。

有时候用于预测的输入字段太多,会耗费大量训练时间,可以使用Feature Selection组件筛选对预测字段影响较大的字段。

从Modeling中将Feature Selection字段拖出来,连接到神经网络模型的组件后面,然后点击上方的Execute Selection。

Feature Selection模型训练后在管理区出现模型,右击模型,选Browse可查看模型内容。模型从12个字段中选出了11个字段,认为这11个字段对年收入的影响比较大,所以我们只要用这11个字段作为输入列即可。

将模型从管理区拖入数据流设计区,替换原来的Feature Selection组件。

4. 建模

加入Nearal Net和CHAID模型组件,在CHAID组件设置中,将Mode项设为”Launch interactive session”。然后点上方的绿色箭头执行整个数据流。

Clementine在训练CHAID树时,会开启交互式会话窗口,在交互会话中可以控制树生长和对树剪枝,避免过拟合。如果确定模型后点上方黄色的图标。

完成后,在管理区又多了两个模型。把它们拖入数据流设计区,开始评估模型。

5. 模型评估

修改抽样组件,将Mode改成“Discard Sample”,意思是抛弃之前用于训练模型的那70%数据,将剩下30%数据用于检验。注意种子不要更改。

我这里只检验CHAID决策树模型。将各种组件跟CHAID模型关联。

执行后,得到提升图、预测准确率表……

6. 部署模型
Export组件都可以使用Publish发布数据流,这里会产生两个文件,一个是pim文件,一个是par文件。

pim文件保存流的所有信息,par文件保存参数。有了这两个文件就可以使用clemrun.exe来执行流,clemrun.exe是Clementine Solution Publisher的执行程序。Clementine Solution Publisher是需要单独授权的。在SSIS中pim和par类似于一个dtsx文件,clemrun.exe就类似于dtexec.exe。
如果要在其他程序中使用模型,可以使用Clementine执行库(CLEMRTL),相比起Microsoft的ole db for dm,SPSS的提供的API在开发上还不是很好用。

SPSS Clementine 数据挖掘入门2的更多相关文章

  1. SPSS Clementine 数据挖掘入门3

    转摘:http://www.cnblogs.com/dekevin/archive/2012/04/27/2473683.html 了解SPSS Clementine的基本应用后,再对比微软的SSAS ...

  2. SPSS Clementine 数据挖掘入门1

    SPSS Clementine是Spss公司收购ISL获得的数据挖掘工具.在Gartner的客户数据挖掘工具评估中,仅有两家厂商被列为领导者:SAS和SPSS.SAS获得了最高ability to e ...

  3. SPSS Modeler数据挖掘项目实战(数据挖掘、建模技术)

    SPSS Modeler是业界极为著名的数据挖掘软件,其前身为SPSS Clementine.SPSS Modeler内置丰富的数据挖掘模型,以其强大的挖掘功能和友好的操作习惯,深受用户的喜爱和好评, ...

  4. SPSS Modeler数据挖掘:回归分析

    SPSS Modeler数据挖掘:回归分析 1 模型定义 回归分析法是最基本的数据分析方法,回归预测就是利用回归分析方法,根据一个或一组自变量的变动情况预测与其相关的某随机变量的未来值. 回归分析是研 ...

  5. 数据挖掘入门系列教程(二)之分类问题OneR算法

    数据挖掘入门系列教程(二)之分类问题OneR算法 数据挖掘入门系列博客:https://www.cnblogs.com/xiaohuiduan/category/1661541.html 项目地址:G ...

  6. 数据挖掘入门系列教程(三)之scikit-learn框架基本使用(以K近邻算法为例)

    数据挖掘入门系列教程(三)之scikit-learn框架基本使用(以K近邻算法为例) 简介 scikit-learn 估计器 加载数据集 进行fit训练 设置参数 预处理 流水线 结尾 数据挖掘入门系 ...

  7. 数据挖掘入门系列教程(四)之基于scikit-lean实现决策树

    目录 数据挖掘入门系列教程(四)之基于scikit-lean决策树处理Iris 加载数据集 数据特征 训练 随机森林 调参工程师 结尾 数据挖掘入门系列教程(四)之基于scikit-lean决策树处理 ...

  8. 数据挖掘入门系列教程(四点五)之Apriori算法

    目录 数据挖掘入门系列教程(四点五)之Apriori算法 频繁(项集)数据的评判标准 Apriori 算法流程 结尾 数据挖掘入门系列教程(四点五)之Apriori算法 Apriori(先验)算法关联 ...

  9. 数据挖掘入门系列教程(五)之Apriori算法Python实现

    数据挖掘入门系列教程(五)之Apriori算法Python实现 加载数据集 获得训练集 频繁项的生成 生成规则 获得support 获得confidence 获得Lift 进行验证 总结 参考 数据挖 ...

随机推荐

  1. 自动化测试框架Cucumber和Robot Framework的实战对比

    自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量 ...

  2. ffmpeg 编译graph2dot

    cd ffmpeg ./configure make make tools/graph2dot

  3. HDU 6024 Building Shops

    $dp$. $dp[i]$表示到$i$位置,且$i$位置建立了的最小花费,那么$dp[i] = min(dp[k]+cost[i+1][k-1])$,$k$是上一个建的位置.最后枚举$dp[i]$,加 ...

  4. shell 从变量中切割字符串

    1. 在shell变量中切割字符串 shell中截取字符串的方法有很多中,${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${pa ...

  5. Shiro切入Spring的方式

    在springMVC中要使用shiro,一般都遵循下面的配置: applicationContext-shiro.xml <bean id="shiroFilter" cla ...

  6. 应用程序首选项(application preference)及数据存储

    应用程序首选项(application preference)用来存储用户设置,考虑以下案例: a. 假设有一款MP3播放器程序,当用户调节了音量,当下次运行该程序时,可能希望保持上一次调节的音量值. ...

  7. Vue.js 系列教程 3:Vue

    原文:intro-to-vue-3-vue-cli-lifecycle-hooks 译者:nzbin 这是 JavaScript 框架 Vue.js 五篇教程的第三部分.在这一部分,我们将学习 Vue ...

  8. C和指针之学习笔记(1)

    第1章 1.输入字符串 while((ch=getchar())!=EOF  &&  ch!=’\n’) ; ch=getchar() while(ch!=EOF  && ...

  9. [APIO2014]序列分割 --- 斜率优化DP

    [APIO2014]序列分割 题目大意: 你正在玩一个关于长度为\(n\)的非负整数序列的游戏.这个游戏中你需要把序列分成\(k+1\)个非空的块.为了得到\(k+1\)块,你需要重复下面的操作\(k ...

  10. List集合多次排序

    写在前面: 有时候我们在查询数据展示到前台页面的时候,需要对数据进行排序,特别是按照多个字段进行排序,会很麻烦写的代码也比较多.这个时候java8的特性可以让我们很方便的对数据进行排序. 话不多说,直 ...