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

النماذج التجميعية

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

تملأ السيارات موقفَي سيارات، ويمتد صف من السيارات على الطريق بينهما. طريقتان للتجميع في عنقودين:

مخططان للسيارات الـ102 نفسها. على اليسار، ربط Ward: موقف السيارات الشمالي وموقف السيارات الجنوبي عنقودان يضمان 53 و49 سيارة، والطريق مقسوم بينهما. على اليمين، ربط Single: عنقود واحد يضم 101 سيارة وسيارة واحدة منفردة

تُجري scikit-learn عملية الدمج. حدِّد متى تتوقف باستخدام n_clusters:

from sklearn.cluster import AgglomerativeClustering
model = AgglomerativeClustering(n_clusters=2, linkage="ward")
labels = model.fit_predict(X)

يحدد linkage مدى تباعد مجموعتين:

  • "ward"، وهو الافتراضي: يُبقي المجموعات متماسكة
  • "complete": أبعد زوج بينهما
  • "average": متوسط جميع الأزواج
  • "single": أقرب زوج بينهما

تتبع طريقة Single السلاسل: هنا يضم الطريق كلا موقفي السيارات. أما Ward فتُشكّل مجموعات متساوية.

challenge icon

التحدي

متوسط

تنمو الفراولة البرية في ثلاث رقع، بالإضافة إلى بضع نباتات على طول مسار. أي طريقة ربط تحدد الرقع؟ يحتوي plants على مواقعها.

  1. لكل طريقة ربط في linkages، اجمع النباتات في 3 مجموعات.
  2. اطبع أحجام المجموعات كقائمة، بدءًا بالأكبر.
  3. عندما تضم أكبر مجموعة أكثر من نصف النباتات، أضف chained.

لأرض مرجية أخرى:

ward: [40, 38, 31]
complete: [41, 37, 31]
average: [41, 37, 31]
single: [86, 22, 1] chained

جرّب بنفسك

import numpy as np
import pandas as pd
from sklearn.cluster import AgglomerativeClustering

# مواقع نمو 109 نباتات من الفراولة البرية في مرج (بالأمتار): ثلاث بقع ومسار
rng = np.random.default_rng(4)
plants = np.round(np.concatenate([
    rng.normal([2, 3], 0.8, size=(40, 2)),
    rng.normal([9, 4], 1.0, size=(35, 2)),
    rng.normal([6, 10], 0.9, size=(25, 2)),
    np.column_stack([np.linspace(3, 8, 9), np.linspace(3.2, 4, 9)]) + rng.normal(0, 0.15, size=(9, 2)),
]), 2)
linkages = ["ward", "complete", "average", "single"]

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم غير الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت