Как использовать k-кратную перекрестную проверку в наивном байесовском классификаторе?

Я пытаюсь классифицировать текст с помощью наивного байесовского классификатора, а также хочу использовать перекрестную проверку в k-кратном размере для проверки результата классификации. Но я все еще не понимаю, как использовать перекрестную проверку в k-кратном размере. Поскольку я знаю, что k-кратное разделение данных на k подмножеств, то одно из k подмножеств используется в качестве тестового набора, а другие k-1 подмножества объединяются для формирования обучающего набора. И я думаю, что в качестве обучающего набора данные должны иметь метку для обучения. Итак, чтобы использовать k-кратную перекрестную проверку, требуемые данные - это помеченные данные ?, это правильно? А как насчет немаркированных данных ?.


person Muhammad Haryadi Futra Iskanda    schedule 02.10.2014    source источник
comment
Как правило, для любого контролируемого обучения данные должны быть помечены. И опять же, для оценки данные нужно пометить.   -  person Chthonic Project    schedule 02.10.2014
comment
так на самом деле k-кратная перекрестная проверка используется в наивном байесовском методе для обучения, а не для тестирования?   -  person Muhammad Haryadi Futra Iskanda    schedule 02.10.2014
comment
Хорошо, вы будете тренировать Наивного Байеса с k-1 подмножествами. Когда модель будет создана, вы оцените модель с оставшимся подмножеством. Модель предсказывает класс, и вы можете сравнить этот предсказанный результат с правильным результатом.   -  person user    schedule 02.10.2014


Ответы (1)


для немаркированных данных вы должны использовать методы кластеризации, для nb, возможно, вам поможет этот код:

[testF, trainF] = kfolds(Features,k);
[testL, trainL] = kfolds(Label,k);
c = size(Features);
for i=1:k
    LabelTrain = trainL{i};
    LabelTest = testL{i};
    FeaturesTrain = trainF{i};
    FeaturesTest = testF{i};
    nb = NaiveBayes.fit(FeaturesTrain,LabelTrain);
    Class = predict(nb,FeaturesTest);
    predict_Class(i)=sum(Class==LabelTest);
end
predict_all = sum(predict_Class)/c(1);

Функция kfolds разделит ваши данные на k складок.

ваше здоровье

person mohammad karim hardani asl    schedule 26.12.2015