데이터 분석 준전문가/제4과목

제4장 정형 데이터 마이닝

표독's 2016. 2. 18. 18:14

제4장 정형 데이터 마이닝


학습목표

데이터 마이닝 이해

분류 분석 이해

party와 rpart패키지를 이용한 분류분석 방법 숙지

예측 분석 기법 이해

군집 분석 이해

k-means기법 숙지

연관 분석 척도 숙지


제1절 데이터 마이닝의 개요


데이터 마이닝 :

대용량 데이터에서 의미 있는 데이터 패턴을 파악하거나 예측을 위해 데이터를 자동으로 분석해 의사결정에 활용하는 방법


1. 데이터 마이닝 추진 단계


1단계 : 목적 설정

도입 목적을 분명히 한다. 데이터 마이닝을 통해 무엇을 왜 하는지 명확한 목적을 설정해야 한다. 이해 관계자 모두가 동의하고 이해할 수 있어야 한다.


2단계 : 데이터 준비

여기에 쓰는 데이터는 대부분 용량이 크므로 IT 부서와 사전에 협의해 데이터 접근 부하가 심한 일을 해도 문제가 없을 정도로 일정을 조율하고 도움을 요청한다. 이 단계에서는 데이터 정제를 통해 데이터의 품질을 보장하고 필요하다면 보강해 기법을 적용하는 데에 문제가 없도록 한다.


3단계 : 가공

데이터를 가공한다. 이 단계에서는 모델링 목적에 따라 목적 변수를 정의하고 필요한 데이터를 데이터 마이닝 스포트웨어에 적용할 수 있도록 적합한 형식으로 가공한다. 


4단계 : 기법 적용

데이터 마이닝 기법은 1단계에서 이미 결정됐어야 바람직하다. 소프트웨어를 사용하는 데 필요한 값을 지정하는 단계이기도 하다. 


5단계 : 검증

마이닝으로 추출한 정보를 검증하는 단계다. 테스트 마케팅이나 과거 데이터를 활용할 수 있다.

테스트 마케팅을 하는 것과 모델링의 차이를 잘 구분해야 한다. 


2. 데이터 마이닝을 위한 데이터 분할


데이터 마이닝을 적용한 후에는 그 결과의 신빙성을 검증해야 한다. 이를 위해 데이터를 일반적으로 구축용, 검정용, 시험용으로 구분한다.


구축용 데이터 : 초기의 데이터 마이닝 모델을 만드는 데 사용되며, 추정용 또는 훈련용이라고도 불린다.

검정용 데이터 : 구축된 모델의 과잉 또는 과소맞춤 등에 대한 미세조정 절차를 위해 사용되는 데이터다.

시험용 데이터 : 위의 데이터 마이닝 추진 5단계에서 검증용으로 사용하는 데이터다. 


일반적으로 데이터의 구축용(50%), 검정용(30%), 시험용(20%)로 분리한다.


3. 데이터 마이닝 모형 평가

데이터 마이닝 모형은 프로젝트의 목적과 내용에 따라 달라진다. 


제2절 분류분석


1. 분류 모델링


분류분석이란 데이터의 실체가 어떤 그룹에 속하는지 예측하는 데 사용하는 기법이다.

   - 고객 기록을 특정한 등급으로 나눈다는 점에서 클러스터링과 유사하지만, 분류분석은 군집분석과 달리 각 계급이 어떻게 정의되는지 미리 알아야 한다.


분류는 객체를 정해놓은 범주로 분류하는 데 목적이 있다.


분류를 위해 사용되는 데이터 마이닝 기법 : 

최근접 이웃, 의사결정 나무, 베이지안 정리, 인공신경망, 지지도벡터기계, caret


분류 뿐만 아니라 상황을 판단하거나 어떤 분류에 속하는 집단의 특성을 알아내거나 예측을 위해 사용되기도 한다.


가. 의사결정나무

분류함수를 의사결정 규칙으로 위뤄진 나무 모양으로 그리는 방법이다. 

잎은 분류 결과에 따라 분리된 데이터를 의미한다. 

나무구조는 연속적으로 발생하는 의사결정 문제를 시각화해 의사결정이 이뤄지는 시점과 성과를 한눈에 볼 수 있게 한다.

계산결과가 의사결정나무에 직접 나타나게 돼 분석이 간편하다.


노드 : 나무 그림에서 타원은 변수에 대한 물음이다.

최상위 노드는 뿌리 노드라고 부른다.


나. 의사결정나무의 활용

세분화 : 데이터를 비슷한 특성을 갖는 몇 개의 그룹으로 분할해 그룹별 특성을 발견하는 경우 또는 각 고객이 어떤 집단에 속하는지를 파악하고자 하는 경우다.

분류 : 관측개체를 여러 예측변수들에 근거해 목표변수의 범주를 몇개의 등급으로 분류하고자 하는 경우다.

예측 : 자료에서 규칙을 찾아내고 이를 이용해 미래의 사건을 예측하고자 하는 경우다.

차원축수 및 변수선택 : 매우 많은 수의 예측변수 중에서 목표변수에 큰 영향을 미치는 변수들을 골라내고자 하는 경우다.

교호작용효과의 파악 : 여러 개의 예측변수들을 결합해 목표변수에 작용하는 규칙(교호작용효과)을 파악하고자 하는 경우다.

범주의 병합 또는 연속형 변수의 이산화 : 범주형 목표변수의 범주를 소수의 몇 개로 병합하거나 연속형 목표변수를 몇 개의 등급으로 이산화 하고자 하는 경우다.


다. 의사결정나무의 특성


-결과가 누구에게나 설명이 용이하다.

-정확도가 다른 분류모형에 뒤지지 않는다.

- 만드는 방법이 계산적으로 복잡하지 않고, 빠르게 만들 수 있으며, 한번 모델링을 하면 소속집단을 모르는 데이터를 분류하는 작업도 매우 빠르게 할 수 있다.

- 의사결정나무 알고리즘은 비정상적인 잡음 데이터에 대해서도 민감함이 없이 분류할 수 있다.

- 한 변수와 매우 상관성이 높은 다른 불필요한 변수가 있더라도 의사결정나무는 크게 영향을 받지 않는다. 그러나 불필요한 변수가 많아지면 나무의 크기가 커질 수 도 있으니 분류 전에 불필요한 변수를 제거해야 하는 작업이 필요하다.


R에서 지원되는 분류

rpart, rpartOrdinal, randomForsest, party, Tree, marginTree, MapTree등 다양한 방법이 있다.


2. 성과분석과 스코어링


가. party 패키지를 이용한 의사결정나무


party 패키지의 핵심

사용하기 편한 다양한 분류 패키지 중 하나.

분실값을 잘 처리하지 못하는 문제를 갖는다.

투입된 데이터 표시가 되지 않거나 predict가 실패하는 경우, 명목변수의 테스트 데이터가 train과 다르게 처리되는 문제가 있다.


나. rpart를 이용한 의사결정나무

CART와 유사한 트리다.

예측 오차를 최소화 할 수 있다.


다. 랜덤 포리스트

random input에 따른 forest of tree를 이용한 분류방법이다.

대용량 데이터에서 효율적으로 실행된다.

수천 개의 변수를 통해 변수제거 없이 실행되므로 정확도 측면에서 좋은 성과를 보인다.

특히 unbalanced된 클래스의 모집단을 잘 지원한다.


제약점 : category variable의 value종류가 32개를 넘을 수 없음. 이에 대한 대안으로

party 패키지의 randomforest를 사용할 수 있다.


라. ROCR 패키지로 성과분석


다양한 성과분석이 있는데 ROC analysis와 Lift analysis에 대해 알아보자.


ROCR 패키지는 binary classification만 지원한다.


마. caret

분류 관련 알고리즘이 수십 가지다 보니 각각 형식이 다르고 혼란스럽기까지 하다.

전체적으로 동일한 형식으로 사용할 수 있도록 한 caret패키지도 있다.


제3절 예측분석

분류와 예측은 불연속적인 값과 연속적인 값을 목표로 값을 한다는 점에서 차이가 있다.


1. 활용분야


가. 행동예측 유형

특정행동 예측능력이 뛰어날수록 더욱 정교한 고객관계활동을 전개할 수 있으나, 행동의 결과를 모두 상식적으로 설명할 수 있어야 한다는 것은 잘못된 생각이다. 


나. 휴먼 이탈 예측

다. 등급변동 예측

라. 신규고객 우수가망 예측

마. 상품구매 예측

바. 캠페인 반응예측


2. party 패키지를 이용한 airquality 데이터 선형모델링(lm)


제4절 군집분석


1. 군집분석 개요


군집분석은 특성에 따라 고객을 여러 개의 배타적인 집단으로 나누는 것이다. 결과는 방법에 따라 차이가 날 수 있다.


군집의 개수나 구조에 대한 가정 없이 데이터로부터 거리 기준에 의해 자발적인 군집화를 유도한다.


통계적 기법을 사용하는가 or 임의적으로 나누는가

통계적 기법은 1, 2세대 알고리즘을 이용해 사용돼 왔으나 실무적용성에 대한 논란이 많았다.

임의적 방법은 논란의 여기자 많으나 많이 사용돼 왔다.


2, 전통적 군집분석


가. 기존 세분화 방법의 유형


임의로 나누는 방법 : 고객 등급과 고객 구분(신규/기존)이라는 두 변수로 나누거나 현재가치와 미래가치를 기준으로 4분면이나 9개의 집단으로 나누는 등 다양한 방법 존재


통계적 기법을 이용한 방법 : clustering, k-means 등


나. 전통적 세분화 방법의 문제점


전통적 세분화 방법 : 변수를 선정하고 구간대로 나눈 다음, 이를 기준으로 격자형으로 단순히 나누고 집단이 적으면 병합하는 방식과 단순 clustering, k-means가 있다.


단순 격자형은 오랜 시간 소요되고 후처리로 병합할 때 원칙이 명화갛지 않다는 것.

격자나 cluster, k-means의 공통적인 문제는 변수의 특성으로 인한 변동에 따라 의미 없이 고객집단이 이동하게 된다는 것.


이런 경우 세분화를 안정적으로 관리하면서 전략 수립과 액션을 할 수 없고, 자연스러운 변화에 마치 의미가 있는 것 처럼 이리저리 끌려감. 특히 세분집단의 수가 많은 경우 더 심해짐


해결 하기 위해 k-means에 SRM을 결합한 방식, 세분집단의 변화가 많지 않다.

집단은 안정적으로 유지, 해당 집단에 속한 고객이 변화.


다. 목표기반 세분화 방법

고객가치 또는 특정상품을 구매하는 고객을 타깃으로 세분화하는 방법

해당 집단이 많이 존재하는 집단과 그렇지 않는 집단으로 구분되며, 이러한 집단들도 다른 변수들에 의해 집단의 특성이 구분된다.


라. 프로파일링 방법

누가 사용해도 동일한 결과가 나오는 프로파일링 기법이 필요하다.

자동화한 방식으로 세분화가 되고 프로파일링돼야 동일한 데이터에 대해 일관된 품질의 결과가 나오게 된다.

세분화한 집단의 프로파일링은 집단을 변별하는 가장 유의미한 변수 순서로 표시돼야 하며, 이것 또한 자동으로 이뤄져야 한다. 그리고 고정된 변수로 다양한 세분집단을 비교할 수 있어야 한다.


마. 세분화 수행기간

일반적으로 세분화를 수행하고 보고서를 작성하는 데 마트 준비부터 총 2개월은 걸린다. 매우 낭비적인 방식이다.

그래서 나온 방법이 군집분석이다. 일단 군집을 3~10개 정도 사이로 나누어 보면 군집 내에서 분산의 크기 통계에 따라 몇 개로 나누는 경우가 적합한지를 알 수 있고, 그러한 군집 개수 내에서의 프로파일을 보면 한 번에 데이터 전체에 대한 특성을 파악할 수 있다. 


바. 세부집단 개수

마케팅 및 영업 전략수립을 할 때 전략적으로 집단을 MECE하게 나누는데, 이러한 경우 MECE한 집단이 어느 정도는 규모를 갖춰야 의미가 있으므로 보통 3~10개 정도로 나뉜다. 


사. 거리

군집분석에서는 관측 데이터 간 유사성이나 근접성을 측정해 어느 군집으로 묶을 수 있는지 판단해야 한다. 그 측도로 데이터간의 거리를 이용할 수 있다. 관측값들이 서로 얼마나 유사한지 또는 유사하지 않은지를 측정하는 방법으로 변수들이 연속형인 경우에 다음과 같은 거리들을 사용한다.


유클리드 거리/표준화 거리/ 마할라노비스 거리/체비셰프 거리/ 맨하탄 거리/ 캔버라 거리/ 민코우스키 거리


3. 계층적 군집방법

계층적 군집방법은 n개의 군집으로 시작해 점차 군집의 개수를 줄여나가는 방법이다. 군집분석에서는 관측벡터간의 거리뿐만 아니라 군집간 거리에 대한 정의가 필요하다.


가. 최단연결법

거리가 가장 가까운 데이터가 U와 V라면, 먼저 두 데이터를 묶어서 군집(UV)을 혈성한다. 다음 단계는 UV와 다른 데이터 또는 군집과의 거리를 계산한다.


나. 최장연결법

최장연결법은 거리행렬에서 거리가 가장 먼 데이터가 U와 V라면, 우선 두 데이터를 묶어서 군집(UV)을 혈성한다. 다음 단계는 군집(UV)과 나머지 (n-2)개의 다른 데이터 또는 군집과의 거리를 계산한다.


다. 평균연결법

평균연결법은 거리가 가장 가까운 데이터가 U와 V라면, 두 데이터를 묶어서 군집(UV)을 혈성한다. 다음 단계는 군집(UV)과 나머지 (n-2)개의 다른 데이터나 군집과의 거리를 계산한다. 군집(UV)과 군집 W와의 평균 거리를 다음과 같이 계산한 후 거리행렬 중 가장 가까운 데이터와 다시 군집을 형성 한다.


바. 와드연결법

와드연결법은 군집내 편차들의 제곱합을 고려한 방법이다. 군집 간 정보의 손실을 최소화 하기 위해 군집화를 진행한다.


4. 비계층적 군집방법


계층적 군집 방법 외에 비계층적인 방법으로 군집으로 군집을 형성할 수 있다. 


K-평균법 절차

1) 원하는 군집의 개수와 초기 값(seed)들을 정해 seed 중심으로 군집을 형성한다.

2) 각 데이터를 거리가 가장 가까운 seed가 있는 군집으로 분류한다.

3) 각 군집의 seed값을 다시 계산한다.

4) 모든 개체가 군집으로 할당될 때까지 위 과정들을 반복한다.


K-평균법은 계층적 군집 방법과는 달리 한 개체가 속해 있던 군집에서 다른 군집으로 이동해 재배치가 가능하다. 초기값 선택이 최종 군집 선택에 영향을 미친다. 


가. 비계층적 군집화의 장점

1) 주어진 데이터의 내부구조에 대한 사전정보 없이 의미 있는 자료구조를 찾을 수 있는 방법이다.

2) 다양한 형태의 데이터에 적용가능하다. 즉 관찰치 간의 거리를 데이터형태에 맞게 정의하면 모든 형태의 데이터에 대해 적용이 가능한 방법이다.

3) 분석방법의 적용이 용이하다.


나. 비계층적 군집화의 단점

1) 가중치와 거리정의가 어렵다.

2) 초기 군집수를 결정하기 어렵다.

3) 사전에 주어진 목적이 없으므로 결과 해석이 어렵다.


5. 최신 군집분석 기법들의 적용


가. K-means

wine 데이터를 이용하기 위해 HDclassif 패키지 설치 

xlab옵션과 ylab 옵션으로 x축과 y축 이름 설정 가능


나. PAM

탄탄한 K-means라고 할 수 있다.

결측값 허용

프로파일링시 실제 observation으로 표현해주는 장점이 있다.

대용량 데이터에 대해서는 처리 시간이 급상승한다는 단점을 갖는다.


다. overall cluster.R

라.Hierarchical Clustering

마.Density-based Clustering


바. Fuzzy Clustering

특징 : 숫자변수만 가능하고, NA 허락

        k개의 cluster가 생성되는데 개수는 observation/2개 까지 가능


제5절 연관분석


1. 연관성 규칙


가. 연관성 규칙의 개념

연광성분석은 흔히 장바구니분석, 서열분석이라 불린다.


교차판매를 할 때 효율적.

어느 고객이 어떤 제품을 같이 구매할까?


if-then(조건과 반응), "If- A then  B"와 같은 형식으로 표현되는 규칙


나. 연관성분석의 측도

지지도(lift), 신뢰도(confidence), 향상도(lift) 값을 잘 보고 규칙을 선택해야 한다.

그리고 연관성 분석 Average Duration을 고려해 적용하지 않으면 낭패를 보게 된다.


1) 지지도(Support) : 

 전체 거래 중 항목 A와 항목 B를 동시에 포함하는 거래의 비율로 정의된다. 전체 거래 중 항목 A와 항목 B를 동시에 포함하는 거래가 어느 정도인지를 나타내주며, 전체 구매 경향을 파악할 수 있다.


지지도 = A와 B가 동시에 포함된 거래수 / 전체 거래수


2) 신뢰도 (Confidence) : 

 항목 A를 포함한 거래 중에서 항목 A와 항목 B가 같이 포함될 확률은 어느 정도인가를 나타내주며 연관성의 정도를 파악할 수 있다.


신뢰도 = A와 B를 동시에 포함하는 거래수 / A를 포함하는 거래수


3) 향상도(Lift) : 

 A가 주어지지 않았을 때 품목 B의 확률에 비해 A가 주어졌을 때의 품목 B의 확률의 증가 비율이다. 구매가 서로 관련이 없는 경우에는 향상도가 1이 되고, 만약 1보다 크게 되면 예측이 우연적이기 보다 우수하다는 것을 뜻함. 1보다 작으면 우연적 기회보다 도움이 되지 않음을 의미


향상도 1 = 서로 독립적인 관계

향상도 < 1 = 음의 상관관계

향상도 > 1 = 양의 상관관계


향상도 = A와 B를 포함하는 거래수 / A를 포함하는 거래수 X B를 포함하는 거래수


다. 연관규칙분석 절차

 1) 최소 지지도를 정한다.

 2) 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾는다.

 3) 2에서 찾은 개별 품목만을 이용해 최소 지지도를 넘는 2가지 품목 집합을 찾는다.

 4) 위의 두 절차에서 찾은 품목 집합을 최소 지지도를 넘는 3가지 품목 집합을 찾는다.

 5) 반복적으로 수행해 최소 지지도가 넘는 빈발품목 집합을 찾는다.


라. 연관규칙의 장점

 1) 매력적인 기법 : 조건 반응으로 표현되는 연관성 분석의 결과 이해가 쉽다.

 2) 강력한 비목적성 분석기법 : 분석 방향이나 목적이 특별이 없는 경우 목적변수가 없으므로 유용하다.

 3) 사용이 편리한 분석 데이터의 형태: 거래 내용에 대한 데이터를 변환 없이 그 자체로 이용할 수 있는 간단한 자료구조를 갖는 분석방법이다.

4) 계산의 용이성: 분석을 위한 계산이 상당히 간단하다. 


마. 연관규칙의 단점

1) 상당한 수익 계산과정 : 품목수가 증가하면 분석에 필요한 계산은 기하급수적으로 늘어난다.

2) 적절한 품목의 결정 : 너무 세분화한 품목을 갖고 연관성 규칙을 찾으면 의미없는 분석이 될 수도 있다. 

3) 품목의 비율차이 : 거래량이 적은 품목은 당연히 포함된 거래수가 적을 것이고, 규칙 발견 시 제외하기가 쉽다.


바. 순차패턴

동시에 구매될 가능성이 큰 상품군을 찾아내는 연관성측정에 시간이라는 개념을 포함시켜 순차적인 구매 가능성이 큰 상품군을 찾아내는 것.


구매의 순서가 고려돼 상품 간 연관성이 측정되고 유용한 연관 규칙을 찾는 기법


2. 기존 연관성분석의 이슈

기존에는 대용량 데이터에 대한 연관성분석이 불가능하다는 점이었다. 또는 너무 당연한 결과를 도출해 활용할 실질성이 낮았다. 그러나 이러한 문제를 해결하기 위해 새로운 알고리즘들이 계속 나오고 있다.


3. 최근 연관성분석 동향

KXEN에서는 처음부터 1세대 알골즘은 Apriori나 2세대인 FP Tree가 아닌 3세대의 FPV를 이용해 메모리를 효율적으로 사용함으로써 SKU 레벨의 연관성분석을 성공적으로 적용했다.


4. 연관성분석 활용방안

실시간 상품추천을 통한 교차판매에 응용할 수 있다. 현재 관심이 없고 상호작용이 없ㄴ믄 고객은 타깃팅한다고 해도 성과가 나오지 않는다. 즉 연관성 규칙의 효과와 타깃팅의 효과를 결합해 테스트하는 것이 필요하다. 


5. 연관성분석


csv로 "," separator를 사용하는 경우 format이 문제가 생기는 데이터 형태이므로 tab separator를 이용한다. 


'데이터 분석 준전문가 > 제4과목' 카테고리의 다른 글

제6장 시뮬레이션 및 최적화  (0) 2016.02.19
제5장 비정형 데이터 마이닝  (0) 2016.02.19
제3장 데이터 마트  (0) 2016.02.18
제2장 통계분석  (0) 2016.02.17
제1장 데이터 분석 개요  (0) 2016.02.16