[ADP_과목 4. 데이터 이해_제 3장 정형 데이터 마이닝] 본문

IT/ADP

[ADP_과목 4. 데이터 이해_제 3장 정형 데이터 마이닝]

호랑구야 2021. 1. 25. 09:00

* 다음 내용은 [데이터 분석 전문가 가이드] (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가 몇 배 증가하는지를 나타내는 값

  • 위의 식을 두 가지 관점에서 해석가능
    1. 다중로지스틱함수로, 설명변수가 한개인 경우, 해당 회귀계수가 양수면 S자, 음수면 역 S자 모양을 가진다
    2. 표준로지스틱 분포의 누적분포함수(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
        • 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 정도면 유의하므로 적합 결여
            그 이상이면 귀무가설이 기각되지 않으며, 적합값이 관측된 자료를 잘 적합한 것
  • 신뢰구간
    • confint(glm(...), parm = "Variable")
      • 회귀계수: β
    • exp(confint(glm(...), parm = "Variable"))
      • 오즈의 증가량: exp(β)
  • 적합 결과 확인
    • 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)함수





  • 패키지 {nnet}의 nnet() 함수 이용
    • nnet(Column~., data=..., size=..., rang=..., decay=..., maxit=...)
      • plot.nnet() 함수를 사용하기 위해서는, url 혹은 3개의 패키지를 사용하는 방법이 있다.
        • source_url('...')
        • library(clusterGeneration)
        • library(scales)
        • library(reshape)
    • plot.nnet(nnet(...)): 결과 시각화에 사용
  • 패키지 {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에 가까운 영향을 갖는 것이 가능
      • 모든 자료에 대한 일반화가중치의 분포는 특정 공변량의 효과가 선형적인지 여부 나타냄
      • 작은 분산은 선형효과를 제시, 큰 분산은 비-선형적 효과 있음을 제시
    • 모형의 단순화를 위해 일반화 가중치의 분산이 0이 아닌 값을 갖고 있는 입력변수로 신경망모형을 적합할 수 있다.
    • compute() 함수
      • 각 뉴런의 출력값을 계산
      • 새로운 공변량 조합에 대한 예측값 구할 수 있다.
    • confidence.interval() 함수
      • 가중치들에 대한 신뢰구간 구하는 함수
      • Gunther 와 Fritsch(2010)을 참고
  • 다중(multi-layer) 신경망 또는 다층 퍼셉트론
    • 목적
      • 입력벡터 x를 출력벡터 y(x)로 매핑하는 것
    • 입력층
      • 자료벡터 혹은 패턴을 받아들임
      • 입력의 수는 입력 차원의 수로 결정
    • 은닉층은 이전층으로부터 출력을 받아 가중을 취한 후 비선형의 활성함수로 넘긴다
      • 은닉층 수 고려사항
        • 다층신경망은 훈련이 어렵다
        • 시그모이드 활성함수 갖는 2개 층의 네트워크(1개 은닉층)는 임의의 의사결정 경계를 모형화할 수 있다
      • 은닉층 노드의 수
        • 너무 적으면 복잡한 의사결정 경계 만들 수 없다
        • 너무 많으면 일반화가 어렵다
    • 출력층은 최종 은닉층으로부터 결과를 받아 비선형적으로 결과를 넘겨 목표값을 제공
    • 출력층의 노드의 수는 출력 범주의 수로 결정
    • 가중치는 오차의 역전파 알고리즘 통해 갱신된다

 

 

3. 의사결정나무(Descision Tree) 모형

  • 의사결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류, 예측 수행하는 분석방법
  • 매 단계마다 분류변수와 분류기준값의 선택이 중요하다
  • 상위 노드에서의 (분류변수, 분류기준값)은 하위노드에서 노드 내 동질성이, 노드 간에는 이질성이 가장 커지도록 선택한다
  • 과대적합/과소적합 되지 않도록 합리적 기준을 찾아야 한다.
  • 의사결정나무 구조
    • 맨위: 뿌리 마디(root node)로 모든 자료 집단 포함
      • 상위 마디: 부모 마디(parent node)
        • 하위 마디: 자식 마디(child node)
          • 마지막: 최종 마디(terminal node)로 더이상 분기되지 않음
  • 가지분할(split): 나무의 가지를 생성하는 과정
  • 가지치기(pruning): 생성된 가지를 잘라내어 모형을 단순화하는 과정
  • 목표변수
    • 이산형: 분류나무
      • 분류변수와 분류기준값 선택방법 
        • 카이제곱 통계량의 p-값(Chi-square statistic)
          • 작을수록 자식 노드 내의 불확실성이 큼 > 불확실성이 작아지도록 가지분할을 수행
        • 지니지수(Gini index)
          • 클수록 자식 노드 내의 불확실성의 큼 > 가장 작아지는 방향으로 가지분할 수행
        • 엔트로피 지수(entropy index)
          • 클수록 자식 노드 내의 불확실성이 큼 > 가장 작아지는 방향으로 가지분할 수행
        • 지니지수와 엔트로피지수 값의 범위는 다르나, 해석의 값의 크기에 따라 유사
        • c는 목표변수의 범주의 수
        • 불확실성(이질성)이 클수록 순수도가 낮아짐
    • 연속형: 회귀나무 
      • 분류변수와 분류기준값 선택방법
        • F-통계량의 값이 커지는(p-값은 작아지는) 방향으로 가지분할을 수행
          • 일원배치법의 검정통계량으로, 값이 클수록 오차의 변동에 비해 처리 변동이 크다
          • 자식 노드 간이 이질적
        • 분산의 감소량(variance reduction) 값이 최대화 되는 방향으로 가지분할 수행
  • 의사결정나무의 분석과정
    1. 목표변수와 관계가 있는 설명변수들 선택
    2. 분석목적과 자료의 구조에 따라 적절한 분리기준과 정지규칙을 정해 의사결정 나무 생성
      • 정치규칙
        • 더 이상 분리가 일어나지 않고 현재의 마디가 끝마디가 되도록 하는 여러 규칙
        • 최대 나무의 깊이, 자식마디의 최소 관측치 수, 카이제곱 통계량, 지니지수, 엔트로피 지수 등
    3. 부적절한 나뭇가지는 제거
      • 가지치기
        • 끝마디가 너무 많으면 모형이 과대 적합된 상태로 현실문제에 적용할 수 있는 적절한 규칙이 나오지 않는다. 따라서 분류된 관측치의 비율 또는 MSE 등 고려하여 수준의 가지치기 규칙을 제공해야 한다
    4. 이익, 위험, 비용 등을 고려 모형평가
    5. 분류 및 예측
  • 의사결정나무분석 위한 알고리즘과 분류 기준변수의 선택법
  이산형 목표변수 연속형 목표변수
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. 모형 평가

  • 어느 것이 가장 우수한 예측 및 분류 성과를 보유하는가 비교 분석하는 과정
  • 모형 평가 기준
    1. 일반화의 가능성
      • 같은 모집단 내의 다른 데이터에 적용시 안정적인 결과인가 평가
      • 데이터를 확장하여 적용할 수 있는가
    2. 효율성
      • 얼마나 효과적으로 구축되었는지 평가
      • 적은 입력변수를 필요로 할수록 높은것
    3. 예측과 분류의 정확성
      • 구축된 모형 정확성 측면에서 평가
      • 실제 문제에 적용했을 때, 정확한 결과를 양산해야 의미 있는 모형
  • raw data를 나누어 진행
    • tarining data: 모형 구축용
    • test data: 모형 성과 검증용
    • 이를 통해 얻을 수 있는 것
      • 과적합화 문제 해결
      • 잘못된 가설 가정하는 2종 오류 발생 방지
  • 대표적 추출 방법
    1. hold-out
      • 원천 데이터를 랜덤하게 두 분류로 분리하여 교차 검정한다
      • 전체 70%를 훈련용으로 사용
    2. 교차검증
      • 반복적으로 성과를 측정, 결과를 평균한 것으로 분류 분석 모형을 평가
      • k-fold 교차검증
        • 사이즈가 동일한 k개의 하부 집합으로 나눈다
        • k번째 하부집합 하나를 test data 으로 사용
        • 나머지 k-1개 하부 집합을 training data 으로 사요
        • k번 반복 측정, 각각 반복측정 결과를 평균 낸 값을 최종 평가로 사용
        • 일반적으로 10-fold 사용하나, 하부 집합 분포에 따른 적절한 k 선정이 필요
    3. 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
      • 전체 데이터 양이 크지 않은 경우에 적합

 

  • 볌주형 변수 분류 분석 모형 학습 뒤에, 다음 단계에서는 검증용 데이터를 사용하여 모형 분류 및 예측 정확도 평가를 수행한다

가. 오분류표(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)
  • 오분류표 도출을 위해, {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)
      • 군집내의 오차제곱합에 기초하여 군집을 수행
      • 보통 군집이 병합되면, 병합된 군집의 오차제곱합은 병합 이전 각 군집의 오차제곱의 합보다 커지는데, 그 증가량이 가장 작아지는 방향으로 형성하는 방법
      • 크기가 비슷한 군집끼리 병합하는 경향이 있다
  • 모든 변수가 연속형일 때 사용 가능한 다양한 거리
    • 유클리드 거리
    • 맨하튼 또는 시가거리
    • 민코우스키 거리
    • 표준화 거리
      • 변수의 측정단위를 표준화한 거리
    • 마할라노비스 거리
      • 변수의 표준화와 함께 변수간의 상관성(분포 형태)을 동시에 고려한 통계적 거리
    • 수학적 거리
      • 유클리드, 맨하튼, 민코우스키
    • 통계적 거리
      • 표준화, 마할라노비스
    • 체비세프 거리, 켄버라 거리 등
    • 유사성 측도인 코사인 거리, 상관계수 등을 이용한 거리 등
  • 모든 변수가 명목형인 경우
    • i와 j의 거리를 다음과 같이 정의할 수 있다
      • d(i, j) = (개체 i와 j에서 다른 값을 가지는 변수의 수)/(총 변수의 수)
    • 유사성 측도인 단순 일치 계수, 자카드 계수 등
    • 순서형 자료인 경우
      • 순위 상관 계수를 이용하여 거리 정의
    • 유사성과 정의는 반대의 개념임을 주의해서 사용한다
    • 상대적 거리가 가까울수록 유사성이 높다고 말한다
  • 병합적 방법
    • 작은 군집으로부터 출발하여 병합해 나가는 방법
  • 분할적 방법
    • 큰 군집으로부터 출발하여 군집을 분리해 나가는 방법'
  • dist()는 거리(또는 비유사성)행렬을 제공하는 함수
    • method= 옵션을 통해 거리 정의 가능
      • euclidean, maximum, manhattan, binary, minkowski 등
  • hclust()는 계층적 군집 분석을 수행하는 함수
    • method= 옵션으로 거리 측정법 선택 가능
      • ward, single, complete, average, centorid 등
  • plot() 이용하여 덴드로그램 시각화 가능
  • cutree() 의 결과를 이용하여, tree의 높이(h)나 그룹의 수(k)를 옵션으로 지정하여 원하는 수의 그룹으로 나눌 수 있다
  • rect.hclust() 의 결과를 이용하여, tree의 높이(h)와 which를 이용하여 그룹의 전체 또는 일부를 나타낼 수 있다
  • {cluster}의 agnes()는 병합적 방법을 이용하여 분석
    • metric= 옵션을 통해 거리 정의 가능
      • euclidean, manhattan 등
    • method= 옵션을 통해 병합 방법 지정 가능
    • metric= 옵션을 사용않고, daisy() 이용하여 거리 계산 가능
      • 데이터 관측치 사이의 거리를 계산해주며, 형태가 수치형일 필요가 없어 dist()보다 유연하다
      • 옵션으로는 euclidean, manhattan, gower 등이 있다

 

 

2. k-평균 군집

  • 알고리즘
    1. 초기(군집의) 중심으로 k개의 객체를 임의로 선택한다
    2. 각 자료를 갖아 가까운 군집 중심에 할당한다
    3. 각 군집내의 자료들의 평균을 계산하여 군집의 중심을 갱신한다
    4. 군집 중심의 변화가 거의 없을 때(또는 최대 반복수)까지 단계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 알고리즘을 사용
  • {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의 조건부 기댓값을 대입하면, 로그-가능도함수를 최대로 하는 모수를 쉽게 찾을 수 있다
        • 갱신된 모수 추정치에 대해 위 과정을 반복하면, 수렴하는 값을 얻게 되고, 이는 최대가능도추정치로 사용될 수 있다
  • R에서 정규혼합분포의 추정과 군집화가 가능한 패키지와 그 함수
    • {mixtools}의 normalmixEM()함수
    • {mclust}의 Mclust() 함수를 이용하고, plot.Mclust() 함수를 이용하여 시각화 가능
    • {nor1mix}, {HDclassif}, {EMcluster}등에서 가능

 

 

4. SOM(Self-Organizing Maps)

  • 코호넨 맵이라고 알려져 있다
  • 비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화한다
  • 시각적으로 이해하기 쉽다
  • 입력 변수의 위치 관계를 그대로 보존한다
  • 실제 공간의 입력 변수가 가까이 있으면, 지도상에서도 가까운 위치에 있는다
  • 입력 변수의 정보와 그들의 관계가 지도상에 그대로 나타난다
  • 패턴 발견, 이미지 분석 등에 뛰어난 성능을 보인다
  • 두 개의 인공신경망 층으로 구성
    • 입력층
      • 입력벡터를 받는 층
      • 입력 변수의 개수와 동일하게 뉴런 수가 존재
    • 경쟁층
      • 2차원 격자로 구성
      • 입력 벡터의 특성에 따라 벡터가 한 점으로 클러스터링 되는 층
      • 사용자가 미리 정해놓은 군집의 수만큼 뉴런 수가 존재
    • 입력층의 자료가 학습에 의해 경쟁층에 정렬되는데, 이를 지도라고 부른다
    • 입력층의 각각의 뉴런은 각각 경쟁층의 뉴련과 완전 연결되어 있다
  • SOM의 학습 알고리즘
    1. 1. SOM맵의 노드에 대한 연결강도를 초기화한다
    2. 2. 입력 벡터를 제시한다
    3. 3. 단계
      1. 1. 아래 유클리드 거리를 사용하여 입력 벡터와 프로토타입 벡터 사이의 유사도를 계산한다
        • //x-me//=mini//x-mi//
          • x: 샘플 벡터
          • mi: 프로토타입 벡터, mi = {mi1, ... , mid}, d: 입력 벡터의 차원
          • e: BMU
      2. 2. 입력벡터와 가장 거리가 짧은 프로토타입 벡터(BMU)를 탐색한다
    4. 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의 위치
    5. 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: 데이터 매트릭스
  • 군집 분석 결과는 범례의 크기를 이용하여 해석한다
  • 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: 데이터가 범주형 또는 연속형 여부
  • SOM 군집 분석 결과, 유니트 사이의 거리 계산법
    • unit.distances(grid, toroidal)
      • 인수
        • grid: somegird의 오브젝트
        • toroidal: true일 경우, 맵의 에지는 토폴로지가 토러스의 토폴지가 되기 위해 조인됨
  • 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
    • 최소 지지도를 갖는 연관규칙을 찾는 대표적인 방법
    • 최소지지도보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾는 것
  • 분석 절차
    1. 최소 지지도를 설정한다
    2. 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾는다
    3. 2에서 찾은 개별 품목만을 이용하여 최소 지지도를 넘는 2가지 품목 집합을 찾는다
    4. 위의 두 절차에서 찾은 품목 집합을 결합하여 최소 지지도를 넘는 3가지 품목 집합을 찾는다
    5. 반복적으로 수행해 최소 지지도가 넘는 빈발품목 집합을 찾는다

 

. 연관 분석의 장점

  1. 탐색적인 기법: 조건 반응(if-then)으로 표현되는 연관 분석의 결과를 이해하기 쉽다
  2. 강력한 비목적성 분석기법: 분석 방향이나 목적이 특별하게 없는 경우 목적변수가 없으므로 유용하다
  3. 사용이 편리한 분석 데이터의 형태: 거래 내용에 대한 데이터를 변환 없이 그 자체로 이용할 수 있는 간단한 자료구조를 갖는 분석방법이다
  4. 계산의 용이성: 분석을 위한 계산이 상당히 간단하다

 

. 연관규칙의 단점

  1. 상당한 수의 계산과정: 품목수가 증가하면 분석에 필요한 계산은 기하급수적으로 늘어난다
  2. 적절한 품목의 결정: 너무 세분화된 품목을 가지고 연관규칙을 찾으려고 하면 의미없는 분석 결과가 나올 수도 있다
  3. 품목의 비율차이: 상대적으로 거래량이 적은 품목은 당연히 포함된 거래수가 적을 것이고, 규칙 발견시 제외되기 쉽다

 

. 순차패턴

  • 순차적 패턴의 발견은 구매 순서가 고려되어 상품간의 연관성이 측정되고, 유용한 연관규칙을 찾는 기법이다
  • 따라서 데이터에 각각의 고객으로부터 발생한 구매시점에 대한 정보가 있어야 한다

 

 

2. 실습

  • {arulees}의 apriori() 함수를 사용을 연관규칙을 발굴해낼 수 있다
  • inspect() 함수를 이용하여 apriori 함수를 통해 발굴된 규칙을 보여준다
  • 지지도, 신뢰도를 조정하여 규칙을 발굴해야 한다
  • {arulesViz}를 이용하여 시각화할 수 있다
반응형
Comments