Menu
CoddyTech

method fit

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

 

Sumber: Wikipedia

challenge icon

Tantangan

Sulit

Implementasikan method fit dan find_cluster_centroid. Fungsi find_cluster_centroid mencari centroid dari list titik tertentu (cluster). Petunjuk untuk mencari centroid ada di pelajaran sebelumnya. Untuk mengimplementasikan fit, ikuti petunjuk berikut:

  1. Inisialisasi Centroid: Pertama, pilih k titik dari dataset sebagai centroid awal. Agar lolos kasus uji, pilih titik ke-3, ke-5, ke-7, ke-9, … sebagai centroid awal (bergantung pada jumlah titik k)
  2. Tetapkan Cluster: Untuk setiap titik dalam dataset, cari centroid terdekat (menggunakan ukuran jarak seperti jarak Euclidean), lalu tetapkan titik tersebut ke cluster itu.
  3. Perbarui Centroid: Setelah semua titik ditetapkan ke cluster, hitung ulang centroid dengan mencari nilai rata-rata semua titik di setiap cluster.
  4. Ulangi Langkah 2 dan 3: Langkah-langkah di atas diulangi sampai centroid tidak lagi berubah secara signifikan. Jika jarak antara centroid baru dan centroid sebelumnya kurang dari 0.01, berhenti

Cara agar lolos kasus uji:

  • Simpan centroid dalam variabel self.centroids.
  • Setelah kamu menemukan centroid baru, jika total jarak antara centroid baru dan centroid sebelumnya kurang dari 0.01, pertahankan centroid sebelumnya.
  • Urutan centroid itu penting. Selalu lakukan iterasi pada centroid dari awal hingga akhir.
  • Kasus uji akan mencetak self.centroids dan memvalidasi apakah nilainya benar.

Coba sendiri

def euclidian_distance(point_a, point_b):
    return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5


    
class KMeans:
    def __init__(self, k):
        self.k = k

    def find_cluster_centroid(self, cluster_points):
    # Tulis kodemu di sini

    def fit(self, X_train):
        # Tulis kodemu di sini
        self.centroids = ...
    
    def predict(self, X_test):
        pass

Semua pelajaran di Pengantar Machine Learning

Latihan sendiri: Compiler Python online