Menu
CoddyTech

Memilih eps

Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 22 dari 51.

eps hanyalah tebakan sampai kamu melihatnya. Untuk taman dari Noise Points, ukur jarak setiap titik ke tetangga terdekat ke-4, dengan menghitung titik itu sendiri, seperti min_samples=4. Urutkan lalu buat plot:

Kurva menaik dari 71 jarak yang diurutkan: rendah dan datar di dekat 1 m untuk titik-titik piknik, lalu belokan tajam di sekitar 3 m, dengan garis putus-putus yang menandai eps, dan kenaikan curam untuk orang-orang yang sendirian

Titik-titik yang berkelompok berada rendah dan datar, sedangkan titik-titik yang berdiri sendiri menjulang. Siku, tempat kurva mulai menanjak, adalah eps yang bagus:

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

kneighbors memberikan jarak setiap titik ke 4 titik terdekatnya, dari yang paling dekat, sehingga kolom -1 adalah titik ke-4. np.sort mengurutkannya.

challenge icon

Tantangan

Sedang

Seismolog ingin DBSCAN menemukan garis patahan di bawah wilayah yang mengalami gempa selama setahun, dengan min_samples=5. Pilih eps-nya.

  1. Latih NearestNeighbors(n_neighbors=5) pada X dan dapatkan jarak setiap gempa.
  2. Plot jarak ke gempa terdekat ke-5, dalam urutan terurut.
  3. Jalankan dan amati titik tekuknya. Simpan nilai itu di eps, gambarkan sebagai garis abu-abu putus-putus dengan ax.axhline, lalu tampilkan.

Untuk wilayah lain, titik tekuknya berada di sekitar 4 km:

Grafik berjudul Jarak ke Gempa Terdekat ke-5: kurva mendatar di sekitar 2 km untuk sekitar 145 gempa, lalu menanjak tajam hingga melewati 50 km, dengan garis abu-abu putus-putus pada titik tekuk di 4 km

Coddy menjelaskan grafikmu, lalu menjalankan DBSCAN dengan eps-mu.

Coba sendiri

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

# Data gempa selama satu tahun di satu wilayah: setiap pusat gempa dinyatakan dalam 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)")

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Tanpa Pengawasan

Latihan sendiri: Compiler Python online