Menu
Coddy logo textTech

metodo fit

Lezione 10 di 19 del corso Introduzione all’apprendimento automatico di Coddy.

 

Fonte: Wikipedia

challenge icon

Sfida

Difficile

Implementa il metodo fit e find_cluster_centroid. find_cluster_centroid trova il centroide di un determinato elenco di punti (cluster). Le istruzioni su come trovare il centroide si trovano nella lezione precedente. Per implementare fit, segui queste istruzioni:

  1. Inizializza i centroidi: per prima cosa, scegli k punti del dataset come centroidi iniziali. Per superare i casi di test, scegli come centroidi iniziali il 3°, 5°, 7°, 9°… punto (in base ai k punti)
  2. Assegna i cluster: per ogni punto del dataset, trova il centroide più vicino (usando misure di distanza come la distanza euclidea) e assegna il punto a quel cluster.
  3. Aggiorna i centroidi: una volta assegnati tutti i punti ai cluster, ricalcola i centroidi calcolando la media di tutti i punti in ciascun cluster.
  4. Ripeti i passaggi 2 e 3: i passaggi precedenti vengono ripetuti finché i centroidi non smettono di cambiare in modo significativo. Se la distanza tra il nuovo centroide e quello precedente è inferiore a 0.01, fermati

Come superare i casi di test:

  • Salva i centroidi nella variabile self.centroids.
  • Quando trovi nuovi centroidi, se la distanza totale tra i nuovi centroidi e quelli precedenti è inferiore a 0.01, mantieni i centroidi precedenti.
  • L'ordine dei centroidi è importante. itera sempre sui centroidi dall'inizio alla fine.
  • I casi di test stamperanno self.centroids e verificheranno che siano corretti.

Provalo tu

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):
    # Scrivi qui il tuo codice

    def fit(self, X_train):
        # Scrivi qui il tuo codice
        self.centroids = ...
    
    def predict(self, X_test):
        pass

Tutte le lezioni di Introduzione all’apprendimento automatico

Esercitati da solo: Compilatore Python online