metodo fit
Lezione 10 di 19 del corso Introduzione all’apprendimento automatico di Coddy.
Sfida
DifficileImplementa 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:
- Inizializza i centroidi: per prima cosa, scegli
kpunti del dataset come centroidi iniziali. Per superare i casi di test, scegli come centroidi iniziali il 3°, 5°, 7°, 9°… punto (in base aikpunti) - 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.
- Aggiorna i centroidi: una volta assegnati tutti i punti ai cluster, ricalcola i centroidi calcolando la media di tutti i punti in ciascun cluster.
- 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.centroidse 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):
passTutte le lezioni di Introduzione all’apprendimento automatico
2Panoramica sull’apprendimento automatico
Apprendimento supervisionatoApprendimento non supervisionatoEsercitati da solo: Compilatore Python online
