Menu
Coddy logo textTech

מתודת fit

שיעור 10 מתוך 19 בקורס מבוא ללמידת מכונה של Coddy.

 

מקור: ויקיפדיה

challenge icon

אתגר

קשה

ממשו את המתודה fit ואת find_cluster_centroid. המתודה find_cluster_centroid מוצאת את המרכז של רשימת נקודות נתונה (אשכול). ההוראות למציאת המרכז מופיעות בשיעור הקודם. כדי לממש את fit, פעלו לפי ההוראות הבאות:

  1. אתחול המרכזים: תחילה, בחרו k נקודות מתוך מערך הנתונים שישמשו כמרכזים ראשוניים. כדי לעבור את מקרי הבדיקה, בחרו את הנקודות ה־3, ה־5, ה־7, ה־9, … כמרכזים הראשוניים (בהתאם ל־k נקודות)
  2. שיוך לאשכולות: עבור כל נקודה במערך הנתונים, מצאו את המרכז הקרוב ביותר (באמצעות מדדי מרחק כגון המרחק האוקלידי) ושייכו את הנקודה לאותו אשכול.
  3. עדכון המרכזים: לאחר שכל הנקודות שויכו לאשכולות, חשבו מחדש את המרכזים על ידי חישוב הממוצע של כל הנקודות בכל אשכול.
  4. חזרה על שלבים 2 ו־3: חזרו על השלבים שלעיל עד שהמרכזים מפסיקים להשתנות באופן משמעותי. אם המרחק בין המרכז החדש למרכז הקודם קטן מ־0.01, עצרו

כיצד לעבור את מקרי הבדיקה:

  • שמרו את המרכזים במשתנה self.centroids.
  • לאחר שמצאתם מרכזים חדשים, אם המרחק הכולל בין המרכזים החדשים לקודמים קטן מ־0.01, השאירו את המרכזים הקודמים.
  • סדר המרכזים חשוב. עברו תמיד על המרכזים מההתחלה ועד הסוף.
  • מקרי הבדיקה ידפיסו את self.centroids ויאמתו שהם נכונים.

נסו בעצמכם

def euclidian_distance(point_a, point_b):
    return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5


    
class KMeans:
    def __init__(self, k):
        self.k = k

    def find_cluster_centroid(self, cluster_points):
    # כתבו כאן את הקוד שלכם

    def fit(self, X_train):
        # כתבו כאן את הקוד שלכם
        self.centroids = ...
    
    def predict(self, X_test):
        pass

כל השיעורים ביחידה מבוא ללמידת מכונה

תרגלו בעצמכם: קומפיילר Python אונליין