[ML] 딥러닝의 깊이 있는 이해를 위한 머신러닝 10-2 (K-MOOC)

daeungdaeung·2021년 8월 7일
0

Machine-Learning

목록 보기
18/25

학습 내용

  • K-Means Clustering의 정의

  • K-Means Clustering의 작동 방법

  • K-Means++ Clustering의 정의

학습 목표

  • K-Means Clustering을 활용할 수 있다.

  • K-Means Clustering을 실제로 구현할 수 있다.

  • K-Means Clustering의 단점을 보완하는 방법을 이해할 수 있다. (K-Means++)

K-Means Clustering

  • 클러스터링 알고리즘 중 가장 유명한 알고리즘으로 클러스터링이 가능한지 확인하기 위해 계속 사용됨

  • 기본적으로 2개의 추가적인 input이 필요함

    • 클러스터의 개수: 현재 데이터를 보고 어떤 값이 적절한지 결정

    • initial point: 클러스터들의 가운데 점에 대한 포인트 값이 주어져야 k-means 클러스터링 알고리즘이 시작됨

      • 샘플들 중 무작위로 Initial Point를 고릅니다.
  • 알고리즘

    • 각각의 샘플들에 대해 가장 가까운 클러스터의 중심지에 해당되는 인덱스를 클러스터 인덱스로 할당

    • 클러스터 인덱스별로 따로 묶인 샘플들에 대해 평균을 계산

    • 중심점의 위치가 바뀌게 되고 그 과정을 계속 반복 (각각의 샘플들이 클러스터 인덱스가 바뀌지 않을 때까지 계속 반복)

  • k-means 클러스터링의 장점

    • 새로운 테스트 샘플이 주어졌을 때 곧바로 클러스터 인덱스를 추정 가능

    • 알고리즘 적용시 주어진 모든 데이터를 고려할 필요가 없고 10% 정도 데이터를 무작위로 추출해서 적용해도 유사한 결과값을 보여줌

  • 단점

    • 여러 번 반복적으로 구동되어 계산량이 큰 편

    • 매 과정마다 반복적으로 샘플들이 어떤 클러스터에 속하는지 거리 비교를 해야 함

    • 여러 개의 클러스터들에 대해 각각의 클러스터의 중심지를 계산하기 위해 평균(중심점)을 찾아내야 함

    • 따라서 고려하는 데이터가 많을수록 k-means 클러스터링의 동작 속도가 점점 느려지게 됨

  • 활용 분야

    • 옷의 사이즈를 분류할 때

      • 어느 정도 유사한 사이즈의 사람들의 옷을 묶어 하나의 옷으로 제작하여 가능한 많은 사람들의 체형에 적합하도록 제작

      • 여러 사람의 체형을 분석하고 그 정보를 기반으로 k-means 클러스터링을 구동

  • Vector Quantization

    • 단순히 사용자가 정확하게 구분을 균등하게 나누는 것보다 k-means 클러스터링을 통해서 데이터를 고려한 분류를 찾음으로써 훨씬 더 높은, 많은 사람들의 니즈를 충족할 수 있음
  • 문제점

    • 제일 처음 각각의 클러스터에 대응되는 중심 포인트를 선택하는데 문제점이 발생

    • 만약 처음 선택된 중심지가 잘못 선택된 경우 잘못된 결과를 출력할 수 있음

    • 이러한 문제를 k-means++ 클러스터링 알고리즘으로 해결함

  • K-Means++ Clustering의 추출 과정

    • 초반에 무작위로 4개의 점을 중심지로 사용하지 않음

    • 확률적으로 각 클러스터의 중심지를 선정

    • 한꺼번에 뽑지 않고 제일 먼저 한 개를 무작위로 추출

    • 무작위로 추출한 점의 중심지에서 멀면 멀수록 더 많은 확률로 뽑히도록 설계

    • 추출이 계속될수록, 기존 선택된 중심지들에서 더 멀수록 높은 확률

profile
개발자가 되고싶읍니다...

0개의 댓글