Menu
CoddyTech

בחירת eps

חלק מהיחידה למידה בלתי מונחית במסלול ה-Machine Learning של Coddy. שיעור 22 מתוך 51.

eps הוא ניחוש עד שבודקים. עבור הפארק מנקודות הרעש, מדוד את המרחק של כל נקודה לשכנה ה־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 מחזירה את המרחקים של כל נקודה לארבע הנקודות הקרובות ביותר אליה, מהקרובה ביותר תחילה, לכן העמודה -1 היא הרביעית. np.sort ממיינת אותן.

challenge icon

אתגר

בינוני

סייסמולוגים רוצים ש-DBSCAN ימצא את קווי השבר שמתחת לרעידות האדמה של שנה אחת, עם min_samples=5. בחרו את eps שלו.

  1. התאימו את NearestNeighbors(n_neighbors=5) ל-X וקבלו את המרחקים של כל רעידת אדמה.
  2. שרטטו את המרחקים לשכנה החמישית הקרובה ביותר, כשהם ממוינים.
  3. הריצו וקראו את נקודת הברך. שמרו את הערך הזה ב-eps, שרטטו אותו כקו אפור מקווקו באמצעות ax.axhline, והציגו את הגרף.

באזור אחר, נקודת הברך הייתה קרובה ל-4 ק״מ:

תרשים שכותרתו מרחק לרעידת האדמה החמישית הקרובה ביותר: עקומה שטוחה בסביבות 2 ק״מ לאורך כ-145 רעידות אדמה, ואז עולה בתלילות מעבר ל-50 ק״מ, עם קו אפור מקווקו ב-4 ק״מ בנקודת הברך

Coddy מתאר את התרשים שלכם, ואז מריץ DBSCAN עם ערך ה-eps שלכם.

נסו בעצמכם

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

# רעידות אדמה במשך שנה באזור אחד: מיקומו של כל מוקד נמדד ב-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 אונליין