1. 程式人生 > >SAS學習筆記(五)——關於樣本劃分

SAS學習筆記(五)——關於樣本劃分

資料集可劃分為訓練資料集和測試資料集

劃分時要注意:隨機性和等比例分層(訓練資料和測試資料有相同比例的目標事件)

/*進行等比例分層之前要對分層變數進行排序*/

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)

這裡引數是目標變數中各層級的取樣比例,例如目標變數是性別,則男女分別的取樣比例。