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= 조건 )