일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 코테
- KMOOC
- 공부정리
- ADP
- 백준
- 당신이 몰랐던 진화론
- Baekjoon
- K-MOOC
- 데이터분석전문가가이드
- 자료구조
- Joseph Samuel Nye Jr.
- CNN10
- 빅데이터
- 미분적분학
- Great Minds
- 맛집
- ADsP
- MySQL
- EBS
- python
- 알고리즘
- Udemy
- 데이터분석전문가
- 위대한 수업
- Progate
- 조지프 나이
- Hacker Rank
- 정치학
- 후기
- 누가 진정한 리더인가
Archives
- Today
- Total
ㅇ
[ADP_과목 4. 데이터 이해_제 3장 정형 데이터 마이닝] 본문
* 다음 내용은 [데이터 분석 전문가 가이드] (2019년 개정판)을 읽고 정리한 내용입니다.
제 1절 데이터 마이닝 개요
- 데이터마이닝
- 데이터 베이스에서의 지식발견
- 지식추출
- 정보수확
- 정보고고학
- 데이터 패턴 프로세싱
- 거대한 양의 데이터 속에서 쉽게 드러나지 않는 유용한 정보를 찾아내는 과정
- 모든 사용 가능한 원천 데이터를 기반으로 감춰진 지식, 기대하지 못했던 경향 혹은 새로운 규칙 등을 발견하고 이를 비즈니스 의사결정 등에 유용한 정보로 활용하고자 하는 일련의 작업
1. 분류(Classification)
- 현상을 이해위해 분류, 범주화, 등급으로 나눈다.
- 잘 정의된 분류기준과 선분류 되어진 검증 집합에 의해 모형이 구축된다
- 새롭게 나타난 현상을 검토하여 기존의 분류, 정의된 집합에 배정하는 것
- 분류 기법
- 의사결정나무
- memory-based reasoning
- link analysis
2. 추정(Estimation)
- 연속된 변수의 값을 추정
- 주어진 입력 데이터를 사용하여 알려지지 않은 결과의 값을 추정
- 추정 기법
- 신경망 모형
3. 예측(Prediction)
- 미래의 양상 예측하거나 미래의 값 추정하며, 더하여 분류나 추정과 동일한 의미도 포함한다
- 기법의 정확성을 확인하는 방법은, 기다리고 지켜보는 것
- 기술의 사용은 입력 데이터의 성격에 따라 다르다
- 예측 기법
- 장바구니 분석
- memory-based reasoning
- 의사결정나무
- 신경망
4. 연관 분석(Association Analysis)
- 아이템의 연관성을 파악
- 연관 분석 기법
- 장바구니 분석
5. 군집(Clustering)
- 이질적인 모집단을 동질성을 지닌 그룹 별로 세분화하는 것
- 선분류되어 있는 기준에 의존하지 않고, 레코드 자체가 지니고 있는 다른 레코드와의 유사성으로 그룹화되고, 이질성에 의해 세분화된다
- 주로 데이터 마이닝, 모델링의 준비단계로 사용
6. 기술(Description)
- 데이터가 가지고 있는 의미를 단순하게 기술
- 데이터가 암시하는 바에 대해 설명이 가능하고, 답 또한 찾아내야 한다.
- 기술 예시
- 장바구니 분석에 의해 나타나는 규칙들
적절한 환경 구축 후, 아래의 5단계를 수행한다
가. 목적 정의
- 무엇을 왜 하는지, 목적을 분명히 하는 단계
- 이해 관계자 모두가 동의, 이해해야 한다
- 1단계부터 전문가가 참여하는 것이 바람직하다.
나. 데이터 준비
- 데이터 마이닝 수행에 필요한 데이터를 수집하는 단계
- IT부서와의 사전 협의통해 데이터 접근 부하 심한 과업에 차질 없도록 일정 조율하고 도움을 요청
- 필요한 데이터를 다른 서버에 저장
- 데이터 정제 통해 품질을 보장
- 보강 작업으로 데이터 양 충분히 확보
다. 데이터 가공
- 수집된 데이터를 가공
- 모델링 목적 따라 목적 변수를 정의, 필요 데이터를 데이터 마이닝 소프트웨어 적용 적합한 형식으로 가공
- 적절한 데이터 가공, 충분한 CPU와 메모리, 디스크 공간 등 개발 환경의 구축이 선행
라. 데이터 마이닝 기법의 적용
- 앞선 단계를 통해 준비한 데이터와 소프트웨어 활용해 목적하는 정보를 추출
- 모델을 목적에 맞게 선택, 소프트웨어에 필요한 값을 지정
- 데이터 분석 전문가의 전문성이 필요
- 데이터 마이닝을 적용하려는 목적이 무엇이고, 어떤 데이터를 갖고 있고, 산출되는 정보가 무엇인가 등에 따라 적절한 소프트웨어와 기법을 선정
마. 검증
- 테스트 마케팅 하는 것과 모델링의 차이를 구분해야 한다
- 자동화 방안을 IT부서와 협의하여, 상시적으로 결과를 업무에 적용할 수 있도록 한다
- 보고서를 작성하여 경영진에게 연간 추가수익과 투자대비성과(ROI) 등으로 기대효과를 알릴 수 있어야 한다.
제 2절 분류 분석
- 반응변수(종속변수)가 알려진 다변량 자료를 이용, 모형을 구축하여 새로운 자료에 대한 예측 및 분류를 수행
- 반응변수의 종류에 따른 주목적
- 범주형: 새로운 자료에 대한 분류(Classfication)
- 연속형: 그 값을 예측(Prediction)하는 것
1. 로지스틱 회귀모형(Logistic Regression)
- 반응변수가 범주형일 때 적용하는 회귀분석 모형
- 반응변수의 각 범주에 속할 확률이 얼마인지를 추정 > 예측모형
- 추정 확률을 기준치에 따라 분류 > 분류모형
- 모형의 적합을 통해 추정된 확률: 사후확률(posterior probability)
- Y에 대해 다중 로지스틱회귀모형의 일반적 형태
- odds의 관점에서 해석될 수 있다는 장점
: 나머지 변수가 주어질 때, 성공(Y=1)의 odds가 몇 배 증가하는지를 나타내는 값
- 위의 식을 두 가지 관점에서 해석가능
- 다중로지스틱함수로, 설명변수가 한개인 경우, 해당 회귀계수가 양수면 S자, 음수면 역 S자 모양을 가진다
- 표준로지스틱 분포의 누적분포함수(c,d,f)를 F(x)라 할 때,
와 동일한 표현으로, 표준로지스틱 분포의 누적분포함수로 성공의 확률을 설명한다
- 위와 유사한 프로빗(probit)모형
- 표준정규분포의 누적함수로 성공의 확률을 모형화한 것
- 표준정규분포의 누적함수로 성공의 확률을 모형화한 것
- 분류가 목적인 경우
- π(x)가 기준값보다 크면 Y=1인 집단으로, 작으면 Y=0인 집단으로 분류
- 분류기준값은 사전정보, 손실함수를 이용, 정분류율, 민감도, 특이도를 동시에 고려하는 등 다양한 방법 사용
- 회귀계수 검정
- glm(Column~Variable, data=..., family=..., direction="...")
- summary() 함수 이용하여 검정 결과 해석
- p-값: 0에 가까울수록 매우 유의한 변수
- 변수가 한 단위 증가할 때마다, exp(Estimate Std.)배 증가
- 예측 변수가 여러 개일 경우, direction="..."
- both, *backward, forward
*: default
- both, *backward, forward
- Null deviance: A on B degrees of freedom
- 절편만 포함하는 모형의 완전모형으로부터의 이탈도
- p-값 = P((X^2)(B)>A)으로 통계적으로 유의한지 확인
- Residual deviance: A on B degrees of freedom
- 예측변수가 추가된 적합 모형의 이탈도
- p-값 = P((X^2)(B)>A)으로 통계적으로 유의한지 확인
- p-값이 0.005 정도면 유의하므로 적합 결여
그 이상이면 귀무가설이 기각되지 않으며, 적합값이 관측된 자료를 잘 적합한 것
- summary() 함수 이용하여 검정 결과 해석
- glm(Column~Variable, data=..., family=..., direction="...")
- 신뢰구간
- confint(glm(...), parm = "Variable")
- 회귀계수: β
- exp(confint(glm(...), parm = "Variable"))
- 오즈의 증가량: exp(β)
- confint(glm(...), parm = "Variable")
- 적합 결과 확인
- fitted(glm(...))
- 새로운 자료 예측
- predict(glm(...), newdata=..., type="response")
- cdplot(Column~Variable, data=...)
- 연속형 변수의 변화에 따른 범주형 변수의 조건부 분포를 보여줌
- 로지스틱회귀의 탐색적 분석에 유용
- anova(gml.variable, test="Chisq")
- 모형의 적합 단계별로 이탈도의 감소량과 유의성 검정 결과를 제시
- 일반화 선형 모형의 특별한 경우, logit 모형으로도 불린다
- 반응변수의 범주가 3개 이상일 경우, 유형에 따라 다양한 다범주 로짓모형 적합 가능
- Agresti(2007) 참고
2. 신경망 모형(Artificial Neural Networks)
- 장점
- 변수가 수가 많거나, 입출력 변수 간 복잡한 비선형 관계 존재할 때 유용
- 잡음에 민감하지 않음
- 단점
- 결과 해석이 쉽지 않다
- 은닉층 수와 은닉노드 수 결정이 어렵다
- 초기값에 따라 지역해 수렴 가능성 있다
- 모형이 복잡하면 훈련과정에 시간이 많이 소요된다
- 입력
- 시냅스, 개별신호의 강도에 따라 가중
- 활성함수
- 인공신경망의 출력을 계산
- 학습을 거쳐 오차가 작아지는 방향으로 가중치가 조정
- 안정화된 모형에서 가중치는 입력변수의 영향으로 해석될 가능성 있음
- 인공신경망의 출력을 계산
- perceptron: 입력층이 직접 출력층에 연결되는 단층 신경망(single-layer neural network)
- d-차원의 입력벡터 x와 스칼라 값 z는 다음의 관계를 갖는다.
- z값에 활성함수가 적용되어 y(x)가 계산된다.
- 가중치와 모수는 학습을 통해 오차제곱합이 최소가 되는 방향으로 갱신됨
가중치로 의사결정 경계의 방향을 나타내는 모수
편의(bias)로 의사결정 경계의 위치를 결정하는 모수 - y = y(x)
목표값으로, z에 비해 비선형 활성함수를 적용하여 구해진다 - 활성함수의 예
- 부호(sign)함수, threshold 함수
- 계단(step)함수
- 시그모이드(sigmoid)함수
- Softmax 함수
- 표준화지수 함수
- 출력값 z가 여러 개(L 개)
- 목표치가 다범주인 경우, 각 범주에 속할 사후 확률을 제공
- tanh 함수
- 가우스(Gauss)함수
- 부호(sign)함수, threshold 함수
- d-차원의 입력벡터 x와 스칼라 값 z는 다음의 관계를 갖는다.
- 패키지 {nnet}의 nnet() 함수 이용
- nnet(Column~., data=..., size=..., rang=..., decay=..., maxit=...)
- plot.nnet() 함수를 사용하기 위해서는, url 혹은 3개의 패키지를 사용하는 방법이 있다.
- source_url('...')
- library(clusterGeneration)
- library(scales)
- library(reshape)
- plot.nnet() 함수를 사용하기 위해서는, url 혹은 3개의 패키지를 사용하는 방법이 있다.
- plot.nnet(nnet(...)): 결과 시각화에 사용
- nnet(Column~., data=..., size=..., rang=..., decay=..., maxit=...)
- 패키지 {neuralnet}의 neuralnet() 함수를 이용
- neuralnet(Column~Variable1+Variable2+...., data=..., hidden=..., err.fct="ce", linear.output=FALSE, likelihood=TRUE, threshold=~)
- threshold= 옵션은 오차함수의 편미분값으로 정지규칙으로 사용
- 다양한 역전파(back-propagation) 알고리즘을 통해 모형을 적합
- plot() 함수 이용하여 시각화 적용
- 추가적인 정보 알아볼 때는, name(neuralnet(...))
- 결과 행렬 정보 알아볼 때는, neuralnet(...)$result.matrix
- 전체자료: $data
- 모형 적합에 사용된 자료: $covariate, $response
- 적합값: $net.result
- 가중치의 초기값: $startweights
- 가중치의 적합값: $weights
- 일반화 가중치
- $generalized.weights
- 각 공변량들의 log-odds에 미치는 기여도
- 회귀계수와 유사하게 해석가능하지만
- 다른 모든 공변량에 의존하므로 각 자료점에서 국소적인 기여도를 나타냄
- 평균적으로는 0에 가까운 영향을 갖는 것이 가능
- 모든 자료에 대한 일반화가중치의 분포는 특정 공변량의 효과가 선형적인지 여부 나타냄
- 작은 분산은 선형효과를 제시, 큰 분산은 비-선형적 효과 있음을 제시
- $generalized.weights
- 모형의 단순화를 위해 일반화 가중치의 분산이 0이 아닌 값을 갖고 있는 입력변수로 신경망모형을 적합할 수 있다.
- compute() 함수
- 각 뉴런의 출력값을 계산
- 새로운 공변량 조합에 대한 예측값 구할 수 있다.
- confidence.interval() 함수
- 가중치들에 대한 신뢰구간 구하는 함수
- Gunther 와 Fritsch(2010)을 참고
- neuralnet(Column~Variable1+Variable2+...., data=..., hidden=..., err.fct="ce", linear.output=FALSE, likelihood=TRUE, threshold=~)
- 다중(multi-layer) 신경망 또는 다층 퍼셉트론
- 목적
- 입력벡터 x를 출력벡터 y(x)로 매핑하는 것
- 입력층
- 자료벡터 혹은 패턴을 받아들임
- 입력의 수는 입력 차원의 수로 결정
- 은닉층은 이전층으로부터 출력을 받아 가중을 취한 후 비선형의 활성함수로 넘긴다
- 은닉층 수 고려사항
- 다층신경망은 훈련이 어렵다
- 시그모이드 활성함수 갖는 2개 층의 네트워크(1개 은닉층)는 임의의 의사결정 경계를 모형화할 수 있다
- 은닉층 노드의 수
- 너무 적으면 복잡한 의사결정 경계 만들 수 없다
- 너무 많으면 일반화가 어렵다
- 은닉층 수 고려사항
- 출력층은 최종 은닉층으로부터 결과를 받아 비선형적으로 결과를 넘겨 목표값을 제공
- 출력층의 노드의 수는 출력 범주의 수로 결정
- 가중치는 오차의 역전파 알고리즘 통해 갱신된다
- 목적
3. 의사결정나무(Descision Tree) 모형
- 의사결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류, 예측 수행하는 분석방법
- 매 단계마다 분류변수와 분류기준값의 선택이 중요하다
- 상위 노드에서의 (분류변수, 분류기준값)은 하위노드에서 노드 내 동질성이, 노드 간에는 이질성이 가장 커지도록 선택한다
- 과대적합/과소적합 되지 않도록 합리적 기준을 찾아야 한다.
- 의사결정나무 구조
- 맨위: 뿌리 마디(root node)로 모든 자료 집단 포함
- 상위 마디: 부모 마디(parent node)
- 하위 마디: 자식 마디(child node)
- 마지막: 최종 마디(terminal node)로 더이상 분기되지 않음
- 하위 마디: 자식 마디(child node)
- 상위 마디: 부모 마디(parent node)
- 맨위: 뿌리 마디(root node)로 모든 자료 집단 포함
- 가지분할(split): 나무의 가지를 생성하는 과정
- 가지치기(pruning): 생성된 가지를 잘라내어 모형을 단순화하는 과정
- 목표변수
- 이산형: 분류나무
- 분류변수와 분류기준값 선택방법
- 카이제곱 통계량의 p-값(Chi-square statistic)
- 작을수록 자식 노드 내의 불확실성이 큼 > 불확실성이 작아지도록 가지분할을 수행
- 지니지수(Gini index)
- 클수록 자식 노드 내의 불확실성의 큼 > 가장 작아지는 방향으로 가지분할 수행
- 클수록 자식 노드 내의 불확실성의 큼 > 가장 작아지는 방향으로 가지분할 수행
- 엔트로피 지수(entropy index)
- 클수록 자식 노드 내의 불확실성이 큼 > 가장 작아지는 방향으로 가지분할 수행
- 클수록 자식 노드 내의 불확실성이 큼 > 가장 작아지는 방향으로 가지분할 수행
- 지니지수와 엔트로피지수 값의 범위는 다르나, 해석의 값의 크기에 따라 유사
- c는 목표변수의 범주의 수
- 불확실성(이질성)이 클수록 순수도가 낮아짐
- 카이제곱 통계량의 p-값(Chi-square statistic)
- 분류변수와 분류기준값 선택방법
- 연속형: 회귀나무
- 분류변수와 분류기준값 선택방법
- F-통계량의 값이 커지는(p-값은 작아지는) 방향으로 가지분할을 수행
- 일원배치법의 검정통계량으로, 값이 클수록 오차의 변동에 비해 처리 변동이 크다
- 자식 노드 간이 이질적
- 분산의 감소량(variance reduction) 값이 최대화 되는 방향으로 가지분할 수행
- F-통계량의 값이 커지는(p-값은 작아지는) 방향으로 가지분할을 수행
- 분류변수와 분류기준값 선택방법
- 이산형: 분류나무
- 의사결정나무의 분석과정
- 목표변수와 관계가 있는 설명변수들 선택
- 분석목적과 자료의 구조에 따라 적절한 분리기준과 정지규칙을 정해 의사결정 나무 생성
- 정치규칙
- 더 이상 분리가 일어나지 않고 현재의 마디가 끝마디가 되도록 하는 여러 규칙
- 최대 나무의 깊이, 자식마디의 최소 관측치 수, 카이제곱 통계량, 지니지수, 엔트로피 지수 등
- 정치규칙
- 부적절한 나뭇가지는 제거
- 가지치기
- 끝마디가 너무 많으면 모형이 과대 적합된 상태로 현실문제에 적용할 수 있는 적절한 규칙이 나오지 않는다. 따라서 분류된 관측치의 비율 또는 MSE 등 고려하여 수준의 가지치기 규칙을 제공해야 한다
- 가지치기
- 이익, 위험, 비용 등을 고려 모형평가
- 분류 및 예측
- 의사결정나무분석 위한 알고리즘과 분류 기준변수의 선택법
이산형 목표변수 | 연속형 목표변수 | |
CHAID(다지분할) | 카이제곱 통제량 | ANOVA F-통계량 |
CART(이지분할) | 지니지수 | 분산감소량 |
C4.5 | 엔트로피지수 | - |
- {rpart} 패키지의 rpart() 함수를 이용
- rpart > recursive partitioning and regression tree의 약어
- rpart(Column~., data=...)
- {rpart.plot} 패키지의 prp() 함수 이용하여 시각화
- prp(rpart(...), type=..., extra=...)
- $cptable
- 트리 크기에 따른 비용-복잡도 모수
- 교차타당성 오차
- 가지치기와 트리 최대 크기 조절하는 옵션으로 사용
- {rpart} 패키지의 plotcp() 함수 이용하면, cp값 그림으로 나타낼 수 있음
- {party} 패키지의 ctree() 함수를 이용
- 결측값을 제거하고, 훈련용 자료:검증료자료 = 7:3 으로 나눈다
- 훈련용 자료에 ctree() 를 적용
- 검증용 자료를 predict() 이용하여 적합모형을 적용
- 장점
- 구조가 단순해 해석이 용이
- 유용한 입력변수의 파악과 예측변수간의 상호작용 및 비선형성을 고려해 분석이 수행
- 선형성, 정규성, 등분산성 등 수학적 가정이 불필요한 비모수적 모형
- 단점
- 분류기준값 경계선 근방 자료값에 오차가 클 수 있다.(비연속성)
- 각 예측변수의 효과를 파악하기 어렵다.
- 새로운 자료에 대한 예측이 불안정 할 수 있다.
- 예시
- 시장조사, 광고조사, 의학연구, 품질관리
- 고객 타게팅, 고객 신용점수화, 고객 행동예측, 고객 세분화, 캠페인 반응분석 등
4. 앙상블 모형
- 여러 개의 분류모형에 의한 결과를 종합하여 분류의 정확도를 높이는 방법
- 여러 개의 훈련용 데이터 집합 만들어 각각 집합에 하나의 분류기를 만들어 앙상블하는 방법
가. 배깅(bagging)
- bootstrap aggregating
- 원 데이터 집합으로부터 크기가 같은 표본을 여러번 단순 임의 복원추출하여 각 표본(붓스트랩 표본)에 대해 분류기를 생성, 그 결과를 앙상블한 방법
- 반복추출 방법 사용하기 때문에, 같은 데이터가 한 표본에 여러 번 추출 될 수 있고, 어떤 데이터는 추출되지 않을 수 있다.
- {adabag} 패키지의 bagging() 함수 이용
- bagging(Column~,. data=..., mfinal=...)
- $importance: 각 변수의 중요도 알 수 있음
- predict() 이용 분류 수행가능
- predict(bagging(...), newdata=...)
나. 부스팅(boosting)
- 배깅과 유사하나, 재표본 과정에서 분류가 잘못된 데이터에 더 큰 가중을 주어 표본을 추출
- AdaBoosting: adaptive boosting은 가장 많이 사용되는 부스팅 알고리즘
- {adabag} 패키지의 boosting() 함수이용
- boosting(Column~., data=..., boos=True, mfinal=...)
- $importance: 각 변수의 중요도 알 수 있음
- predict() 이용 분류 수행가능
- predict(bagging(...), newdata=...)
- {ada} 패키지의 ada() 함수 이용
- ada(Column~., data=..., iter, nu=..., type="discrete")
- adatest(ada(...))
- 검증용 자료에 대해 분류를 실시
- plot() 이용 시각화
- 오차와 일치도를 나타내는 kappa 계수를 그려준다
- varplot() 이용 시각화
- 변수의 중요도를 나타내는 그림 제공
- pairs() 이용 시각화
- 두 예측변수 조합별 분류된 결과를 그려준다
- maxvar= 으로 변수의 수를 지정할 수 있다
다. 랜덤포레스트(random forest)
- 배깅에 랜덤을 추가한 방법
- 예측변수들을 임의로 추출, 추출된 변수 내에서 최적의 분할을 만들어 나가는 방식
- 새로운 자료 예측 방법
- 분류에서는 다수결 방법을 사용
- 회귀에서는 평균을 취하는 방법을 사용하고, 앙상블 모형과 동일하다
- randomForest() 함수 이용
- 정오분류표
- 오류율에 대한 OOB(out-of-bag) 추정치를 제공
- $importance, varImpPlot() 이용해 변수 중요성 확인 가능
- 해당 변수로부터 분할 일어날 때, 불순도의 감소가 얼마나 일어나는지 알 수 있다.
- 불순도 감소 클수록 순수도가 증가
- 지니지수는 노드의 불순도를 나타낸다
- 회귀의 경우, 잔차제곱합을 통해 측정된다.
- margin()
- 랜덤포레스트의 분류기 가운데 정분류를 수행한 비율에서 다른 클래스로 분류한 비율의 최대치를 뺀 값으로 양은 정확한 분류를, 음은 반대를 나타낸다
- {party} 패키지의 cforest() 함수도 이용 가능
5. 모형 평가
- 어느 것이 가장 우수한 예측 및 분류 성과를 보유하는가 비교 분석하는 과정
- 모형 평가 기준
- 일반화의 가능성
- 같은 모집단 내의 다른 데이터에 적용시 안정적인 결과인가 평가
- 데이터를 확장하여 적용할 수 있는가
- 효율성
- 얼마나 효과적으로 구축되었는지 평가
- 적은 입력변수를 필요로 할수록 높은것
- 예측과 분류의 정확성
- 구축된 모형 정확성 측면에서 평가
- 실제 문제에 적용했을 때, 정확한 결과를 양산해야 의미 있는 모형
- 일반화의 가능성
- raw data를 나누어 진행
- tarining data: 모형 구축용
- test data: 모형 성과 검증용
- 이를 통해 얻을 수 있는 것
- 과적합화 문제 해결
- 잘못된 가설 가정하는 2종 오류 발생 방지
- 대표적 추출 방법
- hold-out
- 원천 데이터를 랜덤하게 두 분류로 분리하여 교차 검정한다
- 전체 70%를 훈련용으로 사용
- 교차검증
- 반복적으로 성과를 측정, 결과를 평균한 것으로 분류 분석 모형을 평가
- k-fold 교차검증
- 사이즈가 동일한 k개의 하부 집합으로 나눈다
- k번째 하부집합 하나를 test data 으로 사용
- 나머지 k-1개 하부 집합을 training data 으로 사요
- k번 반복 측정, 각각 반복측정 결과를 평균 낸 값을 최종 평가로 사용
- 일반적으로 10-fold 사용하나, 하부 집합 분포에 따른 적절한 k 선정이 필요
- bootstrap
- 평가를 반복하는 측면에서는 교차검증과 유사하나, 훈련용 자료를 반복 재선정하는 점에서 차이가 있다
- 관측치를 한 번 이상 훈련용 자료로 사용하는 복원 추출법에 기반
- 0.632 붓스트랩
- d개의 관측치 존재
- 각 관측치가 훈련용 자료로 선정될 확률: 1/d
- 선정되지 않을 확률: 1-(1/d)
- 훈련용 자료 선정 d번 반복, 하나의 관측치가 선정되지 않을 확률: d*{1-(1/d)}
- d가 충분히 크다고 가정시, 확률은 e-1=0.368로 수렴
- 36.8% > test data
- 63.2% > training data
- 전체 데이터 양이 크지 않은 경우에 적합
- hold-out
- 볌주형 변수 분류 분석 모형 학습 뒤에, 다음 단계에서는 검증용 데이터를 사용하여 모형 분류 및 예측 정확도 평가를 수행한다
가. 오분류표(confusion matrix)
- 목표 변수의 실제 범주와 모형에 의해 예측된 분류 범주 사이의 관계를 나타내는 표
예측값 | 합계 | |||
TRUE | FALSE | |||
실제값 | TRUE | TP | FN | P |
FALSE | FP | TN | N | |
합계 | P' | N' | P+N |
- 정분류율(accuracy, recognition rate)
- 범주의 분포가 균형을 이룰 때 효과적인 평가지표
- (TP+TN)/(P+N), 일치하는 것 / 전체
- 오분륜율(error rate, misclassification rate)
- 모형이 제대로 예측하지 못한 관측치를 평가하는 지표
- 1-accuracy
- (FP+FN)/(P+N), 부합하지 않는 것 / 전체
- 민감도와 특이도 사용 목적
- 대부분의 분류 분석 대상은 소수 집단에 대한 예측 실패의 비용이 다수 집단에 대한 예측 실패의 비용보다 크다
- 소수 집단이 암환자를 잘못 예측할 경우의 비용이 다수 집단인 건강한 환자를 잘못 예측한 것보다 훨씬 크다
- 범주 불균형 문제를 갖고 있는 데이터에서는 중요한 분류 범주만을 다루어야 한다
- 민감도(sensitivity)
- 실제값이 True인 관측값 중 예측값이 적중한 정도를 나타내는 지표
- TP/P, 예측 중 진짜 True / 진짜 True
- 특이도(specificity)
- 실제값이 False인 관측값중 예측치가 적중한 정도를 나타내는 지표
- TN/N, 예측 중 진짜 False / 진짜 False
- 정확도(Precision)
- True로 예측한 관측값 중 실제가 True인 정도를 나타내는 정확성 지표
- TP/(TP+FP) = TP/P', 예측 중 진짜 True / 예측 True
- 재현율(Recall)
- 실제값이 True인 관측값 중 예측치가 적중한 정도를 나타내는 민감도와 동일한 지표로, 모형의 완정성을 평가하는 지표
- TP/(TP+FN) = TP/P, 예측 중 진짜 True / 진짜 True
- 정확도와 재현율은 트레이드 오프 관계이기 때문에, 이를 보정하여 하나의 지표로 나타낸 것
- F1 지표
- 정확도와 재현율의 조화평균
- 정확도와 재현율에 같은 가중치를 부여하여 평균하게 한다
- (2*Precision*Recall)/(Precision+Recall), (예측 중 진짜 True *2)/(예측한 True + 진짜 True)
- F beta지표
- beta는 양수로, beta의 값만큼 재현율에 가중치를 주어 평균한다
- ((1+beta^2)*Precision*Recall)/((beta^2)*Precision+Recall)
- F1 지표
- 오분류표 도출을 위해, {caret}의 confusionMatrix() 함수를 이용
- {e1071} 패키지를 설치해야 한다
- confusionMatrix(예측값, 검증용 데이터)
나. ROC 그래프(Receiver Operating Characteristic)
- 레이더 이미지 분석의 성과를 측정하기 위해 개발된 그래프
- 두 분류 분석 모형을 비교 분석 결과를 가시화할 수 있는 유용한 평가 도구
- x축: FP Ratio(1-특이도)
- y축: 민감도
- 평가 기준
- 밑부분 면적(AUC, Area Under the ROC Curve)이 넓을수록 좋은 모형
- x축과 y축이 모두 1인 경우는 모두 True로 분류한 경우
- x축과 y축이 모두 0인 경우는 모두 False로 분류한 경우
- 모형의 AUC가 1에 가까울수록 좋은 모형
- {Epi} 패키지의 ROC() 함수를 사용
다. 이익도표와 향상도 곡선
- 이익(gain): 목표 범주에 속하는 개체들이 각 등급에 얼마나 분포하고 있는지를 나타내는 값
- 이익도표: 해당 등급에 따라 계산된 이익값을 누적으로 연결한 도표
- 향상도 곡선(lift curve): 랜덤 모델과 비교하여 해당 모델의 성과가 얼마나 향상되었는지를 각 등급별로 파악하는 그래프
- 등급
- 상위의 향상도가 매우 크고, 하위로 갈수록 향상도가 감소하고, 이러한 모형의 예측력이 적절함을 의미
- 등급에 관계없이 향상도에 차이가 없으면 모형의 예측력이 좋지 않음
- {ROCR} 패키지를 사용하면, ROC 그래프 및 향상도 곡선을 함께 나타낼 수 있다
- performancec() 함수를 사용하여 비교할 수 있다
제 3절 군집 분석
- 군집 분석
- 여러 개의 변수값들로부터 n개의 개체를 유사한 성격을 갖는 몇 개의 군집으로 집단화하여, 각 군집들의 특성을 파악하여 군집간 관계를 분석하는 다변량분석 기법
- 별도의 반응변수가 필요하지 않고, 개체들 간 유사성에만 기초한다
- 이상값 탐지 및 심리학, 사회학, 경영학, 생물학 등 다양한 분야에 이용
1. 계층적 군집
- 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 갯수의 군집을 형성하는 방법
- 계통도 혹은 덴드로그램으로 결과가 주어지며, 각 개체는 하나의 군집에만 속한다
- 개체간 유사성에 따라 다양한 정의가 가능하다
- 군집을 형성하는 매 단계에서 지역적 최적화를 수행해 나가는 방법을 사용하므로, 전역적인 최적해라고 볼 수 없다
- 다른 군집으로 이동이 불가능하다
- 중심연결법, 와드연결법 등에서는 군집 크기에 가중을 두어 병합을 시도하므로 크기가 큰 군집과의 병합의 유도 가능성이 높다
- 군집간 연결법(거리를 측정하는 방법)에 따라 결과가 달라질 수 있다
- 최단연결법 혹은 단일연결법(single linkage method)
- 각 군집에서 하나씩 관측값을 뽑았을 때 나타날 수 있는 거리의 최소값으로 측정한다
- 사슬 모양으로 생길 수 있다
- 고립된 군집을 찾는데 중점을 둔 방법
- 최장연결법 혹은 완전연결법(complete linkage method)
- 각 군집에서 하나씩 관측값을 뽑았을 때 나타날 수 있는 거리의 최대값으로 측정한다
- 군집들의 내부 응집성에 중점을 둔 방법
- 중심연결법(centroid linkage)
- 두 군집의 중심 간 거리를 측정
- 새로운 군집의 평균은 가중평균을 통해 구한다
- 평균연결법(average linkage)
- 모든 항목에 대한 거리 평균을 구하면서 군집화를 하므로, 계산량이 불필요하게 많아질 수 있다
- 와드연결법(ward linkage)
- 군집내의 오차제곱합에 기초하여 군집을 수행
- 보통 군집이 병합되면, 병합된 군집의 오차제곱합은 병합 이전 각 군집의 오차제곱의 합보다 커지는데, 그 증가량이 가장 작아지는 방향으로 형성하는 방법
- 크기가 비슷한 군집끼리 병합하는 경향이 있다
- 최단연결법 혹은 단일연결법(single linkage method)
- 모든 변수가 연속형일 때 사용 가능한 다양한 거리
- 유클리드 거리
- 맨하튼 또는 시가거리
- 민코우스키 거리
- 표준화 거리
- 변수의 측정단위를 표준화한 거리
- 변수의 측정단위를 표준화한 거리
- 마할라노비스 거리
- 변수의 표준화와 함께 변수간의 상관성(분포 형태)을 동시에 고려한 통계적 거리
- 변수의 표준화와 함께 변수간의 상관성(분포 형태)을 동시에 고려한 통계적 거리
- 수학적 거리
- 유클리드, 맨하튼, 민코우스키
- 통계적 거리
- 표준화, 마할라노비스
- 체비세프 거리, 켄버라 거리 등
- 유사성 측도인 코사인 거리, 상관계수 등을 이용한 거리 등
- 유클리드 거리
- 모든 변수가 명목형인 경우
- i와 j의 거리를 다음과 같이 정의할 수 있다
- d(i, j) = (개체 i와 j에서 다른 값을 가지는 변수의 수)/(총 변수의 수)
- 유사성 측도인 단순 일치 계수, 자카드 계수 등
- 순서형 자료인 경우
- 순위 상관 계수를 이용하여 거리 정의
- 유사성과 정의는 반대의 개념임을 주의해서 사용한다
- 상대적 거리가 가까울수록 유사성이 높다고 말한다
- i와 j의 거리를 다음과 같이 정의할 수 있다
- 병합적 방법
- 작은 군집으로부터 출발하여 병합해 나가는 방법
- 분할적 방법
- 큰 군집으로부터 출발하여 군집을 분리해 나가는 방법'
- dist()는 거리(또는 비유사성)행렬을 제공하는 함수
- method= 옵션을 통해 거리 정의 가능
- euclidean, maximum, manhattan, binary, minkowski 등
- method= 옵션을 통해 거리 정의 가능
- hclust()는 계층적 군집 분석을 수행하는 함수
- method= 옵션으로 거리 측정법 선택 가능
- ward, single, complete, average, centorid 등
- method= 옵션으로 거리 측정법 선택 가능
- plot() 이용하여 덴드로그램 시각화 가능
- cutree() 의 결과를 이용하여, tree의 높이(h)나 그룹의 수(k)를 옵션으로 지정하여 원하는 수의 그룹으로 나눌 수 있다
- rect.hclust() 의 결과를 이용하여, tree의 높이(h)와 which를 이용하여 그룹의 전체 또는 일부를 나타낼 수 있다
- {cluster}의 agnes()는 병합적 방법을 이용하여 분석
- metric= 옵션을 통해 거리 정의 가능
- euclidean, manhattan 등
- method= 옵션을 통해 병합 방법 지정 가능
- metric= 옵션을 사용않고, daisy() 이용하여 거리 계산 가능
- 데이터 관측치 사이의 거리를 계산해주며, 형태가 수치형일 필요가 없어 dist()보다 유연하다
- 옵션으로는 euclidean, manhattan, gower 등이 있다
- metric= 옵션을 통해 거리 정의 가능
2. k-평균 군집
- 알고리즘
- 초기(군집의) 중심으로 k개의 객체를 임의로 선택한다
- 각 자료를 갖아 가까운 군집 중심에 할당한다
- 각 군집내의 자료들의 평균을 계산하여 군집의 중심을 갱신한다
- 군집 중심의 변화가 거의 없을 때(또는 최대 반복수)까지 단계2와 단계3을 반복한다
- k-개의 초기 중심값은 임의로 선택될 수 있으나, 무작위로 선택하는 것이 보다 편리하다
- 초기 중심점들은 서로 멀리 떨어져 있는 것이 바람직하다
- 초기값에 따라 군집 결과가 크게 달라질 수 있다
- 군집의 매 단계마다 (2단계에서)
군집의 중심점(평균)으로부터의 오차제곱합이 최소가 되도록 각 자료를 할당하는 과정을 포함해 나가는, (부분 최적화를 수행하는) 탐욕적 알고리즘을 간주할 수 있다
- 안정된 군집은 보장하나, 전체적으로 최적이라는 것은 보장할 수 없다
- 장점
- 단순하고 빠르게 수행된다
- 많은 양의 자료를 다룰 수 있다
- 모든 변수가 연속적이어야 한다
- 단점
- 잡음이나 이상값에 영향을 많이 받는다
- 이를 보안하기 위해, k-중앙값 군집을 사용한다
- pam() 함수를 사용한다. 이때 pam은 partitioning around medoids
- 탐색적 자료분석을 통해 이상값을 미리 제거하기도 한다
- 볼록한 형태가 아닌 군집이 존재할 경우(non-convex, 예를 들어 U-형태의 군집)에는 성능이 떨어진다
- 잡음이나 이상값에 영향을 많이 받는다
- {Nbclust} 패키지를 통해 적절한 군집의 수에 대한 정보를 얻을 수 있다
- 군집 수에 따른 집단 내 제곱합의 그래프를 그려보는 것도 군집 수를 정하는데 도움이 된다
- 군집 분석 수행전에, scale() 함수를 이용하여 표준화를 수행한다
- 적절한 군집 수를 정하기 위해, wssplot() 함수를 수행한다
- {flexclust}의 randIndex() 함수를 이용하면, 군집간의 일치도를 나타내는 수정된 순위 지수를 구할 수 있다
- 수정된의 의미는 우연에 의해 발생되는 경우를 고려한 값
- -1(no agreement)과 1(perfect agreement) 사이의 값을 갖는다
- {flexclust}의 kcca() 함수를 이용하여 수행 가능하다
- family= 옵션을 이용
- kmeans, kmedians, angle, jaccard, ejaccard 등 사용 가능
- 적용 결과를, image{graphics}, barplot{graphics}, barchart{latticce}, striples{flexclust} 함수 등을 이용하여 다양한 시각화가 가능하다
- cclust() 함수
- method= 옵션
- kmeans는 MacQueen의 고전적 kmeans 알고리즘을 사용
- hardcl은 hard competitive learning 방법을 사용
- neuralgas 는 neural gas 알고리즘을 사용
- method= 옵션
- {cluster}의 clusplot() 함수는 2차원의 군집 그래프를 그려주는 함수로, 군집의 반경과 관계를 확인할 수 있다
- k-평균군집을 수행하는 R 함수
- kmeans{stats}, kcca{flexclust}, cclust{flexclust}, cclust{cclust}, Kmeans{amap}등이 있다
3. 혼합 분포 군집(mixture distribution clustering)
- 모형-기반의 군집 방법
- 데이터가 k개의 모수적 모형(주로 정규분포 또는 다변량 정규분포를 가정)의 가중합으로 표현되는 모집단 모형으로부터 나왔다는 가정하에서, 모수와 함게 가중치를 자료로부터 추정하는 방법을 사용
- k개의 각 모형은 군집을 의미
- 각 데이터는 추정된 k개의 모형 중 어느 모형으로부터 나왔을 확률이 높은지에 따라 군집의 분류가 이루어진다
- k-평균군집의 절차와 유사하나, 확률분포를 도입하여 군집을 수행하는 모형-기반의 군집 방법
- 군집을 몇 개의 모수로 표현할 수 있으며, 서로 다른 크기나 모양의 군집을 찾을 수 있다
- 이상값 자료에 민감하므로 사전에 조치가 필요하다
- 모수와 가중치의 추정(최대가능도추정)에는 EM 알고리즘이 사용
- 데이터가 커지면 수렴하는데 시간이 걸린다
- 데이터가 너무 작으면 추정의 정도가 떨어지거나 어렵다
- 자료의 분표형태가 다봉형일 경우, 봉의 수 만큼의 정규분포의 결합을 통해 설명이 가능
- 일반적으로 M개 분포(성분)의 가중합으로 표현되는 혼합 모형은 아래와 같이 정의된다
- 혼합 모델을 이루는 단일 확률밀도 함수
- i번째 분포의 모수 벡터
- i번째 군집(클래스)
- i번째 군집이 혼합모형에서 차지하는 중요도 또는 가중치
- 혼합 모델을 이루는 단일 확률밀도 함수
- 일반적으로 혼합분포에서의 모수 측정은 가능도함수에 기초한 최대가능도추정이 쉽지 않다
- 가능도함수의 표현식이 복잡하여 미분을 통한 이론적 전개가 쉽지 않기 때문이다
- 혼합분포에 대한 최대가능도추정을 위해 EM 알고리즘 등을 이용한다
- EM 알고리즘
- 편의상 모집단을 구성하는 각 집단의 분포는 정규분포를 따른다고 가정한다
- 각 자료가 M개 중 어느 집단(클래스)으로부터 나온 것인지를 안다면 해당 모수의 추정이 어렵지 않다
- 각 자료가 어느 집단에 속하는지에 대한 정보를 가지는 잠재변수를 도입한다
- E-단계
- 잠재변수 Z의 기대치 계산
- 잠재변수를 Z라 할 때, 모수에 대한 초기값이 주어져 있다면(초기 분포를 안다면) 각 자료가 어느 집단으로부터 나올 확률이 높은지에 대해 추정이 가능하다
- 각 자료에 대해 Z의 조건부분포(어느 집단에 속할지에 대한)로부터 조건부 기댓값을 구할 수 있다
- M-단계
- 잠재변수 Z의 기대치를 이용하여 파라미터를 추정
- 관측변수 X와 잠재변수 Z를 포함하는 (X, Z)에 대한 로그-가능도함수(이를 보정된 로그-가능도함수라고 한다)에 Z 대신 상수값인 Z의 조건부 기댓값을 대입하면, 로그-가능도함수를 최대로 하는 모수를 쉽게 찾을 수 있다
- 갱신된 모수 추정치에 대해 위 과정을 반복하면, 수렴하는 값을 얻게 되고, 이는 최대가능도추정치로 사용될 수 있다
- E-단계
- R에서 정규혼합분포의 추정과 군집화가 가능한 패키지와 그 함수
- {mixtools}의 normalmixEM()함수
- {mclust}의 Mclust() 함수를 이용하고, plot.Mclust() 함수를 이용하여 시각화 가능
- {nor1mix}, {HDclassif}, {EMcluster}등에서 가능
4. SOM(Self-Organizing Maps)
- 코호넨 맵이라고 알려져 있다
- 비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화한다
- 시각적으로 이해하기 쉽다
- 입력 변수의 위치 관계를 그대로 보존한다
- 실제 공간의 입력 변수가 가까이 있으면, 지도상에서도 가까운 위치에 있는다
- 입력 변수의 정보와 그들의 관계가 지도상에 그대로 나타난다
- 패턴 발견, 이미지 분석 등에 뛰어난 성능을 보인다
- 두 개의 인공신경망 층으로 구성
- 입력층
- 입력벡터를 받는 층
- 입력 변수의 개수와 동일하게 뉴런 수가 존재
- 경쟁층
- 2차원 격자로 구성
- 입력 벡터의 특성에 따라 벡터가 한 점으로 클러스터링 되는 층
- 사용자가 미리 정해놓은 군집의 수만큼 뉴런 수가 존재
- 입력층의 자료가 학습에 의해 경쟁층에 정렬되는데, 이를 지도라고 부른다
- 입력층의 각각의 뉴런은 각각 경쟁층의 뉴련과 완전 연결되어 있다
- 입력층
- SOM의 학습 알고리즘
- 1. SOM맵의 노드에 대한 연결강도를 초기화한다
- 2. 입력 벡터를 제시한다
- 3. 단계
- 1. 아래 유클리드 거리를 사용하여 입력 벡터와 프로토타입 벡터 사이의 유사도를 계산한다
- //x-me//=mini//x-mi//
- x: 샘플 벡터
- mi: 프로토타입 벡터, mi = {mi1, ... , mid}, d: 입력 벡터의 차원
- e: BMU
- //x-me//=mini//x-mi//
- 2. 입력벡터와 가장 거리가 짧은 프로토타입 벡터(BMU)를 탐색한다
- 1. 아래 유클리드 거리를 사용하여 입력 벡터와 프로토타입 벡터 사이의 유사도를 계산한다
- 4. BMU와 그 이웃들의 연결강도를 재조정한다
- mi(t+1)=mi(t) +a(t)hei(t)[x-mi(t)]
- t: 시간
- a(t): 학습률
- hei(t): BMU 중심에 있는 이웃 커널
- rb, ri: SOM의 그리드에서 뉴론 e와 i의 위치
- mi(t+1)=mi(t) +a(t)hei(t)[x-mi(t)]
- 5. 2단계로 가서 반복한다
- 위의 과정을 거치면서, 연결강도는 입력 패턴과 가장 유사한 경쟁층 뉴런이 승자가 된다
- 승자 독식 구조로 인해 경쟁층에는 승자 뉴런만이 나타나며, 승자와 유사한 연결 강도를 갖는 입력 패턴이 동일한 경쟁 뉴런으로 배열된다
- 단 하나의 전방 패스를 사용함으로써 수행 속도가 매우 빠르다(역전파 등을 이용하는 인공신경망과 달리)
- 빠른 속도로 인해 잠재적으로 실시간 학습처리를 할 수 있는 모델이다
- R에서 SOM 알고리즘을 이용한 군집 분석을 위한 코드
- som(data, grid=somgrid(), rlen = 100, alpha = c(0.05, 0.01), init, toroidal = FALSE, keep.data = TRUE)
- 인수
- data: SOM 분석을 수행하기 위한 입력 데이터
- gird: 결과를 나타내기 위한 그리드
- rlen: 학습횟수(default: 100)
- alpha: 학습률(default: 0.05, 0.01에서 정지)
- radius: 이웃의 초기 반경
- init: 자기조직화 형상지도 학습에 의해 얻은 코드북 벡터의 옵셔널 매트릭스, 생략시 무작위로 선택된 오브젝트 사용
- toroidal: TRUE일시, 맵의 엣지가 조인됨
- keep.data: 반환데이터 저장
- 값
- grid: somegrid 클래스의 오브젝트
- changes: 코드벡터로부터 평균편차의 벡터
- codes: 코드 벡터 매트릭스
- classif: 승자 유니트
- toroidal: toroidal 맵 사용 여부
- data: 데이터 매트릭스
- 인수
- som(data, grid=somgrid(), rlen = 100, alpha = c(0.05, 0.01), init, toroidal = FALSE, keep.data = TRUE)
- 군집 분석 결과는 범례의 크기를 이용하여 해석한다
- plot.kohonen의 SOM 플롯
- plot.kohonen(x, type = c("..."), classif, labels=NULL, pchs=NULL, main=NULL, palette.name = heat.colors, ncolors, zlim=NULL, property, heatkey=TRUE, contin, ...)
- 인수
- x: 코호넨 오브젝트
- type: 플롯의 타입
- classif: predict.kohonen에 의해 반환된 분류 오브젝트
- lables: 타입이 분류일 때, 플롯에 대한 라벨
- pchs: 타입이 분류일 때, 플롯에 대한 심볼
- main: 플롯에 대한 타이틀
- palette.name: 코드, 카운트, 예측, 속성 등 프로팅 타입을 위한 유니트의 배경색
- ncolors: 컬러의 개수 (default: 20)
- zlim: 유니트의 배경색의 범위
- property: 프로팅 타입의 속성값
- heatkey: 카운트, 속성 등 프로팅 타입에서 프롯의 왼쪽에 히트키 생성 여부
- contin: 데이터가 범주형 또는 연속형 여부
- 인수
- plot.kohonen(x, type = c("..."), classif, labels=NULL, pchs=NULL, main=NULL, palette.name = heat.colors, ncolors, zlim=NULL, property, heatkey=TRUE, contin, ...)
- SOM 군집 분석 결과, 유니트 사이의 거리 계산법
- unit.distances(grid, toroidal)
- 인수
- grid: somegird의 오브젝트
- toroidal: true일 경우, 맵의 에지는 토폴로지가 토러스의 토폴지가 되기 위해 조인됨
- 인수
- unit.distances(grid, toroidal)
- SOM 그리드를 SPSS Modeler와 유사하게 도식화하기 위해서는 {ggplot2}를 이용
제 4절 연관 분석
1. 연관규칙
가. 연관규칙의 개념
- 연관규칙
- '조건-결과'식으로 표현되는 유용한 패턴
- 연관 분석
- 패턴, 규칙을 발견해내는 것
- 장바구니 분석
- 데이터의 형태
- 장바구니 데이터
- 트랜잭션
- 장바구니 하나에 해당하는 정보
- 트랜잭션 사이의 연관성을 살펴보고, 빈번히 나타나는 규칙을 찾아내는 것
- 사소하고 일반적으로 잘 알려진 사실이 아니라, 분명하고 유용해야 한다
- If-A then B와 같은 형식으로 표현
- 모든 규칙이 유용하지 않을 수 있다
나. 연관규칙의 측정지표
- 연관규칙을 이용할 수 있는 데이터는 판매시점에서 기록된 거래와 품목에 관한 정보를 담고 있어야 한다
- 도출된 모든 규칙이 유의미한 것인지 확인해야 한다
- 평가할 때 사용하는 측정지표
- 지지도
- 전체 거래 중에서 품목 A, B가 동시에 포함되는 거래의 비율
- 전체 구매 경향을 파악할 수 있다
- 적용성이 있는지를 판단할 수 있고, 불필요한 분석을 대폭 줄일 수 있다
- A와 B가 동시에 포함된 거래수/전체 거래수
- 신뢰도
- 품목 A가 포함된 거래 중, 품목 A, B를 동시에 포함하는 거래일 확률은 어느정도인가를 나타낸다
- 연관성의 정도를 파악할 수 있다
- A와 B가 동시에 포함된 거래수/A를 포함하는 거래수
- 향상도
- 품목 B를 구매한 고객 대비 품목 A를 구매한 후 품목 B를 구매하는 고객에 대한 확률
- 향상도 값에 따른 설명
- 1이다: 두 품목이 서로 독립
- 1보다 크다: 두 품목이 양의 상관관계
- 1보다 작다: 두 품목이 음의 상관관계
- A와 B를 포함하는 거래수/(A를 포함하는 거래수 * B를 포함하는 거래수)
- 지지도
- 모든 경우의 수를 분석하는 것은 매우 불필요한 일이므로 최소 지지도를 정하여 규칙을 도출한다
- 처음에는 5% 정도로 임의 설정하여 아래와 같은 질문을 확인한다
- 계산 속도와 의미가 현실적인가
- 규칙은 충분히 도출되었는가
- 지지도를 조절하여 다양한 시도를 해야한다
- 높은 값에서 낮은 값으로 조정하며 실행해야 효율적이다
다. 연관 분석 절차
- Apriori
- 최소 지지도를 갖는 연관규칙을 찾는 대표적인 방법
- 최소지지도보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾는 것
- 분석 절차
- 최소 지지도를 설정한다
- 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾는다
- 2에서 찾은 개별 품목만을 이용하여 최소 지지도를 넘는 2가지 품목 집합을 찾는다
- 위의 두 절차에서 찾은 품목 집합을 결합하여 최소 지지도를 넘는 3가지 품목 집합을 찾는다
- 반복적으로 수행해 최소 지지도가 넘는 빈발품목 집합을 찾는다
라. 연관 분석의 장점
- 탐색적인 기법: 조건 반응(if-then)으로 표현되는 연관 분석의 결과를 이해하기 쉽다
- 강력한 비목적성 분석기법: 분석 방향이나 목적이 특별하게 없는 경우 목적변수가 없으므로 유용하다
- 사용이 편리한 분석 데이터의 형태: 거래 내용에 대한 데이터를 변환 없이 그 자체로 이용할 수 있는 간단한 자료구조를 갖는 분석방법이다
- 계산의 용이성: 분석을 위한 계산이 상당히 간단하다
마. 연관규칙의 단점
- 상당한 수의 계산과정: 품목수가 증가하면 분석에 필요한 계산은 기하급수적으로 늘어난다
- 적절한 품목의 결정: 너무 세분화된 품목을 가지고 연관규칙을 찾으려고 하면 의미없는 분석 결과가 나올 수도 있다
- 품목의 비율차이: 상대적으로 거래량이 적은 품목은 당연히 포함된 거래수가 적을 것이고, 규칙 발견시 제외되기 쉽다
바. 순차패턴
- 순차적 패턴의 발견은 구매 순서가 고려되어 상품간의 연관성이 측정되고, 유용한 연관규칙을 찾는 기법이다
- 따라서 데이터에 각각의 고객으로부터 발생한 구매시점에 대한 정보가 있어야 한다
2. 실습
- {arulees}의 apriori() 함수를 사용을 연관규칙을 발굴해낼 수 있다
- inspect() 함수를 이용하여 apriori 함수를 통해 발굴된 규칙을 보여준다
- 지지도, 신뢰도를 조정하여 규칙을 발굴해야 한다
- {arulesViz}를 이용하여 시각화할 수 있다
반응형
'IT > ADP' 카테고리의 다른 글
[ADP_과목 4. 데이터 이해_제 4장 비정형 데이터 마이닝] (0) | 2021.03.01 |
---|---|
[ADP_과목 4. 데이터 이해_제 2장 통계 분석] (0) | 2021.01.11 |
[ADP_과목 4. 데이터 이해_제 1장 기초와 데이터 마트] (0) | 2020.11.30 |
[ADP_과목 3. 데이터 분석 기획_제 2장 분석 마스터 플랜] (0) | 2020.11.02 |
[ADP_과목 3. 데이터 분석 기획_제 1장 데이터 분석 기획의 이해] (0) | 2020.10.12 |
Comments