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. nagios-调用脚本

    在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios ...

  2. JSON跨域读取那点事(JSONP跨域访问)

    最近在码一个小项目,需要远程读取json.因为需求很少,如果引用jquery使用其getjson方法就显得很浪费嘛= = 这篇文章很详细的解释了JSON跨域读取的前世今生,把原理讲得很透彻.特此分享. ...

  3. String成员函数

    string类提供的各种操作函数大致分为八类:构造器和析构器,大小和容量,元素存取,字符串比较,字符串修改,字符串接合,I/O操作以及搜索和查找. 函数名称 功能 构造函数 产生或复制字符串 析构函数 ...

  4. linux 命令格式和帮助

    命令的格式: command [options] [arguments] command:命令 options:  --单词全称   或   -单字简称 如: ls --all 等于     ls - ...

  5. 使用curl出现,curl: /usr/local/lib/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by /usr/lib/x86_64-linux-gnu/libcurl.so.4)

    主要原因是curl找不到openssl的路径,所以只要将openssl的路径添加到相应的变量中就可以了. 参考连接https://blog.csdn.net/RookieWutongshu/artic ...

  6. OI视角浅谈布隆过滤器

    简要谈及布隆过滤器 Preface 不负责的出题人扔了一道5e5,2M卡内存的题,标算布隆过滤器,然而std自己用std::set 70M碾过去了. 没学OI时候草草看过这个,不过忘得差不多了. 今天 ...

  7. poj1734 Sightseeing trip[最小环]

    一个最小环裸题.最小环的两种求法dijkstra和Floyd直接参见这里我就是从这里学的,不想写了. 注意这里最重要的一个点是利用了Floyd的dp过程中路径上点不超过$k$这一性质,来枚举环上最大编 ...

  8. 查看python包的安装目录

    步骤二: 如果是从python 的command line 里面查看,可以使用如下命令(python 3.x) import sys print(sys.path)   1 2

  9. JAVA访问Zabbix API

    Zabbix 一.Zabbix 概述 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的 ...

  10. 题解 [CQOI2015]任务查询系统

    题面 解析 首先,我们考虑下暴力的做法: 每次将一个任务的重要度加入到它的区间中, 询问的时候就直接加前\(k\)大. 然而,这样肯会炸的(都说了是暴力了). 其实,我们可以转化一下区间修改(因为区间 ...