朴素贝叶斯NLTK交叉验证

2024-10-17 08:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在理解KFold交叉验证在新的模型选择版本中是如何工作的方面存在问题。我正在使用朴素贝叶斯分类器,我想用交叉验证来测试它。我的测试和列车数据如下所示:

test_set = posRevBag[:200] + negRevBag[:200] 
train_set = posRevBag[200:] + negRevBag[200:]

它们被表示为({'one': True, 'last': True...},pos)

我知道在旧的交叉验证中,我会有类似的结果:

cv = cross_validation.KFold(len(train_set), n_folds=10, indices=True, shuffle=False, random_state=None, k=None)

for traincv, testcv in cv:
    classifier = nltk.NaiveBayesClassifier.train(train_set[traincv[0]:traincv[len(traincv)-1]])
    print 'accuracy:', nltk.classify.util.accuracy(classifier, train_set [testcv[0]:testcv[len(testcv)-1]])

对于新的交叉验证,我看到它不再占用训练集的长度,而且它使用了一个我不太熟悉的分割函数,因为我手动分割了测试集和训练集,如上所示


Tags: nonetruelentrain交叉cvsetclassifier