From 95e18b6c9a0a462d15a748e9e596967de9451f53 Mon Sep 17 00:00:00 2001 From: Erik3003 Date: Mon, 14 Dec 2020 17:40:37 +0100 Subject: [PATCH] Added solution --- kMeansClustering.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/kMeansClustering.py b/kMeansClustering.py index b883948..a9c1b52 100644 --- a/kMeansClustering.py +++ b/kMeansClustering.py @@ -7,14 +7,21 @@ class KMeansClustering: def __init__(self, k, data): self.k = k # Anzahl der Cluster/Mittelwertvektoren - self.means = data[0:k] # Mittelwertvektoren + self.means = data[:k] # Mittelwertvektoren self.array = data # Array mit Daten self.groups = np.zeros(len(data)) # Clusterzugehörigkeit der Daten def calculate_means(self): # Hier bearbeiten und neue Mittelwertvektoren ermitteln - pass + self.means = [[0.] * len(self.array[0])] * self.k + divider = [0] * self.k + for i in range(len(self.array)): + group = int(self.groups[i]) + divider[group] = divider[group] + 1 + self.means[group] = np.add(self.means[group], self.array[i]).tolist() + for i in range(self.k): + self.means[i] = np.divide(self.means[i], divider[i]).tolist() def cluster_data(self): # Ordnet die Daten den Clustern zu @@ -60,9 +67,4 @@ def get_color(self, n): while not cluster.cluster_data(): cluster.calculate_means() - if np.array_equal(cluster.groups, iris.target): - print("Aufgabe erfolgreich beendet!") - else: - print("Da muss noch was getan werden!") - cluster.visualize() \ No newline at end of file