神经网络和打分.docx
《神经网络和打分.docx》由会员分享,可在线阅读,更多相关《神经网络和打分.docx(37页珍藏版)》请在冰豆网上搜索。
![神经网络和打分.docx](https://file1.bdocx.com/fileroot1/2022-11/16/adea6e04-8238-433b-86a7-b1b634f674e9/adea6e04-8238-433b-86a7-b1b634f674e91.gif)
神经网络和打分
2.1问题提出
2.1.1预测建模案例
一家金融服务公司为其客户提供房屋净值信贷。
该公司曾把该项贷款给了数千客户,其中的许多接收者(大约20%)有贷款欺诈行为。
该公司希望使用地理信息、人口信息、和经济状况信息变量建立一个模型预测申请人将来会不会欺诈。
2.1.2输入数据源
在对数据进行了分析之后,该公司选择了12个预测变量来建立申请人是否进行贷款欺诈的模型。
输出变量(或目标)变量(BAD)表示申请人在房屋净值信贷中是否有欺诈活动。
这些变量及其模型角色、测量水平、变量描述列表如下。
注意:
这本书的变量名使用大写字母。
SAS接受大小写混合的变量名以及小写字母的变量名。
表2.1SAMPSIO.HMEQ数据集合的变量
SAMPSIO文件夹里的HMEQ数据集合有5,960条观测记录供建立和比较候选模型。
该数据集合被划分为训练数据、验证数据、和测试数据集合用于分析。
2.2创建过程流流程图
加入节点
现在开始建立第一个过程流来分析数据。
使用EM工具条(ToolsBar)获取常用节点。
你还可以往工具条(ToolsBar)上添加节点,方法是把节点从项目导航区(ProjectNavigator)的工具(Tools)标签拖拽到工具条(ToolsBar)。
所有节点都还在工具(Tools)标签上。
从工具条(ToolsBar)或者项目导航区(ProjectNavigator)的工具(Tools)标签上拖拽一个输入数据源(InputDataSource)节点到工作区。
因为这是一个预测建模流,我们把一个数据划分(DataPartition)节点放到输入数据源(InputDataSource)节点的右边。
除了把一个节点拖拽到流程图工作区(DiagramWorkspace)之外,还有两种方法往过程流加入节点。
你可以在希望节点出现的工作区某地方右击鼠标并选择Addnode,或者在希望节点出现的工作区某地方双击鼠标。
不管你使用哪种方法,一列节点将会呈现出来供你选择。
在你选择数据划分(DataPartition)之后,你的流程图如下:
注意数据划分(DataPartition)节点处于被选择状态(有虚线环绕),而输入数据源(InputDataSource)节点没有被选择。
如果你在工作区的任何空白地方点击,所有节点都被脱选。
使用光标
光标的形状依赖于它所处的位置而发生变化。
鼠标命令的行为依赖于光标的形状以及光标所指节点的选择状态。
在空白区右击,得到一个弹出菜单显示如下:
最后3个菜单项(连接物体,移动物体,移动并连接;Connectitems,Moveitems,Moveandconnect)用于修改光标被使用的方式。
按缺省,移动并连接(Moveandconnect)项被选择,旁有星号为征。
在此我们建议大家不要改变这一设置,因为用鼠标同时完成两个任务更为方便和有效,而不必要把光标设置调来调去。
如果你的光标不工作,检查这个菜单以确保Moveandconnect条目被选择。
这一选项使你能够在工作区内移动和连接节点。
注意:
在你拖动一个节点后,该节点依然处于被选择状态。
若要解除所有节点的被选择状态,需点击工作区的空白地区。
当你把光标置于节点的边缘之处,它的形状是一个十字号。
连接光标所指的节点(起始节点)和其它任意节点(终端节点)的步骤如下:
1确保起始节点不处于被选择状态。
这种状态下拉线更容易一些。
如果起始节点被选择,点击工作区的空白处使之脱选。
2把光标置于代表起始节点图标的边缘(直到十字号出现)
3压下鼠标左键,立即开始把连线拖向终端节点。
注意:
如果在压下鼠标左键后没有立即拖连线,你只是选择了这个节点。
拖动一个被选择的节点一般只会移动节点(即没有形成连线)。
4在达到代表终端节点的图标边缘时释放鼠标左键。
5在箭头远处点击空白处。
连接一开始显示如下。
当你点击工作区线外空白处后,带箭头方向线完成。
挑选输入数据
这个例子使用SAMPSIO文件夹的HMEQ数据集合。
指定一个输入数据的方法是双击输入数据源(InputDataSource)节点,或者单击该节点并选择Open.数据(Data)标签处于活动状态。
你的窗口图示如下。
点击Select选择数据集合。
或者键入数据集合名称。
按缺省,被选择的文件夹是SASUSER。
要浏览SAMPSIO文件夹的数据集合,点击箭头(
)并从列出的文件夹里选择SAMPSIO。
从SAMPSIO文件夹里选择HMEQ数据集合,然后选择OK。
输入数据源(InputDataSource)对话框出现。
这个数据集合里有5,960条观测记录(行)以及13个变量(列)。
源数据集合的名称为SAMPSIO.HMEQ。
你也可以键入这个文件名而不用对话框进行选择。
注意右下角表明元数据样本的大小为2,000。
了解元数据样本
所有分析包都必须决定在分析中如何使用变量。
EM使用元数据对如何使用每一个变量进行评估。
按缺省,EM从感兴趣的数据集合采集一个2,000观测记录的随机样本,并使用得到的信息为每一个变量安排模型角色和测量水平。
它还计算其它标签显示的一些简单统计量。
如果你想采集一个更大的样本,你可以在该窗口的元数据抽样区(右下角)选择Change,但是在大多数情况下不必要作这一改变,所作的改变在此看不出来。
评价(和修改,如果有必要)元数据样本所做的种种安排。
选择变量(Variables)标签察看所有的变量及其各自的安排。
下表给出了这个例子中13个变量的部分信息。
注意变量名(Name)和类型(Type)两列不能进行处理(它们是暗色)。
这两列代表在这个节点里SAS数据集合不能更改的信息。
变量名必须符合前面描述的文件夹命名的规定。
类型是字符(char)或数值(num),类型信息对于变量的使用有影响。
EM使用元数据样本的变量类型(Type)以及水平数量初步安排每一个变量的模型角色和测量水平。
列出的第一个变量是BAD,虽然BAD在数据集合里是一个数值变量,EM把它作为二元变量因为在元数据样本里只有两个非缺失值水平。
按缺省,所有二元变量的模型角色被设置为输入(input)。
下面的3个变量(LOAN,MORTDUE,和VALUE)被设置为区间测量水平,因为它们是SAS数据集合的数值变量而且在元数据样本里具有10多个不同的水平。
按缺省,所有区间变量的模型角色被设置为输入(input)。
变量REASON和JOB都是数据集合的字符变量,但它们的测量水平不同。
REASON被安排为二元测量水平因为在元数据样本里只有两个非缺失值水平。
而JOB变量被安排为一个名义测量水平因为它是一个有两个以上水平的字符变量。
按缺省,所有二元变量和名义变量的模型角色被设置为输入(input)。
在这个表中,DELINQ被安排为一个有序测量水平。
如果在元数据样本里某变量是数值变量,具有两个以上、不多于10个不同的非缺失值水平,那么该变量被安排为有序测量水平。
这种情况经常发生在包括数数的变量(例如家庭里孩子的数量)。
因为这一安排依赖于元数据样本每一个变量的水平数量,这个分析中DEROG或DELINQ的测量水平可以被设置为区间测量水平。
在这个分析中剩下的变量(YOJ到DEBTINC)都按区间变量对待。
挑选目标变量
BAD是这一分析的响应变量,因此我们把其模型角色改为目标(target)变量。
改变BAD变量模型角色的操作如下:
1右击BAD行的ModelRole列.
2从弹出菜单选择
察看分布
对每一个变量你可以察看在元数据样本里数值的分布。
例如,浏览BAD变量分布的操作如下:
1右击BAD行的Name列;
2选择Viewdistribution以察看元数据样本里BAD变量的值分布。
其分布如下图。
要获取额外的信息,在窗口顶部的工具箱选择浏览信息(ViewInfo)图标(
),并点击其中某个直方条。
EM展示该条所表示的观测水平和该水平的比例。
这些图形提供对数据的初步了解。
在这个例子中,大约20%的客户进行了欺诈(BAD=1).
不要忘了输入数据源(InputDataSource)节点的图形和统计量是从元数据样本得到的,因此你的窗口的数值可能和这儿显示的略有差别。
这些差别在以后的建模结果中将不会出现,因为建模节点使用整个训练数据集合而不只是一个样本。
当完成察看图形之后,选择Close返回主对话框。
修正变量信息
表2.1中的变量需要具有正确的模型角色和测量水平信息。
如果有必要,我们可以把DEROG和DELINQ变量类型转变为ordinal类型。
在这个例子中我们将不作改变。
若要修正DEROG的测量水平信息,操作如下:
1右击DEROG行的MeasurementLevel栏.
2选择
3对DELINQ变量重复步骤1和2。
另一种方法是在选择DEROG和DELINQ两行,你可以同时改变两个变量的模型角色信息。
查看描述统计量
元数据用于计算描述统计量。
选择区间变量(IntervalVariables)标签。
你可以察看区间变量的最小值、最大值、均值、标准差、缺失记录的百分数、偏度和峰度。
你可能需要左右拖动鼠标来察看所有列。
在这个例子中,对最小值和最大值的察看表明所有数值都用上了。
注意DEBTINC变量有很高的缺失值比率(22%)。
选择类别变量(ClassVariables)标签。
察看水平数量、缺失值百分数、以及每一个变量的排序方式。
BAD变量的排序是降序,而其余两个为升序。
对于BAD这样的二元目标变量,第一个排序水平是目标事件。
因为BAD有两个水平(0和1),BAD按降序排列,BAD=1是目标事件。
有时你可能需要改变排序方式以得到你需要的目标事件。
关闭输入数据源(InputDataSource)节点,并存储你所作的改变。
察看数据划分(DataPartition)节点的缺省设置
打开数据划分(DataPartition)节点。
按缺省划分(Partition)标签处于活动状态。
划分方法选择项位于划分(Partition)标签的左上角。
EM从输入数据集合采集一个样本并划分为训练、验证和测试数据集合。
按缺省,使用简单随机采样。
你还可以产生分层抽样或者实现以前实现过的用户定义的抽样,具体操作如下:
简单随机抽样—选择SimpleRandom。
数据集合的每一个观测记录都有相同的概率被选中。
分层抽样—选择Stratified然后使用分层(Stratified)标签的选择项设置层次。
用户定义的抽样—选择UserDefined然后使用用户定义(UserDefined)标签的选项找出数据集合里确定划分的那个变量。
该标签的左下角用于指定初始化抽样过程的随机种子。
计算机程序里面的随机化经常始于某种种子。
在不同的过程流里,如果你使用相同的数据集合和相同的种子(种子=0除外),你可以得到相同的划分。
你可以看到对数据重新排序会导致不同的数据排序,因此不同的划分会导致不同的结果。
在这个标签的右端你可以指定分配给训练、验证、和测试数据的百分数。
这些百分数加起来必须是100%.
对这个例子我们可以使用系统的缺省设置。
关闭数据划分(DataPartition)节点。
如果你没有进行修改,就不会弹出对话框让你存储变化。
如果你在关闭这个节点时弹出的对话框询问是否存储变化,选择No保持数据划分(DataPartition)节点的缺省设置。
2.3数据准备和察看(Multiplot)
初步察看
大家还记得透视(Insight)节点可给出许多表现力强的统计图形,这些图形对于初步察看十分有用。
加入一