Scientia Conditorium

혼자공부하는 머신러닝+딥러닝/혼공단 5기 - 5주차 본문

서평/IT-강의

혼자공부하는 머신러닝+딥러닝/혼공단 5기 - 5주차

크썸 2021. 2. 28. 20:53

혼자공부하는 머신러닝+딥러닝/혼공단 5기 - 5주차

 

K-mean algorithm animation(출처 : 위키피디아)

K-평균 알고리듬은 주어진 데이터를 k개의 클러스터, 군집으로 묶는 알고리듬으로 각 군집간의 거리 차이의 분산을 최소화하는 방식으로 동작한다.

위 애니메이션은 k-평균 알고리듬 위키피디아 페이지에 있는 자료로서 직관적으로 이해하기 쉽게 표현하였다.

작동하는 방식을 설명하자면 다음과 같다.

 

1. 주어진 데이터에서 k개 평균값(중심점)을 생성한다. 여기서 보통은 랜덤 초기화 알고리듬이 사용된다.

2. 데이터들은 가장 가까이 있는 평균값을 기준으로 클러스터,군집이 나뉜다.

3. 나뉘어진 클러스트,군집에 속한 데이터들의 평균값으로 클러스터 중심점을 변경한다.

4. 데이터들의 소속 클러스터가 바뀌지 않을 때까지 2,3번 과정을 반복한다.

 

다시 말해, k-평균 알고리듬은 처음에는 랜덤하게 클러스트 중심을 선택하고 점차 가장 가까운 데이터의 중심으로 이동하는 알고리듬이다. 파이썬 사이킷런의 sklearn.cluster 모듈 아래 KMeans 클래스에 구현되어 있다.

사용법의 예시로는 다음과 같다.

 

from sklearn.cluster import KMeans
km = KMeans(n_clusters = 3, random_state = 42)
km.fit(fruits_2d)

n_clusters에는 클러스터 개수를 지정할 수 있는데, 기본값은 8이다.


5주차 추가미션 : 6-3절 문제 풀고 인증샷

6장을 마지막으로 머신러닝 기본개념 설명이 끝났다고 한다. k-평균 알고리듬을 자세히 알게되어서 굉장히 기분이 좋았다.

예전에 의과대학과 프로젝트를 진행했을 때, CT 이미지에서 3D Volume Rendering을 해야할 일이 있었다.

당시 프로그래밍 잘하는 친구가 유방-대흉근 경계를 분리하기 위해서 클러스터링 알고리듬이 필요하다고 설명하였고, 이를 k-means 알고리듬으로 해결하였다고 하였다.

그 때 당시에는 무슨 알고리듬인지 몰랐고 결과도 좋았기에 그 친구의 능력이 마냥 부러웠었다.

시간이 좀 지났지만 이제 나도 어떤 알고리듬인지 알게 되었고 사용할 수 있게 되어서 기쁨이 넘쳐흐른다.

 

여담으로 290쪽에 '컴퓨터는 왜 255에 가까운 바탕에 집중하나요?' 라는 짤막 코너가 있다. 픽셀값이 왜 256으로 표현되는지 자세하게 나오지는 않는다. 여기서 보충 설명을 하고자 한다.

이유는 컴퓨터에서 색을 표현하고자 할 때 RGB의 각 채널을 8비트로 저장하기 때문이다.

8비트를 정수로 표현하면 2^8 = 256개의 값을 표현할 수 있다. 

책에서는 흑백이미지를 사용하고 있기 때문에 밝은 부분은 0에 가깝고 어두운 부분은 255에 가까운 값을 갖게 된다.

 

다음 주면 혼공단 5기도 마지막이다. 오래 걸릴줄 알았는데 생각보다 금방 지나갔다. 1주에 1챕터씩 진도를 나갔지만 다른 일도 많았기에 생각보다 바빴다. 이 자리를 빌어 좋은 이벤트를 진행해준 한빛미디어에 감사의 말을 전한다.