Нужно ли создавать новый классификатор для каждого сгиба при перекрестной валидации K-Fold?
Я пытаюсь обучить классификатор для выявления императивов. В моих данных 2000 императивов и 2000 необязательных. Я использовал 10% от 4000 (400) в качестве своего набора тестов, а остальные 3600 предложений - в качестве набора для обучения классификаторов. Я попытался применить концепцию K-Fold Cross Validation. Часть моего кода ниже:
featuresets = [(document_features(d, word_features), c) for (d, c) in train]
train_set, test_set = featuresets[360:], featuresets[:360]
#first 360 (first 10% of the data)sentences be the first test_set
classifier = nltk.NaiveBayesClassifier.train(train_set)
a=nltk.classify.accuracy(classifier, test_set)
train_set2, test_set2= featuresets[:360]+featuresets[720:],
featuresets[360:720] #second 10% of the sentences to be the second test_set
classifier2 = classifier.train(train_set2)
b=nltk.classify.accuracy(classifier2, test_set2)
train_set3, test_set3 = featuresets[:720]+featuresets[1080:],
featuresets[720:1080]
#Third 10% of the data be the third test_set
classifier3 = classifier2.train(train_set3)
c=nltk.classify.accuracy(classifier3, test_set3)
train_set4, test_set4 = featuresets[:1080]+featuresets[1440:],
featuresets[1080:1440]
#Fourth 10% of the data be the Fourth test_set
classifier4 = classifier3.train(train_set4)
d=nltk.classify.accuracy(classifier4, test_set4)
Я повторил один и тот же учебный процесс 10 раз (я показал только 4 раза в своем коде), потому что 10 различных частей данных должны быть как минимум проверочными данными, по крайней мере, для перекрестной проверки в K-кратных сроках.
Вопрос, который у меня возникает, заключается в том, что я не знаю, следует ли мне каждый раз создавать новый классификатор (classifier = nltk.NaiveBayesClassifier.train(train_set)
), обучите его и рассчитайте среднюю оценку точности по каждому из отдельных классификаторов, чтобы получить оценку точности. Или я должен просто обучить ранее обученный классификатор новым данным (точно так же, как я делаю сейчас), чтобы последний классификатор был обученным 10 раз?