Menu
CoddyTech

eps 선택하기

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

eps는 확인해 보기 전까지는 추측일 뿐입니다. Noise Points에서 공원을 대상으로 각 점에서 4번째로 가까운 점까지의 거리를 측정하되, 자기 자신도 포함합니다. 이는 min_samples=4와 같습니다. 정렬한 다음 그래프로 그립니다:

정렬된 거리 71개가 상승하는 곡선: 피크닉을 즐기는 사람들의 점에서는 약 1 m 부근에서 낮고 평평하다가, 약 3 m에서 급격히 꺾이며, 점선은 eps를 표시하고, 혼자 있는 사람들의 점에서는 가파르게 상승합니다

밀집한 점들은 낮고 평평하게 분포하고, 고립된 점들은 위로 치솟습니다. 곡선이 위로 꺾이는 무릎 지점이 적절한 eps입니다:

from sklearn.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors=4).fit(X)
distances, rows = nn.kneighbors(X)
ax.plot(np.sort(distances[:, -1]))

kneighbors는 각 점에서 가장 가까운 4개 점까지의 거리를 가까운 순서대로 반환하므로, 열 -1은 4번째입니다. np.sort는 이 거리들을 정렬합니다.

challenge icon

챌린지

중급

지진학자들은 min_samples=5로 DBSCAN이 1년 동안 발생한 지진 데이터를 바탕으로 단층선을 찾기를 원합니다. eps를 선택하세요.

  1. X에 NearestNeighbors(n_neighbors=5)를 적합시키고 모든 지진의 거리를 구하세요.
  2. 5번째로 가까운 지진까지의 거리를 정렬하여 그래프로 그리세요.
  3. 실행하고 무릎점을 확인하세요. 해당 값을 eps에 저장하고, ax.axhline으로 회색 점선을 그린 뒤 표시하세요.

다른 지역에서는 무릎점이 4 km 부근에 있었습니다.

5번째로 가까운 지진까지의 거리를 나타내는 그래프: 약 145개의 지진에 대해 곡선이 2 km 부근에서 평평하게 이어지다가 50 km를 넘어 가파르게 상승하며, 무릎점인 4 km에 회색 점선이 그어져 있음

Coddy가 그래프를 설명한 다음, 여러분의 eps 값으로 DBSCAN을 실행합니다.

직접 해보기

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import NearestNeighbors

# 한 지역에서 1년 동안 발생한 지진: 각 진앙의 위치는 km 단위
quakes = pd.read_csv("quakes.csv")
X = np.column_stack([quakes["east_km"], quakes["north_km"]])

fig, ax = plt.subplots()
ax.set_title("Distance to the 5th Nearest Quake")
ax.set_xlabel("Quakes, sorted")
ax.set_ylabel("Distance (km)")

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

비지도 학습의 모든 레슨

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