2016-04-06 13 views
0

Scikit-learnというtwitterのセンチメント解析プログラムをpython 2.7で作成しようとしています。 OSはLinux Ubuntu 14.04です。ハッシュベクトル化と多項式ナイーブベイが連携していません

ベクトル化ステップでは、Hashingvectorizer()を使用します。分類器の精度をテストするためにそれがLinearSVCNuSVCGaussianNBBernoulliNBLogisticRegression分類とうまく動作するが、MultinomialNBため、それはこのエラーを返すここ

Traceback (most recent call last): 
    File "/media/test.py", line 310, in <module> 
    classifier_rbf.fit(train_vectors, y_trainTweets) 
    File "/home/.local/lib/python2.7/site-packages/sklearn/naive_bayes.py", line 552, in fit 
    self._count(X, Y) 
    File "/home/.local/lib/python2.7/site-packages/sklearn/naive_bayes.py", line 655, in _count 
    raise ValueError("Input X must be non-negative") 
ValueError: Input X must be non-negative 
[Finished in 16.4s with exit code 1] 

このエラー

vectorizer = HashingVectorizer() 
train_vectors = vectorizer.fit_transform(x_trainTweets) 
test_vectors = vectorizer.transform(x_testTweets) 

classifier_rbf = MultinomialNB() 
classifier_rbf.fit(train_vectors, y_trainTweets) 
prediction_rbf = classifier_rbf.predict(test_vectors) 
に関するブロック符号であります

なぜそれが起こっていると私はそれを解決することができますか?

答えて

1

あなたはsklearnであなたのベクトラ

vectorizer = HashingVectorizer(non_negative=True) 
+1

を初期化するとき0.19+それは「'HashingVectorizer(alternate_sign =偽)である必要があり、Truenon_negative引数を設定する必要があります –

関連する問題