비용과 효과


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

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

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

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


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


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

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

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


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


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


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



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. 예측모델링_정보전달하는 속성 찾아내기


일반화


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


과적합화


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


과적합화 검사


적합도 그래프

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

예비 데이터(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. 예측모델링_정보전달하는 속성 찾아내기


트리 구조 모델을 이용한 감독 세분화


속성 선택이 매우 중요하긴 하지만 속성을 선택하는 것이 전부는 아닙니다. 만약 정보량을 증가시키는 속성이 하나가 아니라 여러 개 존재한다면 이 속성들을 어떻게 결합해야 할 지 판단하기 쉽지 않습니다. 이럴 때는 중요한 속성을 골라내기 위해 개발한 방법을 활용한 다변량 감독 세분화 방법인 트리구조화 방법을 이용합니다.

출처:Data Science for Business


트리는 내부노드(Internal node)와 단말노드(Teminal node)로 나눠지며, 내부노드에서 가지가 뻗어 나옵니다. 트리구조는 모든 데이터가 트리에서 단 하나의 경로를 따라 결국 단 하나의 단말노드에 도착하도록 데이터를 분할합니다. 달리 말하면, 단말노드는 하나의 세그먼트(segment)이고, 여기에 도착하는 경우의 값은 세그먼트의 특성을 나타냅니다. 그리고 분류에 대해 설명하고 있으므로 각 단말 노드는 세분화한 그룹을 담고 있으며, 이런 트리를 분류트리 또는 결정트리라고 부릅니다.


데이터에서 분류트리를 만드는 방법


트리유도는 분할정복법을 이용합니다. 우선 전체 데이터 세트에서 속성을 기준으로 가장 순수한 하위그룹으로 분할하는 변수를 찾습니다. 그리고 이를 재귀적으로 반복하여 트리를 유도할 수 있습니다.


확률 추정


트리의 단말 노드에 있는 모든 객체에 동일한 계층확률을 부여해도 된다면 단말노드에 있는 객체의 수를 이용해 계층 확률 추정치를 계산할 수 있습니다. 예를 들어 단말노드에 n개의 긍정적인 객체와 m개의 부정적인 객체가 있다면 새로 세그먼트로 분류된 객체가 이 계층에 속할 확률은 입니다. 이렇게 확률을 계산하는 방법을 빈도기반 계층확률추정이라고 합니다. 그러나 객체 수가 적을 때는 난관적인 결과(과적합화(overfitting))를 초래할 수도 있습니다. 이럴 경우에는 단순히 빈도를 계산하는 대신 빈도를 완충시킬 수 있는 라플라스 교정법을 사용해서 아래와 같은 식으로 바꿔줍니다.

(n은 단말노드, c는 계층에 속하는 객체의 수, m은 c객체에 속하지 않는 객체의 수)


트리유도로 고객이탈 문제 해결하기


분류트리를 만들기 전 '고객이탈을 예측하는 데 변수들의 중요성'을 알기 위해 각 속성의 정보증가량(IG)을 측정합니다.

(IG에 대한 설명 참고 - 2017/03/25 - [Cyong's 마케팅/Data Science] - [Data Science] Ch1. 예측모델링_정보전달하는 속성 찾아내기)

그리고 IG의 순위로 정렬한 속성데이터를 차례로 노드로 트리를 만듭니다. 하지만 루트노드를 제외한 모든 노드 변수는 전체 객체 집합이 아니라 상위노드에 의해 분류된 객체만을 평가하기 때문에 내부노드의 정보증가량 순위와 전체집합의 정보증가량은 다를 수 있습니다.(대게 같지 않습니다.)

+ Recent posts