0
Scikit-learn
というtwitterのセンチメント解析プログラムをpython 2.7で作成しようとしています。 OSはLinux Ubuntu 14.04です。ハッシュベクトル化と多項式ナイーブベイが連携していません
ベクトル化ステップでは、Hashingvectorizer()
を使用します。分類器の精度をテストするためにそれがLinearSVC
、NuSVC
、GaussianNB
、BernoulliNB
とLogisticRegression
分類とうまく動作するが、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)
に関するブロック符号であります
なぜそれが起こっていると私はそれを解決することができますか?
を初期化するとき0.19+それは「'HashingVectorizer(alternate_sign =偽)である必要があり、
True
にnon_negative
引数を設定する必要があります –