predict yöntemi
Coddy'nin Makine Öğrenmesine Giriş kursunda ders 8 / 19.
Görev
Ortapredict 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) |
| labels | A | B | A | B | C | A |
İş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) | 8 | 13 | 1 | 29 | 2 | 32 |
| labels | A | B | A | B | C | A |
Ş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):
passMakine Öğrenmesine Giriş bölümündeki tüm dersler
Kendi başına pratik yap: Online Python derleyicisi