def initialize(self, data: np.ndarray): """Assigns the means to an initial value using a specified method or randomly.""" logger.debug(f"Initializing k-means means with '{self.init_method}'.") # k_init requires da.Array as input. data = da.array(data) self.centroids_ = k_init( X=data, n_clusters=self.n_clusters, init=self.init_method, random_state=self.random_state, max_iter=self.init_max_iter, oversampling_factor=self.oversampling_factor, )
def test_invalid_init(self, Xl_blobs_easy): X, y = Xl_blobs_easy init = X[:2].compute() with pytest.raises(ValueError): k_means.k_init(X, 3, init) init = X[:2, :-1].compute() with pytest.raises(ValueError): k_means.k_init(X, 2, init) with pytest.raises(ValueError): k_means.k_init(X, 2, "invalid") with pytest.raises(TypeError): k_means.k_init(X, 2, 2)