티스토리 뷰
머신러닝 카테고리의 이번 글은 비지도학습 알고리즘의 한 종류인 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 |
- python #프로그래머스 #겹치는선분의길이
- 머신러닝 #xgboost #
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- 잘라서 배열로 저장하기 #2차원으로 만들기
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- subquery #sql 코딩테스트
- 머신러닝 #lightgbm #goss #ebf
- nlp #토큰화 #nltk #konply
- python #프로그래머스 #리스트 #인덱싱
- #seq2seq #encoder #decoder #teacher forcing
- 파이썬 #시각화 #matplotlib
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트
- 파이썬 #코딩테스트 #프로그래머스 #스택 #큐
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- #attention #deeplearning
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- rnn #딥러닝 #시계열 데이터 #장기의존성 문제
- gan #생성자 #판별자 #적대적 신경 신경망 #딥러닝 #computer vision
- html #javascript #구구단 출력
- 딥러닝 #오차역전파 #연쇄법칙 #계산그래프 #최적화
- ridge #lasso #정규화모델 #머신러닝
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- #opencv #이미지 연산 #합성
- seaborn #데이터시각화 #타이타닉
- 머신러닝 #project #classification #dacon
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- #tf idf