1
に関する研修KDツリーながら順序で配列要素を設定します説明は以下の通りです。誰かが問題を理解するのを助けることができますか?とValueError:私は文書コーパスのTFIDFにKD-ツリーを訓練しようとしていますが、それは</p> <pre><code>ValueError: setting an array element with a sequence. </code></pre> <p>コードとエラーになりますTFIDF
コード:
t0 = time.time()
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(X)
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
t1 = time.time()
total = t1-t0
print "TF-IDF built:", total
#######################------------------------############################
t0 = time.time()
#nbrs = NearestNeighbors(n_neighbors=20, algorithm='kd_tree', metric='euclidean')
#nbrs.fit(X_train_tfidf)#,Y)
nbrs = KDTree(np.array(X_train_tfidf), leaf_size=100)
t1 = time.time()
total = t1-t0
print "KNN Trained:", total
#######################------------------------############################
これはエラーです:
TF-IDF built: 0.108999967575
Traceback (most recent call last):
File ".\tfidf_knn.py", line 48, in <module>
nbrs = KDTree(np.array(X_train_tfidf), leaf_size=100)
File "sklearn/neighbors/binary_tree.pxi", line 1055, in sklearn.neighbors.kd_tree.BinaryTree.__init__ (sklearn\neighbo
rs\kd_tree.c:8298)
File "C:\Anaconda2\lib\site-packages\numpy\core\numeric.py", line 474, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.
感謝を!しかし、それは小さなデータにも役立ちましたが、それは大きな配列を与えます---私が "toarray()"を実行した後、行列はもはや疎ではないので、メモリを取り戻します。 KDTreeに疎な行列を与える方法はありますか? – user3667569
ねえ。私の編集を参照してください。スパース入力ではkd_treeを使用することはできませんが、メソッドをブルートに変更することはできます。結果はそれほど異なってはいけません。また、あなたの疎な行列をsklearnモデルとより互換性のある別の形式(csr_matrix)に変換する必要があります。 – kazAnova