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

الطريقة predict

الدرس 8 من 19 في دورة مقدمة في تعلم الآلة على Coddy.

challenge icon

التحدي

متوسط

قم بملء طريقة predict.

يجب أن تأخذ الطريقة قائمة من نقاط X الجديدة.

لكل نقطة جديدة، احسب المسافة بين هذه النقطة وجميع النقاط الأخرى المخزنة في self.points. استخرج تسميات (labels) أقرب self.k نقاط.

أوجد التسمية الأكثر تكراراً (الأغلبية) من بين النقاط الأقرب، وستكون هذه هي الفئة المتوقعة.

على سبيل المثال، إليك نقاطنا وتسمياتنا:

points(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
labelsABABCA

إليك نقطة جديدة (3, 3)

المسافة بين هذه النقطة وجميع النقاط الأخرى هي:

points(1, 5)(5, 0)(3, 2)(8, 1)(4, 4)(7, 7)
distance from (3, 3)813129232
labelsABABCA

الآن إذا كانت k = 3، فنحن بحاجة إلى العثور على أقرب 3 نقاط لنقطتنا الجديدة. هذه هي الأقرب: (3, 2)، و (1, 5)، و (4, 4). التسميات المقابلة لهذه النقاط هي: A، و A، و C. لدينا اثنان من 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 عبر الإنترنت