Menu
CoddyTech

method predict

Pelajaran 8 dari 19 dalam kursus Pengantar Machine Learning di Coddy.

challenge icon

Tantangan

Sedang

Lengkapi 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)
labelABABCA

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)813129232
labelABABCA

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):
        pass

Semua pelajaran di Pengantar Machine Learning

Latihan sendiri: Compiler Python online