• SPSS Clementine 数据挖掘入门2(转载)


    下面使用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”,会自动读取数据个字段的TypeValues等信息。



    Values
    是字段包含的值,比如在数据集中NumberCardsOwned字段的值是从04的数,HouseOwnerFlag只有10两种值。Type是依据Values判断字段的类型,Flag类型只包含两种值,类似于booleanSet是指包含有限个值,类似于enumerationRagnge是连续性数值,类似于float。通过了解字段的类型和值,我们可以确定哪些字段能用来作为预测因子,像AddressLinePhoneDateFirstPurchase等字段是无用的,因为这些字段的值是无序和无意义的。

    Direction表明字段的用法,“In”在SQL Server中叫做“Input,Out”在SQL Server中叫做“PredictOnly,Both”在SQL Server中叫做“Predict”,“Partition”用于对数据分组。

     

    2. 理解数据

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

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



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



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

     

    3. 准备数据

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

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



    我们只需要使用MaritalStatusGenderYearlyIncomeTatalChildrenNumberChildrenAtHomeEnglishEducationEnglishOccupationHouseOwnerFlagNumberCarsOwnedCommuteDistanceRegionAgeBikeBuyer这些字段。

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



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

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

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



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



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

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



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



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

    4. 建模

    加入Nearal NetCHAID模型组件,在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在开发上还不是很好用。

  • 相关阅读:
    .NET 分布式架构开发实战之一
    frame中隐藏横向滚动条
    实时检测网络状态及是否可以连接Internet
    jquery表格插件推荐
    FireFox窗体frameset,iframe间的js调用方法
    用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通
    一个阴历阳历互相转化的类
    CSS技巧 — 不使用图片实现圆角、阴影、渐变等功能
    Windows下命令行下启动ORACLE服务
    使用C#进行点对点通讯和文件传输(通讯基类部分)
  • 原文地址:https://www.cnblogs.com/dekevin/p/2473579.html
Copyright © 2020-2023  润新知