Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion sklearn/cluster/tests/test_k_means.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

import pytest

from sklearn.base import clone
from sklearn.utils import _safe_indexing
from sklearn.utils._testing import assert_array_equal
from sklearn.utils._testing import assert_array_almost_equal
from sklearn.utils._testing import assert_allclose
Expand All @@ -30,7 +32,7 @@
from sklearn.cluster._k_means_fast import _euclidean_sparse_dense_wrapper
from sklearn.cluster._k_means_fast import _inertia_dense
from sklearn.cluster._k_means_fast import _inertia_sparse
from sklearn.datasets import make_blobs
from sklearn.datasets import make_blobs, make_classification
from io import StringIO


Expand Down Expand Up @@ -1091,3 +1093,27 @@ def test_kmeans_plusplus_dataorder():
centers_fortran, _ = kmeans_plusplus(X_fortran, n_clusters, random_state=0)

assert_allclose(centers_c, centers_fortran)


def test_xxx():
X, y = make_classification(
n_samples=1000,
n_classes=3,
n_informative=4,
weights=[0.2, 0.3, 0.5],
random_state=0,
)

target_class_indices = np.flatnonzero(y == 2)
X_class = _safe_indexing(X, target_class_indices)
X_class_sparse = sp.csr_matrix(X_class)

kmeans = KMeans(n_clusters=201, n_init=1, algorithm="full", random_state=0)

kmeans_dense = clone(kmeans).fit(X_class)
kmeans_sparse = clone(kmeans).fit(X_class_sparse)

np.testing.assert_allclose(
kmeans_dense.cluster_centers_,
kmeans_sparse.cluster_centers_
)