Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randint
- class KMeans:
- def __init__(self, minimum, maximum, dim, k):
- self._centroids = [[randint(minimum, maximum) for d in range(dim)] for x in range(k]
- self._points = {i: [] for i in range(k)}
- def update(self, vector):
- distance = lambda v: sqrt(sum([(x2-x1) ** 2 for x1, x2 in zip(v[1], vector)]))
- centroid_index = min(enumerate(self._centroids), key=dist)[0]
- self._points[centroid_index].append(vector)
- self._centroids[centroid_index] = [sum(xi) / len(xi) for xi in zip(*self._points[centroid_index])]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement