Menu
CoddyTech

복습: 도시의 불빛

Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 23번째.

challenge icon

챌린지

중급

DBSCAN에서 계곡 지도를 기억하나요? 이제 직접 만들어 보세요. 위성이 밤에 계곡을 촬영했습니다. 불빛을 마을별로 묶고 외딴 불빛을 찾아보세요. 농장, 등대, 캠핑카일 수도 있습니다. 프로그램은 eps를 km 단위로 읽습니다.

  1. 해당 eps와 min_samples=5로 DBSCAN을 실행하세요.
  2. 마을 수, 외딴 불빛 수, 가장 큰 마을의 크기를 출력하세요.
  3. 지도에 표시하세요. 각 마을은 각각의 산점도로 표시하고 town of N lights라고 레이블을 붙이세요. 외딴 불빛은 회색 x 표시로 나타내고 lone lights라고 레이블을 붙인 뒤, 범례를 표시하세요. 그래프를 보여 주세요.

다른 계곡에서 eps를 1.3으로 설정하면 다음과 같습니다.

Towns: 3
Lone lights: 10
Biggest town: 77 lights

Valley at Night라는 제목의 그래프: 77개의 불빛으로 이루어진 길고 휘어진 마을, 47개의 불빛으로 이루어진 둥근 마을, 20개의 불빛으로 이루어진 마을이 각각 다른 색으로 표시되어 있고, 외딴 불빛 10개는 회색 x 표시로 나타나며 범례가 있음

Coddy가 지도를 설명합니다. 그런 다음 eps를 5로 설정해 보세요. 어떤 마을들이 합쳐지나요?

직접 해보기

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

# 위성으로 촬영한 계곡의 야간 사진: 불빛 하나당 한 행, 위치 단위는 km
lights = pd.read_csv("lights.csv")
X = np.column_stack([lights["east_km"], lights["north_km"]])
eps = float(input())

fig, ax = plt.subplots()
ax.set_title("Valley at Night")
ax.set_xlabel("East (km)")
ax.set_ylabel("North (km)")

# 아래에 코드를 작성하세요

비지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러