4
Я создал классификатор с использованием nltk, он будет классифицировать отзывы на 3 класса pos, neg и neu.Проверка К-Fold Cross для классификатора Naive Bayes
Теперь, чтобы проверить классификатор, сделайте 10-кратное перекрестное подтверждение. Я нашел пример из sklearn.
from sklearn import cross_validation
from sklearn.naive_bayes import MultinomialNB
target = np.array([x[0] for x in train_set])
train = np.array([x[1:] for x in train_set])
cfr = MultinomialNB()
#Simple K-Fold cross validation. 10 folds.
cv = cross_validation.KFold(len(train_set), k=10, indices=False)
results = []
for traincv, testcv in cv:
probas = cfr.fit(train[traincv], target[traincv]).predict_proba(train[testcv])
results.append(myEvaluationFunc(target[testcv], [x[1] for x in probas]))
print "Results: " + str(np.array(results).mean())
Я получаю эту ошибку
raise ValueError("Input X must be non-negative.")
ValueError: Input X must be non-negative.
Я не уверен, что параметр я прохожу в нем правильно или нет.
Я думаю, что для реализации MultinomialNB все входные значения должны быть> = 0. Кажется, это глупое и непрактичное ограничение, но так оно и есть. – Cerin
@Cerin Почему вы думаете, что это глупое или непрактичное ограничение? user236501 Что непонятно об ошибке? X должен быть неотрицательным. Какой у Вас вопрос? –