티스토리 뷰
머신러닝 카테고리의 이번 글은 비지도학습 알고리즘의 한 종류인 KMeans 알고리즘의 개념과 동작 원리에 대해 설명하겠습니다. KMeans 알고리즘은 label이 없는 데이터를 분류하는 알고리즘입니다.
KMeans 알고리즘은 label이 없는 데이터를 분류하기 때문에 knn 알고리즘처럼 정확한 분류를 하는 것은 불가능합니다. 따라서 비슷한 특성을 가진 데이터끼리 군집화를 해 분류하는 방법으로 데이터를 분류합니다.

KMeans 알고리즘의 대략적인 동작원리는 각 군집의 평균을 활용해 K개의 군집으로 묶은 후, 가깝게 위치하는 데이터를 비슷한 특성을 지닌 데이터로 여기고 같은 군집으로 만드는 것입니다.
KMeans 알고리즘 동작원리 순서
- 군집의 개수, K값 정하기
- 랜덤으로 K개의 초기 중심점(Centroid) 설정하기
- 데이터와 중심점 간의 거리를 계산하여 거리가 가까운 것끼리 그룹화
- 군집 내의 데이터들의 평균으로 새로운 중심점(Centroid) 업데이트하기
- 군집이 같아질 때까지 3,4번 반복
KMeans 알고리즘의 K값은 성능의 큰 영향을 끼칩니다. 여러 가지 특성을 가지는 데이터를 어느 군집에 포함시키냐에 따라 정확도가 달라지기 때문입니다. 데이터와 중심점 간의 거리를 계산하는 방법은 KNN 알고리즘에서 거리를 구하는 방법들과 동일합니다. KMeans 알고리즘의 중요한 포인트는 새로운 중심점을 업데이트하는 방법을 군집 내의 데이터들의 평균으로 구한다는 것입니다.


군집 내 데이터들의 평균으로 새로운 중심점을 잡는 이유는 KMeans 알고리즘이 특성이 비슷한 데이터들을 하나의 군집으로 묶어주는 것이기 때문입니다.
KMeans 알고리즘의 최적의 K값을 정하는 방법은 SSE의 Elbow Method를 활용하는 것입니다. SSE는 데이터와 중심점 간의 오차제곱합을 뜻합니다. 각각의 K값에 따른 SSE를 구한 후 그래프를 그려 선이 꺾이는 부분을 K값으로 설정하는 방법입니다. 그래프의 꺾이는 부분의 모습이 Elbow와 유사하다고 해 Elbow Method라 지칭합니다.

KMeans 알고리즘은 분류를 간단하고 빠르게 할 수 있다는 장점이 있지만 데이터의 특성에 따라 분류를 하는 메커니즘이기에 데이터에 이상치가 포함되어 있다면 성능이 크게 떨어진다는 단점이 있습니다.
[Reference]
홍익대학교 컴퓨터공학과 기계학습심화 ppt
'머신러닝' 카테고리의 다른 글
| [7] 앙상블 모델 (0) | 2024.06.28 |
|---|---|
| [6] 주성분 분석(PCA) (0) | 2024.05.17 |
| [4] Support Vector Machine(SVM) (0) | 2024.05.12 |
| [3] K 근접 이웃 알고리즘(knn) (0) | 2024.05.10 |
| [2] 선형회귀 (0) | 2024.05.05 |
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- #tf idf
- 머신러닝 #project #classification #dacon
- #with recursive #입양시각 구하기(2) #mysql
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- #docker #container #docker command
- 머신러닝 #xgboost #
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- #docker #image #build #dockerfile
- #attention #deeplearning
- #django #mvt 패턴
- python #프로그래머스 #겹치는선분의길이
- 잘라서 배열로 저장하기 #2차원으로 만들기
- # 할인행사 #counter #딕셔너리 #프로그래머스
- #polars #대용량 데이터셋 처리
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- #프로그래머스 #안전지대 #시뮬레이션
- 머신러닝 #lightgbm #goss #ebf
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- #웹 프로그래밍 #서버 #클라이언트 #http #was
- #seq2seq #encoder #decoder #teacher forcing
- #opencv #이미지 연산 #합성
- # 프로그래머스 # 카펫 # 완전탐색
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- #docker #docker compose
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- nlp #토큰화 #nltk #konply