eps 선택하기
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 22번째.
eps는 확인해 보기 전까지는 추측일 뿐입니다. Noise Points에서 공원을 대상으로 각 점에서 4번째로 가까운 점까지의 거리를 측정하되, 자기 자신도 포함합니다. 이는 min_samples=4와 같습니다. 정렬한 다음 그래프로 그립니다:
밀집한 점들은 낮고 평평하게 분포하고, 고립된 점들은 위로 치솟습니다. 곡선이 위로 꺾이는 무릎 지점이 적절한 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는 이 거리들을 정렬합니다.
챌린지
중급지진학자들은 min_samples=5로 DBSCAN이 1년 동안 발생한 지진 데이터를 바탕으로 단층선을 찾기를 원합니다. eps를 선택하세요.
X에NearestNeighbors(n_neighbors=5)를 적합시키고 모든 지진의 거리를 구하세요.- 5번째로 가까운 지진까지의 거리를 정렬하여 그래프로 그리세요.
- 실행하고 무릎점을 확인하세요. 해당 값을
eps에 저장하고,ax.axhline으로 회색 점선을 그린 뒤 표시하세요.
다른 지역에서는 무릎점이 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)")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러