BookmarkSubscribeRSS Feed

[SAS 활용 노하우] 오버샘플링

Started ‎11-20-2023 by
Modified ‎11-20-2023 by
Views 354

 

 

오버샘플링은 불균형한 분포를 가진 데이터셋에서 소수 클래스의 샘플의 수를 증가시켜 모델의 학습을 개선하고 선능을 향상시킵니다.

SAS 코드를 활용해 오버샘플링 예제는 아래와 같습니다.

위의 예제에서 사용된 IRIS 는 SAS에서 제공하는 내장 데이터셋 중 하나로 IRIS 에 대한 데이터입니다.

IRIS 데이터는 총 150개의 붓꽃 데이터로 3가지 종(species)_Setosa, Versicolor, Virginica로 SepalLength, SepalWidth, PetalLength, PetalWidth로 데이터가 이루어져 있습니다.

 

image (6).png

 

data iris;
   set sashelp.iris;
   if Species = 'Setosa' then output;
   if Species = 'Setosa' then output;
run;

proc surveyselect data=iris method=urs out=oversampled_data
   samprate=(1 1);
   strata Species; 
run;

proc print data=oversampled_data;
run;

 

------------------------------------------------------------------------------------------

 

if Species = 'Setosa' then output;

 

then output 구문은 특정 조건을 만족하는 경우에 데이터를 추출하는 구문입니다.

if 문을 통해서 특정 조건을 제한하고 조건이 true일 경우에만 데이터를 출력합니다.

iris 데이터 중 setosa 종에 해당하는 행을 두번씩 출력하였습니다.

setosa 클래스에 속하는 샘플을 복사하여 오버샘플링하여 iris 데이터를 생성하였습니다.

 

 

image (7).png

 

그 결과, IRIS 데이터는 Setosa 데이터로만 100개의 데이터가 생성되었습니다.

 

 

proc surveyselect data=iris method=urs out=oversampled_data
   samprate=(1 1);
   strata Species; 
run;

 

PROC SURVEYSELECT 구문은 샘플링 기법을 사용하여 데이터를 샘플링할 때 사용합니다.

설문조사, 실험계획, 품질관리, 데이터 탐색 등 다양한 분야에서 PROC SURVEYSELECT 구문을 활용할 수 있습니다.

data = 샘플링 대상이 되는 데이터셋을 지정합니다. 위 코드에서 iris 데이터를 지정하는 것 입니다.

urs = Unrestricted Random Sampling으로 각 행이 동일한 확률로 무작위로 선택하는 샘플링 방법입니다.

모든 행이 같은 확률로 선택되며 복원 추출 방식으로 중복이 허용됩니다.

같은 행이 여러번 샘플에 포함될 수 있습니다.

samprate = 각 계층(stratum) 내에서의 샘플링 비율을 지정합니다.

samprate = (1 1)은 2개의 계층이 있을 경우에 각 계층에서 모든 행을 선택하는 것을 의미합니다.

모든 계층에서 모든 행을 포함하는 표본을 생성하는 것 입니다.

즉, 샘플링 비율을 의미하며 samprate = 0.5 는 전체 데이터 의 절반을 샘플로 선택하는 것을 의미합니다.

 

 

image (8).png

 

 

그 결과, 데이터는 총 100개로 위와 같이 Oversample 된 데이터가 결과값으로 출력됩니다.

오버샘플링을 통해 성능을 향상시킬 수 있지만, 모델이 훈련 데이터에 과적합될 수 있기 때문에 적절한 수준으로 사용하는 것이 중요합니다.

 
 

 

Version history
Last update:
‎11-20-2023 02:03 AM
Updated by:
Contributors

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Article Labels
Article Tags