SAS数据挖掘实战篇【五】

SAS数据挖掘实战篇【五】

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


SAS数据挖掘实战篇【五】


SAS数据挖掘实战篇【五】
SAS数据挖掘实战篇【五】
目标变量时二值的,并且通过logit函数作为链接函数的一般线性模型称为逻辑线性回归模型。它假设比

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

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

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

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

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


1  创建SAS EM工程
SAS数据挖掘实战篇【五】


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

SAS数据挖掘实战篇【五】
选择变量选项卡,设置purchase为目标变量,变量amount的模型角色为rejected
设置目标变量的层次,选择分类变量选项卡,目标变量的顺序值决定了事件级别。二值目标变量purchase

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

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

据源节点。

SAS数据挖掘实战篇【五】


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

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

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

SAS数据挖掘实战篇【五】
激活层次选项卡,在status列中,设置STATECOD的状态为use。

SAS数据挖掘实战篇【五】
关闭数据划分节点。


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

SAS数据挖掘实战篇【五】


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

SAS数据挖掘实战篇【五】


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

SAS数据挖掘实战篇【五】


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


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

SAS数据挖掘实战篇【五】


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

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

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

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

,产生新变量recency * ntitle。

SAS数据挖掘实战篇【五】
选择selection选项卡,方法选择stepwise。在Criteria中,设置Entry 和stay Significance
Levels 为0.1
SAS数据挖掘实战篇【五】


关闭回归节点,运行回归模型节点,查看结果。
SAS数据挖掘实战篇【五】
回归窗口是对输入变量重要性的统计性运用图形的方式进行描述。该模型有9个参数,对应8个输入变

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

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

SAS数据挖掘实战篇【五】


6  创建模型提升图
右击模型节点,选择模型管理器。在工具菜单,选择创建lift图。
SAS数据挖掘实战篇【五】


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

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


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

SAS数据挖掘实战篇【五】
添加SAS打分节点和SAS代码节点
打开SAS打分节点,设置如下
SAS数据挖掘实战篇【五】


执行该节点
打开SAS代码节点,在数据选项卡中,选择score单选按钮
SAS数据挖掘实战篇【五】
在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;
SAS数据挖掘实战篇【五】


从而得到预测结果。
通过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数据挖掘实战篇【五】
上一篇:webpack学习笔记一


下一篇:Dynamic Lotusscript