Menu
CoddyTech

מודלים אגרומרטיביים

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

מכוניות ממלאות שני חניונים, וביניהם שורת מכוניות לאורך הכביש. שתי דרכים למזג אותן ל־2 אשכולות:

שני תרשימים של אותן 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": הזוג הקרוב ביותר שלהן

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