1

我无法理解 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]])

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

4

0 回答 0