我在理解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]])
对于新的交叉验证,我看到它不再占用训练集的长度,而且它使用了一个我不太熟悉的分割函数,因为我手动分割了测试集和训练集,如上所示
目前没有回答
相关问题 更多 >
编程相关推荐