こんにちは、私は一般的にscikitの学習とデータ科学に慣れていません。私は上記の問題に取り組んでいるうちに、私のベクタライザから最も有益な機能を取得しようとしています。私のコード(ギャングさんのコメント@反映するように編集):ValueError:サンプル数が一致しない配列が見つかりました:[4 16149]
values = dataset.data
word_vectorizer = CountVectorizer(analyzer='word', stop_words=custom_stop_words)
trainset = word_vectorizer.fit_transform(values)
tags = ['dem','rep','dem','rep']
tags = np.array(tags)
trainset = trainset.toarray()
word_svm = svm.LinearSVC()
word_svm.fit(trainset, tags)
def most_informative_feature_for_binary_classification(vectorizer, classifier, n=10):
class_labels = classifier.classes_
feature_names = vectorizer.get_feature_names()
topn_class1 = sorted(zip(classifier.coef_[0], feature_names))[:n]
topn_class2 = sorted(zip(classifier.coef_[0], feature_names))[-n:]
for coef, feat in topn_class1:
print class_labels[0], coef, feat
print
for coef, feat in reversed(topn_class2):
print class_labels[1], coef, feat
most_informative_feature_for_binary_classification(word_vectorizer, word_svm)
をターミナル出力:
Traceback (most recent call last):
File "classification.py", line 251, in <module>
word_svm.fit(trainset, tags)
File "/usr/local/lib/python2.7/site-packages/sklearn/svm/classes.py", line 205, in fit
dtype=np.float64, order="C")
File "/usr/local/lib/python2.7/site-packages/sklearn/utils/validation.py", line 520, in check_X_y
check_consistent_length(X, y)
File "/usr/local/lib/python2.7/site-packages/sklearn/utils/validation.py", line 176, in check_consistent_length
"%s" % str(uniques))
ValueError: Found arrays with inconsistent numbers of samples: [ 4 16149]
私はこの問題に関する任意およびすべてのヘルプをいただければと思います。十分な情報を提示していない場合は、私に知らせてください。あなたの時間の前にありがとう!両方のパラメータが同じタイプでなければなりません - - ここで
にこの機能を追加ここで、fは特徴の数(カウントベクトル化器内の単語の数)であり、nはnu(n、f)の次元数文書の内容これは監督された方法であるため、長さn(文書の数)のy(ここではタグもターゲットと呼ばれる)ベクトルを取る必要があります。何が起こっているかのように見えるのは、カウントベクトル化ツールが16,149個のドキュメント(おそらく#の数)を吐き出しているのか、いくつのドキュメントが値に入っているのでしょうか? – bbengfort
もし4を期待していたら、おそらく 'word_vectorizer.fit_transform([values])'を試してください – bbengfort