Я использую sklearn Kmeans Minibatch для кластеризации больших данных и получаю ошибку памяти.
Вот моя конфигурация ноутбука на этой конфигурации, она работает нормально:
- Core i5 64бит
- Python 3.6.2
- 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, что и все), он выдает ошибку памяти.Хотя конфигурация для другого ноутбука высокая:
- Core i5 64 бит
- Python 3.6.2
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
Я проверил все необходимые библиотеки и другие зависимости, но он отлично работает на ноутбуке с низкой конфигурацией.Почему он не работает на ноутбуке с высокой конфигурацией?
Я знаю, это звучит странно, но это правда.