pbj0812의 코딩 일기

[Machine Learning] KMeans 를 통한 자동 편 가르기 본문

인공지능 & 머신러닝/Machine Learning

[Machine Learning] KMeans 를 통한 자동 편 가르기

pbj0812 2021. 5. 11. 01:27

0. 목표

 - KMeans를 통한 자동 편 가르기

1. 실습

 1) 데이터 생성

import numpy as np

x = np.linspace(0, 5, 6)
y = np.linspace(0, 100, 101)
xx, yy = np.meshgrid(x, y)
xxx = np.reshape(xx, (-1, ))
yyy = np.reshape(yy, (-1, ))

x2 = np.linspace(15, 20, 6)
y2 = np.linspace(0, 100, 101)
xx2, yy2 = np.meshgrid(x2, y2)
xxx2 = np.reshape(xx2, (-1, ))
yyy2 = np.reshape(yy2, (-1, ))

import pandas as pd

df = pd.DataFrame({'x' : xxx, 'y' : yyy})
df2 = pd.DataFrame({'x' : xxx2, 'y' : yyy2})

df3 = pd.concat([df, df2], axis = 0)

df3.head()

 2) 데이터 시각화

import seaborn as sns

sns.scatterplot(data = df3, x = "x", y = "y")

 3) 학습

  - 두 개의 군집으로 분류

from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=2, random_state=0).fit(df3)

 4) 결과 시각화

df3['class'] = kmeans.labels_

sns.scatterplot(data = df3, x = "x", y = "y", hue = 'class', legend = "full")

 5) 임의 데이터로 분류

  - 결과 : 1

kmeans.predict([[10, 80]])

2. 참고

 - sklearn.cluster.KMeans

Comments