군집화

군집화란?

군집화 및 응용 사례 설명

군집화 또는 군집 분석은 머신러닝 및 데이터 분석에 사용되는 비지도 학습 방법으로, 같은 그룹(또는 군집)의 데이터 점이 다른 그룹의 데이터 점보다 서로 더 유사하도록 데이터를 구성합니다. 군집화는 패턴과 추세를 찾아내거나 레이블이 지정되지 않은 데이터를 예측하여 크고 복잡한 데이터셋을 이해하는 데 도움이 됩니다.

군집화의 작동 원리

군집화에는 데이터 준비, 유사도 척도 정의, 올바른 군집화 알고리즘 선택, 군집 평가 및 개선 등 몇 가지 주요 단계가 포함됩니다.

군집화 단계인 데이터 준비, 유사도 척도 정의, 군집화 알고리즘 선택, 군집 평가를 보여주는 워크플로 차트.

군집화의 주요 단계.

군집화는 데이터 점 간의 유사도를 측정하고 다른 군집의 데이터보다 유사도 척도가 높은 점을 그룹화하는 방식으로 작동합니다. “유사도”의 개념은 맥락과 데이터에 따라 달라지며 이는 비지도 학습의 기본적인 측면입니다. 유클리드, 확률, 코사인 거리, 상관관계 등 다양한 유사성 척도를 활용할 수 있습니다.

두 개 차원으로 표시된 군집화 결과로, 여기서 군집은 서로 다른 색으로 표시되어 있습니다.

spectralcluster 함수를 사용하여 생성된 세 개의 군집으로 그룹화된 데이터를 보여주는 산점도 플롯. (MATLAB 코드 보기.)

군집화 알고리즘의 유형

군집화 알고리즘은 크게 두 그룹으로 구분할 수 있습니다.

  • 하드 군집화: 널리 사용되는 k-평균 방법처럼, 어떤 데이터 점이 오직 하나의 군집에만 속하는 경우
  • 소프트 군집화: 가우스 혼합 모델에서처럼, 어떤 데이터 점이 둘 이상의 군집에 속할 수 있는 경우
중심을 나타내는 별표가 추가된 데이터 점의 이산적 군집을 표시하는 <i>k</i>-평균 군집 분석 방법.

각 멤버의 평균인 중심을 별 모양으로 표시하여 그룹을 나타내는 k-평균 군집화.

데이터 점의 두 군집을 등압선 모양의 선으로 표시하여 군집 소속 확률을 나타내는 가우스 혼합 모델.

다양한 군집들과 맺는 관계의 강도를 나타내는 군집 소속 확률을 할당하는 가우스 혼합 모델.

군집화 알고리즘에는 여러 가지가 있으며 각 군집화 알고리즘에는 데이터를 그룹화하는 고유한 접근법이 있습니다. 이러한 접근법은 그 메커니즘과 이상적인 활용 사례가 서로 크게 다릅니다. 머신러닝에서 사용되는 가장 일반적인 유형의 군집화 알고리즘은 다음과 같습니다.

  • 계층적 군집화는 군집 트리를 생성하여, 다층적인 군집 계층구조를 구축합니다.
  • k-평균 군집화는 군집 중심까지의 거리에 따라 데이터를 k개의 서로 다른 군집으로 분할합니다.
  • 가우스 혼합 모델은 다변량 정규 밀도 컴포넌트의 혼합물로서 군집을 구성합니다.
  • DBSCAN(잡음이 있는 응용 사례의 밀도 기반 공간 군집화)은 고밀도 구역에서 서로 가까운 점들을 그룹화하고, 저밀도 영역에서 이상값을 계속 추적합니다. 또한 임의의 비볼록 형상을 처리할 수 있습니다.
  • 자기 조직화 맵은 데이터의 위상과 분포를 학습하는 신경망을 이용합니다.
  • 스펙트럼 군집화는 입력 데이터를 그래프 기반 표현으로 변환하는데, 그래프 기반 표현에서는 원래 특징 공간에서보다 군집들이 더욱 잘 분리되어 있습니다. 군집의 개수는 그래프의 고유값을 조사하여 추정할 수 있습니다.
  • 은닉 마르코프 모델은 생물정보학에서 유전자나 단백질 같은 염기서열의 패턴을 발견하는 데 사용할 수 있습니다.
  • FCM(퍼지 c-평균)은 데이터셋의 모든 데이터 점이 어느 정도 모든 군집에 속하도록 데이터를 N개의 군집으로 그룹화합니다.

비지도 학습을 위한 군집화

비지도 학습은 사람의 개입 없이 레이블 미지정 데이터에서 추론을 이끌어내는 데 사용되는 머신러닝 알고리즘의 한 유형입니다. 군집화는 가장 일반적인 비지도 학습 방법입니다. 군집화 알고리즘을 적용하여 그룹 레이블에 대한 사전 지식 없이도 데이터를 탐색하고 데이터에서 은닉 패턴이나 그룹을 찾아냅니다. 군집화는 이러한 그룹과 패턴을 사용하여 레이블 미지정 데이터에서 유용한 정보를 추출하고 그 안의 내재 구조체를 드러내는 데 도움을 줍니다.

원본 사진에서는 흑백 타일 바닥에 있는 밝은 갈색의 개를 보여주지만, 군집화를 사용하여 처리된 영상에서는 개를 바닥에서 분리하여 보여줍니다.

영상 분할에 군집화를 사용하여 바닥의 패턴화된 배경을 분리.

군집화가 중요한 이유

군집화는 인공 지능의 중요한 영역입니다. 데이터에 대한 귀중한 정보를 제공하고 눈에 바로 띄지 않는 패턴과 관계를 찾아냄으로써 다양한 분야에서 중요한 역할을 합니다. 데이터 점 간의 내재 관계는 은닉되어 있지만 유용한 정보를 찾아내는 데 필요한 레이블 미지정 데이터의 경우, 군집화를 활용하면 이러한 관계를 발견하고 레이블 미지정 데이터를 유의미한 그룹으로 구성하는 데 도움이 됩니다.

군집화는 유사한 항목을 그룹화하여 데이터 복잡성을 줄여주므로 개별 데이터 점에 압도되지 않고 그룹의 거동에 집중할 수 있습니다. 따라서 군집화는 탐색적 데이터 분석과 준지도 학습에 사용할 수 있습니다. 준지도 학습에서 군집화는 지도 학습의 전처리 단계로 사용되면서 머신러닝이 처리할 데이터의 양을 줄이고 예측 모델링 정확도를 개선합니다.

군집화는 또한 이상 감지, 영상 분할, 패턴 인식과 같은 응용 분야에서도 자주 사용됩니다. 구체적으로 보면 군집화는 패턴과 시퀀스를 식별하기 위해 다음과 같은 영역에서 적용될 수 있습니다.

  • 데이터 압축 방법에서 원시 신호 대신에 군집으로 데이터를 표현할 수 있습니다.
  • 분할 알고리즘에서 영상의 영역과 라이다 포인트 클라우드를 군집으로 표시할 수 있습니다.
  • 군집화는 데이터셋 내에서 이상값 또는 이상을 식별하는 데 도움이 될 수 있습니다.
  • 의료 영상에서 군집화 알고리즘은 건강한 조직과 종양을 구별하거나 뇌를 백질, 회백질, 뇌척수액으로 구분하는 등 영상을 관심 영역으로 분리하는 데 사용할 수 있습니다.
  • 군집화는 GIS(지리 정보 시스템)에서 위성 영상이나 항공 사진을 분석하여 도시 확산 또는 토지 사용 패턴을 파악하거나 시간에 따른 도시 지역의 변화를 모니터링하는 데 사용됩니다.
  • 생물정보학에서는 유전자 군집화와 염기서열 분석을 활용합니다.
헤마톡실린과 에오신을 사용하여 보라색 음영으로 염색된 조직의 원본 영상과 세 클래스로 분할된 조직의 처리된 영상.

왼쪽: 헤마톡실린과 에오신을 사용하여 염색된 조직의 원본 영상. 오른쪽: MATLAB을 사용해 영상에 세 개의 군집을 할당하여 조직을 세 클래스로 분할한 모습.

MATLAB을 사용한 군집화

Statistics and Machine Learning Toolbox™와 함께 MATLAB®을 사용하면 선택한 군집화 방법을 적용하고 데이터를 그룹 또는 군집으로 나누어 패턴과 특징을 식별할 수 있습니다. Image Processing Toolbox™를 사용하면 영상 데이터에 대한 군집화를 수행할 수 있습니다.

데이터 준비

정확하고 효율적인 군집화 결과를 얻으려면 데이터를 전처리하고 누락값과 이상값을 처리하는 것이 매우 중요합니다. 내장 함수를 사용하여 프로그래밍 방식으로 또는 데이터 정리기 앱을 사용하여 대화형 방식으로 데이터를 정리하고 전처리할 수 있습니다.

군집화 알고리즘

MATLAB은 널리 사용되는 모든 군집화 알고리즘을 지원하며 kmeans 함수와 같은 내장 함수를 통해 적용할 수 있습니다. 군집 데이터 라이브 편집기 태스크를 사용하면 k-평균 및 계층적 군집화를 대화형 방식으로 수행할 수 있습니다. 태스크를 사용하여 라이브 스크립트에 대한 MATLAB 코드를 자동으로 생성할 수 있습니다.

또한 KNN Search 블록을 사용하여 Simulink에서 최근접이웃 군집화를 수행할 수 있습니다. 이 블록은 쿼리 점을 수락하고 최근접이웃 searcher 객체를 사용하여 관측 데이터에서 k  최근접이웃 점을 반환합니다.

세 종의 붓꽃에 대한 꽃잎 너비와 길이 측정값을 보여주는 2차원 플롯과 GMM 군집화를 사용한 세 개의 결과 군집을 보여주는 플롯.

왼쪽: 붓꽃 세 종의 여러 표본에서 얻은 꽃잎 측정값을 보여주는 MATLAB 산점도 플롯. 오른쪽: GMM(가우스 혼합 모델) 군집화 기법을 사용하여 세 개의 군집으로 분할된 꽃잎 측정값. (Statistics and Machine Learning 예제 보기.)

군집화 결과 시각화 및 평가

데이터에 적절한 군집 개수를 나타내는 자연적인 분할이 포함되어 있지 않은 경우, 간격 또는 실루엣과 같은 다양한 평가 기준을 사용하여 데이터가 특정 개수의 군집에 얼마나 잘 맞는지 확인할 수 있습니다. 또한 군집을 시각화하여 군집화 결과를 검사할 수 있습니다. 예를 들어, 군집화 시각화를 위해 덴드로그램 플롯을 사용할 수 있습니다.

두 군집의 모든 점이 큰 실루엣 값(0.8 이상)을 가지면서 군집이 잘 분리되어 있음을 보여줍니다.

데이터가 동일한 크기의 두 군집으로 분할되었음을 보여주는 silhouette 함수를 사용하여 생성된 MATLAB 플롯. (MATLAB 코드 보기.)

영상에 대한 군집화

색이나 형상의 유사도를 기준으로 픽셀을 군집화하여 영상에 대해 영상 분할(imsegkmeans 함수 사용) 및 볼륨 분할(imsegkmeans3 함수 사용)을 수행할 수 있습니다. 특정 군집화 알고리즘을 사용하여 분할된 레이블 지정 영상을 생성할 수 있습니다. 예를 들면, 의료 영상에서 환자의 뇌 또는 기타 장기에 있는 종양을 나타내는 영상의 픽셀이나 3차원 볼륨의 복셀을 감지하고 레이블을 지정할 수 있습니다. MATLAB 툴을 활용하면 질병 진단부터 토지 사용 분류에 이르기까지 광범위한 응용 분야의 영상을 처리하고 분석할 수 있습니다.

네 개의 흑백 영상: 테스트 영상, 분할된 영상, 종양 탐지, 레이블 지정 영상.

MATLAB에서 퍼지 c-평균 군집화를 사용한 MR 영상에서 뇌 종양 탐지. (Fuzzy Logic Toolbox 예제 보기.)

자료

문서, 예제, 비디오 등을 통해 여러분의 지식을 확장할 수 있습니다.