"데이터 사이언스 스쿨" K-평균군집화를 오렌지로 따라해봅니다.
아래는 데이터 사이언스 스쿨에서 가져온것임미니배치 K-평균 군집화
K-평균 방법에서는 중심위치와 모든 데이터 사이의 거리를 계산해야 하기 때문에 데이터의 갯수가 많아지면 계산량도 늘어단다. 데이터의 수가 너무 많을 때는 미니배치 K-평균(Mini-batch) 군집화 방법을 사용하면 계산량을 줄일 수 있다. 미니배치 K-평균 군집화는 데이터를 미니배치 크기만큼 무작위로 분리하여 K-평균 군집화를 한다. 모든 데이터를 한꺼번에 썼을 때와 결과가 다를 수는 있지만 큰 차이가 없다.
1.오렌지 캔바스에 Python Script Widget 하나를 올려 놓고 아래 코드를 붙여 넣기 합니다. (소스는 데이터 사이언스 스쿨에서 복사) .[Ctrl + Enter] 또는 [Shift + Enter], [RUN]버튼으로 실행
import numpy as np
import matplotlib.pyplot as plt
# 아래 2줄은 한글 깨어짐 때문에 추가함
plt.rc('font',family='AppleGothic')
plt.rcParams['axes.unicode_minus']=False
from sklearn.cluster import KMeans
from sklearn.cluster import MiniBatchKMeans
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=150000, cluster_std=[1.0, 2.5, 0.5], random_state=170)
model1 = KMeans(n_clusters=3).fit(X)
model2 = MiniBatchKMeans(n_clusters=3, batch_size=1000, compute_labels=True).fit(X)
idx = np.random.randint(150000, size=300)
plt.subplot(121)
plt.scatter(X[idx, 0], X[idx, 1], c=model1.labels_[idx])
plt.title("K-평균 군집화")
plt.subplot(122)
plt.scatter(X[idx, 0], X[idx, 1], c=model2.labels_[idx])
plt.title("미니배치 K-평균 군집화")
plt.tight_layout()
plt.show()
2. 한글 깨어짐 현상이 없어 졌습니다. (맥의 경우입니다)
# 아래 2줄은 한글 깨어짐 때문에 추가함
plt.rc('font',family='AppleGothic')
plt.rcParams['axes.unicode_minus']=False
을 추가하였습니다.