您的位置:首页 > 其它

SAS学习笔记(五)——关于样本划分

2014-03-02 15:21 351 查看
数据集可划分为训练数据集和测试数据集

划分时要注意:随机性和等比例分层(训练数据和测试数据有相同比例的目标事件)

/*进行等比例分层之前要对分层变量进行排序*/

proc sort data=data_base;

by y; /*y是目标变量*/

run;

/*surveyselect过程*/ 即设置参数的过程

proc surveyselect data=data_base

out=data_base1

samprate=.6667 /*设定分层的比例,例如训练样本为n1,测试样本为n2,那么samprate=n1/(n1+n2)*/

seed=1234 /*当设定为0时,每次运行surveyselect过程将产生不同的随机序列,因此每次得到的训练数据集和测试数据集都不一样;当取值大于0,就会产生

相同的随机序列,因此可以得到相同的训练和测试数据集*/

outall;/* 原始数据全部输出,添加标识变量1和0,分别属于训练和测试数据集*/

strata y;/*定义分层变量,使得最后的目标变量占比相同*/

run;

/*输出分层抽样的比例图*/

proc freq data=data_base1;

tables selected*y;

run;

/*输出训练和测试数据集*/

data train validation;

set data_base1;

if selected=1 then output train;

else output validation;

run;

以上是数据充足的情况下,数据不充足的时候,要采用交叉验证法:

1)data_base分为A(1/3)和data_base1(2/3);

2)data_base1分为B(1/2)和C(1/2);

训练数据集 测试数据集

B C A

A B C

A C B

为了建立可靠的预测模型,目标事件观测数占训练数据集总观测数比例不应该低于10%,一般10%-15%

这样的样本成为平衡样本。

主要处理在samprate=(samprate_1,samprate_2……samprate_n)

这里参数是目标变量中各层级的采样比例,例如目标变量是性别,则男女分别的采样比例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: