Posts List

[빅분기] PART3. 빅데이터 모델링 - 분석 기법 적용 - 분석 기법 (출제빈도 : 상)

            * 본문은 이기적에서 발행한 빅데이터분석기사 수험서를 공부하면서 작성된 글입니다. 시험 대비한 공부로, 암기가 필요한 부분을 요약/정리합니다.

※ 본 게시글은 특히 타 게시글에서 더욱 상세하게 다룬 만큼 빅분기에서 사용하는 용어정리만 하고 자세한 내용은 관련글 링크.

PART3. 빅데이터 모델링

2. 분석 기법 적용

2-1. 분석 기법

1) 분석 기법 개요

* 학습 유형에 따른 데이터 분석 모델

① 지도학습 : 정답(label)이 있는 데이터를 활용해 데이터를 학습. 분류, 회귀로 구분
 - 분류 : 의사결정트리(분류), 랜덤포레스트, 인공신경망, SVM, 로지스틱 회귀
 - 회귀(예측) : 의사결정트리(회귀), 선형회귀분석, 다중회귀분석

② 비지도학습 : 정답이 없는 데이터를 스스로 학습해 숨겨진 의미, 패턴을 찾아내고 구조화 하는 방법
 - 군집분석(Clustering), 연관성분석(Association), 인공신경망, 오토인코더

준지도학습 : 정답이 있는 데이터 + 정답이 없는 데이터 동시에 학습
 - 라벨을 매기는데 사람의 공수가 너무 많이 들어감
   → 라벨이 없는 데이터에 적은 량의 라벨이 있는 데이터를 사용했을 때 생각보다 성과가 좋음
 - 셀프트레이닝, GAN
   ※ 셀프트레이닝 : 정답이 있는 데이터로 학습한 뒤 정답이 없는 데이터를 예측하여 일부 채택 & 반복
      → 최근에 유행하는 이미지 오토 라벨링 기능
   ※ GAN(Generative Adversarial Networks, 생성적 적대 신경망)
    - 생성모델 + 판별모델 으로, 데이터 분포 법칙에 따라 데이터를 생성하면 판별모델에서 판별하는 방식
      ex. 위조지폐범과 경찰사이의 게임

④ 강화학습 : 주어진 환경에서 보상을 최대화 하도록 Agent를 학습하는 기법
 - Q-Learning, 정책경사(PG:Policy Gradient)

* 데이터 분석 알고리즘과 분야 (알고리즙 - 분야)

  업리프트 모델링 - 단계적 추정, 예측 분석
  생존분석 - 의료 통계, 설비 분야 사건 예측
  회귀분석 - 에측, 추정 분석
  시각화 - 원인과 관계 분석
  기초통계 - 기초 통계현황 파악
  부스팅, 배깅 - 분류 분석
  시계열 분석 - 시간상의 예측
  요인분석 - 차원 축소
  텍스트마이닝 - 감성분석
  의사결정나무, 랜덤포레스트 - 분류
  신경회로망 - 예측분석
  군집분석 - 독립변수들만의 분류, 그룹화
  추천,협업 필터링 - 아이템과 사용자 간의 상호 분석을 통한 추천
  앙상블 기법 - 추정, 예측, 규범 등의 결합 분석
  소셜네트워크 분석 - 관계망 분석
  SVM - 분류분석
  주상분분석 - 원인분석, 차원축소

2) 회귀분석

- 독립변수(들)로 종속변수를 예측하는 기법
- 최소제곱법(=최소자승법, Method of Least Squares)를 이용해 회귀계수 추정
  → 잔차 제곱의 합이 최소가 되게 하는 직선을 찾는 방법
- 결정계수(R-square)를 평가 지표로 주로 사용하며, 1에 가까울수록 높은 설명력을 가짐

* 선형회귀분석

 - 한 개의 종속변수와 한개의 독립 변수로 두 변수 사이의 관계를 분석

 - 한 개의 종속변수와 여러개의 독립변수를 사용한 회귀분석

※ 선형회귀분석의 기본 가정
 - 선형성 : 독립변수-종속변수는 선형적 관계여야 함
 - 잔차정규성 : 잔차의 기댓값은 0 + 정규분포
 - 잔차독립성 : 잔차들은 서로 독립적
 - 잔차 등분산성 : 잔차들의 분산은 일정
 - 다중 공선성 : 3개 이상의 독립변수 간에 상관관계로 인한 문제가 없어야 함

* 로지스틱 회귀분석  ※ 관련글 : [데이터마이닝] Logistic regression

선형회귀분석과 유사하나 종속변수가 연속형이 아닌 범주형으로 확장, 정규분포 대신 이항분포를 따름

① 단순 로지스틱 회귀분석 : 종속변수가 이항형 문제
② 다중 로지스틱 회귀분석 : 종속변수가 두 개 이상의 범주를 가지게 될 경우 회귀분석

- 로지스틱 회귀함수식은 각 모수에 대해 비선형식, 
- 승산(odds)으로 로짓변환(0&1로 조정하는 과정)을 통해 선형함수로 치환 가능
  ※ 승산 : 사건A가 발생하지 않을 확률 대비 일어날 확률의 비율. P(A)=1에 가까울수록 발생확률 승산은 올라감
            odds = P(A) / P(A^c) = P(A) / (1 - P(A))

* 회귀분석의 장단점

- 장점 : 크기와 관계없이 계수들에 대한 명료한 해석 & 손쉬운 통계적 유의성 검증 가능
- 단점 : 선형적인 관계로 데이터가 구성되어 있어야 적용 가능

3) 의사결정나무 (Decision Tree)


- 의사결정 규칙을 나무모양으로 나타내어 소집단으로 분류하거나 예측을 수행하는 기법
- 상위노드에서 하위노드로 갈 때 하위노드 내에서의 동질성은 크고, 하위노드간 이질성은 커지는 식으로 분류

* 의사결정나무의 구성

① 뿌리 마디(Root node) : 가장 상위 노드. 부모가 없는 노드. 모든 자료집합을 포함
② 중간 마디(Internal node) : 부리 마디에서 나온 각 나무줄기 중간에 있는 마디
③ 끝 마디(Terminal node, Leaf node) : 자식이 없는 마지막 마디
④ 자식 마디(Child Node) : 하나의 마디로부터 분리된 2개 이상의 마디
⑤ 부모 마디(parent Node) : 자식 마디의 상위 마디
⑥ 가지(Branch) : 하나의 마디로부터 끝 마디까지 연결된 마디들
⑦ 깊이(Depth) : 가장 긴 가지의 크기 (=마디의 개수)

* 의사결정나무의 종류

분류나무
- 이산형(범주형) 목표변수에 따른 빈도 기반 분리에 사용
- 가지 분할을 진행할 때 불순도(impurity)를 최소화 하는 방식으로 분화(p-값, 지니지수, 엔트로피지수 등 활용)
- 이 때 분순도 차이를 정보 획득(Information Gain)이라고 함
  ※ 순도가 증가하고 불확실성이 감소하는 것.  I(x) = log2 (1/p(x)) → 부모-자식 노드간 불순도 차이

회귀나무
- 연속형(수치형) 목표변수에 따른 평균/표준편차 기반 분리에 사용
- 가지 분할을 진행할 때 F-통계량의 p-value, 분산의 감소량 등이 분리 기준으로 활용된다
   (대표적으로 Squared loss impurity 사용)
- 분산의 감소량이 최대화가 될수록 낮은 이질성, 순수도가 높아지는 방향으로 가지분할이 진행
- 집단의 평균값이 예측값으로 활용

* 의사결정나무의 분석 과정

① 변수 선택 : 목표변수와 관련된 설명(독립)변수 선택
② 의사결정나무 형성 : 적절한 분리 기준과 정지 규칙, 평가기준 등으로 의사결정 나무 생성
가지치기 : 부적절한 나뭇가지 제거 → 오버피팅을 막고 일반화 성능을 높여줌
 - 에러감소 가지치기 : 분할/결합 전과 후의 오류를 비교하여 오류가 더 줄어들지 않을 때까지 반복
 - 룰 포스트 가지치기 : 나무 구조를 뿌리~잎까지 경로 형태로 변형 후 정확도가 낮은 순서대로 제거
④ 모형 평가 및 예측 : 이익/위험/비용 등을 고려해 모형을 평가하며 분류 및 예측 수행
⑤ 타당성 평가 : 이익도표, 위험도표, 교차 타당성(교차검증)으로 평가
⑥ 해석 및 예측 : 최종 모형에 대한 해석으로 분류 및 예측 모델 결정

* 의사결정나무의 대표적 알고리즘

CART(Classification and Regression Trees)
 - 일반적으로 활용되는 의사결정나무 알고리즘. 범주형일때는 지니계수, 연속형일때는 분산의 감소량을 이용

C4.5 / C5.0
 - 범주형에만 사용. 불순도 측정을 엔트로피 지수 활용. 범주의 수만큼 분리가 일어나는데 multiple split 가능

CHAID (Chi-squared Automatic Interaction Detection)
 - 범수형/연속형 모두 사용. 불순도 측정을 범주형일땐 카이제곱 통계량, 연속형일땐 ANAVA F 통계량 활용
 - 가지치기 없이 적당한 크기에서 성장 중지.

④ 랜덤 포레스트(Random Forest)  ※ 관련글 : 데이터마이닝 - 앙상블 모델
 - 부트스트래핑 기반 샘플링을 활용한 DT 생성후, 나무들을 모아 배깅(Bagging) 기법으로 앙상블 학습한 모형
   ※ 부트스트래핑(Bootstrap) : 표본 샘플링 할 때 중복을 허용하고 랜덤 샘플링하는 기법
   ※ 배깅(Bootstrap + Aggregating)
       : 부트스트랩된 k개 샘플로 k개 모형을 학습하고 평균 혹은 투표로 예측하는 모형을 생성하는 방법

   ※ 부스팅(Boosting)
     - 부트스트랩으로 샘플링 하는 것이 아니라, 틀렸던 샘플을 더 자주 학습 할 수 있게 샘플링 대상으로 넣는 방법
     - AdaBoost, GBM, XGBoost, LighGBM이 대표적임

   ※ 앙상블 학습(Ensemble Learning) : 배깅, 부스팅, 스태킹 기법으로 여러 모델을 학습한 후 결합한 모델
       → 일반화 성능을 향상시켜 과적합을 해결할 수 있음

* 의사결정나무의 장단점

- 장점 : 범주형/연속형 모두 사용할 수 있으며, 변수 비교가 가능하며 규칙이 직관적으로 이해됨
- 단점 : 트리구조가 복합하면 해석이 어려우며, 미지의 데이터 혹은 데이터 변형에 취약

4) 인공신경망 (ANN : Artificial neural Network)

* 인공신경망의 특징

- 두뇌세포인 뉴런을 알고리즘화 한 기계학습 기법
- 입력신호가 강도에 따라 가중치 처리되고 활성화 함수를 통해 출력이 계산되는 것이 기본 원리
- 학습을 거쳐 결과가 나오게끔 가중치가 조정(튜닝)된다는 점이 주요 특징
- 높은 복잡성을 가짐으로 입력 자료의 선택에 민감함

* 인공신경망의 발전

① 기존 신경망 다층 퍼셉트론이 가진 문제
 - 사라지는 경사도(Vanishing Gradient) : 신경망이 깊을수록 데이터가 사라져 학습이 어려움
 - 과대적합(Overfitting) : 데이터가 적으면 특정 학습데이터에만 학습이 너무 잘되어 신규 데이터 추론이 어려움

② 딥러닝(Deep Learning)의 등장
 - 사라지는 경사도 문제는 2000년 중/후반부터 사전학습(Pretraining)으로 어느 정도 해결
 - 과대적합 문제는 초기화(initialize point) 알고리즘 및 드롭아웃(dropout)으로 어느 정도 해결
 - 개선된 다층 퍼셉트론을 딥러닝으로 re-branding (제프리 힌튼 교수)
 - 21세기 이후 신경망 학습과 계산에 적합한 그래픽 처리장치(GPU)가 발전하여 더욱 발전
 - DNN(Deep Neural Network)가 기본구조이며 은닉층 2개 이상을 가지면 DNN이라 부름
 - DNN을 응용한 알고리즘으로 CNN, RNN, LSTM, GRU, Auto-encoder, GAN 등

* 인공신경망의 원리

① 주요 요소
 - 노드 / 가중치 / 활성함수 / 입력층 / 은닉층 / 출력층
② 뉴런 간의 연결 방법
 - 층간 연결 : 서로 다른 층에 존재하는 뉴런과 연결
 - 층내 연결 : 동일 층 내의 뉴런과의 연결
 - 순환 연결 : 어떠한 뉴런의 출력이 자기 자신에게 입력되는 연결

* 학습

신경망에는 튜닝 가능한 가중치와 편향이 있으며, 이를 데이터에 적응하도록 조정하는 과정을 학습이라 정의

① 손실함수 : 신경망의 출력과 실제값과의 오차에 대한 함수. 이를 최소화 하도록 가중치와 편향을 학습(튜닝)
② 평균제곱오차(MSE : Mean Squared Error) : 손실함수로 사용. 오차를 제곱하여 모두 더한뒤 평균
③ 교차 엔트로피 오차(CEE : Cross Entropy Error) : 분류모델 학습에 사용하는 오차
④ 학습 알고리즘
 - step1. 미니배치 : 훈련데이터 일부를 무작위 선택한 것. 이에 대한 손실함수를 줄이는 것을 목표로 설정
 - step2. 기울기 산출 : 손실함수 최소화 하기 위해 경사하강법, 경사상승법, 확률적 경사하강법 적용
 - step3. 매개변수 갱신 : 매개변수를 기울기 방향으로 조금씩 업데이트 하면서 1~3단계 반복
⑤ 오차 역전파
 - 위와 같이 기울기 미분을 통해 진행하는 것은 시간소모가 큼
 - 오차를 출력층 → 입력층 으로 전달, 연쇄법칙 활용한 역전파를 통해 가중치와 편항을 계산, 업데이트
⑥ 활성화 함수
 - 입력 신호의 총합을 그대로 사용하지 않고 출력 신호로 변환하는 함수
 - Sigmoid, ReLU, Tanh 등의 함수를 사용
과대적합(Overfitting) 해결
 - 가중치 감소(Weight Decay) : Lasso(L1) 혹은 Ridge(L2) 정규화 개념을 비용함수에 적용하는 방법
    [ L1 정규화(좌) vs. L2 정규화(우), 출처 : sonsnotation ]
   · Lasso(L1 정규화) : 오차함수에 1-norm 을 적용해 가중치 튜닝에 제약을 거는 방법
   · Ridge(L2 정규화) : 오차함수에 2-norm 제곱승을 적용해 가중치 튜닝에 제약을 거는 방법
 - 드롭 아웃(Dropout) : 은닉층의 뉴런을 임의로 삭제하면서 학습하는 방법
 - 하이퍼파라미터 최적화 : 학습률, 배치크기, 학습반복횟수, 가중치초기화 방법 등의 파라미터를 최적화
   ※ Manual Search → Grid Search → Random Search → Bayesian Optimization
      위와 같이 접근하며 튜닝한다.  ※ 관련글 : [머신러닝/딥러닝] Bayesian Optimization

* 딥러닝 모델 종류

① CNN (합성곱 신경망 모델, Convolutional Neural Network) ※ 관련글 : [머신러닝/딥러닝] CNN
 - 시신경 구조를 모방한 구조. 이미지 처리에 특화. 
 - 합성곱 계층과 풀링계층으로 나뉘어져 있음
 - 합성곱 계층은 필터(혹은 커널)을 스트라이드만큼 순회하면서 새로운 이미지(특징지도, Feature map)을 생성
   ※ 특징지도는 합성곱 계층보다 필연적으로 작아지는데, 정보가 많이 소실될 경우 0으로 채움 (패딩)
 - 풀링계층은 패딩 알고리즘을 활용해 특징지도를 sub-sampling 하여 대표값만 기억하는 계층임
   ※ 최대값을 선택하거나(Max pooling), 평균값을 선택(Average pooling) 할 수 있음
      → 신경세포학적으로 강한 신호만 살아남는 것을 모방 (ex. 고양이 전체를 보는 것이 아니라 강한 특징만 봄)
      → 패딩(작아진 만큼 0으로 채우는 행위)을 적용할 수 있지만 목적이 sub-sampling이라 잘 쓰지 않음
      → 풀링계층 자체가 이미지 축소개념이라 과적합 및 학습시간 소요 개선에 필요함
 - 최종적으로 평탄화 계층(Flatten layer)를 통해 이미지 데이터를 배열 형태로 처리한 후 최종 클래스 분류

② RNN (Recurrent Neural Network)  ※ 관련글 : [머신러닝/딥러닝] RNN
 - 순서를 가진 데이터를 입력, 단위 간 연결이 시퀀스를 따라 방향성 그래프를 형성하는 NN모델
 - 내부 상태(메모리)를 이용해 입력 시퀀스를 처리
 - CNN과 달리 중간층(은닉층)이 순환구조로 동일한 가중치를 공유
 - 가중치와 편향에 대한 미분을 계산하기 위해 SGD(확률적 경사하강법)을 주로 사용
 - 가중치 업데이트를 위해 과거시점까지 오차를 역전파 (BPTT : Back Propagation Through Time)

③ LSTM (Long Short-Term Memory Network)
 - RNN의 Gradient decent(데이터가 소멸하는 문제)를 해결하기 위해 변형된 알고리즘
 - RNN에 비해 4배 이상 파라미터가 많으며, 입력/출력/망강 게이트로 RNN 구조를 보강
 - LSTM 구조를 단순화했지만 성능은 비슷한 GRU(Gated Recurrent Unit)도 있음

 - 대표적 비지도학습 모델. 다차원 데이터 → 저차원 데이터 → 고차원 데이터 수행하는 인공신경망 모델
 - 학습이 잘 된다면 생성된 저차원 데이터가 원본 데이터를 잘 표현한다고 할 수 있음
 - 이 원리를 가지고 데이터 압축, 잡음억제 등을 수행할 수 있음

⑤ GAN (Generative Adversarial Network)  ※ 관련글 : [머신러닝/딥러닝] GAN
 - 학습 패턴과 유사하게 만드는 생성자(Generator)와 진위여부를 판단하는 판별자(Discriminator)로 구성
 - Generator와 Discriminator가 싸우면서(Adversarial) 성능을 높여가는(학습) 원리
 - 한쪽으로 성능이 치우치면 학습이 잘 안됨 → 이를 개선한 DCGAN(Deep Convolutional GAN)
 - 기초연구, 응용산업 폭넓게 활용. DCGAN, SRGAN, 스택GAN, Cycle GAN 등으로 발전

* 인공신경망의 장단점

- 장점 : 비선형 예측, 다양한 데이터유형, 새로운 학습환경, 불완전한 데이터 입력, 스스로 가중치 학습, Noise강건
- 단점 : 복잡한 만큼 필연적으로 대량의 데이터가 필요 → 학습 시간/비용이 매우 큼. 설명력이 매우 떨어짐
         ※ 최근 X-AI (Explainable AI) 분야를 통해 대체안이 연구되고 있음
         은닉층 수와 노드수 결정이 어려움 등

5) 서포트백터머신 (SVM : Support Vector Machine)



- 지도학습 기법이며, 고차원 공간에서 초평면을 찾아 이를 활용해 분류 및 회귀를 수행하는 알고리즘
- 데이터가 어느 카테고리에 속하는지 비확률적 이진 선형 분류 모델을 만드는 기법
- 만들어진 분류 모델은 사상된 공간에서 경계로 표현되는데 그 중 가장 큰 폭을 가진 경계를 찾는 원리
- 주어진 데이터를 고차원 특징 공간으로 사상시켜 (using 커널트릭) 비선형 분류에도 사용 가능

* SVM의 주요 요소

① 벡터(Vector) : 점들 간 클래스
② 결정영역(Decision boundary) : 클래스들을 잘 분류하는 선
③ 초평면(Hyperplane) : 서로 다른 분류에 속한 데이터들 간 거리를 가장 크게 하는 분류 선 (n-1차원)
④ 서포트벡터(Support Vector) : 두 클래스 사이에 위치한 포인트들
⑤ 마진(Margin) : 서포트벡터를 지나는 초평면 사이의 거리

* SVM의 핵심적 특징

- 기존 분류기는 '오류율 최소화'를 목표로 했으나 SVM은 '여백(마진) 최대화'로 일반화 능력의 극대화 추구
- 새로운 자료에 대한 오분류가 매우 낮음
- 선형 분류와 더불어 비선형 분류에도 사용 가능. (커널트릭을 활용해 데이터를 고차원 특징공간으로 사상)

* SVM의 장단점

- 장점 : 라이브러리가 오픈되어 있어 사용이 쉬움. 분류, 회귀 모두 가능. 신경망에 비해 소량 데이터. 과대/과소적합 리스크 낮음
- 담점 : 이진분류만 가능. 데이터가 많으면 학습시간이 오래 걸림. 각각 분류에 대한 SVM 모델 구축 필요

6) 연관성 분석 (Association Analysis)

- 둘 이상의 거래, 사건에 포함된 항목들의 관련성을 파악하는 탐색적 데이터 분석기법
- 유사한 개체들을 그룹화하여 각 집단의 특성 파악, 각 사건의 연관규칙을 찾는 기법으로 비지도학습에 해당
- 컨텐츠 기반 추천(Contents-based Recommendation)의 기본 방법론
- 그룹 툭성에 대한 특성 분석으로 군집분석과 병행
- 장바구니 분석(Market Basket Analysis)으로도 불림
- 예를들어 장바구니의 아이템들(거래정보)를 담고 구매 패턴과 여러 구매들 사이에서의 
  상품, 구매행동, 이용자들 간의 연관성ㅇ르 분석할 때 일정한 규칙을 찾아내게 되는 것

* 연관규칙(Association Rule) 순서

① 데이터간 규칙 생성 : if 조건절(Antecendent) → 결과절(Consequent)
② 어떤 규칙이 데이터 특성에 부합되는지 기준 설정
 - 지지도(support) : 데이터 전체에서 해당 물건을 고객이 구입할 확률(거래빈도)
 - 신뢰도(Confidence) : 어떤 데이터를 구매했을 때 다른 제품이 구매될 조건부 확률(연관성)
 - 향상도(life) : 두 물건의 구입 여부가 독립인지 판단. 1이면 독립, 1보다 크면 양의 상관관계. (우연인지?)
③ 규칙의 효용성 평가
 - 실제로 지지도/신뢰도/향상도가 높은 규칙들을 발견하기 위해 모든 비용 탐색시 비용 ↑
 - 빈발(frequent item sets)만 고려하고, 연관규칙을 생성하는 아프리오리 알고리즘을 활용하는 추세

* 아프리오리(Apriori) 알고리즘

- 최소지지도 이상의 빈발항목집함만을 찾아내 연관규칙을 계산하는 기법
  ※ 빈발항목집합 : 최소지지도 이상을 갖는 항목집합
- 최소지지도 이상의 한 항목집합이 빈발(frequent)하다면 부분집합 역시 빈발항목집합으로 처리
- 최소지지도 미만의 한 항목집합이 비빈발(infrequent)하다면 이 항목을 포함하는 모든 집합은 비빈발항목집합으로 가지치기(pruning)
- 이후 최소신뢰도 기준을 적용, 최소신뢰도에 미달하는 연관규칙은 다시 제거 & 반복(새로운 연관규칙 없을 때까지)

* 연관성분석의 장단점

- 장점 : 분석 결과 이해가 쉽고 실제 적용하기 용이함
- 단점 : 품목이 많을수록 연관석 규칙이 더 많이 발견되나 의미성에 대해 사전판단 필요, 상당수의 계산 필요.

7) 군집분석

- 비지도학습의 일종
- 각 개체들의 유사성을 분석해 높은 대상끼리 일반화된 그룹으로 분류하는 기법
- 주로 분석초기에 데이터 특성파악을 위해 사용
- 같은 군집 내에서는 객체들이 서로 붙고(응집), 다른 군집 내에서는 최대한 멀리(분리) 시키는 원리
- 계층적 군집분석과 비계층적 군집분석이 있음

* 군집분류 시 기본 가정

- 하나의 군집 내에 속한 개체들의 특성은 동일
- 군집의 개수 또는 구조와 관계없이 개체간의 거리를 기준으로 분류
- 개별 군집의 특성은 군집에 속한 개체들의 평균값으로 표기

* 군집분석의 척도

- 유사성 계산은 방법에 따라 거리와 유사성으로 구분
- 거리는 값이 작을수록 두 관찰치가 유사함을 의미 (유클리드 거리, 맨하탄 거리 등)
- 유사성은 값이 클수록 두 관찰치가 서로 유사함을 의미 (코사인값, 상관계수 등)

① 유클리드 거리(Euclidean Distance)
 - 2차원 공간에서 두 점을 잇는 가장 짧은 거리 (피타코라스 정리 활용)
② 맨하탄 거리(Manhattan Distance)
 - 사각형 격자, 블록으로 이뤄진 지도에서 출발-도착까지 가로지르지 않고 도착하는 최단거리 개념
③ 민코우스키 거리(Minkowski Distance)
 - 민코프스키 공간에서의 거리. m=1일때 맨하탄 거리와 같음. m=2일때 유클리드 거리와 같음
   ※ 민코프스키 공간 : 특수 상대성 이론과 관계 있는 시공간. 3차원 유클리드 공간에 시간개념 탑재
④ 마할라노비스 거리(Mahalanobis Distance)
 - 다변량 데이터에서 두 데이터간 나타나는 방향성과 상관도를 나타낸 공분산행렬 개념을 적용
 - 정규분포에서 특정값이 얼마나 평균에서 멀리 있는지를 나타낸 거리
⑤ 자카드 거리(Jaccard Distance)
 - 비교 대상인 두 객체를 특징들의 집합으로 간주하며, 범주형 데이터에서 비유사성을 측정하는 지표

* 군집분석의 종류

① 계층적(Hierarchical) 군집분석  ※ 관련글 : [데이터마이닝] 계층적 군집분석
 - 계층화된(상위-하위 그룹) 구조로 군집을 형성
 - 유사성이 높은 샘플 혹은 클러스터 끼리 먼저 묶으면서 계층적으로 군집을 구성 (덴드로그램 활용)
 - 최단 연결법 : 군집과 군집/데이터 간의 거리 중 최단거리(min)값을 거리로 산정하는 방법
 - 최장 연결법 : 최장거리(max)값을 거리로 산정
 - 평균 연결법 : 평균(mean)값을 거리로 산정
 - Ward 연결법 : 군집 내 편차들의 제곱합을 고려한 군집 내 거리를 기준으로 하는 방법

② 비계층적(Non-hierarchical) 군집분석(분할적 군집)  ※ 관련글 : [데이터마이닝] 비계층적 군집분석
 - 사전에 군집수로 표본을 나누며 레코드(혹은 군집)들을 정해진 군집에 할당하는 방법
 - 계산량이 적어 대규모 DB에서 처리가 유용
 - 대표적으로 K-means / K-medoids / Model-based / DBSCAN(Density-Based) 등이 있다

 1) K-means (K-평균 군집 분석)
  - 군집 내부의 분산을 최소화하여 각각 사례를 군집들 중 하나에 할당. 가장 많이 쓰이는 군집방법
  step1. k개(중심점 임의 지정) 초기 군집 정의
  step2. 가장 가까운 중심을 가진 군집에 할당
  step3. 군집 중심 재설정, 관찰치 변동 시 군집 중심 재계산
  step4. step2-3을 허용오차 이내 반복
  step5. 군집 사이에 관찰치 이동으로 분산 증가될 시 군집화 중단

 2) DBSCAN(밀도 기반 클러스터링)
  - 전체 데이터의 확률 분포가 가우시안 분포 조합으로 이뤄졌음을 가정
  - 각 분포에 속할 확률이 높은 데이터들 간 군집을 형성하는 방법
  - 개별 데이터가 정규 분포 상에서 어떤 분포에 속할지 더 높은 확률로 배정된 부문으로 군집화
  - 데이터가 정규 분포 조합 가설에 어긋나면 클러스터링이 부적절하게 될 수 있음
  - 계산량이 많아 대용량 데이터 처리에는 적합하지 않음

* 군집분석의 장단점

- 장점 : 다양한 데이터 형태에 적용 가능, 특정 변수에 대한 정의가 필요하지 않은 용이한 탐색적 기법
- 단점 : 초기 군집수, 관측치간 거리 등의 결정에 따라 결과가 상이. 사전 주어진 목표가 없어 결과 해석 어려움

댓글 쓰기

0 댓글