실제 단위로 본 중심점
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 12번째.
클러스터의 중심은 그 클러스터를 대표하는 구성원입니다. K-means는 스케일링된 데이터에서 놀이공원의 중심을 찾았으므로, 중심은 z 점수로 표시됩니다. 동일한 중심을 변환 전과 후로 비교해 보세요:
스케일러를 유지하세요. 스케일러는 각 특성의 평균과 분산을 기억하며, inverse_transform은 스케일링을 되돌립니다.
scaler = StandardScaler()
km.fit(scaler.fit_transform(park))
centers = scaler.inverse_transform(km.cluster_centers_)
print(centers.round(1))클러스터당 한 행씩 시간, 놀이기구 이용 횟수, 나이를 출력합니다:
[[ 6. 6.2 38.4]
[ 2.4 3. 45.8]
[ 6.8 13.9 20.7]]클러스터 2의 중심은 0.8과 1.3이었습니다. 이제 6.8시간과 13.9회 탑승으로 읽힙니다. 같은 점을 사람이 이해할 수 있는 단위로 나타낸 것입니다.
챌린지
중급장갑 제조업체는 손의 군집을 4가지 장갑 크기로 변환합니다. 시작 코드는 손 150개의 크기를 조정하고 군집화한 다음, 고객의 손 정보를 new_hand에 읽어 들입니다.
- 새 손이 속하는 군집을 찾으세요. 먼저 크기를 조정합니다.
- 중심을 다시 cm 단위로 변환하세요.
- 아래와 같이 해당 군집의 중심을 소수점 1자리까지 출력하세요.
다른 장갑 제조업체의 경우:
Your glove size: hand 20.3 cm, palm 8.9 cm, finger 8.6 cm직접 해보기
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
# 장갑 제작자가 측정한 손 150개의 치수(cm): 손 길이, 손바닥 너비, 가운데손가락 길이
hands = pd.read_csv("hands.csv")
scaler = StandardScaler()
scaled = scaler.fit_transform(hands)
# 장갑 크기마다 클러스터 하나
km = KMeans(n_clusters=4, n_init=10, random_state=0)
km.fit(scaled)
# 새 고객의 손 치수를 동일한 열로 구성된 한 행짜리 표로 나타냄
new_hand = pd.DataFrame({
"hand_cm": [float(input())],
"palm_cm": [float(input())],
"finger_cm": [float(input())],
})
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러