method predict
Pelajaran 8 dari 19 dalam kursus Pengantar Machine Learning di Coddy.
Tantangan
SedangLengkapi method predict.
Method ini harus menerima list yang berisi X titik baru.
Untuk setiap titik baru, hitung jarak antara titik ini dan semua titik lain yang tersimpan di self.points. Ambil label dari self.k titik terdekat.
Temukan label mayoritas dari titik-titik terdekat, ini akan menjadi class yang diprediksi.
Berikut contoh titik dan label kita:
| titik | (1, 5) | (5, 0) | (3, 2) | (8, 1) | (4, 4) | (7, 7) |
| label | A | B | A | B | C | A |
Berikut titik baru (3, 3)
Jarak antara titik ini dan semua titik lainnya adalah:
| titik | (1, 5) | (5, 0) | (3, 2) | (8, 1) | (4, 4) | (7, 7) |
| jarak dari (3, 3) | 8 | 13 | 1 | 29 | 2 | 32 |
| label | A | B | A | B | C | A |
Sekarang, jika k = 3, kita perlu mencari 3 titik terdekat dengan titik baru kita. Titik-titik terdekatnya adalah: (3, 2), (1, 5), dan (4, 4). Label yang sesuai dengan titik-titik ini adalah: A, A, C. Ada 2 A dan 1 C. A adalah mayoritas, jadi titik baru diklasifikasikan sebagai A.
Method predict harus mengembalikan list label yang ditentukan untuk titik-titik baru.
Untuk mencari label mayoritas dari sebuah list label, gunakan: max(set(labels), key = labels.count)
Coba sendiri
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):
passSemua pelajaran di Pengantar Machine Learning
Latihan sendiri: Compiler Python online