codestates / codestates/ds-blog

K - Means clustering의 개념에대해 알아보자.(미완..)

Open
#125 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
No language data
Stars
2
Forks
4
PR merge metrics
No merged PRs in 30d

Description

K - Means clustering.. 한국말로하면 K - 평균 군집화라고 한다.~~통계학 배우는 친구한테 물어보니까 왜 영어로 말하냐고 욕을..ㅋㅋㅋ~~
K - Means clustering은 사전에 사용자가 군집 수(k)를 정하고 임의의 중심점의 수를 정한다. 그다음 (2차원 기준으로) 군집 이전의 각각의 데이터들이 가장 가까운 중심점을 기준으로 군집을 형성한다. 즉 각 군집이 하나의 중심(centroid)을 가지게 되는것.
오해하면 안되는것은 군집이 중심점으로 모이는것이 아닌 실질적으로 이동하는것은 중심점이다.
clustering이란 컴퓨터에게(프로그램에게) '개' 와 '고양이' 의 차이점,공통점 등의 정보를 주고 '그룹으로 묶어봐' 라고 하는것이 아닌 그냥 고양이와 개의 데이터를 던져주고 '알아서 그룹으로 묶어봐' 라고 하는것. 그냥 정보의 바다에 던져놓고 알아서 살아오라는 느낌..

아래의 플롯을 보면 이해하기 쉽다.
![image](https://user-images.githubusercontent.com/70333648/94238695-b1de7e00-ff4b-11ea-88ad-3fc07be561b5.png)
3개의 군집으로 컴퓨터가 나눠놓은 것을 알수있다. 저것들이 어떤 연관성이 있고 무엇을 기준으로 분류했는지는 컴퓨터만이 알고있다..
그럼 우리는 3개의 중심점을 랜덤으로 생성한다. 위 그림은 중심점이 오른쪽 아래에 쏠리는 결과가 나왔다.
하지만 여기서 끝이 아니다. 지금의 중심점은 군집의 중심에 생성된것이 아닌 우리가 랜덤으로 아무곳에다가 던져놓은 중심점이기때문에, 중심점으로서의 역할을 하기 위해서 자리를 찾아줄것이다.
마치 컴퓨터가 일단 나눠놓은 군집의 중심을 우리가 지정해주는 느낌이라 생각하면 좀더 이해하기 쉽다.
중심점을 찾기위해서는 중심점과 군집의 거리, 제일 가까운 군집을 계산해서 중심점을 재배치 해주고 그 과정을 계속 반복해서 중심점이 더이상 움직이지 않으면 그 지점이 군집의 중심점이 되는것이다. 다르게 해석하면 그 군집의 평균이 되는 지점으로 중심점이 움직인다.

![image](https://user-images.githubusercontent.com/70333648/94239749-3a115300-ff4d-11ea-8935-bb34074fe8b9.png)

조금씩...

![image](https://user-images.githubusercontent.com/70333648/94240303-11d62400-ff4e-11ea-9761-f90266b30352.png)

조금씩...

![image](https://user-images.githubusercontent.com/70333648/94240311-16024180-ff4e-11ea-87fe-47698fcfb7b4.png)

조금씩...

![image](https://user-images.githubusercontent.com/70333648/94240320-1995c880-ff4e-11ea-9565-dc6ce9de730a.png)

조금씩... 움직이다보면(중간과정 생략..)
![image](https://user-images.githubusercontent.com/70333648/94240566-6b3e5300-ff4e-11ea-91ba-cb9fc6f51cf1.png)
이러한 결과가 나온다. 이상태에서 중심점이 더이상 이동하지 않기때문에 변화가 없다 판단한다.

이것이 K - Means clustering 의 근본적인 개념입니다만..
이 글을 쓰면서 글을 쓰기엔 나역시 이해를 완전히 하지 못했다는것을 느꼈습니다.
더욱 이해해서 조금더 이해하기 쉬운 글로 수정해나가도록 하겠습니다.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.