K-означает мини-пакет Ошибка памяти на больших данных - PullRequest
0 голосов
/ 11 февраля 2019

Я использую sklearn Kmeans Minibatch для кластеризации больших данных и получаю ошибку памяти.

Вот моя конфигурация ноутбука на этой конфигурации, она работает нормально:

  1. Core i5 64бит
  2. Python 3.6.2
  3. 8 ГБ ОЗУ

Я сохранил TfidfVectorizer X в файле .npz (426 МБ).Затем я выполняю кластеризацию на этом X несколько раз с разными номерами кластеров.

X = sparse.load_npz ("D: \ clustering_final \ sp-k2.npz")

n_samples: 850900, n_features: 1728098

Кластеризация разреженных матричных данных с помощью MiniBatchKMeans

Batch_size = 1000, n_clusters = 500, compute_labels = True, init = 'k-means ++', n_init = 100

Мой скрипт на pythonотлично работает на этой конфигурации ноутбука, но когда на другом ноутбуке я использую тот же Python (с той же папкой Python36, что и все), он выдает ошибку памяти.Хотя конфигурация для другого ноутбука высокая:

  1. Core i5 64 бит
  2. Python 3.6.2
  3. 16 ГБ ОЗУ

    km.fit(X) File "C:\python36\lib\site-packages\sklearn\cluster\k_means_.py", line 1418, in fit init_size=init_size) File "C:\python36\lib\site-packages\sklearn\cluster\k_means_.py", line 684, in _init_centroids x_squared_norms=x_squared_norms) File "C:\python36\lib\site-packages\sklearn\cluster\k_means_.py", line 79, in _k_init centers = np.empty((n_clusters, n_features), dtype=X.dtype) MemoryError

Я проверил все необходимые библиотеки и другие зависимости, но он отлично работает на ноутбуке с низкой конфигурацией.Почему он не работает на ноутбуке с высокой конфигурацией?

Я знаю, это звучит странно, но это правда.

...