용어정리

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