VSC/실습

KMeans 클러스터링 웹 앱 만들기 – CSV 데이터 업로드부터 시각화

qoeka 2025. 2. 4. 19:26

 

CSV 파일을 업로드하면, 업로드한 데이터를 데이터프레임으로 변환하여 불러온다.
이후 KMeans 클러스터링을 수행하기 위해 X로 사용할 컬럼을 선택할 수 있도록 설정한다.
적절한 K값을 찾기 위해 WCSS(Within-Cluster Sum of Squares) 값을 계산하고, 엘보우 메소드 그래프를 제공한다.
사용자가 K 값을 선택하면 해당 값으로 **데이터를 클러스터링(비슷한 그룹으로 분류)**하여 결과를 시각적으로 확인할 수 있도록 한다.
이 모든 과정을 하나의 웹 앱 형태로 구현할 예정이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

https://kmeans-app-jzor2as7qbtjzbntn6qmzq.streamlit.app/

 

app

This app was built in Streamlit! Check it out and visit https://streamlit.io for more awesome community apps. 🎈

kmeans-app-jzor2as7qbtjzbntn6qmzq.streamlit.app

 

 

 

한글이면 폰트 설치 작업을 해줘야한다

그리고

 

아래는 한글폰트를 무료로 받을 수 있는 사이트이다

 

https://hangeul.naver.com/font

 

네이버 글꼴 모음

네이버가 만든 150여종의 글꼴을 한번에 만나보세요

hangeul.naver.com

 

 

import os
import matplotlib.font_manager as fm

@st.cache_data
def fontRegistered():
    font_dirs = [os.getcwd() + '/custom_fonts']
    font_files = fm.findSystemFonts(fontpaths=font_dirs)
    for font_file in font_files:
        fm.fontManager.addfont(font_file)
    fm._load_fontmanager(try_read_cache=False)

 

 

 

한글이 깨지지 않음을 확인 할 수 있다.