Unsupervised Learning
실행 준비
실습 코드 앞의 코드 셀에서 import numpy as np, import matplotlib.pyplot as plt를 실행하세요. 배열 연산에는 np, 그림에는 plt를 사용합니다.
학습 목표
군집 수와 스케일을 바꾸면 같은 자료의 묶음도 달라집니다. 군집 번호 자체에 의미를 부여하지 않고 구조를 읽습니다.
군집 수와 관성값
시작 조건
make_blobs(n_samples=180,centers=3,cluster_std=.8,random_state=7), 를 사용합니다.
진행 방법
- 각 K에서
KMeans(random_state=7,n_init=10)를 학습하세요. - 군집 중심·배정 결과를 그리고 Inertia와 Silhouette를 적으세요.
남길 결과
- 세 군집 그림과 지표 표.
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
X,_=make_blobs(n_samples=180,centers=3,cluster_std=.8,random_state=7)
model=KMeans(n_clusters=3,random_state=7,n_init=10).fit(X)
print(model.inertia_,silhouette_score(X,model.labels_))
결과 기록·자가 점검
K:
Inertia:
Silhouette:
군집 수별 관찰:
확인할 점
- 군집 번호 자체를 정답 Class라고 해석하지 않았는가?
특징 단위 변화
시작 조건
X의 첫 열만 10배 하고 원본·변경본·열별 Standardization 결과를 비교합니다.
진행 방법
- 원본
X, 첫 열을 10배 한X2,X2를 열별 Standardization한 자료를 각각 준비하세요. - 각 자료에서 의 KMeans를 다시 학습하세요.
random_state=7,n_init=10은 유지합니다. - 자료 조건별 군집 배정·중심을 그림으로 표시하고 K별 Inertia·Silhouette를 같은 형식의 표에 기록하세요. 첫 열을 확대했을 때 군집 배정과 중심이 달라졌는지 그림에서 판단하고, 그 근거를 설명하세요.
남길 결과
- 세 자료 조건의 군집 그림과 K별 지표 표.
import numpy as np
from sklearn.preprocessing import StandardScaler
X2=X.copy();X2[:,0]*=10
결과 기록·자가 점검
자료 조건·K:
군집 그림·중심:
Inertia:
Silhouette·군집 방향 해석:
확인할 점
- 세 자료 조건에서 같은 K와 Seed를 사용했는가?
다른 입력에서도 확인하기
시작 조건
cluster_std=1.6으로 바꾼 자료에서 같은 K들을 비교합니다.
진행 방법
make_blobs에서cluster_std만 1.6으로 바꾸고 표본 수·중심 수·Seed는 유지하세요.- 같은 세 K로 KMeans를 학습해 군집 그림과 Inertia·Silhouette를 구하세요.
cluster_std=.8의 기록 옆에 같은 K의 결과를 적으세요. - 생성 시 세 중심이 있다는 사실과, 산점도에서 세 집단이 뚜렷하게 분리되어 보이는지를 구분해 설명하세요.
남길 결과
- 같은 K에서 두 군집 분산 조건의 그림·지표 비교.
# 앞 활동의 데이터와 함수를 사용해 지정된 새 예제를 검사하세요.
결과 기록·자가 점검
cluster_std·K:
군집 그림:
Inertia·Silhouette:
두 자료의 분리 양상:
확인할 점
- 같은 K끼리 자료의 겹침 정도를 비교했는가?