Chapter4 – 4. 정형 데이터 마이닝

4. 정형 데이터 마이닝

(1) 데이터 마이닝 개요

가) 정의

– 통계분석과의 가장큰 차이는 어떤 가설이나 가정에 따른 분석이나 검증이 아닌, 다양한 수리 알고리즘을 이용해 데이터베이스의 데이터로 부터

의미있는 정보를 찾아내는 방법을 통칭한다. (방법에 따라 인공지능, 의사경정나무, K-평균군집화, 연관분석, 회귀분석, 로짓분석, 최근접이웃 등으로 불림)

나) 데이터 마이닝 추진 단계

– 목적 설정 > 데이터 준비 > 가공 > 기법적용 > 검증

다) 데이터 마이닝을 위한 데이터 분할

– 데이터 분할 : 구축용, 검정용, 시험용

라) 데이터 마이닝 모형 평가

– 가장 보편 적인 기준은 손익

(2) 분류 분석

가) 분류 모델링

– 정의

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

. YES / NO , 생존 / 미생존과 같이 미리 정해진 Category 에 분류해서 넣는 작업

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

– 의사결정 나무 : Decision Tree 연속적으로 발생하는 의사 결정 문제의 시각화

– 의사결정 나무 활용

. 세분화, 분류, 예측, 차원축소 및 변수 선택, 교호작용과의 파악, 범주의 병합 또는 연속형 변수의 이산화

-의사결저어 나무의 특성

. 설명 용이, 정확도 높음, 계산이 복잡하지 않음(소속집단을 모르는 데이터도 분석 가능), 잡음 데이터에 강하다 , 변수간의 상관성이 높아도 크게 영향받지 않음

– R 지원 패키지

. rpart, rpartOrdinal, randomForest, party, Tree, marginTree, MapTree

나) 성과분석과 스코어링

– Party 패키지를 이용한 의사결정 나무

. 패키지 : party

. 생성 : ctree ( Fomula , data=데이터)

. 검증 : table(predict(모델) , 검증데이터 )

– rPart를 이용한 의사결정 나무

. 패키지 : rpart

. 생성 : rpart(Fomula, data=데이터, control=rpart.control(minsplit=10))

. 검증 : table(predict(모델) , 검증데이터 )

– 랜덤 포리스트

. 특징 : 대용량 데이터에서 효율적으로 실행되며, 변수 제거 없이 실행되어 정확도 측면에서 좋음

. 패키지 : randomForest

. 생성 : randomForest(종송변수 ~ . , data=데이터, ntree=최대 category 개수, proximity=TRUE)

. 변수 중요도 : importance(모델)

. 변수 중요도 그래프 : varImpPlot(모델)

. 검증 : plot(margin(모델, 검증데이터)) , 옳게 분류한 확률 – 잘못분류한확률 ( 0 ~ 1) (1이 좋음)

– ROCT 패키지

. 특징 : Binary Classification 만 지원

. 패키지 : ROCR

. 생성 : cforest(Formula , data=데이터, control=cforest_unbiased(mtry=3))

. 검증 : performance(prediction, 민감도, 특이도) , 민감도 : 1인 경우를 1이라 함 , 특이도 : 1인 경우를 0이라 함

performance(prediction, Lift, Rate of positivie prediction) : ?

– Caret 패키지

. 특징 : Classificaiotn 관련 패키지가 너무 많아 혼란스럽기 때문에 전체적으로 동일한 형식으로 사용할 수 있도록 지원하는 패키지

. 패키지 : caret , kernlab, e1071, doParallel, randomForest, pls, lattice, reshape

. 데이터 분리 (테스트 데이터, 트레이닝 데이터 분리) : createParition(데이터, p=0.7(트레이닝 데이터 70%))

. 생성 : train(x=종속변수 데이터 Set, y=독립변수 데이터 Set, method=”svmRadial”, preProc=c(“center”,”scale”), tuneLength=8, trControl=trainControl(method=”repeatedcv”, repeats=5),metric=”Kappa”, fit=FASLE)

. 예측 : predict(모델, 검증데이터)

. 그래프 : densityplot, parallelpot, bwplot

(3) 예측분석

가) 정의 : 분류와 예측은 불연속 데이터와 연속 데이터를 목표 값으로 한다는 점에서 차이가 있다

나) 활용 분야

– 행동예측 유형

– 휴면/이탈 예측

– 등급 변동 예측

– 신규 고객 우수 가망 예측

– 상품구매 예측

– 캠페인 반응 예측

다) party 패키지를 이용한 선형 모델링

– Decision Tree 분석 : ctree(fomula , data=데이터)

– 범주형 데이터를 제외하고 선형 분석 실행

(4) 군집분석

가) 개요

– 특성에 따라 여러개의 배터적인 집단으로 나누는 것

나) 전통적 군집 분석

– 기존 세분화 방법의 유형

. 임의로 신규/기존, 혹은 미래/현재 포함 4~9 분면으로 나눔

. 통계적 기법 : Clustering , k-Means

– 기존 방법의 문제점

. 분석을 진행하면서 프로파일 그룹자체가 변경되는 현상 발생

. 분석에 오랜 시간이 소요 됨

. 그룹은 3~10개로 정도로 나눈다 (개수를 늘렸을 때 그룹내의 분산 변동으로 판단)

– 거리

. 데이터 간의 거리를 군집에 사용

. 데이터(예) : x1 <- c(1,2)

. 유클리드 거리 : dist(데이터 , method=”euclidean”)

. 표준화 거리

. 마할라노비스 거리

. 체비셰프 거리

. 맨하탄 거리 : dist(데이터 , method=”manhattan”)

. 캔버라 거리 : dist(데이터 , method=”canberra”)

. 민코우스키 거리 : dist(데이터 , method=”minkowski”)

다) 계층적 분석 방법

– 최단 연결법 : 그룹간의 최소 값을 그룹간의 거리로 정의 (hclust 데이터, method=”single”))

– 최장 연결법 : 그룹간의 최대 값을 그룹간의 거리로 정의 (hclust 데이터, method=”complete”))

– 평균 연결법 : 그룹간의 평균 값을 그룹간의 거리로 정의 (hclust 데이터, method=”average”))

– 와드 연결법 : 편차들의 제곱합을 고려한 거리로 정의 (hclust 데이터, method=”ward”))

라) 비계층적 군집방법

– n개의 개체를 g개의 군집으로 나눌 수 있는 모든 가능한 방법을 점검해 최적화한 군집을 형성

– 아래는 그 순서

. 임의로 g의 중심을 정해 각 관측치를 가장 가까운 중심에 묶어 첫 번째 군집을 만듬

. 각 군집에 대해 군집 내 관측치의 거리를 계산하여 새로운 중심점을 구함

. 새로 정한 중심점에 대해 각 관측치를 가까운 중심점으로 다시 묶어 군집을 재 정의

. 재정의 된 군집이 이전과 일치할 때까지 2,3 반복

– 비계층 군집의 장점

. 주어진 데이터의 내부 구조를 모르고 자료 구조를 찾을 수 있는 방법

. 다양한 데이터에 적용 가능

. 분석 방법의 적용이 용이함

– 비계층 군집의 단점

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

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

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

마) 최신 군집 분석 기법들의 적용

– K-means

. 실행 : kmeans(데이터, 군집개수 지정)

. 검증 : table , plot

– PAM

. 결측값에 대한 허용 및 실제 pbservation 표시 등 robust 한 K-Means 알고리즘 이지만 대용량 데이터 처리시 속도 문제

. 패키지 : cluster

. 실행 : pam(데이터, 군집개수)

. 검증 : table, plot

– Hierarchical Clustering

. 기존 방식

– Density-based Clustering

. 지정 거리 범위 내, 객체 수를 만족하면 그룹이 됨

. dbscan(데이터 , eps=거리 범위 , MinPts=군집내 객체 수)

– Fuzzy Clustering

. 숫자 변수만 가능하며, NA 가 허용됨, k개의 Clustering 이 생성되는데 개수는 Obeservation /2 까지 가능

. 패키지 : Cluster

. 사용 : fanny(데이터, 그룹 개수)

(5) 연관분석 (Association Analysis)

가) 연관성 규칙

– 연관성 규칙의 개념

. 예) 빵을 사는 사람은 우유도 같이 산다

– 연관성 분석의 측도

. 지지도(Support) : 전체 거래중 A와 B 를 동시에 포함하는 비율

. 신뢰도(confidence) : A 를 포함한 거래중 B가 같이 포함된 비율

. 향상도(Lift) : A가 주어지지 않았을 때에 비해 A 가 주어졌을대 B 의 확률 증가 비율

– 연관 규칙 분석 절차

. 최소 지지도를 정한다

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

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

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

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

– 연관 규칙 분석의 장점

. 연관분석의 결과 이해가 쉽다

. 특별한 목적이 없는 경우 적용 가능

. 별도의 데이터 가공 없이 바로 구매 데이터에 적용 가능

. 분석을 위한 계산이 간단하다

– 연관 규칙 분석의 단점

. 품목이 늘어나면 그 계산 시간이 기하급수 적으로 늘어난다

. 너무 세부 품목으로 나누어져 있는 경우 그 결과가 의미 없을 수 있다

. 거래 수가 적은 품목은 검출이 힘들다

– 순차 패턴

. 시간 개념을 적용하여 순차 발생이 큰 대상을 찾는다

나) 활용 방안

– 패키지 : arules

– 데이터 변환 : as(데이터, “transaction”)

– 데이터 내용 조회 : inspect (트랜젝션 데이터)

– 요약 변수 생성 : ordered(cut (데이터, c(구간1, 구간2, 구간3) , labels(라벨1, 라벨2, 라벨3))

– 그래프 : itemFrequencyPlot(데이터, support=조회하고 싶은 지지도 )

– APRIORI 적용 : apriori(데이터, parameter=list(support=0.1 ,confidence=0.6))

– 조건 분석 : subset(룰데이터, subset= 조건 )

Leave a Reply

Your email address will not be published. Required fields are marked *