Menu
CoddyTech

eps Seçimi

Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 22 / 51.

eps değerine bakana kadar tahmindir. Gürültü Noktaları parkı için, min_samples=4 gibi kendisini de sayarak her noktanın 4. en yakın noktaya olan mesafesini ölç. Sırala ve grafiğini çiz:

Sıralanmış 71 mesafeden oluşan yükselen bir eğri: piknik noktaları için 1 m civarında düşük ve düz, ardından yaklaşık 3 m'de keskin bir dönüş; burada kesikli bir çizgi eps değerini işaretliyor ve tek başına olan insanlar için dik bir yükseliş görülüyor

Yoğun noktalar alçakta ve yatayda kalır; tekil noktalar yukarı fırlar. Eğrinin yukarı döndüğü diz, iyi bir eps değeridir:

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

kneighbors her noktanın en yakın 4 noktaya olan uzaklıklarını en yakından başlayarak verir; bu nedenle -1 sütunu 4. noktadır. np.sort bunları sıralar.

challenge icon

Görev

Orta

Sismologlar, min_samples=5 ile DBSCAN'in bir yıllık depremlerin altındaki fay hatlarını bulmasını istiyor. eps değerini seç.

  1. X üzerinde NearestNeighbors(n_neighbors=5) modelini eğit ve her depremin uzaklıklarını al.
  2. 5. en yakın komşuya olan uzaklıkları sıralı olarak çiz.
  3. Kodu çalıştır ve dirseği oku. Bu değeri eps içinde tut, ax.axhline ile kesikli gri bir çizgi olarak çiz ve grafiği göster.

Başka bir bölgede dirsek yaklaşık 4 km'deydi:

5. En Yakın Depreme Uzaklık başlıklı bir grafik: yaklaşık 145 deprem boyunca 2 km civarında düz seyreden, ardından 50 km'yi aşacak şekilde hızla yükselen bir eğri ve dirsekte 4 km'de kesikli gri bir çizgi

Coddy grafiğini açıklar, ardından verdiğin eps değeriyle DBSCAN'i çalıştırır.

Kendin dene

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

# Bir bölgedeki bir yıllık depremler: her bir depremin merkez üssü km cinsinden
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)")

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimsiz Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi