اختيار eps
جزء من قسم التعلّم غير الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 22 من 51.
eps هو تخمين إلى أن تنظر. بالنسبة إلى الحديقة من نقاط الضوضاء، قِس مسافة كل نقطة إلى أقرب نقطة رابعة، مع احتساب النقطة نفسها، كما في 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 هو النقطة الرابعة. وترتبها np.sort.
التحدي
متوسطيريد علماء الزلازل أن يعثر DBSCAN على خطوط الصدع تحت منطقة شهدت زلازل على مدار عام، باستخدام min_samples=5. اختر قيمة eps.
- درّب
NearestNeighbors(n_neighbors=5)علىXواحصل على مسافات كل زلزال. - ارسم مسافات أقرب 5 جيران، بعد ترتيبها.
- شغّل البرنامج وحدد نقطة الركبة. احتفظ بهذه القيمة في
eps، وارسمها كخط رمادي متقطع باستخدامax.axhline، ثم اعرض الرسم.
في منطقة أخرى، كانت نقطة الركبة قريبة من 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)")
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعلّم غير الخاضع للإشراف
1اكتشاف المجموعات
التعلّم دون تسمياتقياس التشابهتنفيذ K-Means يدويًااستخدام K-Means في scikit-learnمراجعة: أعضاء النادي الرياضيتدرّب بنفسك: مترجم Python عبر الإنترنت