[python] k-means clustering visualization module | how to make scatterplot, gif

2022. 2. 17. 19:22·데이터분석과 머신러닝
728x90

https://github.com/yyhh314/MachineLearning/blob/main/DrawKmeansProcess.py

 

GitHub - yyhh314/MachineLearning

Contribute to yyhh314/MachineLearning development by creating an account on GitHub.

github.com


k-means 알고리즘이 동작하는 과정을 보여주는 기능은 구현되어있는 것 같지 않아서 모듈로 만들어보았습니다.

시각적으로 k-means 과정을 확인할 수 있습니다.

 

[ 구현 기능 ]
1. 정지된 scatter plot의 나열로 확인 : kmeans_process_2d()

2. gif파일로 확인 : gif_kmeans


사용 방법

1.

!git clone https://github.com/yyhh314/AlgorithmVisualization.git

 




2.
AlgorithmVisualization 리포지토리가 내려받아졌을텐데, 그 경로를 sys.path.append()합니다.
cf) 코랩 탐색기에서 AlgorithmVisualization을 찾아 경로복사하면 알 수 있습니다.

 




3. import해서 메서드 사용하기
import DrawKmeansProcess as dkp
dkp.kmeans_process_2d(데이터, cluster수, 팔레트)

dkp.gif_kmeans(데이터, n_clusters, 팔레트, frame)

 

* 데이터 : pd.DataFrame, numpy array, python list → 2차원 샘플

* n_cluster : 생성할 cluster 개수
* 팔레트 : seaborn에서 이용가능한 팔레트 지정
* frame : 속도 조절 (기본값 1000)


method 1 - kmeans_process_2d

 


맨 처음에는 random centroid가 나타납니다.

 




그리고는 data 재조정과 centorid 재조정 과정이 반복됩니다.

 




반복 결과, k-means clustering이 완료됩니다.

 

 

 


method 2 - gif_kmeans

 

centroid가 재조정된 횟수가 3이다.

 

이 메서드를 실행하면 working directory에 k-means.gif이 생성됩니다.

 

 

 

결과물입니다.

검은 점(centroid)가 총 3번 재조정됩니다.

(랜덤 산점도라 clusterting에는 적절하지 않아보이지만)

 

 



혹시 사용하다가 기능상 오류가  있으면 댓글 부탁드립니다.

 

 

728x90

'데이터분석과 머신러닝' 카테고리의 다른 글

딥러닝 | 딥러닝 모델 성능 높이기 | layer 추가 & 활성화함수 & 옵티마이저 조정하기  (0) 2022.02.25
딥러닝 | 인공 신경망 분류 모델 만들기  (0) 2022.02.24
혼공단 7기 5주차 미션인증  (0) 2022.02.17
머신러닝 | 주성분분석(PCA)을 이미지 데이터에 적용하여 픽셀 축소하기  (0) 2022.02.17
머신러닝 | k-평균 알고리즘 (KMeans) | 군집 알고리즘  (0) 2022.02.14
'데이터분석과 머신러닝' 카테고리의 다른 글
  • 딥러닝 | 딥러닝 모델 성능 높이기 | layer 추가 & 활성화함수 & 옵티마이저 조정하기
  • 딥러닝 | 인공 신경망 분류 모델 만들기
  • 혼공단 7기 5주차 미션인증
  • 머신러닝 | 주성분분석(PCA)을 이미지 데이터에 적용하여 픽셀 축소하기
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (386)
      • 미분류글 (30)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (58)
      • yyeeennyy (25)
  • 블로그 메뉴

    • 링크

    • 공지사항

      • ^o^/♡
    • 인기 글

    • 태그

      정렬
      사후분석
      한빛미디어
      컴퓨터구조
      코드업
      미분방정식
      16비트 컴퓨터
      혼공자
      codeup
      혼공학습단
      R데이터분석
      혼공머신
      혼공단
      알고리즘
      input-output
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.4
    히어로맛쿠키
    [python] k-means clustering visualization module | how to make scatterplot, gif

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.