삼남매 아빠 = 애국자
Chapter 3. 데이터 전처리 - Part II (part I 참조)
Break #1. 통계 실습을 위한 환경 구축 - Part I
Break #2. 통계 실습을 위한 환경 구축 - Part II
Chapter 4. 클러스터링, 장바구니 - Part I (장바구니 분석)
Chapter 4. 클러스터링, 장바구니 - Part II (클러스터링)
Chapter 6. 모형 평가, WoE
# 샘플 데이터 및 코드는 다음 주소에 공개되어 있습니다.
https://github.com/RapaelLee/brunch
- 앞에서 살펴본 Association Rule 및 Clustering의 경우 Target 변수가 필요하지 않습니다. 그래서, 그 방법들은 '분류'라고 하고, 마이닝/(통계)모델링이 아니라고 하는 경우도 있습니다.
- 의사결정나무(Decision Tree), 선형회귀(Regression), 신경망(Neural Network)와 같은 예측 모형 생성에 있어 대략적인 프로세스는 다음과 같습니다.
1. 주제 선정
2. 데이터 확보 및 주요 용어 정의
3. Target 설정
4. 변수 선정
5. 모형 수행 및 선택
6. 모형 성능 검증
6번 항목은 [Chapter 6]에서 살펴보기로 하고, 나머지에 대해 각 단계 별로 경험했던 내용을 정리해 보겠습니다.
- 주제는 데이터의 관찰을 통해서 발견될 수도 있지만, 대체로 주제를 정한 상태에서 분석을 수행하고 예측 모형을 생성하게 됩니다. 주제에 대해서는 대체로 내용은 평이하지만, 보고를 위해 한자가 잔뜩 섞인 형태로 결정되곤 합니다. (ex. 고객에게 좀 더 많이 사게 하자 -> 고객 상향 예측 모델 발굴)
- 주제는 가급적이면 인류가 생각하지 못했거나 아직 해결하지 못한 것으로 선정하지 않도록 합니다. (ex. x개월 후의 삼성전자 주가 예측, 로또 당첨번호 예측 등) 즉, 현재 본인이 속한 자원(resource 또는 예산)에서 해결 가능한 범위로 선정할 것을 권장드립니다. 물론 연구가 목적이면 그 반대로 하는 게 좋겠습니다.
- 마지막으로, 확보할 수 없는 데이터에 대해 예측하려 하지 않으시길 바랍니다. 그 경우라면 예측이 필요한게 아니라 데이터 수집이 선행되어야 합니다. 예측하기 위해 상상 가능한 모든 데이터를 우선 수집해서 보관할 수 있는 환경을 먼저 만드시기 바랍니다.
- 분석을 시작하게 되면 가능한 모든 데이터를 모읍니다. 그렇게 모인 데이터를 사용하지 않거나 공간이 부족하여 삭제하게 되더라도 일단 모두 모은 후 데이터의 분포를 보면서 주제에 합당한지 판단합니다.
- 데이터의 분포를 살펴보며, 주요한 용어를 데이터에 기반하여 정의합니다. 예를 들어 "증권사 내의 활성고객은 최근 6개월 이내의 잔고가 1만원 이상이고, 거래 횟수가 1회 이상인 고객으로 정의한다."와 같이 단어와 조건에 대한 숫자가 같이 나열되는 것이 좋습니다. 이 과정에서 정답은 없습니다. 상황마다 정의는 달라질 수 있으나, 통계 모형의 input 데이터로 적용되는 경우가 많으므로 분석할 가치가 없다고 판단되거나 왜곡을 일으킬 수 있는 경우가 아니면 가급적 덜 엄격하게 정의하는 것을 권장합니다. 즉, 모수 [母數]를 충분히 확보할 수 있는 정의를 수립합니다.
- Target 설정이란 예측하고자 하는 목적에 대한 정의입니다. 이 때 학습(learning) 및 테스트에 대한 데이터 구간도 정의합니다.
- 예측 모형이란 것이 과거 데이터에 기반하여 어떤 수식을 생성하는 것이므로 확보한 데이터의 값을 변형/변환하여 Target 값을 만들어 냅니다. Machine learning은 좀 더 공부해야 뭐라 말할 수 있겠으나, 일반적인 mining에서는 Target을 하나로 선정하고 그 값은 1 또는 0으로 설정할 수 있도록 정의합니다.
여러 개의 Target을 설정하는 경우 생성한 모형의 예측력이 좋다고 하더라도 "왜?"에 대해 "잘 모르겠는데, 그렇게 결과가 나왔는데요??!!"라고 대답할 수 밖에 없으므로, 그 보다는 여러 개의 Target을 하나씩 나누어서 각각에 대해 모형 생성을 수행합니다.
- [Chapter 4]의 기법과 달리 Decision Tree, Regression, Neural Network 의 경우는 입력 변수(Input variables)에 대한 선정 및 가공을 섬세하게 해야 합니다. Garbage In, Garbage Out 이란 말처럼 입수한 데이터를 아무 가공 없이 대충 넣으면 예측력이 떨어지거나, 지나치게 그 상황에 맞는 예측(Over-fitting)을 하게 됩니다.
변수를 선정하는 데 있어 변수의 값을 grouping 하여 사용하면 Target에 대한 판별력을 높이고, 변수의 시계열에 대한 안정성을 높여줄 수 있습니다. 이 때, 다음 사항을 참조합니다.
1. 일반적으로 WOE가 높은 값에서 낮은 값으로 적용합니다.
2. 업무적으로 의미가 있는 커트라인을 적용합니다.
3. Group 의 개수가 10개가 넘지 않도록 조정합니다.
4. Group 에 속한 데이터가 너무 적지 않게 구성합니다.
5. Null 값은 0 처리를 하거나, 혹은 높은 category에 속하도록 합니다.
1. Event_freq : 범주별 Event 관측치 수
2. Non_Event_freq : 범주별 Non-Event 관측치 수
3. %Event : (범주별 Event 관측치 수/ 전체 Event 관측치 수)*100
4. %Non-Event : (범주별 Non-Event 관측치 수/ 전체 Non-Event 관측치 수)*100
5. Odds : 범주별 Non-Event 관측치 수/범주별 Event 관측치 수
6. WOE (Weight of Evidence) : LOG(%Non-Event/%Event)
7. IV(Information Value) : (%Non-Event-%Event)*LOG(%Non-Event/%Event)
다중공선성은 입력변수(독립변수) 사이에 강한 상관관계가 있어 변수가 중복되는 것을 이야기합니다.
예를 들어 상품대분류,상품중분류,상품소분류와 같이 하나만 선택해도 충분한 경우입니다.
모든변수들 상관계수를 살펴보고 서로 강한 상관관계를 갖는 변수들의 그룹을 확인한 후 다중공선성이 존재하는 변수 중 설명력이 가장 뛰어난 변수를 하나 선택합니다.
Regression 변수의 선택 방법으로는 StepwiseSelection, Forward Selection, Backward Elimination 등이 있습니다.
1. ForwardSelection
- 후보변수리스트로부터 예측력이 가장 높은 변수를 선택합니다. (Univariate c2 값이 가장높은 변수)
- 남아있는후보 변수들에 대하여 Univariatec2 를 구합니다.(조건부 확률 이용)
- 새로운변수 추가로 인한 모형 설명력 증가분을 측정하여 다음 투입 변수 선택하며, 이미 선택된 변수와 상관관계가 높은 변수는 탈락시킵니다.
- 선택된변수들에 대하여 MultivariateChi-Square 값을 측정합니다.
- 남아있는 Candidate변수들 중통계적으로 유의한 변수가 없을 때까지 반복합니다.
2. StepwiseSelection
- ForwardSelection과 방법은동일하나, 변수선정과정에서유의성 떨어지는 모형 내 변수를 제거합니다.
- Model예측력향상시킬 가능성이 크나, 매번 모든변수들을 다 고려하기 때문에 시간이 오래 걸립니다.
3. BackwardElimination
- 모형에모든 변수를 투입한 후, 각 변수와나머지 다른 모든 변수들과의 Multivariatec2 값을 계산합니다.
- 예측력이가장 낮은 변수부터 제거해 가면서,유의한변수들만 남을 때까지 반복합니다.
- Forward나 Stepwise방식에서는선택되지 않을 유의성이 낮은 변수들도 모형에 포함될 수 있습니다.
다음 차례로 살펴볼 모형에 대해 비교한 표입니다. 개인적으로는 Logistic Regression을 가장 선호하지만, Decision Tree도 널리 쓰입니다.
1. Logistic Regression
- 이항 목표변수(적발여부)가입력변수들에 의해 어떻게 설명 또는예측되는지 알아 보기 위해 자료를 적절한 함수식으로 표현하여분석하는 통계 방법입니다.
- 입력변수의 비즈니스측면의 해석 용이하며, 변수에대한 영향력 해석 용이하고, 불필요한변수 제외하고 필요한 변수 선택이 가능합니다.
- 다만, 변수간의비선형성을 갖는 경우 예측의 유용성에 대한 한계를 가집니다.
2. Decision Tree
- 의사결정규칙을나무구조로 도표화하여 분류, 예측을 수행하는 분석방법으로 분류 또는 예측의 과정이 나무구조에 의한 추론규칙에 의해서 표현합니다.
- 입력변수의 비즈니스측면의 해석이 용이합니다.
- 교호효과 또는 비선형성 탐색이 용이합니다.
- 또한, 선형성, 정규성, 등분산성의 가정이 불필요합니다.
- 다만, 변수에대한 영향력 판단의 한계가 있으며, 연속형 변수의경우 분리 경계점근처에서의 예측오류가 클 가능성이 존재합니다. 그리고 일정한수량 이하의 데이터 분석 시 예측의 불안정 가능성이 있습니다.
3. Neural Network
- 인간두뇌의 신경망을 흉내 내어 실제 자신이 가진 데이터로부터의 반복적인 학습 과정을 거쳐 데이터에 숨어 있는 패턴을 찾아내는 기법입니다.
- 적발여부의 정확성이 Logistic Regression, Decision Tree 보다 높은경향이 있습니다.
- 입력변수의 비즈니스측면의 해석이 곤란하며, 학습을위한 대량의 데이터를 요구합니다. 그리고, 추정의 비수렴성 문제발생 가능성이 존재합니다.
모형의 목적 및 해석 가능여부에 따라 기법을 선택합니다. 다음은 앙상블 기법과 단일 모형 선택에 대한 비교입니다.
1. 분석기법 선택 시 비교 항목
- 모형은 모형에 대한 입력변수의 비지니스적인 해석보다, 예측력이 중요합니다.
- 모형의 안정성을 확보 할 수 있어야 합니다.
- 모형의 결과를 내부 인력으로 모형의 갱신이 용이해야 합니다.
- 각 모형 별 Target이 적음으로 나타나는 예측력의 불안정 및 추정의 비수렴 문제발생 가능성을 최소화 해야 합니다.
2. 앙상블(Ensemble) 모형 특장점
- Ensemble 기법은 해석의 어려움은 있으나 예측력은 단일 모형보다 우수합니다.
- 다수의 모형에 의하여 예측이 이루어지므로, 시간의흐름에 따라 모형의 성능이 떨어지는 현상을 보강할 수 있습니다.
- 다수의 모형에서 우수한 성능을 가지는 모형을선택하는 모형 선택과정이 간소하며, 이후 모형의 갱신이 용이합니다.
- Logistic Regression 및 NeuralNetwork을 결합하여 사용할 수 있습니다.
- 여기까지 대략적인 모형에 대한 비교를 마치며 다음에는 선형회귀 분석에 대해 이야기하겠습니다.