[핸즈온 머신러닝 2판] 9장 정리

juyeon·2022년 9월 19일
0

읽기전에

개념 정리

능동 학습

  • 전문가가 학습 알고리즘과 상호작용하여 알고리즘이 요청할 때 특정 샘플의 레이블을 제공

불확실성 샘플링

  • 우선 예측하고, 모델이 가장 불확실하게 예측한 샘플에 대해 전문가가 레이블을 붙임.
  • 그리고 다시 반복..

가우시안 분포(Gaussian Distribution)

= 정규 분포(Normal Distribution)

python 정리

9장 비지도 학습

군집(clustering)

: 비슷한 샘플을 구별해 하나의 cluster 또는 비슷한 샘플의 그룹으로 할당하는 작업

  • 활용
    : 고객 분류, 데이터 분석, 차원 축소 기법, 이상치 탐지, 준지도 학습, 검색 엔진, 이미지 분할

k-평균(로이드-포지 알고리즘)

  • 각 클러스터의 중심(센트로이드)을 찾고, 가장 가까운 클러스터에 샘플을 할당
  • KMeans
  • 하드 군집: 샘플을 하나의 클러스터에 할당
  • 소프트 군집: 클러스터마다 샘플에 점수를 부여
    • 예를 들어, 샘플과 센트로이드 사이의 거리

작동원리

  • 처음부터 센트로이드 혹은 샘플의 레이블이 주어진다면 쉽게 찾을 수 있지만.. 둘다 주어지지 않는다면?
  1. 센트로이드 랜덤하게 지정(초기화)
  2. 샘플에 레이블 할당
  3. 센트로이드 업데이트
  4. 센트로이드에 변화가 없을 때까지 2와 3을 반복..

센트로이드 초기화 방법

  • 센트로이드 업데이트와 샘플 레이블 할당을 반복하다가, 운이 나쁘면 나쁜 성능으로 수렴됨..
  • 따라서, 처음부터 센트로이드를 그럴듯한 위치에 지정하는게 중요함.
  • 여러 방법들..
  1. 다른 군집 알고리즘으로 센트로이드 위치의 근사값 구함
  2. 여러 번 알고리즘을 실행하여 가장 좋은 성능을 선택
  • 2번 방법일 경우, 성능 지표
    • 이너셔(innertia): 각 샘플과 가장 가까운 센트로이드 사이의 제곱 거리 합
    • score() : 이너셔에 음수를 취해서 반환
  1. k-평균++ 알고리즘: 이미 선택한 센트로이드와 멀리 떨어진 샘플을 다음 센트로이드로 선택할 가능성을 높혀서 초기화

k-평균 속도 개선과 미니배치 k-평균

  • 삼각부등식을 사용하여 거리 계산을 줄임
  • 샘플과 센트로이드 사이의 거리를 하한선과 상한선을 유지시킴
  • 미니배치: 알고리즘 속도 증가, 대량의 데이터셋 가능
    • 그러나, 일반 k-평균 알고리즘보다는 이너셔가 나쁨

최적의 클러스터 개수 찾기

  • 엘보우 메소드: 이너셔가 빠르게 감소하다가 둔감화되는 지점을 찾자
  • 실루엣 점수: 모든 샘플에 대한 실루엣 계수의 평균. -1~+1
    • silhouette_score()
    • 실루엣 다이어그램

k-평균의 한계

  • 장점
    • 속도가 빠르고, 확장이 용이하다
  • 단점
    • 최적의 성능을 찾으려면 알고리즘을 여러번 돌려야함
    • 클러스터 개수 지정
    • 클러스터의 크기나 밀집도가 서로 다르거나, 원형이 아닐 경우 잘 작동하지 않음(타원형 클러스터에는 가우시안 혼합 모델이 좋음)
    • 입력 특성의 스케일을 맞추어야함

군집을 사용한 이미지 분할

  • 예를 들어, 한 색상이 여러 분포가 있다면. 그 색상을 하나의 컬러 클러스터로 만듦. 그리고 그 픽셀의 컬러 클러스터의 평균 컬러를 찾아서 모두 바꿈.

군집을 사용한 전처리

  • 데이터셋의 차원을 줄일 수 있음
    • 예: n_clusters=50으로 지정(k=50)하여, 8 * 8 (=64)에서 50으로 감소

군집을 사용한 준지도 학습

  • 레이블이 없는 데이터가 많고, 레이블이 있는 데이터는 적을 때
  • 예를 들어, 이미지 데이터의 훈련 세트 n=50일때, 50개의 클러스터를 구한 뒤 센트로이드에서 가장 가까운 샘플을 찾음. 이 샘플이 곧 대표 이미지가 됨. 그리고 수동으로 이들에게 레이블 할당
  • 더 나아가, 레이블 전파
    • 대표 이미지를 동일한 클러스터에 있는 샘플에 적용

DBSCAN

  • 각 샘플에서 입실론 거리내에 있는 샘플의 개수를 세고, 그들을 핵심 샘플로 간주.
  • 핵심 샘플의 이웃은 동일한 클러스터.
  • 이런 방식으로 계속 하나의 클러스터를 형성.
  • 핵심 샘플도 아니고, 이웃도 아닌 샘플은 이상치로 판단

특징

  • predict()가 없고, fit_predict()만 제공. 즉 새로운 샘플에 대해 클러스터를 예측할 수 없음
  • 클러스터 모양과 개수에 구애받지 않음
  • 클러스터 간의 밀집도가 비슷해야함
  • 계산 복잡도: 샘플 개수에 선형적으로 증가

다른 군집 알고리즘

병합 군집

BIRCH

평균-이동

유사도 전파

스펙트럼 군집

가우시안 혼합 모델(GMM)

  • 가정: 샘플이 파라미터가 알려지지 않은 여러 개의 혼합된 가우시안 분포에서 생성되었다.

원리

  • hard 군집(predict()), soft 군집(predict_proba())

기댓값-최대화(EM, expectation-maximization) 알고리즘

  1. 기댓값 단계: 샘플을 클러스터에 할당(soft 방식)
    : soft, 즉 클러스터에 속할 확률로 가중치가 적용되며, 이 확률을 '샘플에 대한 클러스터의 책임'이라 부름
  2. 최대화 단계: 클러스터 업데이트

특징

  • 하나의 가우시안 분포에서 생성된 모든 샘플은 하나의 클러스터를 형성. - 보통은 타원형
    • 그러나 어떤 분포인지, 파라미터는 무엇인지 알 수 없음
  • GaussianMixture
  • 생성 모델: 모델에서 새로운 샘플을 만들 수 있음
  • 샘플이 위치한 곳에서의 모델의 밀도 추정 가능
    • score_samples(): 확률 밀도 함수(PDF)의 로그 예측

단점

  • 클러스터의 개수를 지정해야함
  • 특성이나 클러스터가 많을 경우, 샘플이 적을 경우에 EM 알고리즘의 최적의 성능으로 도출되지 않는다.
    • 해결방안: 파라미터 개수 제한: covariance_typy

이상치 탐지

  • 밀도가 낮은 지역에 있는 모든 샘플 = 이상치
  • precision과 recall의 tred-off 관계
  • 특이치 탐지와의 차이점?

클러스터 개수 선택

  • 이론적 정보 기준(BIC, AIC)을 최소화하는 모델 선택

베이즈 가우시안 혼합 모델

-BayesianGaussianMixture

  • 가정: 데이터에 대한 최소한의 정보(즉, 최적의 클러스터 개수)를 가지고 있다.

특징

  • 클러스터 파라미터는 잠재 확률 변수로 취급된다.
  • 새로운 샘플이 작은 클러스터보다 큰 클러스터에 합류할 가능성이 높다.
  • 타원형 클러스터에 잘 작동하지만, 다른 모양에는 잘 작동하지 않는다.

수학적인 건......아직은..ㅠㅠ

이상치 탐지와 특이치 탐지를 위한 다른 알고리즘

  • PCA
  • Fast-MCD
  • 아이솔레이션 포레스트
  • LOF
  • one-class SVM

질문

  1. 337p. BIC, AIC는 왜 학습할 파라미터가 많은(클러스터가 많은) 모델에게 벌칙을 가할까요? 최대한 적은 클러스터로 나누되 데이터에 잘 맞는 모델을 찾기 위해서인가요?
  • 자문자답이지만, 맞는듯.
profile
내 인생의 주연

0개의 댓글