Menu
CoddyTech
flag Ar iconالعربيةdown icon

اختيار eps

جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 22 من 51.

eps هو تخمين إلى أن تنظر. بالنسبة إلى الحديقة من نقاط الضوضاء، قِس مسافة كل نقطة إلى أقرب نقطة رابعة، مع احتساب النقطة نفسها، كما في 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 هو النقطة الرابعة. وترتبها np.sort.

challenge icon

التحدي

متوسط

يريد علماء الزلازل أن يعثر DBSCAN على خطوط الصدع تحت منطقة شهدت زلازل على مدار عام، باستخدام min_samples=5. اختر قيمة eps.

  1. درّب NearestNeighbors(n_neighbors=5) على X واحصل على مسافات كل زلزال.
  2. ارسم مسافات أقرب 5 جيران، بعد ترتيبها.
  3. شغّل البرنامج وحدد نقطة الركبة. احتفظ بهذه القيمة في eps، وارسمها كخط رمادي متقطع باستخدام ax.axhline، ثم اعرض الرسم.

في منطقة أخرى، كانت نقطة الركبة قريبة من 4 km:

مخطط بعنوان المسافة إلى أقرب زلزال خامس: منحنى مستوٍ قرب 2 km لنحو 145 زلزالًا، ثم يرتفع بشدة متجاوزًا 50 km، مع خط رمادي متقطع عند 4 km على نقطة الركبة

يصف 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 عبر الإنترنت