Beispiel #1
0
 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,
     )
Beispiel #2
0
    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)