4
nltk를 사용하여 분류자를 만들었으므로 리뷰를 3 개의 클래스 pos, neg 및 neu로 분류합니다.Naive Bayes 분류 자에 대한 K- 폴드 교차 유효성 확인
이제 분류기를 테스트하기 위해 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는 음수가 아니어야합니다. 귀하의 질문은 무엇인가? –