복습: 배송 구역
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 10번째.
챌린지
쉬움이 장을 시작할 때 봤던 구역 지도를 기억하나요? 이제 여러분의 지도를 그려 보세요. 한 빵집의 배달 밴이 150곳의 배송지를 방문하며, stops.csv에는 동쪽 좌표는 km 단위로, 북쪽 좌표는 미터 단위로 저장되어 있습니다.
- 두 열을 모두 스케일링하세요.
- k가 2부터 7까지일 때, 스케일링된 행에 KMeans를 학습시키고 관성(소수점 1자리)과 실루엣 점수(소수점 3자리)를 출력하세요. 그런 다음 실루엣 점수가 가장 높은 k를 출력하세요.
- 해당 k의 구역을 실제 단위로 표시하세요. 각 구역의 배송지를 개수와 함께 표시하고(예:
50 stops), 각 구역의 평균 위치에 검은색 별표를 표시한 다음 범례를 추가하세요.
다른 도시의 경우:
k = 2: inertia 109.5, silhouette 0.535
k = 3: inertia 22.8, silhouette 0.737
k = 4: inertia 18.3, silhouette 0.597
k = 5: inertia 14.5, silhouette 0.443
k = 6: inertia 12.7, silhouette 0.368
k = 7: inertia 11.2, silhouette 0.364
Zones: 3그리고 해당 도시의 지도는 다음과 같습니다.
그러면 Coddy가 여러분의 지도를 설명합니다.
직접 해보기
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score
# 배송 정차 지점마다 한 행: 동쪽 방향은 km, 북쪽 방향은 미터 단위(기존 시스템의 단위)
stops = pd.read_csv("stops.csv")
X = stops[["east_km", "north_m"]]
fig, ax = plt.subplots()
ax.set_title("Delivery Zones")
ax.set_xlabel("East (km)")
ax.set_ylabel("North (m)")
# 아래에 코드를 작성하세요
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러