Menu
Coddy logo textTech

שיטת predict

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

challenge icon

אתגר

בינוני

מלאו את המתודה predict.

המתודה צריכה לקבל רשימה של נקודות חדשות X.

עבור כל נקודה חדשה, חשבו את המרחק בינה לבין כל הנקודות האחרות השמורות ב-self.points. חלצו את התוויות של self.k הנקודות הקרובות ביותר.

מצאו את תווית הרוב מבין הנקודות הקרובות ביותר; זו תהיה המחלקה החזויה.

לדוגמה, הנה הנקודות והתוויות שלנו:

נקודות(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
תוויותABABCA

הנה נקודה חדשה (3, 3)

המרחק בין נקודה זו לכל הנקודות האחרות הוא:

נקודות(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
המרחק מ-(3, 3)813129232
תוויותABABCA

כעת, אם k = 3, עלינו למצוא את 3 הנקודות הקרובות ביותר לנקודה החדשה שלנו. אלה הנקודות הקרובות ביותר: (3, 2), (1, 5) ו-(4, 4). התוויות המתאימות לנקודות האלה הן: A, A, C. יש לנו 2 תוויות A ותווית C אחת. A היא תווית הרוב, ולכן הנקודה החדשה מסווגת כ-A.

המתודה predict צריכה להחזיר רשימה של התוויות שנקבעו עבור הנקודות החדשות.

כדי למצוא את תווית הרוב ברשימת תוויות, השתמשו ב-max(set(labels), key = labels.count)

נסו בעצמכם

class KNN:
    def __init__(self, k):
        self.points = None
        self.labels = None
        self.k = k
    
    def distance(self, point_a, point_b):
        # Write your code here
        return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5
    
    def fit(self, X_train, y_train):
        # Write your code here
        self.points = X_train
        self.labels = y_train

    def predict(self, X_test):
        pass

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

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