K-mean Clustering Algorithm
포스트 난이도: HOO_Middle
# K-mean Clustering Algorithm
K-mean clustering algorithm은 Machine learning 과정에서 분류나 그룹화를 하는 데 사용되는 대표적인 Machine learning 알고리즘 중에 하나이다.
K-mean clustering은 간단하면서도 많이 알려진 기본적인 ML 알고리즘이며, K-mean 기반으로 응용된 다양한 방식의 알고리즘이 존재한다.
K-mean의 핵심은 K라고 불리는 임의의 Clustering 개수를 지정하고 이를 기반으로 그룹화와 각 평균 Clustering 간의 거리(Distance)를 산출하는 것이다.
이를 토대로 ML에서는 특정 조건이나 패턴을 통해 각 변수(Variables)별 그룹화가 가능하며, 결과적으로 분류 작업이 이루어진다.
# K-mean에서 K란?
K-mean에서 K는 임의의 숫자를 의미한다.
한마디로 K-mean clustering algorithm에서 K를 3으로 지정하면 3개의 클러스터링, 즉 그룹을 만든다는 것을 의미한다.
만약에 K가 1이라면 1개의 그룹만이 존재하기 때문에 주어진 모든 데이터 또는 변수가 하나의 그룹인 셈이다.
K는 마치 수학에서 사용하는 n과 같은 것이라고 생각하면 이해하기 쉽다.
# K-mean에서 mean이란?
K-mean clustering에서 중요한 것은 그룹화를 하는 것도 중요하지만 최종적으로 각 그룹으로 이루어진 변수별 거리를 측정하여 비교하는 것이 중요하다.
따라서 clustering이 이루어진 다음에 마지막으로 각 클러스터링별 거리를 측정하여 비교하는데, 이때 평균인 mean을 사용하기에 K-mean clustering algorithm이라고 부른다.
포스팅 아래의 예제를 살펴보면 K-mean 이해하는데 도움이 될 것이다.
# K-mean에서 Clustering이란?
Clustering이라는 것은 Computer science에서 특히 Data science에서는 데이터 집단을 의미한다.
어렵게 생각할 필요없이 특정 조건으로 분류된 그룹 또는 집단이라고 생각하면 된다.
K-mean clustering algorithm과 같이 결과적으로 Clustering, 즉 데이터 집단 분류가
# K-mean Clustering Algorithm Examples
K-mean clustering algorithm을 쉽게 이해하기 위해서는 간단한 예제를 통해 살펴보는 것이 좋다.
우선 linear한 예제를 통해 K-mean clustering algorithm을 적용해보자.
먼저 위와 같이 하나의 라인에 6개의 데이터 또는 노드가 존재한다고 가정해보자.
6개의 노드의 위치는 위와 같이 존재하며, 클러스터링 개수는 2개를 사용하여 나타내 보려고 한다.
한마디로 K-mean에 해당하는 K가 2인 셈이다.
임의의 K 위치를 설정해준다.
이번 예제에서는 K값이 2이기에 지정되는 임의의 K 위치도 2개가 된다.
하나는 파란색, 나머지 하나는 주황색을 표시를 해주었다.
위의 예제처럼 처음 K의 위치를 설정해준 다음에는 Distance를 기준으로 Clustering이 이루어진다.
아래의 예제 그림은 주황색과 파란색의 Clustering이 거리를 기준으로 나누어지고 있는 걸 알 수 있다.
가까운 거리에 있는 K값끼리 같은 클러스터링으로 묶여지는 걸 알 수 있다.
K값이 2개보다 많은 3개나 4개일 경우에는 더 세분화하여 나누어져 Clustering이 된다.
Clustering 작업이 끝나고 난 뒤에는 K-mean 구해야 한다.
한마디로 처음 임의로 지정해두었던 위치가 클러스터링 별 중간값으로 변환된다.
따라서 이를 K-mean clustering algorithm이라고 부른다.
'Computer Science > Algorithms' 카테고리의 다른 글
[알고리즘] K-nearest Neighbors Algorithm(K-NN): K-최근접 이웃 알고리즘 (0) | 2022.05.29 |
---|---|
[알고리즘] K-mean Clustering Algorithm: Clustering이 Linear가 아닐 경우 (0) | 2022.05.24 |
[알고리즘] Machine Learning Algorithm: Apriori Learning Algorithm (0) | 2022.05.23 |
[알고리즘] 필수로 알고 있어야 하는 머신러닝 알고리즘(Machine Learning Algorithms) (0) | 2022.05.06 |
[Algorithms] Replacement Algorithms: FIFO (0) | 2022.02.25 |
댓글