Machine Learning/Coding

[실습] KMeans (K 평균 군집화)

ju_young 2021. 6. 23. 22:58
728x90

KMeans를 사용한 실습은 간단한 키, 몸무게에 대한 데이터를 생성하여 진행해보았다.

Import

import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import seaborn as sns

데이터 생성

df = pd.DataFrame(columns=['height', 'weight'])
df.loc[0] = [185, 60]
df.loc[1] = [180, 60]
df.loc[2] = [185, 70]
df.loc[3] = [165, 63]
df.loc[4] = [155, 68]
df.loc[5] = [170, 75]
df.loc[6] = [175, 80]
df

[출력]

데이터 시각화

sns.lmplot('height', 'weight', data=df, fit_reg=False, scatter_kws={'s':200})

[출력]

k 평균 군집화

KMeans 라이브러리는 랜덤 최초 중심 및 사용자 지정 최초 중심을 설정하는 방법을 모두 지원한다. 다음과 같이 별도의 init 파라미터를 지정하지 않으면 kmean++를 사용해 군집을 수행한다.

 

init 파라미터는 다음과 같다.

init : {‘k-means++’, ‘random’}, callable or array-like of shape (n_clusters, n_features), default=’k-means++’

data_points = df.values
kmeans = KMeans(n_clusters=3).fit(data_points)
print(kmeans.labels_)
df['cluster_id'] = kmeans.labels_
df

[출력]

k 평균 군집 시각화

sns.lmplot('height', 'weight', data=df, fit_reg=False, scatter_kws={'s':150}, hue='cluster_id')

[출력]

728x90