Я пытаюсь написать программу анализа настроений twitter с помощью Scikit-learn
в python 2.7. ОС - Linux Ubuntu 14.04.Hashingvectorizer и многоминимальные байки не работают вместе
В процессе векторизации, я хочу использовать 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)
Почему это происходит и как я могу его решить?
в sklearn 0.19+ должно быть 'HashingVectorizer (alternate_sign = False)» –