Ich versuche, ein Twitter-Sentiment-Analyse-Programm mit Scikit-learn
in Python 2.7 zu schreiben. OS ist Linux Ubuntu 14.04.Hashingvectorizer und Multinomial naive Bayes arbeiten nicht zusammen
Im Vektorisierungsschritt möchte ich Hashingvectorizer()
verwenden. die Klassifizierer Genauigkeit zu testen es mit LinearSVC
, NuSVC
, GaussianNB
, BernoulliNB
und LogisticRegression
Klassifizierer gut funktioniert, aber für MultinomialNB
, gibt es diesen Fehler
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]
Hier ist der Block-Code zu diesem Fehler
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)
Warum passiert das und wie kann ich es lösen?
in sklearn 0.19+ sollte 'HashingVectorizer (alternate_sign = False) sein‘ –