人々のwikiデータにtfidfを使用して、最近隣を見つけるためにscikit-learn NearestNeighborsを使用しています。私は私で(サイズは80メガバイトを)私の完全なコードとサンプルデータをアップロードしたscikit-learn NearestNeighbors tfidfの.kneighbors()はValueErrorを返します:UPDATEIFCOPYの基数は読み取り専用です
ValueError: UPDATEIFCOPY base is read-only
:
私.kneighbors()
メソッド呼び出し
res = neigh.kneighbors(obama_tfidf, return_distance=False)
でMultiprocessing
モジュールは例外を投げました参照のためgithub location here。ここで
は、エラーリストの一部です:
---------------------------------------------------------------------------
JoblibValueError Traceback (most recent call last)
<ipython-input-12-dbcbed49b042> in <module>()
1 obama_word_counts = count_vectorizer.transform(['obama'])
2 obama_tfidf = tfidf_transformer.transform(obama_word_counts)
----> 3 res = neigh.kneighbors(obama_tfidf, return_distance=False)
4 print res
/usr/local/lib/python2.7/dist-packages/sklearn/neighbors/base.pyc in kneighbors(self, X, n_neighbors, return_distance)
355 if self.effective_metric_ == 'euclidean':
356 dist = pairwise_distances(X, self._fit_X, 'euclidean',
--> 357 n_jobs=n_jobs, squared=True)
358 else:
359 dist = pairwise_distances(
/usr/local/lib/python2.7/dist-packages/sklearn/metrics/pairwise.pyc in pairwise_distances(X, Y, metric, n_jobs, **kwds)
1245 func = partial(distance.cdist, metric=metric, **kwds)
1246
-> 1247 return _parallel_pairwise(X, Y, func, n_jobs, **kwds)
1248
1249
/usr/local/lib/python2.7/dist-packages/sklearn/metrics/pairwise.pyc in _parallel_pairwise(X, Y, func, n_jobs, **kwds)
1094 ret = Parallel(n_jobs=n_jobs, verbose=0)(
1095 fd(X, Y[s], **kwds)
-> 1096 for s in gen_even_slices(Y.shape[0], n_jobs))
1097
1098 return np.hstack(ret)
/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/parallel.pyc in __call__(self, iterable)
787 # consumption.
788 self._iterating = False
--> 789 self.retrieve()
790 # Make sure that we get a last message telling us we are done
791 elapsed_time = time.time() - self._start_time
/usr/local/lib/python2.7/dist-packages/sklearn/externals/joblib/parallel.pyc in retrieve(self)
738 exception = exception_type(report)
739
--> 740 raise exception
741
742 def __call__(self, iterable):
JoblibValueError: JoblibValueError
それはS/O投稿制限を超えるように私は、全体のマルチプロセッシング例外を貼り付けることはできません。
私はここで何が欠けていますか?
n_jobs = 1(-1ではなく)を設定して無効にしてみましたが、正常に機能しました... –