SAS数据挖掘实战篇【五】

SAS——预测模型
6.1 测模型介绍
预测型(Prediction)是指由历史的和当前的数据产生的并能推测未来数据趋势的知识。这类知识可以被认为是以时

间为关键属性的关联知识,可以应用到以时间为关键属性的源数据挖掘中。从预测的主要功能上看,主要是对未来

数据的概念分类和趋势输出。统计学中的回归方法等可以通过历史数据直接产生对未来数据预测的连续值。因而这

些预测型知识己经蕴藏在诸如趋势曲线等输出形式中。常见的预测模型主要有逻辑回归、决策树和神经网络。

1 逻辑回归模型
一个随机事件的发生与否往往与多个影响因素有关,Logistic回归分析能从众多的影响该事件发生的可疑因素中筛

选出对事件发生概率有影响的因素,并建立用这些因素估计该事件在某段时间内发生概率的回归模型。
2 决策树模型
决策树可能是最受欢迎的数据挖掘算法。用决策树解决的最常见的数据挖掘任务是分类;例如,确定银行每个客户额

信用风险,或者找出这些客户中哪些客户可能是在线的购买者。

决策树的基本原理是递归的将数据裁分成子集,以便每一个子集包含目标变量类似的状态,这些目标变量是可预测

属性。每一次对树进行拆分,都要评价所有的输入属性对可预测属性的影响。当这个递归的过程结束时,决策树也

就创建完了。决策树算法与其他的数据挖掘算法相比有一些优势,比如,利用决策树可以快速创建挖掘模型,并且

创建的模型也很容易解释。每一条从根节点到叶节点的路径就是一条规则。基于决策树的预测也非常高效。对事例

进行预测的过程是从根节点落到叶节点的路径,所选择的路径基于决策树中节点的拆分条件。
当某一事例落到一个叶节点时,这个事例的预测值就是基于存储在节点的统计值的。
3 神经网络
人工神经网络:模拟人的神经元功能,从结构上模仿生物神经网络,经过输入层、隐藏层、输出层等,对数据进行

调整、计算,最后得到结果,是一种通过训练来学习的非线性预测模型。
6.2
 logistic回归
预测的基本问题就是根据目前的事实正确地判断未知事件发生的可能性。在实际项目中,未知值称为目标,已知事

实称为输入。输入和目标描述观测值的度量方式。输入和目标变量的度量方式是通过不同的度量尺度表示。SAS EM

为构建模型定义如下度量尺度:
区间度量:允许执行简单算术运算或者对数运算的数值
有序度量:拥有内在顺序的定性属性
名义度量:缺少内在顺序的定性属性
二元度量:拥有两个层次的定性属性
为了解决预测中的基础问题,构建输入变量和目标变量之间的数学关系。这种数学关系就是常说的预测模型。一旦

建好预测模型,就可以运用该模型来预测那些目标值未知的输入观测值。构建预测模型需要训练数据集,即先前的

输入和目标观测数据集。假设该训练数据集可以用来代表未知的观测值。一个非常简单的预测模型假设所有可能的

输入和目标组合都记录在训练数据集中。一般来说,在真实的训练数据集中,一个特定的输入集合某个范围的目标

区间相对应。由于这种噪声数据存在,预测模型经常根据输入集提供目标变量的期望值。针对定性目标,目标变量

的期望值可以通过每个定性级别的概率来解释。这两种情况都说明任何预测模型在正确性方面的存在限制。
 
模型角色和度量尺度





目标变量时二值的,并且通过logit函数作为链接函数的一般线性模型称为逻辑线性回归模型。它假设比

率的变化在W定义的方向上是单调的。由于在整个输入空间比率的变化实在单一的方向,标准的逻辑回

归模型的决策边界是一个超平面。逻辑回归模型的简单结构使它很容易解释。
 
逻辑回归实例
 
作为某商品类目公司的市场分析师,你可能需要为二值目标变量(purchase)建立逻辑回归模型,判断

某个顾客是否会产生购买。输入数据集存放在SAS安装文件的SAMPSIO.DMEXA1中,该数据集包含

1966个顾客观测值信息。它包含31个区间变量输入和18个分类变量输用于构建模型。该逻辑回归模型产

生的打分公式应用在新的数据集中,给那些可能产生购买的顾客发送邮件。


1  创建SAS EM工程


2  添加输入数据源节点
设置SAMPSIO.DMEXA1数据集作为输入数据源

选择变量选项卡,设置purchase为目标变量,变量amount的模型角色为rejected
设置目标变量的层次,选择分类变量选项卡,目标变量的顺序值决定了事件级别。二值目标变量purchase

拥有两种值0和1.,0表示NO,1表示YES。默认情况下,目标的顺序值设置为降序。在该实例中,主要判

断顾客是否产生购买(event level = YES)。另外,还可以设置目标变量的目标信息。最后,关闭输入数

据源节点。



3  添加数据划分节点
对输入数据集运用层次抽样方法创建训练和验证数据集。训练数据集被用来拟合回归模型,验证数据集

用来评估回归模型。层次抽样技术保留购买者和非购买者在训练集和验证集中的初时比率。
首先,在流程图空间加入数据划分节点,打开数据划分节点,在划分选项卡,设置输入数据集的70%

作为训练集,30%作为验证集,测试为0。针对类型输入变量STATECOD,选择层次抽样方法单选按钮。

激活层次选项卡,在status列中,设置STATECOD的状态为use。

关闭数据划分节点。


4  添加变量转换节点
打开转换节点,创建二值变量wealth,当income大于40000同时homeval大于100000,则其值为1,否则为0。
在主菜单中,选择工具,创建变量。



创建新的分类变量,对age进行分箱处理,划分为4个年龄组。右击age变量,选择transform,选择bucket菜单



右击frequent输入变量,查看分布



从图中可以发现,frequent的倾斜度很大,极值会影响参数的预测。


右击frequent,选择transform,选择方法log,进行转换。再查看导出变量的分布。



5  添加回归模型节点
在输入数据源节点,可以在区间变量和分类变量选项卡中,查看观测值的缺失值,在本案例中发现,没

有缺失值。在实际中,若存在缺失值,可以加入replacement节点,进行处理。在回归模型中不能直接

处理缺失值观测值。
打开回归模型节点,激活变量选项卡,在工具菜单选择interactive builder,选择recency变量,设置

degree为2,点击多项式按钮,产生新的变量recency *
recency;然后,选择recency和ntitle,点击cross

,产生新变量recency * ntitle。

选择selection选项卡,方法选择stepwise。在Criteria中,设置Entry 和stay Significance
Levels 为0.1


关闭回归节点,运行回归模型节点,查看结果。

回归窗口是对输入变量重要性的统计性运用图形的方式进行描述。该模型有9个参数,对应8个输入变

量。点击柱状图,可以识别相应的参数。柱状图的高度表示参数的重要性,颜色表示效果增加的方向

。红色表示增长的效果,即相应输入的值越大,则贡献越大。反之,则越小。



6  创建模型提升图
右击模型节点,选择模型管理器。在工具菜单,选择创建lift图。


7  部署模型
SAS
EM有两种方式部署模型,打分代码模块和打分数据集。
打分代码模块用来在外部环境产生预测的目标值。它可以创建sas,c以及java等不同语言的代码。Sas

代码可以直接嵌入在sas应用程序中产生预测。C语言形式的必须进过编译。


方式1:创建评价数据集
在流程图空间加入输入数据源节点,设置数据集角色为score,关闭输入数据源节点

添加SAS打分节点和SAS代码节点
打开SAS打分节点,设置如下


执行该节点
打开SAS代码节点,在数据选项卡中,选择score单选按钮
在export选项卡中,点击add,选择predict,得到数据集。然后,在program选项卡中输入下面的sas代码
data &_pre;
set &_score;
if p_purchaseyes lt 0.60
then delete;
run;
proc print data =
&_pre;
var custid
p_purchaseyes;
run;


从而得到预测结果。
通过ODBC将结果导入到数据库
libname MYLIB ODBC dsn='dsn name';
proc datasets library=MYLIB;
delete MY_SCORE_NAME;
run;
quit;
data MYLIB.MY_SCORE_NAME;
set &_SCORE;
keep variable;
run;
http://www.cda.cn/view/17221.html

方式2:创建打分代码模块
打开打分节点,选择Score
code选项卡

SAS数据挖掘实战篇【五】的更多相关文章

  1. SAS数据挖掘实战篇【四】

    SAS数据挖掘实战篇[四] 今天主要是介绍一下SAS的聚类案例,希望大家都动手做一遍,很多问题只有在亲自动手的过程中才会有发现有收获有心得. 1 聚类分析介绍 1.1 基本概念 聚类就是一种寻找数据之 ...

  2. SAS数据挖掘实战篇【三】

    SAS数据挖掘实战篇[三] 从数据挖掘概念到SAS EM模块和大概的流程介绍完之后,下面的规划是[SAS关联规则案例][SAS聚类][SAS预测]三个案例的具体操作步骤,[SAS的可视化技术]和[SA ...

  3. SAS数据挖掘实战篇【二】

    SAS数据挖掘实战篇[二] 从SAS数据挖掘实战篇[一]介绍完目前的数据挖掘基本概念之外,对整个数据挖掘的概念和应用有初步的认识和宏观的把握之后,我们来了解一下SAS数据挖掘实战篇[二]SAS工具的应 ...

  4. SAS数据挖掘实战篇【一】

    SAS数据挖掘实战篇[一] 1数据挖掘简介 1.1数据挖掘的产生 需求是一切技术之母,管理和计算机技术的发展,促使数据挖掘技术的诞生.随着世界信息技术的迅猛发展,信息量也呈几何指数增长,如何从巨量.复 ...

  5. SAS数据挖掘实战篇【七】

    SAS数据挖掘实战篇[七] 6.5  SAS EM数据挖掘-----预测模型 1  问题定义 目标:建立模型预测贷款申请的信用状态,选择最优的模型来预测和减少损失. 数据集:SAMPSIO.DMAGE ...

  6. SAS数据挖掘实战篇【六】

    SAS数据挖掘实战篇[六] 6.3  决策树 决策树主要用来描述将数据划分为不同组的规则.第一条规则首先将整个数据集划分为不同大小的 子集,然后将另外的规则应用在子数据集中,数据集不同相应的规则也不同 ...

  7. Grid++Report报表工具C/S实战篇(五)

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第五部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  8. Spring Boot 揭秘与实战(五) 服务器篇 - Tomcat 启用 HTTPS

    文章目录 1. 生成证书 2. 配置 HTTPS 支持 3. 启动与测试 4. 源代码 Spring Boot 内嵌的 Tomcat 服务器可以启用 HTTPS 支持. 生成证书 使用第三方 CA 证 ...

  9. Spring Boot 揭秘与实战(五) 服务器篇 - 其他内嵌服务器 发表于 2017-01-03 | Spring框架 | Spri

    文章目录 1. Jetty 的切换 2. Undertow的使用 Spring Boot 可选择内嵌 Tomcat.Jetty 和 Undertow,因此我们不需要以 war 包形式部署项目.< ...

随机推荐

  1. python和ruby:一些需要注意的小区别。

    python和ruby的一些区别 基础区别 运算符号/和// ruby只有/符号.它根据操作的数字类型返回对应的结果.如果数字的类型是int,则返回整除结构,如果是float,则返回float类型的计 ...

  2. JS 循环的两种方式

    // 1.for循环 for (var i = 0; i <= 10; ++ i) { console.log(i); } // 2.while循环 var i = 0; while (i &l ...

  3. JAVA 流与文件

    流 InputStream和OutputStream是所有的输入流和输出流的超类.他们两个都是抽象类. read方法和write方法都是阻塞方法,这意味着如果不能里可以写入或者读取,比如因为网络问题, ...

  4. php类知识---trait特性

    #由于php类只支持单一继承,但我们又需要使用一些类的优秀特性,因此有了trait <?php trait cpc #trait 下的方法只能用public { function trainni ...

  5. 【dmp文件还原到oralce数据库】

    1.数据库执行语句,创建一个用户并赋予权限 --创建用户CREATE USER test2 IDENTIFIED BY 123456 DEFAULT TABLESPACE USERS TEMPORAR ...

  6. 洛谷P3810-陌上开花(三维偏序, CDQ, 树状数组)

    链接: https://www.luogu.org/problem/P3810#submit 题意: 一个元素三个属性, x, y, z, 给定求f(b) = {ax <= bx, ay < ...

  7. SpringBoot中注入RedisTemplate实例异常解决(转)

    最近,在项目开发过程中使用了RedisTemplate,进行单元测试时提示“Field redisTemplate in com.example.demo1.dao.RedisDao required ...

  8. vs2015显示代码行数

    打开visual studio 2015,在菜单中点击“工具” --> "选项" -->“文本编辑器” --> "所有语言" -->勾选 ...

  9. gtid 1032错误案例

    gtid 1032错误案例 大致背景: 分别在主从上删除了系统冗余账号. mysql> delete from mysql.user where host='::1';Query OK, 1 r ...

  10. Linux通过秘钥远程连接

    1. 秘钥生成命令 ssh-keygen 执行完上述的命令就会在root目录下生成公钥跟私钥文件 /root/.ssh/.id_rsa   私钥 /root/.ssh/.id_rsa.pub   公钥 ...