def _closest(self, fpoint, centroids): closest_index = None closest_distance = None for i, point in enumerate(centroids): dist = euclidian_distance(self.X[fpoint], point) if closest_index is None or dist < closest_distance: closest_index = i closest_distance = dist return closest_index
def _is_converged(self, centroids_old, centroids): return True if sum([ euclidian_distance(centroids_old[i], centroids[i]) for i in range(self.K) ]) == 0 else False
def _dist_from_centers(self): return np.array([ min([euclidian_distance(x, c) for c in self.centroids]) for x in self.X ])