Я работаю над операционными системами Windows 7 8gb.sklearn kneighbours memory error python
Это векторизатор я использую векторизовать свободный текстовый столбец в моей 52MB обучающего набора данных
vec = CountVectorizer(analyzer='word',stop_words='english',decode_error='ignore',binary=True)
Я хочу, чтобы вычислить 5 ближайших соседей этого набора данных для испытания 18MB набора.
nbrs = NearestNeighbors(n_neighbors=5).fit(vec.transform(data['clean_sum']))
vectors = vec.transform(data_test['clean_sum'])
distances,indices = nbrs.kneighbors(vectors)
Это трассировки стека -
Traceback (most recent call last):
File "cr_nearness.py", line 224, in <module>
distances,indices = nbrs.kneighbors(vectors)
File "C:\Anaconda2\lib\site-packages\sklearn\neighbors\base.py", line 371,
kneighbors
n_jobs=n_jobs, squared=True)
File "C:\Anaconda2\lib\site-packages\sklearn\metrics\pairwise.py", line 12
in pairwise_distances
return _parallel_pairwise(X, Y, func, n_jobs, **kwds)
File "C:\Anaconda2\lib\site-packages\sklearn\metrics\pairwise.py", line 10
in _parallel_pairwise
return func(X, Y, **kwds)
File "C:\Anaconda2\lib\site-packages\sklearn\metrics\pairwise.py", line 23
n euclidean_distances
distances = safe_sparse_dot(X, Y.T, dense_output=True)
File "C:\Anaconda2\lib\site-packages\sklearn\utils\extmath.py", line 181,
afe_sparse_dot
ret = ret.toarray()
File "C:\Anaconda2\lib\site-packages\scipy\sparse\compressed.py", line 940
toarray
return self.tocoo(copy=False).toarray(order=order, out=out)
File "C:\Anaconda2\lib\site-packages\scipy\sparse\coo.py", line 250, in to
y
B = self._process_toarray_args(order, out)
File "C:\Anaconda2\lib\site-packages\scipy\sparse\base.py", line 817, in _
ess_toarray_args
return np.zeros(self.shape, dtype=self.dtype, order=order)
MemoryError
Любые идеи?
Вы используете 32-битный Python или 64-битный Python? Перемещение на 64-разрядный может решить эту проблему. – probitaille
Я использую 64 бит на самом деле ... –
Hum ... если вы опускаете число соседей (n_neighbors), у вас такая же проблема? Я на самом деле делаю что-то подобное, но с большим количеством данных и с несколькими n_neighbors в цикле (например, с 1 по 9). Я получил ошибку памяти, используя 32-битный Python, и я перешел на 64-разрядный Anaconda, и это решило мою проблему. – probitaille