머신러닝 특강 03 - 군집

Data_Student·2024년 11월 28일
0

머신러닝

목록 보기
10/10

머신러닝 특강 03 - 군집

  • 클러스터링(Clustering)의 개념 이해
  • 클러스터링의 프로세스를 숙지
  • 클러스터링을 통해 얻을 수 있는 인사이트를 이해

1. 클러스터링이란?

  • 정답이 없을 때, 정답을 찾아가는 과정을 의미 ( = 비지도학습 )
  • 클러스터링 = 군집분석
  • 데이터분석에서 피쳐(컬럼) 유사성의 개념을 기반으로 전체데이터셋을 그룹으로 나누는 그룹핑 기법이며, 각 그룹을 클러스터라고 한다.
  • 데이터 분석가는 의미있는 특징(컬럼)을 찾고, 최적의 그룹 갯수(k)를 찾아 그룹별 인사이트를 도출하는 역할을 수행

2. 클러스터링 프로세스

1) 전처리 프로세스
ㄱ. 기간 선정 : 클러스터링을 위한 기간을 설정, 최소 3개월 이상의 데이터셋이 권장
ㄴ. 이상치 기준 선정 및 제외 : IQR, Z-Score 등 다양한 이상치 기법을 사용하고 기준을 정립 후 제외

  • Z-Score
    • 데이터의 분포가 정규 분포를 이룰 때, 데이터의 표준 편차를 이용해 이상치를 탐지하는 방법
    • 각 데이터(행) 마다 Z-Score를 구하고, z값은 x에서 평균을 뺀 데이터를 표준편차로 나눈 값이며, 표준 점수라고도 함
    • 일반적으로 -3에서 3 사이의 값을 가지고 있으며 그 이하 또는 이상일 경우 이상치로 간주
  • IQR(Interquartile Range)
    • 데이터의 분포가 정규 분포를 이루지 않을 때 사용
    • 사분위값을 사용하여 min, Q1, Q2, Q3, max값으로 나누어 이를 벗어나는 값을 이상치로 간주
    • box-plot으로 시각화 가능
  • Isolation Forest
    • 머신러닝 기법 중 하나로, 컬럼 갯수가 많을 때 이상치를 판별하기 용이
    • 데이터 셋을 결정트리 형태로 표현하며, 이상치는 노드 어디에도 속하지 않을 확률이 높음
    • 즉, 이상치는 다른 관측치에 비해 짧은 경로 길이를 가진 데이터
  • DBScan
    • 밀도 기반의 클러스터링 알고리즘으로 어떠한 클러스터에도 포함되지 않는 데이터를 이상치로 탐지, 복잡한 구조의 데이터에서 이상치를 판별하는 데 유용
    • 주로 지리 데이터 분석, 이미지 데이터 분석의 이상치 기법으로 사용
    • 각 데이터의 밀도를 기반으로 군집을 형성, 설정된 거리 내에 설정된 최소 개수의 다른 포인트가 있을 경우, 해당 포인트는 핵심 포인트로 간주
    • 핵심 포인트들이 서로 연결되어 군집을 형성하며, 이와 연결되지 않은 포인트는 이상치로 분류

ㄷ. 표준화 : 데이터의 크기가 너무 크거나, 컬럼 간 데이터 range에 차이가 많을 때 진행

  • minmax scale
    • 모든 데이터의 값을 0과 1사이에 배치, 이상치에 약함
  • standart scale
    • 평균을 0, 표준편차를 1로 변환하여 minmax scale이 가지는 한계점을 보완
    • 이를 통해 각각의 data point가 '평균으로부터 얼마나 떨어져 있는지'에 대한 수치로 변환
    • 군집 분석시 가장 많이 쓰이는 표준화 기법

ㄹ. 차원 축소(PCA) : 많은 컬럼으로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것(차원이 많으면 학습이 어렵고 시각화에 제한)

  • PCA(주성분 분석) : 가장 대표적인 차원 축소 기법, 여러 변수 간에 존재하는 상관관계를 이용하여 이를 대표하는 주성분을 추출해 차원을 축소
    • 가장 높은 분산을 가지는 데이터의 축을 찾아 그 축으로 차원을 축소하는 것!

2) 실험 프로세스
ㅁ. K값(군집 갯수), 초기 컬럼(피쳐) 선정 : Silhouette Coefficient, elbow_point, Distance Map 을 통해 초기 군집의 갯수를 지정, 초기 컬럼의 설정은 모든 컬럼을 기준으로 진행하며, 클러스터링을 반복진행하면서 k값과 피쳐의 컨디션을 기록하고 최적으로 구분된 컨디션 추출

  • Silhouette Coefficient(실루엣 분석)

    • 각 군집간의 거리가 얼마나 효율적으로 분리되었는지를 나타냄
    • 실루엣 계수 : -1 ~ 1사이의 값을 가지며, -1이나 1에 가까울수록 근처에 군집과 멀리 떨어져 있으며, 0에 가까울수록 군집과 가깝다는 뜻
  • scree plot의 elbow-point

    • yellow brick library - elbow method를 사용하여 알고리즘이 군집이 나뉘는 시간까지 고려한 k값을 도출
  • Distance Map

    • 군집 간 거리를 시각화 해주는 기법으로 실행할 때마다 다르게 보여질 수 있음. 다만, 군집이 떨어져 있는 거리를 가시적으로 확인하기 위한 참고치

    ㅂ. K-Means clustering 시행

  • 데이터를 거리기반 K개의 군집으로 묶는 알고리즘, 각 군집의 평균(mean)을 활용하여 K개의 군집으로 그룹화

    ㅅ. 군집 분포 확인

  • 데이터셋을 기반으로 데이터가 밀도있게 나뉘었는지 확인하는 과정

    ㅇ. ㄴ~ㅅ의 과정을 반복하면서 최적의 결과 도출

  • 실험을 수행할 때마다 다양한 기준을 고려하며, 통계학적인 지식이 필요

  • 비지도학습인만큼 데이터 분석가의 주관이 개입

    ㅈ. 모델링

  • 클러스터링 결과를 가지고 이를 모델에 학습!

    ㅊ. 데이터 적재 및 자동화 설정

  • 스케쥴 기능을 통해 주기별로 라이브한 데이터를 자동으로 테이블에 적재하는 것까지가 클러스터링의 최종 작업

    ㅋ. 인사이트 도출

  • 적재된 테이블을 가지고 클러스터별로 인사이트 도출 가능


3. Python code 실습

  • 학습 자료 참고하기!

0개의 댓글