Menu
Coddy logo textTech

Metoda fit

Lekcja 10 z 19 w kursie Wprowadzenie do uczenia maszynowego w Coddy.

 

Źródło: Wikipedia

challenge icon

Wyzwanie

Trudny

Zaimplementuj metodę fit i metodę find_cluster_centroid. Metoda find_cluster_centroid znajduje centroid danej listy punktów (klastra). Instrukcje dotyczące wyznaczania centroidu znajdziesz w poprzedniej lekcji. Aby zaimplementować metodę fit, postępuj zgodnie z poniższymi instrukcjami:

  1. Inicjalizacja centroidów: Najpierw wybierz k punktów ze zbioru danych jako początkowe centroidy. Aby zaliczyć testy, wybierz 3., 5., 7., 9. i kolejne punkty jako początkowe centroidy (zależnie od liczby punktów k)
  2. Przypisywanie do klastrów: Dla każdego punktu w zbiorze danych znajdź najbliższy centroid (używając miar odległości, takich jak odległość euklidesowa) i przypisz punkt do tego klastra.
  3. Aktualizacja centroidów: Gdy wszystkie punkty zostaną przypisane do klastrów, oblicz ponownie centroidy, wyznaczając średnią ze wszystkich punktów w każdym klastrze.
  4. Powtarzanie kroków 2 i 3: Powyższe kroki są powtarzane, aż centroidy przestaną się znacząco zmieniać. Jeśli odległość między nowym centroidem a poprzednim centroidem jest mniejsza niż 0.01, zatrzymaj się

Jak zaliczyć testy:

  • Zapisz centroidy w zmiennej self.centroids.
  • Gdy znajdziesz nowe centroidy, jeśli łączna odległość między nowymi centroidami a poprzednimi jest mniejsza niż 0.01, zachowaj poprzednie centroidy.
  • Kolejność centroidów jest ważna. zawsze iteruj po centroidach od początku do końca.
  • Testy wypiszą self.centroids i sprawdzą, czy są poprawne.

Spróbuj swoich sił

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):
    # Napisz tutaj swój kod

    def fit(self, X_train):
        # Napisz tutaj swój kod
        self.centroids = ...
    
    def predict(self, X_test):
        pass

Wszystkie lekcje w sekcji Wprowadzenie do uczenia maszynowego

Poćwicz samodzielnie: Kompilator Python online