Menu
CoddyTech

predict yöntemi

Coddy'nin Makine Öğrenmesine Giriş kursunda ders 8 / 19.

challenge icon

Görev

Orta

predict metodunu doldurun.

Metot, yeni X noktalarından oluşan bir liste almalıdır.

Her yeni nokta için, bu nokta ile self.points içinde saklanan diğer tüm noktalar arasındaki mesafeyi hesaplayın. En yakın self.k noktanın etiketlerini çıkarın.

En yakın noktalardan çoğunluk etiketini bulun, bu tahmin edilen sınıf olacaktır.

Örneğin, noktalarımız ve etiketlerimiz şunlardır:

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

İşte yeni bir nokta (3, 3)

Bu nokta ile diğer tüm noktalar arasındaki mesafe şöyledir:

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

Şimdi eğer k = 3 ise, yeni noktamıza en yakın 3 noktayı bulmamız gerekir. En yakın olanlar şunlardır: (3, 2), (1, 5) ve (4, 4). Bu noktalara karşılık gelen etiketler şunlardır: A, A, C. 2 adet A ve 1 adet C var. A çoğunluktadır, bu nedenle yeni nokta A olarak sınıflandırılır.

predict metodu, yeni noktalar için sınıflandırılan etiketlerin bir listesini döndürmelidir.

Bir etiket listesinin çoğunluk etiketini bulmak için şunu kullanın: max(set(labels), key = labels.count)

Kendin dene

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

Makine Öğrenmesine Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi