앞선 포스팅에서 프로모션 사례를 통해 결정 분석적 사고에 대해 알아보았습니다.

2017/07/09 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.13 결정 분석적 사고_분석공학(자선 단체 후원할 가능성이 높은 후원자 타겟팅)

이번 포스팅에서는 고객 이탈 관리에 대한 결정 분석적 사고를 알아보도록 하겠습니다.


사례) 고객 이탈관리(이동 통신사의 고객이탈)

1. 프로모션을 제안할 적절한 고객들을 타겟팅

case1) 계약 만료 시기가 다가와 이탈할 확률이 높은 고객들

case2) 이탈할 경우 통신사에 미치는 영향이 큰 고객들


CH13에서 알아봤던 방식으로 기대 수익을 알아보면,

타겟팅 기대 수익

 : 고객이 프로모션을 응할 때의 가치(기부금)

 : 고객이 프로모션을 응하지 않을 때의 가치

 : 고객이 프로모션을 응할 확률

(고객X가 기부할 확률*기부금 + 고객X가 기부하지 않을 확률*기부하지 않을 때 생기는 가치)

여기서, 이탈할 경우 발생하는 가치가 0이라고 가정하면 기대수익 이므로 남을 확률이 높은 고객을 타겟팅 하는 것이 가장 효과적입니다. 하지만 이 경우에는 앞선 사례와 다르게 타겟팅 하지 않았을 때 발생할 수 있는 수익도 반영하여 계산해야합니다. 비즈니스 문제가 가지는 특성에 따라 변수가 달라지기 때문입니다.


수정된 타겟팅 기대 수익

- 타겟팅한 고객 X가 통신사에 남을 때의 수익

- X를 타겟팅하지 않을 때 수익

따라서 값이 가장 큰 고객이 수익이 가장 많이 발생할 고객이라 기대하고 프로모션을 진행하면 됩니다.


기대값 프레임워크를 통한 방식은 복잡하지만 목적에 집중하면서 우리의 사고를 구조화해 체계적으로 생각하고 정교한 분석결과를 만들어 낼 수 있습니다.


데이터 분석에서 고려해야 할 사항

데이터 분석에 필요한 표본을 얻기 위해서는 각종 변수를 고려해야만 합니다.

- 환경적 변화

비즈니스 요구는 시간과 장소 구분없이 긴급하게 발생합니다.

- 가정의 축소 및 간단화 필요

새로운 프로모션으로 인한 데이터 수집의 어려움

- 과거에 실행했던 프로모션들 중 비슷했던 프로모션 이력 탐색

다양하고 많은 데이터 확보의 필요

- 데이터를 자산으로 인식하는 자세 필요

- 데이터 확보를 위한 투자 필요


2017/07/09 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.13 결정 분석적 사고_분석공학(자선 단체 후원할 가능성이 높은 후원자 타겟팅)

2017/07/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.12 텍스트 표현 및 마이닝(엔트로피와 n-그램)

2017/07/02 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.11 텍스트 표현 및 마이닝(IDF와 TFIDF)

2017/06/18 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.10 증거와 확률(베이즈규칙)

2017/06/17 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.9 좋은 모델은 무엇인가?(비용과 효과)

2017/06/12 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.8 좋은 모델은 무엇인가?(기댓값)

2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


기본개념 : 데이터 과학으로 비즈니스 문제를 해결하려면 분석 공학에서 시작합니다. 가용한 데이터, 도구 기법에 기반하여 분석적 해결책을 설계합니다.

응용기법 : 데이터 과학 해결책을 설계하기 위한 프레임 워크로서의 기댓값.


비즈니스 문제에서의 데이터 과학의 한계

복잡하고 다양한 변수 : 원칙에 따른 기법만으로 해결불가합니다.

제대로 표현되지 않은 데이터 : 정보나 지식 추출불가합니다.

데이터 과학만으로 비즈니스 문제를 해결하기 어렵습니다. 비즈니스 문제를 해결하기 위해서는 비즈니스에 대한 이해(분석공학)와 데이터 이해(데이터 과학)이 동반되어야 합니다.

* 데이터 과학 : 원칙에 따른 기법들을 이용해 데이터로 부터 정보나 지식을 뽑아내는 학문입니다.

* 분석공학 : 사용가능한 데이터 도구기법에 기반하여 분석적으로 해결책 설계하는 것을 의미합니다.


아래의 사례를 통해 비즈니스 문제를 도구를 통해 하위문제로 분할하고 각 하위 문제를 유효성이 입증된 기법을 이용해 해결, 원래의 문제를 해결하기 위해 각 하위문제 해결책을 통합함으로써 도구가 어떻게 작동하는지 확인하도록 하겠습니다.

기댓값 프레임워크

데이터 분석 문제에 대한 생각을 구조화하는데 상당히 유용한 툴로 1.문제의 구조화 2.데이터에서 추출할 수 있는 분석 항목 3.다른 재원으로 부터 가져와야 할 분석 항목으로 구성되어 있습니다.


사례) 자선 단체 후원할 가능성이 높은 후원자 타겟팅

1. 우리의 목표는 기부 할 사람을 타겟팅 하는 것인가?

후원요청 편지에 응할 가능성이 높은 후원자를 타겟팅 → 응답의 형태가 다양 (기부자마다 기부 금액이 다를 수 있습니다.(A는 10만원 B는 1만원)

같은 비용을 소요한다면 기부 금액이 큰 고객을 타겟팅 하는 것이 효과적입니다.

2. 기부액을 최대화하는 것인가

편지를 보내는 비용이 1천원일 때 많은 이에게 편지를 보냈으나 대부분이 1천원씩만 기부할 경우, 실제 모금된 후원금은 거의 없는 상황이 됩니다. 결국 우리의 목표는 후원수익(비용을 공제한 순수 후원금)의 최대화일 것입니다. 즉, 모금된 전체 기부금 > 전체 편지 발송비용이 되는 것입니다.

이 경우, 기댓값 프레임워크를 사용하면 데이터 분석을 구조화 할 수 잇습니다.


타겟팅 기대 수익

 : 고객이 프로모션을 응할 때의 가치(기부금)

 : 고객이 프로모션을 응하지 않을 때의 가치

 : 고객이 프로모션을 응할 확률

(고객X가 기부할 확률*기부금 + 고객X가 기부하지 않을 확률*기부하지 않을 때 생기는 가치)

하지만 위의 방법은 고객이 동일한 후원금을 납부한다는 전제가 필요하므로, 고객마다 납부한 금액을 달리 적용할 수 있도록 공식을 수정해야만 합니다.


수정된 타겟팅 기대 수익

 : 고객X가 프로모션을 응할 때의 A가 기부하는 금액 - 후원을 요청하는 데 드는 비용

 : (고객X가 프로모션을 응하지 않을 때) 후원을 요청하는 데 드는 비용

 : 고객이 프로모션을 응할 확률

(고객X가 기부할 확률*고객X의 기부금 + 고객X가 기부하지 않을 확률*프로모션 비용)
,값은 회귀 분석 모델링을 통해서 구할 수 있습니다. 과거 이력 데이터를 분석, 대략적인 금액 확인 가능합니다. 단, 과거에 캠페인에 응했던 고객들에 대한 데이터만 활요앻야 합니다. 대부분의 고객들은 캠페인에 응하지 않으므로 기부할 금액이 0이 되는 경우가 발생할 수 있기 때문입니다. 결국 수익이 언제나 0보다 크기를 원하므로 다음과 같은 부등식을 유도할 수 있습니다.


수정된 타겟팅 기대 수익 적용

(고객X가 기부할 확률*고객X의 기부금 > 프로모션 비용)

즉, 예상 기부액이 기부 요청에 들어가는 비용보다 커야 합니다. 이렇듯 기댓값 프레임 워크는 복잡한 비즈니스 문제를 조금 더 단순한 하위문제로 분할하는데 도움이 될 뿐만 아니라, 이 하위 결과들을 어떻게 결합해야 하는 지 알려줍니다.



2017/07/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.12 텍스트 표현 및 마이닝(엔트로피와 n-그램)

2017/07/02 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.11 텍스트 표현 및 마이닝(IDF와 TFIDF)

2017/06/18 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.10 증거와 확률(베이즈규칙)

2017/06/17 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.9 좋은 모델은 무엇인가?(비용과 효과)

2017/06/12 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.8 좋은 모델은 무엇인가?(기댓값)

2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


IDF와 엔트로피의 관계

엔트로피는 어떤 집합에 적용해 무질서 정도를 측정합니다. 엔트로피는 데이터를 분류할 때 사용합니다. 순수하게 한가지 속성에 대해 데이터를 분류하고자 할 때 ,이 데이터가 우리가 분석하려는 속성에 대해 다른 값들이 얼마나 뒤섞여 있는 지를 나타내는 것이 무질서라고 하며, 이런 무질서 정도를 측정하는 것이 엔트로피입니다.


는 집합 안에서 속성 i의 확률

이면 집합 안의 모든 항목이 i속성을 가진 경우

이면, 집합 안에서 i속성을 가진 원소가 하나도 없는 경우


IDF와 엔트로피는 둘 다 집합 안에서 속성이 얼마나 섞여 있는지를 측정하기 때문에 비슷합니다.


p(t) : 단어 t가 문서에서 나타날 확률

p(t) 추정확률 : p로 표시

문서 집합에서 단어 t의 유무에 대한 확률로 생각하면 T가 들어있을 확률은 p이고 T가 없을 확률은 1-p입니다.

not_t라는 가짜 단어를 만들어 본다면, not_t는 단어 t가 없는 문서에 가상으로 존재하는 단어를 의미합니다.

위의 식을 그래프로 표현하면, p(t)=.5를 축으로 서로 대칭을 나타냅니다.

2진 계층인 p₂=1-p₂의 엔트로피 공식 

t단어가 포함되어 있는 확률 : p

t단어가 포함되어 있지 않은 확률 : 1-p

을 대입하면

여기에 IDF(t)와 IDF()not_t)로 대체하면,


코퍼스에 단어 t가 나타날 확률에 기반해 IDF(t)와 IDF(not_t)의 기댓값으로 엔트로피를 표현한 것입니다.


엔트로피를 그래프로 그려보면 IDF 단어 t의 희박성을 나타내는 방정식의 그래프는 엔트로피 곡선과 일치합니다.

    


단어주머니보다 정교한 기법

더 정교하게 문서 안의 텍스트, 단어를 처리하는 방법으로 n-그램 순열이 있습니다.

n-그램은 단어 순서가 중요한 경우, 단어 순서에 대한 정보를 보관할 수 있도록 인접한 단어들의 순서까지 포함하는 표현 기법입니다.

ex) The quick brown fox jumps

단어주머니 - quick, brown, fox, jump 라는 단어 집합

n-그램 - quick_brown, brown_fox, fox_jump 3개의 토큰으로 변환

n-그램은 개별단어보다 특정 문장이 중요한 경우에 사용합니다. 단, 특징 집합의 크기가 상당히 커진다는 단점이 있습니다.

※ 바이그램 : 인접한 쌍, 토큰


개체명 추출기

문장 추출 시, 문서에서 많이 볼 수 있는 개체명을 인식해야 하는 경우가 발생합니다. 예를 들어 Silicon Valley / New York Mets / Game of Thrones 등 의 고유명사말이죠. 이런 어구를 인식할 수 있도록 개체명 추출기라는 전처리기를 사용합니다. 개체명 측정기가 제대로 작동하기 위해서는 커다란 코퍼스를 갖고 있거나, 수작업으로 고유한 명사들을 입력해야 합니다. 개체명 추출기는 고유명사를 개체명으로 인식하기 위해 풍부한 고유명사 입력하는 것이 필요하고 또는 학습이 필요합니다.


주제모델

문서에 등장하는 단어나 개체명으로 직접 모델을 만드는 방법은 언제나 최적의 결과가 나오는 것은 아닙니다.

주제모델 : 코퍼스 안에서 먼저 주제들을 별도로 모델링하는 것, 단어들을 직접 사용하지 않고 각 주제에 맞게 단어들을 묶어 맵핑하는 것을 말합니다. 예를 들어 Korean War라는 주제를 중심으로 연관성 있는 단어들을 묶는 것입니다. 주제모델을 만드는 기법으로는 잠재의미 색인과 같은 행렬 인수분해 기법과 잠재 디리클레 할당과 같은 확률적 주제 모델이 있습니다.



2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/12 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.8 좋은 모델은 무엇인가?(기댓값)

2017/06/17 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.9 좋은 모델은 무엇인가?(비용과 효과)

2017/06/18 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.10 증거와 확률(베이즈규칙)

2017/07/02 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.11 텍스트 표현 및 마이닝(IDF와 TFIDF)


텍스트

문서 안의 단어(텍스트)는 자유로운 형태이고, 차례대로 나오며, 각 문서는 하나의 객체로 보지만, 특징에 대해선 알 수 없습니다. 데이터의 또 다른 형태이며, 데이터로 활용하기 위해선 변환이 필요합니다. 텍스트는 '비구조 데이터'라 컴퓨터는 텍스트를 인식하기 어렵습니다. 때문에 컴퓨터가 인식할 수 있도록 가공을 할 필요가 있습니다. 텍스트를 컴퓨터가 인식할 수 었도록 데이터로 표현(변환)하는 방법은 특징 벡터 형태로 변환하는 것입니다. 


텍스트 처리 기본 용어

토큰 : 하나의 단어

코퍼스 : 문서를 모아 놓은 것, 문서의 묶음

단어주머니 : 개별적인 단어의 집합(문법, 단어순서, 문장구조, 무시). 단어주머니는 모든 단어가 문서의 키워드가 될 가능성이 있습니다. 표현이 매우 간단하며, 생성하는데 연산이 적게 소요됩니다. 단어주머니를 사용하면 여러  종류의 작업에 잘 맞습니다. 컴퓨터의 단어 인식하는 방법으로는 문서에 토큰이 있으면 1, 없으면 0으로 표현합니다.


단어빈도

단어의 횟구(빈도) : 문서 안에서 단어가 나오는 횟수 - 해당 단어의 중요도

위의 표를 만들기 위해 어근을 기준으로 단어 변화가 필요합니다. 방법은 아래와 같습니다.

ⓐ 모든 단어를 소문자로 표기합니다.

ⓑ 형용상 복수형의 단어를 단어 어근으로 변경합니다.

ⓒ 불용어 제거합니다. 불용어란 인터넷 검색 시, 검색용어로 사용되지 않는 용어(관사/전치사/조사/접속사 등)를 뜻합니다.


앞서 말한대로, 단어빈도는 하나의 문서 안에서 어떤 단어가 얼마나 많이 나오는 지를 측정하는 것으로 단어와 문서 간의 관계를 나타내기 위한 것입니다. 문서 안에서 단어의 비중을 결정 시, 특정 단어가 너무 빈번하게 나오면 안됩니다. 그래서 2가지 측면에서 추가적으로 검토가 필요합니다.

ⓐ 단어가 너무 희귀하면 안됩니다.

ⓑ 단어가 너무 흔해도 안됩니다.


단어가 나온 문서의 수가 적을수록 단어가 문서에 중요할 가능성이 더 높기 때문에 코퍼스 안에서 단어의 분산도 고려해야하는데, 단어의 역문서빈도(IDF)라는 방정식으로 어떤 단어 t의 희박성, 문서 안에서 드문 정도를 측정 가능합니다.


IDF

IDF(역문서빈도) : 어떤 단어의 희박성을 측정하는 방정식



[1000개의 문서가 들어있는 코퍼스에서 단어 t에 대한 IDF 그래프]

단어가 희귀한 경우, IDF가 상당히 높게 나옵니다. 단어 t가 나오는 문서의 수가 증가할 수록, IDF가 급격히 감소해 점근선 1.0에 접근합니다. 대부분의 불용어는 거의 모든 문서에 나오므로 IDF가 거의 1에 가깝습니다.


단어빈도와 역문서 빈도의 결합(TFIDF)

TFIDF : 단어 빈도와 역문서 빈도(단어의 희소성)을 결합한 것입니다.

IDF : 문서(코퍼스) 전체에서 t라는 단어의 희소성을 의미하며, 코퍼스 전체 기준의 특징 벡터 집합입니다.

TFIDF : 어떤 문서에서 t라는 단어가 나오는 횟수로, 문서 기준의 특징 벡터입니다.


단어 주머니 표기법은 문서 안에 있는 모든 단어가 독립적인 특징이 될 수 있다고 가정합니다. 단어의 빈도와 희귀도에 따라 문서에 값을 할당합니다. TFIDF는 단어에 적용하기 위해 널리 사용되는 방법이지만 꼭 최적의 값은 아닙니다.



2017/06/18 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.10 증거와 확률(베이즈규칙)

2017/06/17 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.9 좋은 모델은 무엇인가?(비용과 효과)

2017/06/12 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.8 좋은 모델은 무엇인가?(기댓값)

2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기

용어정리

P(C) : C가 발생할 확률

P(C|E) : 'E가 있을 확률' 또는 'E 조건 하에서 C가 발생할 확률' → 조건부 확률

결합학률 : 확률 p(A)와 p(B)를 알고 있을 때, A와 B 사건 모두 일어날 확률 → P(AB)

사후확률 : 증거를 확인한 후의 확률


 


베이즈규칙


위 식에서 B는 가설(Hypothesis) A는 증거(Evidence)라고 하면


분류에 사용하는 베이즈 규칙


p(C=c) : 계층의 사전 확률로서 어떤 증거를 확인하기 전에 계층에 할당하는 확률

p(E|C=c) : 표본을 c 계층으로 분류한 후에 증거 E의 특징을 볼 수 있는 가능성

p(E) : 증거가 나타날 가능성


E를  특징벡터로 생각 후 바로 적용하기 위해서는 를 계산하여 P(E|c)를 알아내야 합니다.


조건부 독립과 나이브 베이즈


A와 B가 C에 대해 조건부 독립적이라고 가정하면 (무조건 독립을 가정하는 경우보다 약한 가정)

분류에 사용하는 베이즈 규칙을 가져와서 생각해보면 나이브 베이즈 방정식을 생성할 수 있습니다.


여기서 P(E)는 계산할 필요가 없는 경우가 많습니다.


분류문제인 경우, 모든 c 계층 중에서 어느 계층에 대한 P(C|E)가 가장 큰지만 알면 되기 때문입니다. 이 경우에는 E는 모든 계층에 동일하므로 어느 계층의 분자가 큰지만 알면 됩니다.

또한, 실제 확률을 추정할 경우, E는 , 둘 중에 하나만 속하며 이므로 위 식을 베이즈 방정식에 대입하면


나이브 베이즈의 장점


나이브 베이즈는 간단한 분류자이기도 하지만 증거를 나타내는 특징 벡터를 계산에 모두 포함시킬 수 있기 때문에 저장 공간과 계산 시간 측면에서 매우 효율적입니다. 또한 독립성 가정이 잘못된 경우에도 분류 성능이 크게 떨어지지 않습니다. 마지막으로 점진자 학습자로서 새로운 훈련 데이터를 추가될 때 과거에 학습했던 사례는 다시 학습할 필요가 없습니다.


향상도 모델


향상도를 

라 정의하면

로 나타낼 수 있습니다.


2017/06/17 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.9 좋은 모델은 무엇인가?(비용과 효과)

2017/06/12 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.8 좋은 모델은 무엇인가?(기댓값)

2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


비용과 효과


기댓값 계산 공식에 따라 기대효과를 계산하려면 각 결정 쌍에 대한 비용과 효과를 알아야 합니다. 각 결정 쌍에 대한 비용과 효과를 계산하면 혼동행렬과 같은 차원의 비용-효과 행렬이 만들어집니다.

확률은 데이터로부터 추정할 수 있지만, 비용이나 효과는 추정할 수 없는 경우가 있습니다. 일반적으로 비용과 효과는 구체적인 비즈니스 문제 측면에서 의사 결정의 영향을 분석한 외부 정보를 의존하여 구하게 됩니다. 대부분의 경우 문제 정의와 계산을 간단히 하기 위해 개인별 구체적인 비용대비 효과 대신 비용과 효과의 평균을 사용합니다. 

비용/효과 행렬이 만들어지면 확률 행렬에 항목 단위를 곱하고, 곱한 결과를 모두 더해 전체적인 기대수익을 계산합니다.

여러 모델의 정확도를 계산하는 것보다는 모델이 가져다주는 기댓값을 계산하면 좋은 모델을 찾아낼 수 있습니다.


평가, 기준선 성능, 데이터 투자의 영향


데이터 과학에서는 모델 성능을 비교할 합당한 기준선을 신중히 선택해야 합니다.

- 분류 모델의 경우 완전히 무작위로 판단하는 모델을 시뮬레이션해서 모델의 성능을 측정할 수 있습니다. 

시각화 프레임워크를 사용하면 무작위 분류 모델의 성능을 보여주는 기준선을 자연스럽게 나타낼 수 있습니다. 그리고 이 방법은 데이터를 탐사하는 초기 단계나 어려운 문제에 부딪혔을 때 유용합니다. 무작위 모델과 비교함으로써 데이터에서 추출할 정보가 있음을 입증할 수 있습니다. 


- 좋은 기준선은 분류작업의 경우 다수결 분류자가 좋은 기준선이 될 수 있습니다. 하지만 단순히 다수로 정확도를 높이는 것은 데이터 과학 측면에서 적절한 목표가 아닙니다. 분류에서의 다수결과 마찬가지로 회귀 분석의 경우에는 모집단의 평균이나 중간값을 사용할 수 있습니다. 


- 여러 종류들의 단순 평균값들을 조합해서 사용할 수 도 있습니다. 타겟값과 가장 잘 연결되는 변수 하나를 찾아내면 이 변수를 이용한 분류모델이나 회귀모델을 만들어 또 다른 기준선 성능을 제시할 수 있습니다.


- 트리유도 과정을 통해 의사결정  그루터기를 만들면 가장 정보 전달력이 뛰어난 정보 하나를 선택해 이 변수에 기반해 판단할 수 있습니다. 이 경우 일부 경우에 단 하나의 특징이 큰 영향력이 미치므로 이 경우가 단일 변수로 판단할 수 있는 지 아니면 얼마나 정확하게 판단하는 지 평가할 수 있습니다. 이 개념은 데이터는 투자할 가치가 있는 자산이라는 데이터 과학 기본원리에 연결할 수 있습니다 데이터 원천마다 사용하는 모델과 각 데이터 원천을 확보하는 데 들어가는 비용 등 데이터 원천을 구할 때 비용이 많이 들어갈 수 있는 데 비용과 효과를 프로젝트의 실행 여부를 결정할 수 있습니다. 그 관점에서 무조건적 도입을 경계하고 데이터 원천이 모델에 기여도가 낮다면 데이터 원천을 배제함으로써 비용절감 할 수 있습니다. 그리고 전문지식이나 견해들은 지식에 기반한 간단한 모델을 만들어 성능을 평가하는 것도 도움이 됩니다.



2017/06/12 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.8 좋은 모델은 무엇인가?(기댓값)

2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


기댓값


기댓값은 핵심 분석 프레임워크 중 하나로 데이터 분석 문제에 대한 생각을 구조화하는 데 상당히 유용한 틀입니다. 앞서 말한대로, 기댓값은 문제를 구조화 하는 데 상당히 많이 사용되는데, 데이터에서 추출할 수 있는 분석 항목, 다른 재원으로부터 가져와야할 분석 항목을 결정하는 데 사용되기 때문입니다. 다수의 고객에 타겟 마케팅하는 경우나 다수 발생하는 문제를 진단하는 경우처럼 반복되는 작업을 한다고 가정하며 기대수익을 극대화 할 수 있습니다.


추가적인 설명을 덧붙이자면, 기댓값은 발생할 수 있는 각각의 결과에 대한 가치에 가중치(확률)를 곱한 것입니다. 예를 들어 기대수익 계산 시 확률이 높은 이익에 가충치를 높게, 확률이 낮은 이익에 가중치를 낮게 부여할 수 있습니다. 기댓값은 수학적으로는 평균값으로 생각할 수 있습니다. 평균을 아래의 예제처럼 각 변수의 확률과 값을 곱한 것으로 표현할 수 있기 때문입니다.


기댓값을 계산하는 일반적인 공식



기댓값을 사용한 분류자 사용


 : 고객이 프로모션을 응할 때의 가치

 : 고객이 프로모션을 응하지 않을 때의 가치

 : 고객이 프로모션을 응할 확률


기대값 프레임워크를 이용하면 문제의 핵심을 알 수 있습니다. 예를 들어, 어떤 하나의 프로모션을 통해서만 제품 프로모션을 진행한다고 가정합시다, 고객을 타겟으로 선정하지 않을 경우 기대효과는 0원, 고객은 제품을 20만원에 구입하며 제품생산 비용은 10만원, 모든 제반 비용은 1천원이라 가정하면 고객이 응답해 제품을 구입하는 경우 발생한 가치는 9만9천원이고 고객이 프로모션에 응하지 않을 때의 가치는 1천원의 비용이 듭니다. 이경우 수익이 날지, 손해가 날지 기댓값을 활용하면 판단할 수 있습니다. 타겟 마케팅 프로모션의 기댓값이 0보다 크면 수익이 난다고 판단할 수 있기 때문입니다.


이므로 고객이 프로모션에 응답할 확률이 1%보다 높을 경우 기대값이 0보다 커지므로 프로모션을 진행하자고 결정하면 됩니다.


기댓값을 사용한 분류자 평가


모델을 적용할 때 모델이 수행한 결정을 전체적으로 평가해야 하며, 여러 모델을 비교하는 것도 필요합니다. 이 때 각 모델을 평가 및 비교해야 하는데, 아래의 그림과 같이 모델을 유도하고 평과하는 과정을 거치며 기댓값을 계산하면 됩니다. 혼동행렬, 기대율, 비용/효과 정보 각각의 기댓값의 곱과 합을 통해 기댓값을 계산합니다.

출처 : Data Science for Business


오류율 계산


비즈니스 문제에서 기댓값 계산 시 확률을 어떻게 계산했는지에 대한 의문이 들 때 시험 데이터에 대해 결정한 확률은 오류율 및 적중률을 계산함으로써 혼동 행렬에서 합계로 추정할 수 있습니다. 혼동 행렬의 각 항목에는 예측과 실제 결과 데이터 조합에 해당하는 결정 횟수가 들어 있습니다. 이를 h는 가정, a를 실제 결과로 나타낸 count(h,a) 함수로 표현할 수 있습니다. 기댓값을 계산하기 위해 각 횟수count(h,a)를 전체 객체 수 T로 나누어 비율 p(h,a)로 바꿔줍니다.



2017/06/10 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.7 좋은 모델은 무엇인가?(분류자평가)

2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


데이터 과학과 데이터 마이닝의 목적


데이터 과학과 데이터 마이닝의 경우 일이 진행됨에 따라 목적을 간과하는 경우가 많습니다. 데이터 마이닝의 목적과 결과를 일치시키지 못하는 경우, 통계 데이터를 명확하게 이해하지 못한 채 보고를 한다든가, 마이닝 결과의 성능을 의미있게 측정하는 방법을 찾지 못하는 경우가 생기게 됩니다. 하지만 대부분 데이터 마이닝의 경우 충분히 갖춰지지 않은 시스템 하에 진행되고, 데이터를 구할 때 상당히 많은 비용이 들게 되며, 인과 관계 평가가 어렵기 때문에 일치하지 않을 수 있는 요인을 감안해야 합니다. 하지만 그럼에도 진정으로 측정하려는 것이 무엇인지 주의 깊게 생각해야 하는 것은 절대 놓쳐서는 안됩니다.
목적에 맞는 데이터 대신 다른 것을 선택해야하는 경우가 생긴다면 데이터 분석적인 사고를 기반으로 그 데이터를 선택해야 할 것입니다.

모델을 평가하는 방법을 종합적으로 설명하기는 어렵습니다. 단 하나의 평가 척도를 제공하기가 불가능하기 때문입니다. 하지만 평가하는 동안 발생하는 문제나 이를 처리하는 프레임워크 및 기법에는 공통점이 있기 때문에 이러한 기법들을 잘 활용하면 평가 프레임워크와 기법은 문제를 정의하는 단계에서부터 데이터 분석적으로 생각하도록 하여 기업을 조직화하는 데에도 도움이 됩니다.


분류자 평가


해로운 양성과 무해한 음성


양성, 음성에 대해 가장 많이 듣는 영역이 의료쪽이기 때문에 일반적으로 우리는 양성이라고 하면 나쁜 결과를 의미하고 주의를 기울일 필요가 있는 것으로 생각됩니다. 반대로 음성이라 하면 보통이거나 좋은 결과라 생각되고 정상적인 결과라 생각하게 합니다. 암 판정 검사이나 에이즈 검사 등 의료 검사에서 양성판정을 받는다면 좋지 않은 일이기 때문입니다. 하지만 실제로 양성, 음성은 각각 Yes, No를 의미한다고 생각하는 것이 좋습니다.


혼동행렬


분류 정확도는 양성, 음성으로 표현되기 때문에 측정하기 쉬워 널리 사용되는 척도입니다. 하지만 단일 항목에 대한 판단으로 너무 단순하여 실제 비즈니스 문제에 적용하기 부적합합니다. 때문에 분류자가 올바르게 판단한 횟수와 잘못 판단한 횟수를 분할하고 셀 수 있는 혼동행렬을 사용해서 정확도를 측정할 필요가 있습니다.

분류자를 제대로 평가하기 위해서는 혼동 행렬의 개념을 제대로 숙지할 필요가 있습니다. 혼동행렬은 일종의 분할표(N*N행렬)입니다. 분류자의 결정을 떼어내어 다른 계층과 어떻게 혼동되는 지를 명확히 보여줍니다. 이렇게 해서 서로 다른 오류를 따로 다룹니다. 예를 들어 실제계층을 p(positive), n(negative)로 나누고 모델예측 계층을 Y,N으로 나눕니다.


편중된 계층 문제


한 계층에 속한 개체 수가 매우 적은 경우에는 계층 편중 현상이 발생하게 됩니다. 이럴 경우 큰 모집합에서 상대적으로 적은 비정상적인 객체들을 찾기 위해 정상적인 객체들을 걸러내는 방법을 사용하게 됩니다. 이러한 방법은 결합이 있는 부품을 찾을 때 활용할 수 있습니다. 하지만 이 방법은 정확도는 좋은 측정 방법이 아닙니다. 계층 분배가 편중되어 있을수록 정확도에 기반한 평가는 실효성이 없어지게 됩니다.


비용대비 효과의 불균형 문제


분류 정확도의 또 하나의 문제는 위양성과 위음성의 오류를 구분하지 못한다는 것입니다. 오류 횟수로 두 에러를 평가하지만 분류 결과가 미치는 심각성은 서로 다릅니다. 쉬운 예로, 병에 걸리지 않은 환자에게 병에 걸렸다고 오진하는 경우입니다. 이 경우 위양성 오류인데요, 결과적으로 환자는 추가검사 등을 통해 진단이 잘못되었음을 알게 될 것입니다. 물론 환자의 생명을 위협하지는 않겠지만 불편함과 스트레스를 일으키며 비용을 들게 하는 문제가 발생합니다. 반대의 경우는 병에 걸린 환자가 병에 걸리지 않았다고 오진하는 경우인데요, 이 경우에는 병에 대한 조기 발견할 기회를 놓치게 하고 더 심각한 결과를 초래할 수 있습니다.  때문에 분류자의 결정에 따른 비용 또는 효과를 추정해야할 필요가 있습니다. 추정한 결과의 합계를 구하면 분류자를 통해 얻을 수 있는 기대 수익을 예측할 수 있습니다.



2017/06/07 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.6 유사도

2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


유사도(Similarity)와 거리(Distance)


유사도는 객체를 특징벡토로 표현하는 것으로 시작합니다. 특징을 정의하는 공간에서 두 객체가 가까울수록 두 객체는 더 비슷하도고 할 수 있습니다. 거리가 가까우면 유사하고 거리가 멀면 유사하지 않습니다. 즉 0에 가까울 수록 유사하다 할 수 있고 1에 가까울수록 유사하지 않다고 할 수 있습니다.


유클리드 거리


유클리드 거리는 두 가지 객체의 특징을 2차원 공간에서 (x,y)로 A, B라는 점으로 표현하고 각각의 좌표를 직각 삼각형으로 연결하고 사선의 변을 연결한 A와 B의 거리를 유클리드 거리라고 합니다. 단, 유클리드 거리는 2차원에 국한되지 않고, 3개의 특징을 가진 객체라면 (x,y,z)로 표현할 수 있습니다. 쉽게 말하자면, 어릴 때 부터 배워온 그 거리 개념으로 x, y축으로 나타내는 그 공간을 유클리드 공간이라고 생각하시면 됩니다.


최근접 이웃 추론(Nearest Neighbor)


최근접이웃이란 가장 비슷한 객체를 말합니다. 최근접 이웃 추론은 연관규칙분석의 하나로 연관성이 높은 객체들로 구성된 규칙집합을 생성합니다. 주로 추천 시스템에 사용되고 "장바구니 분석"이라고도 불립니다. 

유클리드 거리


타겟 변수를 예측하려는 데이터를 받으면 훈련세트에 있는 모든 데이터를 조사해 예측하려는 데이터와 가장 비슷한 데이터를 몇 개 찾아냅니다. 그 다음 타겟 값을 알고 있는 최근접 이웃에 기반한 새로운 데이터의 타겟값을 예측하면 되는 것입니다.


그렇다면 최근접 이웃 추론을 하기 위해서는 얼마나 많은 이웃이 필요할까요?


두 계층의 문제의 경우 다수결로 투표할 때 동점이 되지 않도록 홀수를 사용합니다. 최근접 이웃의 알고리즘은 종종 3-NN, K-NN형태의 약자로 표현합니다. 이때 K는 이웃의 개수를 의미하며, K가 커질 수록 이웃과 잘 어울릴 확률이 높아집니다. 하지만 K가 너무 커지게 되면 과적합화를 피할 수 없게 되므로 k를 1부터 늘여나가면서 가장 성능이 좋은 K를 찾아야 합니다.

가중치 적용투표, 유사도반영투표

이웃 표본개수를 확정했더라도 표본과 이웃의 거리가 다른 점 또한 간과할 수는 없습니다. 최근접 이웃의 레이블에 거리에 대한 가중치를 반영한 것이 가중치 적용투표, 유사도반영투표라고 합니다.


기하해석, 과적합, 복접도 제어

최근접 이웃기법을 시각화한 것으로 객체공간을 체계적으로 조사하여 각 점으로 분류하고 분류가 바뀌는 경계점을 만들어가면서 계산할 수 있습니다. 다르게 분류된 객체 사이에 점선을 그으며 들쭉날쭉한 도형이 생성되는데 일반적으로 모든 최근접 이웃 분류자의 경계선은 불규칙적인 반면, 객체 공간 훈련에 사용된 데이터에 딱 맞는 경계선이 만들어집니다. 하나의 섬처럼 표현된 객체는 일종의 노이즈나 외곽객체라고 볼 수 있습니다.


k-NN분류자에서 k는 복잡도를 나타내는 지표이며, k=1일 경우 매우 복잡한 모델을 얻게 됩니다.


최근접 이웃방법의 문제점


1. 모델 명료성

모델명료성에는 결정에 대한 정당성과 전체 모델의 명료성 두 가지 측면이 있습니다. 최근접 모델은 데이터로부터 어떤 지식을 마이닝해서 알아냈는지, 깊이 있게 설명하는 일은 어렵습니다. 따라서, 최근접 이웃모델에 담겨진 지식은 일반적으로 이해하기 어려우므로 명료성과 정당성이 중요한 경우에 최근접 이웃 모델은 맞지 않는 경우가 많습니다.


2. 차원 및 영역지식

고객 DB에는 여러가지 정보가 저장되어 있습니다. 예를 들어 신용카드에 가입할 지 안할지 여부와 관련이 있을 수 있지만 관련이 없는 정보도 다수 포함하고 있습니다. 이 문제는 차원이 높아서 발생하는 고차원문제라고 하며 차원수의 저주(Curse of Dimensionality)라고 합니다. 간단히 말해 거리를 계산할 때 모든 속성을 포함시키면 관련 없는 속성들이 객체에 너무 많은 영향을 주 객체 유사도 측정에 혼란을 일으키게 되는 것을 말하며, 해결방법으로는 특징을 신중하게 결정해 데이터 마이닝 모델에 포함할지를 결정하는 특징선택(Feature Selection)과 속성마다 서로 다른 가중치를 부여해 거리함수를 조절하는 방법이 있습니다.


3. 계산효율성

객체와 가장 가까운 이웃을 찾기 위해 DB를 검색함으로 대부분의 계산은 예측 및 분류 단계에서 발생하는 데 이 때 계산량이 엄청나게 많아 처리 부담이 발생하게 됩니다. 따라서 수십미리초 안에 계산해야하는 온라인 타겟광고 등에는 최근접 이웃기법을 사용하기 어렵습니다.


유사도 및 이웃에 관한 주요 세부사항


이질적인 속성


지금까지 유클리드 거리를 이용해 거리 계산만 하였으라 속성이 추가된 사례가 있습니다. 예를 들면 나이와 화폐가치를 들 수 있는데 속성간의 단위를 차별화 하지 않으면 소득의 10원과 나이의 10살을 동일하게 처리하게 됩니다. 최근접 이웃에 기반한 시스템은 데이터 전반부에서 변수 값의 규모나 단위를 조정하거나, 고정된 개수의 항목에 배분하는 전처리 작업이 수반되어야 합니다.


다양한 거리 함수


유클리드 거리(Euclidean Distance)(L2-Norm)

앞서 말했듯이 가장 널리 사용되는 거리 측정법입니다.


맨하탄거리(Edit Distance)(L1-Norm)

격자형으로 된 맨하탄 시내 같은 곳에서 두 점 사이에 이동하는 거리 측정법으로 '가로이동거리+세로이동거리=전체이동거리' 입니다.

빨간색 거리 = 파란색 거리


자카드거리(Manhattan Distance)

객체 집합간의 거리를 표현하는 것이며 두 집합이 얼마나 유사한 지 알 수 있기때문에 양쪽 객체 모두에게 있는 특징은 중요하지만 한쪽에만 있는 특징은 중요하지 않은 경우에 사용합니다.


코사인거리(Cosine Distance)

두문서의 유사도를 분류할 때 사용되는 거리로 텍스트를 분류할 때 어떤 문서가 다른 문서보다 훨씬 길다는 점을 무시하고 단지 내용에만 집중하고자 하는 경우 사용합니다.



편집거리(Edit Distance), 레벤쉬타인 거리(Leveinshtein Distance)

문자열 간의 거리 측정할 때 사용되며 글자를 변환하고 치환하는 편집연산을 활용해 한 문자열을 다른 무자열로 변환하기 위한 편집횟수를 계산하고 혼합하여 전체적인 유사도를 구합니다. 때문에 두 문자열이 얼마나 비슷한 지 확일할 때 사용되며 편집하는 데 걸리는 편집 횟수를 측정하여 편집거리를 구할 수 있습니다.



2017/06/03 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.5 과적합화

2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기



일반화


모델이나 모델링 프로세스의 특성윽로서 모델 제작에 사용되지 않은 모든 데이터에도 모델을 적용할 수 있는 성질을 뜻합니다.


과적합화


어떤 데이터 세트를 관찰해봄으로써 그 데이터 안에 존재하는 패털을 발견하게 되는 것으로 모델 복잡도와 과적합화 문제는 근본적으로 동전의 양면과 같은 관계입니다. 과적합화 문제는 알아내기도 쉽지 않을 뿐더러 안다하더라도 과적합화 되지 않는 데이터 마이닝 절차를 사용할 수 있는 것도 아닙니다. 과적합화를 한번에 해결할 수 있는 방법이나 절차가 없기 때문입니다.


과적합화 검사


적합도 그래프

모델 복잡도에 따른 모델의 정확도를 보여주는 그래프입니다.

예비 데이터(Holdout) : 타겟 변수값을 예측할 실제 데이터는 아니지만, 실험실에서 모델의 일반화 성능을 측정하기 위해 떼어 놓는 데이트를 의미합니다. 일반적으로 모델이 복잡해지에 따라 과적합화 문제가 커집니다.


트리 유도에서의 과적합화

데이터가 적어질수록 추론 오류가 발생하기 쉬워지며, 예비 데이터에 대한 성능도 떨어지게 됩니다.

스위트 스팟(Sweetspot) : 과적합화가 일어나는 시점으로 스윗 스팟을 넘어가면 정확도가 내려가게 됩니다. 스위트 스팟을 결정하는 것은 경험에 기반한 방법에 의존할 수 밖에 없습니다. 경제학에서 말하는 균형점(Equilibrium) 같은 거라고 생각하시면 편하지 않을까 생각됩니다.


수학 함수에서의 과적합화

변수(속성)를 추가하면 수학 함수는 더 복잡해지고, 데이터 세트에는 있는 속성을 모두 사용하면 모델링 절차는 훈련 세트에 잘 맞을 가능성이 훨씬 커집니다. 다만 속성을 추가할 수록 목적함수는 복잡해져 과적합화 되기 쉽기 때문에 주의해야 합니다.


왜 과적합화가 문제가 될까?


과적합화가 문제가 되는 이유는 모델이 복잡해지면서 해로운 가짜 연관성까지 학습하게 되기 때문입니다. 가짜 연관성은 훈련 세트에만 존재하는 특이한 성질일 뿐이며, 모집단 전체의 특성은 아닙니다. 때문에 가짜 연관성을 잘못 일반화하게 되면 과적합화 문제가 발생되고 모델의 성능이 떨어뜨리게 됩니다. 문제는 앞서 말씀드린대로, 과적합화 문제는 알아내기도 쉽지 않고, 과적합화를 피할 수 있는 절대적인 방법도 없다는 것입니다.

과적합화 문제는 분류 트리에만 국한되지 않으며 훈련데이터가 비정상적으로 편향되어 있어 발생하는 것도 아닙니다.


예비 데이터의 평가와 교차 검증


예비 세트가 어느정도 일반화 성능을 추정할 수 있게 도와주기는 하지만 이 실험 역시 단 한세트에 대한 추정일 뿐입니다. 즉, 단 한번 실험해 얻은 결과에 대한 정확도에 대한 확신을 가지기 어렵기 때문에 교차검증을 실시해야 합니다.


교차검증 : 일반화 성능을 딱 한번 추정하는 대신 평균이나 편차, 분산과 같은 추정된 성능에 대한 통계 데이터를 갖게 되면 데이터 세트에 따라 성능이 어떻게 바뀔지 예측할 수 있습니다. 교차검증은 제한된 데이터 세트를 더욱 잘 활용할 수 있게 만들어 줍니다. 표본을 체계적으로 바꿔가면서 '모든' 데이터에 대해 추정치를 계산해나가면 됩니다.


학습곡선


훈련 데이터야에 따른 일반화 성능을 보여주는 그래프

나머지 조건이 동일하다면 어느 정도까지는 더 많은 훈련 데이터를 사용할수록 모델링의 일반화 성능은 대체로 향상됩니다. 데이터 증가에 의한 장점이 어느 정도 한계에 달하면서 학습곡선은 완만해집니다. 학습곡선에 의하면 데이터 세트가 작을 때는 트리 유도가 과적합화 되기 쉬우며 로지스틱 회귀분석 모델의 성능이 더 좋은 것을 알 수 있습니다. 하지만 데이터 세트가 커지게 되면 트리 유도의 유통성이 도움이 됩니다.


학습곡선과 적합도 그래프간의 차이점은 학습곡선의 X축은 사용한 훈련데이터 크기를 나타내며, 시험 데이터에 대한 일반화 성능만 보여줍니다. 적합도 그래프의 X축은 모델의 복잡도로서, 훈련 데이터에 대한 성능뿐만 아니라 일반화 성능도 나타냅니다.


과적합화 회피와 복잡도 제어

균일화 : 균일화는 모델 복잡도를 통제하는 범용적인 방법입니다. 과적합화를 피하려면 데이터에서 유도된 모델의 복잡도를 제어해야 합니다.

균일화 방법

1) 너무 복잡해지기 전에 트리의 성장을 멈추게 해야 합니다. 가장 간단한 방법은 단말 노드에 들어가는 객체의 수의 최소 한도를 정하는 것입니다. 이 때, 객체수는 가설 검증을 통해 결정합니다. 가설 검증에 따라 정보량이 우연히 증가한 것이 아니라면 더 분할하고 트리를 계속 키우면 됩니다.

* 가설검증 : 어떤 통계 데이터에서의 차이가 단지 우연히 생긴 것인지 아닌지 평가하는 방법입니다.

2) 트리를 최대한 키운 후에 가지치기(프루닝,pruning)을 해서 복잡도(데이터의 크기)를 줄입니다. 일반적으로 프루닝은 단말 노드들과 가지를 하나의 단말 노드로 바꿀 때 정확도가 떨어지는 추정하기 위한 것입니다. 만약 정확도가 떨어지지 않는다면 프루닝을 하는 것이 좋습니다.

3) 내포된 교차 검증 : 내포된 교차 검증과 일반적인 교차 검증과의 차이점은 각 폴드 안에서 C값을 찾아내기 위해 더 작은 규모의 교차 검증을 먼저 한다는 것 뿐 방법적인 측면에서 큰 차이점은 없습니다.

4) 순차 전진 선택 기법 

5) 순차 후진 제거 기법

6) 파라미터 최적화에서 과적합화 피하기 : 트리와는 달리 로지스틱 회귀분석과 같은 방정식은 포함시킬 속성을 자동으로 선택하면 선택하지 않으므로 '올바른' 속성 집합을 직집 선택해 복잡도를 제어해야 합니다. 목적함수에 복잡도에 대한 벌점을 추가하여 균일화를 통해 복잡도를 제어할 수 있습니다. 람다(λ)는 벌점에 부여할 지 결정하는 가중치, 훈련 데이터에 내포된 교차 검증을 통해 결정합니다. 람다를 이용해 전체 훈련 데이터에 대한 균일화된 모델을 만들 수 있습니다. 데이터 마이닝 절차에 사용할 파라미터 값을 최적화하는 이와 같은 방법을 통틀어 격자 검색이라고 합니다.



2017/05/28 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.4 데이터에 대한 모델 적합화(수학 함수를 이용한 회귀분석과 로지스틱 회귀분석)

2017/05/27 - [Cyong's 마케팅/Data Science] - [Data Science] Ch.3 데이터에 대한 모델 적합화(수학 함수를 통한 분류)

2017/05/24 - [Cyong's 마케팅/Data Science] - [Data Science] Ch2. 트리구조모델

2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기


+ Recent posts