본문 바로가기

ML

비지도 학습

728x90

비지도 학습

  • 알고리즘: K-평균 군집화, 주성분 분석(PCA)
  • 실습: 군집화 및 차원 축소 기법 적용

k-평균 군집화 모델

k-평균 군집화 모델이란 주어진 K에 대하여 각 샘플과 그 샘프이 속한 군집의 중심까지 거리의 제곱합을 최소화하는 K개의 군집을 찾아내는 기법.

중심 근처의 점을 해당 군집으로 배정하고 중심을 다시 업데이트하는 과정을 반복하여 데이터를 군집화 함

이론이 매우 간단하고 성능이 안정적이며, 학습 시간 복잡도가 낮은 장점이 있다. 이에 큰 데이터 셋에서 효율적으로 사용 가능하다.

목적함수 값이 최소화될 때까지 군집의 중심위치와 각 데이터가 소속될 군집를 반복해서 찾는다.

이 값을 관성(inertia)이라 한다.

n개의 샘플로 구성된 피처 행렬 X를 중심이 μj(1≤j≤K)인 K개의 군집으로 분할

중심은 군집 내 각 원소의 평균값으로 정의(중심값이 X의 샘플 중에 포함되지 않을 수 있음)

클러스터 내 제곱합을 최소화하는 중심을 찾는 것을 목표로 한다.

C={ μj|1≤j≤K}라고 할때 비용함수는 위와 같이 정의된다.

비용함수는 얼마나 군집 내 원소가 뭉쳐서 형성되어 있는지를 평가하는 것이다.

k-평균 군집화 기법 문제를 푸는 알고리즘은 로이드 알고리즘과 엘칸 알고리즘이 존재,

기본적인 방법인 로이드 알고르즘은 아래와 같이 동작한다.

  • K개의 중심을 임의로 고른다.
  • 각 샘플에서 가장 가까운 중심을 해당 샘플을 포함한 군집의 중심으로 정한다.
  • 군집별로 샘플 피러값의 평균을 계산하여 이를 군집의 새로운 중심으로 업데이트 한다.
  • 더는 중심이 변하지 않거나 변화가 임계값 이하일 때까지 2~3 과정을 반복한다.

일반적으로 알고리즘은 이터레이션 사이의 비용 함수 감소량이 임꼐값 이하로 떨어지면 종료된다.

알고리즘은 언제나 수렴하지만, 수렴값은 전역 최솟값을 보장하지 못하는데, 수렴값은 초기 중심값의 위치에 따라 크게 달라질 수 있는 것이다.

실제 계산에서는 다른 초깃값을 준 상태에서 알고리즘을 여러 번 반복하여 전역 최적값을 추정한다.

시간복잡도

K를 군집 개수, n을 샘플 개수, i를 이터레이션 횟수라 했을 때 로이드 알고리즘을 이용한 k-평균 군집화 기법의 평균 시간 복잡도는 O(Kni)다.

 

모델 구현하기

  • 두 개의 지점을 중심으로 원형으로 흩어진 데이터셋을 가상으로 생성

 

시각화를 위해 이터레이션별로 군집의 위치와 각 샘플의 포함 군집을 나타냈으며, 관찰이 쉽도록 그래프는 최대 6까지만 그렸음

 

이터레이션: 1, 중심: [[-6.1135271 1.58096684] [-2.90878169 4.78340178]]

이터레이션: 2, 중심: [[-6.1550979 2.32910441] [-1.3419916 5.62012837]]

이터레이션: 3, 중심: [[-6.11472428 2.40975303] [-1.18984097 5.67112071]]

이터레이션: 4, 중심: [[-6.10376937 2.41413748] [-1.18110522 5.67979891]]

이터레이션: 5, 중심: [[-6.10376937 2.41413748] [-1.18110522 5.67979891]]

이터레이션 5에서 학습 종료

 

 

  • 반복 1: 초기 랜덤 중심.
  • 반복 2-4: 할당된 포인트의 평균을 기반으로 중심이 조정됩니다.
  • 반복 5: 중심이 이전 반복과 동일하게 유지되어 수렴을 나타냅니다.

검은색 'X' 마커는 각 반복에서의 중심을 나타냄

  • 중심이 더 이상 변경되지 않을 때 수렴이 이루어졌으며, 이는 클러스터가 안정화되었음을 의미한다.

초기에는 파란 군집이 왼쪽 아래에만 일부 생성되었는데, 이터레이션 진행에 따라 주황색 군집을 밀어냄

오른쪽 위의 점들이 주황색 군집의 중심을 계속해서 당기기 때문이라고 할 수 있음(이를통해 중심점이 점점 자리를 찾아감)

이터레이션 4와 5에서 군집 중심에 변화가 없으므로 최대 이터레이션에 도달하지 않더라도 5에서 학습을 종료한 것이다.

군집화 결과 평가하기

군집화 기법의 성능을 정의하면 얼마나 잘 학습한 모델인지 평가할 수 있고, 군집 개수와 같은 중요 하이퍼파라미터를 튜닝할 수 있다.

지도학습 기법과 달리 명쾌한 정답이 없을 때가 흔하기 때문에, 아래와 같은 방식 중 하나로 군집화 모델의 성능을 평가하고는 한다.

  • 데이터 분할에 대한 실제 레이블이 있다면 레이블과 군집화 결과가 비슷할수록 좋은 모델링이다. 이 경우 실제 레이블 번호화 군집의 레이블 번호의 값을 직접 비교하지 않는데, 군집에 어떠한 변호가 부여되었는지는 사실 중요하지 않고 전체 데이터가 분할된 분포 또는 패턴만이 중요하기 때문이다. (Rand지수를 이용해서 설명)
  • 즉, 군집 번호의 퍼뮤테이션에 따라 군집화 모델의 성능은 변하지 않는다.
  • 데이터 분할에 대한 실제 레이블이 없다면 같은 군집 내의 원소끼리는 가까울수록, 다른 군집 내의 원소와 멀수록 좋은 군집화이다.(실루엣 계수를 이용해서 설명)비지도 학습
728x90

'ML' 카테고리의 다른 글

로지스틱 회귀 모델  (1) 2024.07.04
머신러닝 알고리즘 정리  (0) 2024.07.04
강화학습 1  (0) 2024.05.29