로그인   |  회원가입  |  사이트맵  |  Contact Us
  아이디 저장하기
 
홈 > SAS Tech & Tip > SAS E-Miner 활용하기
[EM] Separate models 2017.02.07
한노아 567 0
http://www.mysas.co.kr/SAS_tiptech/j_eminer.asp?b_no=7157&gotopage=1&con=subject&keyword=&cmd=content&bd_no=29&gubun=

안녕하세요 MySAS홍보대사 한노아입니다.

이번 시간에는 지난 시간에 이어서 그룹처리 노드의 또 다른 이용 방법인 각 군집레벨에 대해 모형을 생성하는 방법을 알아 보도록 하겠습니다.

 

INTRODUCTION

그림 1은 SAS E-Miner의 일반적인 그룹처리 프로세스를 나타내고 있습니다. 그룹 처리 노드의 경우 ‘그룹시작’, ‘그룹종료’ 이렇게 두 부분으로 이뤄져 있습니다. 그룹처리노드의 경우 그룹시작 노드의 [분석]속성을 이용해 세부적인 옵션을 조정하고 있고 이 옵션 설정에 따라 다양한 기능을 수행하는 것이 가능합니다.

 


그림 1 : 그룹처리 노드의 일반적인 흐름도

그룹 시작 노드의 기초 설정에 따라 아래와 같은 기능을 수행하는 것이 가능합니다.

 

1. 다양한 목표(target)변수를 동일한 프로세스를 이용해 분석해야 하는 경우

2. 그룹변수(예: 성별, 직업, 지역 등)를 이용한 개별 모형을 생성하는 경우

3. 모형의 안정성을 평가하기 위해 교차타당성 검증과 같은 기법을 이용하는 경우

4. 특정한 인덱스에 따른 루프를 수행해야 하는 경우

5. 재표집(re-sampling)방법을 이용한 다양한 모형을 생성해야 하는 경우(예: 배깅, 부스팅)

 

이번 연재에서는 위 5가지 기능 중 2번을 구현하는 방법에 대해 알아보도록 하겠습니다.

 

 

 

 

 

DATA DESCRIPTION

 

표 1 : 이용 변수 및 설명

우선 오늘 실습에서는 지난시간과 동일한 BUYTEST데이터를 이용하도록 하겠습니다. 이 데이터는 고객의 Demographic정보와 거래정보 등을 이용해 향후 고객의 DM반응 가능성, DM에 의한 구입총액 등을 예측하는 모형을 생성하는 것을 목표로 하는 데이터 입니다. 자세한 데이터 정보는 [표1]을 참고해 주시기 바랍니다.

 

 

그림 2: 변수역할

각 변수들의 역할은 위와 같습니다. 이번 실습에서는 RESPOND를 제외한 나머지 반응 변수들은 모두 Reject하도록 하겠습니다.

STRATIFIED, BY-GROUPS(SEGMENTS) – SEPARATE MODELS

 


그림 3: By-groups models

모형을 적합 할 때 때로는 각 계열사별 혹은 지역별 등과 같이 특정한 군집에 따른 모형을 생성하는 것이 더 좋은 예측력을 나타내는 경우가 종종 있습니다. 따라서 이러한 경우에는 각 군집을 개별 군집별로 모형을 생성해야 합니다.

 

하지만 그 때마다 모형을 각각의 군집을 필터링하는 테이블을 생성하고 동일한 프로세스를 붙여 이용한다면 불필요한 시간 낭비가 발생하게 되어 비효율을 초래하게 됩니다. 따라서 이러한 수동적인 작업을 좀더 간편하게 하는 방법이 필요합니다. 

 

그룹처리 노드의 경우 이러한 각 군집별 모형을 생성하는 것이 가능합니다. 또한 한 번 특정 군집 변수를 지정해 두면 해당 변수의 각 레벨 별로 모형을 자동으로 생성하게 됩니다. 게다가 만약 성별, 지역별로 모형을 생성하고 싶다면 이 두 변수의 역할만 조정해주면 각 군집변수의 조합별로 모형이 생성됩니다. 이렇게 되면 좀 더 향상된 모형을 손쉽게 얻을 수 있는 장점이 있습니다. 

 

 

그림 4: Diagram

(1)번 이전의 프로세스는 직전 연재의 내용과 동일하여 생략했습니다. 우선 이번에 예측할 데이터의 Target변수의 분포를 살펴보도록 하겠습니다.

 

 

 

그림 5: 타겟변수의 분포

[그림 5]를 보면 알 수 있듯 타겟 변수의 분포가 무반응에 비해 반응한 집단의 수가 현저하게 적은 것을 알 수 있습니다. 이런 경우 모형이 무반응 집단에 과적합 되어 반응집단에 대한 예측을 제대로 하지 않을 우려가 있기 때문에 이번 실험의 경우에는 “Under Sampling”방법을 이용해 목표변수의 분포편향을 보정 하도록 하겠습니다.

 

 

그림 6: 샘플링 노드 옵션

샘플링 노드의 옵션의 경우 위와 같이 변경하면 Target변수의level개수가 동일하도록 샘플링이 가능합니다.

 

(2) 그룹시작 노드


그림 7: 그룹시작 노드 설정

우선 그룹시작 노드의 [분석]에서 [변수] -> […]을 선택합니다. 그리고 그룹으로 사용할 변수의 그룹핑 역할을 [층화]로 변경합니다. 그리고 [확인]을 누른 뒤 [일반]에서 [모드]를 [층화]로 변경합니다. 여기서 여러 변수를 [층화]로 설정하게 되면 각 변수들의 level조합 별로 모형이 생성되게 됩니다.

 

(3) 그룹종료 노드


그림 7: 그룹종료 노드 결과

그룹종료 노드의 결과를 살펴보면 각 군집의 레벨 별로 모형이 적합 된 것을 알 수 있습니다. 이를 통해 각 군집별로 오분류율을 확인할 수 있고 또한 전체적인 오분류율은 어떤지 역시 확인이 가능합니다. 좌측상단의 그래프를 보면 지역 A, B, D에서 비교적 높은 오분류율이 나타나는 것을 알 수 있습니다.

 

(4) 이제 군집별로 모형을 별도로 만드는 것과 지역을 하나의 변수로 처리하여 모형을 적합시키는 것의 차이를 비교해보도록 하겠습니다.

 

 

그림 8: 모형평가 결과

비교적 일반 의사결정 나무보다 그룹처리 노드를 이용해 각 지역별로 모형을 생성하는 것이 더 좋은 결과를 나타내는 것을 알 수 있습니다. 따라서 이 경우에는 지역을 입력 변수로 넣기 보다 군집으로 설정하여 각각에 대해 모형을 적합하는 것이 좋을 것으로 보입니다.

 

CONCLUSION

이번 시간에는 지난시간에 이어서 그룹처리 노드의 이용방법에 대해 알아봤습니다. 앞선 실험을 통해서도 알 수 있듯 범주형 변수를 하나의 입력변수로 활용하는 것이 좋은 경우도 있지만 이번과같이 별도의 군집으로 취급하고 각각에 대하여 모형을 적합하는 것이 좋은 경우도 있음을 확인했습니다. 또한 이러한 경우 일일이 군집별로 필터링을 하고 각각에 대해 모형을 적합하는 것보다 그룹처리 노드를 이용해 한꺼번에 처리하는 것이 훨씬 간편하다는 사실도 알 수 있었습니다. 그룹처리 노드의 기능에 대한 내용은 이번시간으로 연재를 마치고 다음 시간부터는 다양한 앙상블 방법에 대해 알아보도록 하겠습니다. 

 

REFERENCES

[1] http://support.sas.com/resources/papers/proceedings10/123-2010.pdf

[2] 빅데이터 분석을 위한 데이터마이닝 방법론 / 강현철 외 5명 / 자유아카데미 / 2014년 3월 5일

 

 
 
    
 
 [EM] 퍼지 군집모형(Fuzzy Cluster) Unsupervised Ensemble
 [EM] Multiple Target (Combine models)