[til]처음시작하는 머신러닝 4-5장

4. 군집화

Euclidean Distance

$$ d(x, y) = \sqrt{\sum^n_{i=1}(x_i-y_i)^2} = ||X-Y|| $$


$$ Squared Euclidean Distance = \sum^n_{i=1}(x_i-y_i)^2=||X-Y||^2_2 $$

군집화 유형

  • 중심기반 군집화
    • k-means clustering
    • k-medians clustering
    • k-modes clustering
  • 계층적 군집화
  • 밀도기반 군집화

중심기반 군집화

  1. K개의 임의의 포인트 선정
  2. 각 데이터와 K개 포인트의 거리 계산
  3. 각 데이터를 K개의 포인트에 할당
  4. K개 포인트를 중심점으로 이동
  5. 2-4를 반복

계층적 군집화

  • 최상의 클러스터: 모든 데이터 포함
  • 최하위 클러스터: 1개의 데이터 포함
  • 클러스터 방식
    • 하향식 분할적 클러스터화
      • 전체를 1개의 클러스터로 지정
      • 중심점 지정
      • 중심점에서 가장 먼 데이터 확인
      • 중심점과 먼 거리 데이터를 기준으로 거리 계산
      • 중심점과 먼거리에 데이터 할당
      • 클러스터 별로 2-5반복
    • 상향식 집괴적 클러스터화
      • 1개의 1개의 클러스터로 지정
      • 거리가 가까운 2개를 뭉쳐 클러스터화
      • 거리가 가까운 2개 클러스터 뭉침
        • 가까운 거리 기준
        • 먼거리 기준
        • 평균거리 기준
      • 1개가 남을때 까지 반복

밀도 기반 군집화

  • 유형
    • 평균 이동 군집화
    • DBSCAN: Density-based spatial clustering of applications with noise
      • 용어
        • core point: 반경 Epsilon안에 일정 개수 이상의 데이터가 존재하는 데이터
        • border point: 중심 포인트보다 적지만, 중심 포인트로 부터 반경 Epsilon안에 존재하는 데이터
        • noise point: core point도 border point도 아닌 데이터

유사도 계산

  • 타입
    • Minkoski Distance: 벡터 공간의 두 점간 거리
    • Mahalanobis distance: 점간 분포를 고려한 거리

minkowski distance

$$ d(X, Y) = \sqrt[p]{\sum^m_{i=1}|x_i-y_i|^p} $$

  • p=1: Manhatan Distance
  • p=2: Euclidean Distance

Mahalanobis distance:

  • 공분산 이용

5장 문서 분석 시스템

  • 문서 분석
    • 문서 분류
    • 토픽 모델링
    • 문법 분석
    • 단어 임베딩

문서 분류

  • 문서 분류의 기준

    • 단어 출현 빈도
    • TF-IDF
    • 토픽 or 클러스터링
  • 단어 Feature: bag-of-word

    • Word Frequency
      • $Word\ Frequency = \frac{단어의 출현 횟수}{문서의 총 단어수}$
    • Word Count
    • Word Occurrence
  • 기본 모델

    • bag of words
  • TF-IDF

    • Term Frequency Inverse-Document Frequency
    • 단어 빈도 X 역문서 빈도
    • $TF * \log \frac{Num\ of\ All\ Docs}{1+ Num\ Of\ Docs\ With\ Word}$
    • $TF * \log [\frac{Num\ of\ All\ Docs}{1+ Num\ Of\ Docs\ With\ Word} + 1]$
      • 출현 문서가 작아서 값이 급격히 커지는 현상 방지
      • Smoothing IDF: Log 취하기 전에 1을 더함
    • feature를 정규화하는 과정

분류 기법

  • 선형회귀: 분류 확률을 출력
  • SVM: 분류를 출력
    • 데이타와 경계선 사이의 최소 간격을 최대화하는 경계선
    • 작은 데이터에 좋은 성능 발휘
    • 노이즈 영향 최소화

토픽 모델링

  • 문서에 존재하는 토픽을 추출하는 기법
    • 가정: 문서는 토픽으로 생성된 단어로 구성 됨
  • 토픽

    • 문서에서 발견되는 단어의 분포
    • 특징
      • 한개의 문서는 여러개의 토픽이 각각의 비중으로 존재
      • 토픽별로 단어의 분포가 다름
      • 문서 작성시 토픽의 빈중에 따라 단어로 골라 씀
  • 토픽 모델링

    • 문서가 어떤 토픽를 가질 확률
    • 각 단어가 어떤 토픽에 해당할지 확률
    • 토픽에 따라서 단어가 어떤 확률로 생성될지 정의하여
    • 문서를 확률 모델로 만드는 과정
  • 토픽 정보로 문서 분류에 사용

문법 분석

  • 단어 중심의 분석
  • 문서단위의 광의적인 해석보다는 문장단위 세부 해석에 적용
  • 기법

    • POS Tagging: Part of Speech Tagging, 품사 테깅
    • NER: Named Entity Resolution, 고유명사 추출
      • 단어가 어떤 의미에 포함되는지 파악
      • 문장중에서 단어 추출에 이용
        • 챗봇의 학습에 유용할 듯
  • RNN의 한계: 멀리 떨어진 연관관계를 모델링하기 어려움

  • LSTM: Long Short-Term Memory

    • 멀리 떨어진 연관관계 모델링 탁월

단어 임베딩: Word2vec

  • 단어의 의미를 나타내는 방법
    • 이산표현: Discrete representation
      • 호랑이: (0,0,0,0,1,0,1,….,0)
      • 벡터의 길이: 어휘집 크기
    • 분산표현: Distributed Representation
      • 호랑이: (1.281, -2.321, …. 3.212)
      • 벡터의 길이는 사용자가 지정
  • Word2vec은 분산 표현을 학습하는 모델

  • Word2vec

    • 뉴럴넷을 이용하여 분산 표현을 학습하는 모델
    • 주어진 단어와 주변 단어가 같이 일어날 확률을 구함
    • 목적함수: Skip-gram, COW
  • Skip-gram

    • 단어 하나를 받아서 그 주변에 같이 나타날 확률이 높은 단어들(context)을 구함

  • $w_t$:현재 단어
  • $w_{t+j}$: 윈도우 사이의 단어
  • 2m+1: 윈도우 크기

  • 음의 로그 손실함수

$$ p(w_0|wj)=\frac{e^{u_0^Tv_i}}{\sum_w e^{u_w^Tv_i}} $$

  • COW(Continuous bag of words)
    • 주변 단어(context)를 받아서 그 단어들과 같이 나나탈 확률이 높은 단어를 구함
    • p(xt|context)
작성자: 김태완
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 한국오라클 빅데이터 팀 소속으로 빅데이터와 Machine Learning을 중점에 두고 있습니다. 최근에는 Deep Learning을 열공 중입니다.
E-mail: taewanme@gmail.com