안녕하세요 MySAS홍보대사 한노아입니다.
이번 시간에는 지난 시간에 이어서 그룹처리 노드의 또 다른 이용 방법인 다중 종속변수 모델링 방법에 대해 알아보도록 하겠습니다.
INTRODUCTION
그림 1은 SAS E-Miner의 일반적인 그룹처리 프로세스를 나타내고 있습니다. 그룹 처리 노드의 경우 ‘그룹시작’, ‘그룹종료’ 이렇게 두 부분으로 이뤄져 있습니다. 그룹처리노드의 경우 그룹시작 노드의 [분석]속성을 이용해 세부적인 옵션을 조정하고 있고 이 옵션 설정에 따라 다양한 기능을 수행하는 것이 가능합니다.
그림 1 : 그룹처리 노드의 일반적인 흐름도
그룹 시작 노드의 기초 설정에 따라 아래와 같은 기능을 수행하는 것이 가능합니다.
1. 다양한 목표(target)변수를 동일한 프로세스를 이용해 분석해야 하는 경우
2. 그룹변수(예: 성별, 직업, 지역 등)를 이용한 개별 모형을 생성하는 경우
3. 모형의 안정성을 평가하기 위해 교차타당성 검증과 같은 기법을 이용하는 경우
4. 특정한 인덱스에 따른 루프를 수행해야 하는 경우
5. 재표집(re-sampling)방법을 이용한 다양한 모형을 생성해야 하는 경우(예: 배깅, 부스팅)
이번 연재에서는 위 5가지 기능 중 1번을 구현하는 방법에 대해 알아보도록 하겠습니다.
DATA DESCRIPTION
표 1 : 이용 변수 및 설명
우선 오늘 실습에서 이용할 데이터를 살펴보도록 하겠습니다. 이번 실습에서는 BUYTEST데이터를 이용하도록 하겠습니다. 이 데이터는 고객의 Demographic정보와 거래정보 등을 이용해 향후 고객의 DM반응 가능성, DM에 의한 구입총액 등을 예측하는 모형을 생성하는 것을 목표로 하는 데이터 입니다. 자세한 데이터 정보는 [표1]을 참고해 주시기 바랍니다.
그림 2: 변수역할
각 변수들의 역할은 위와 같습니다. 이번 실습에서는 모든 반응변수들을 Target으로 역할을 지정하고 분석을 진행하도록 하겠습니다.
MULTIPLE TARGETS – COMBINE MODELS
많은 비즈니스 문제들을 해결하기 위한 모형의 경우 유사한 데이터 소스를 갖고 고객의 이탈가능성, 향후 재구매 가능성, 구매금액 등을 예측하는 경우가 많습니다. 이러한 다양한 비즈니스 문제들을 해결하기 위해 만들어 놓은 테이블(또는 데이터 셋)을 ABT(Analytical Base Table)라고 합니다. 이러한 테이블이 생성되어 있는 경우 하나의 프로세스에서 여러개의 Target을 이용해 모형을 생성해야 하는 경우가 생기게 됩니다.
그림 3: ABT Layout
만약 여러 개의 Target변수에 대하여 각각의 모형 생성 프로세스를 따로 한다면 목표변수가 1~2개인 경우에는 큰 문제가 없을 것입니다. 하지만 만약 수십 혹은 수백개의 목표변수를 갖는 테이블을 이용해 모형을 적합해야 한다면 매우 유사한 모델링 프로세스를 불필요하게 여러 번 반복해야 하는 번거로움이 발생하게 됩니다.
이러한 문제들을 해결하는 가장 간단한 방법이 바로 그룹처리 노드를 이용하여 각 Target변수에 대해 모형을 자동을 적합시키도록 하는 것입니다. 이러한 방법을 이용하면 수백개의 Target을 갖는 경우에도 각각에 대해 번거롭게 여러 개의 프로세스를 생성할 필요 없고 각 프로세스가 실행될 때 마다 일일이 실행을 시킬 필요 없이 한 번의 클릭으로 모든 Target변수에 대해 모델을 적합시키는 것이 가능해 집니다.
그림 4: Diagram
(1) DMDB
그림 5: 각 변수별 기술통계
각 변수들의 기술통계량을 살펴보면 많은 변수에 결측치가 존재하는 것을 알 수 있습니다. 또한 연속형 변수의 경우 분포왜곡이 존재하기 때문에 별도의 변수변환 과정이 필요할 것으로 보입니다.
(2) Missing Delete
그림 6: 결측치 제거 코드
데이터의 경우에는 관측치대비 결측치의 수가 많지 않기 때문에 결측변수를 다른 값으로 대체하지않고 모두 제거하도록 하겠습니다. 결측치를 처리하는 다양한 방법이 있지만 저 같은 경우 SAS code노드를 이용해 각 변수에 하나라도 결측이 존재하면 해당 관측치를 제거하는 방법을 선택했습니다.
(3) 앞서 살펴보았듯 분포왜곡이 있는 변수가 많기 때문에 정규성을 최대화해주는 옵션을 이용해 변수를 변환했습니다.
(4) 데이터 분할의 경우 데이터 분할 노드를 이용해 Train 70%, Validate 30%로 분할했습니다.
(5) 그룹시작노드 설정
그림 7: 그룹시작 노드 설정
그룹시작 노드의 경우 [Mode] 옵션을 위와 같이 타겟으로 변경해주면 됩니다. 이렇게 설정하면 각 타겟에 대해 모형을 생성하게 됩니다.
(6) 의사결정 트리의 경우 기본 옵션을 그대로 이용했습니다.
(7) 그룹종료노드 결과
그림 7: 그룹종료 노드 결과
그룹종료노드를 실행한 뒤 결과를 확인해 보면 위와 같은 창을 확인할 수 있습니다. 위 창에는 각각의 Target에 대한 예측 혹은 분류결과에 대한 통계량들을 얻을 수 있습니다. 좌측 상단의 적합통계량 도표 창에서는 통계량의 종류를 변경해가면서 각 Target에 대한 예측력이 얼마나 좋은 지를 알 수 있습니다.
CONCLUSION
이번 시간에는 지난시간에 이어서 그룹처리 노드의 이용방법에 대해 알아봤습니다. 실질적으로 DM효과를 예측하거나 스코어링 할 때 동일한 소스테이블을 이용해 다양한 반응을 예측하는 경우가 많고 이러한 역할을 하는 테이블을 ABT(Analytical Base Table)라고 합니다. 이러한 테이블에서 각 Target별로 별도의 프로세스를 생성하고 모델링을 하는 것은 매우 번거로운 일입니다. 이러한 번거로움을 줄이기 위한 좋은 방법이 바로 그룹처리 노드를 이용하는 것이고 그룹처리 노드를 이용하게 되면 사용자가 일일이 각 타겟 별로 옵션을 바꾸고 새로운 모형 프로세스를 생성하고 일일이 실행할 필요없이 하나의 프로세스로 모든 과정을 처리할 수 있다는 사실을 알 수 있었습니다. 그럼 다음 시간에는 특정 군집 별로 모형을 따로 생성하여 모형의 퍼포먼스를 향상 시키는 방법에 대해 알아보도록 하겠습니다.
REFERENCES
[1] http://support.sas.com/resources/papers/proceedings10/123-2010.pdf
[2] 빅데이터 분석을 위한 데이터마이닝 방법론 / 강현철 외 5명 / 자유아카데미 / 2014년 3월 5일
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.