2014-10-02 2 views
0

나는 naive bayes 분류자를 사용하여 텍스트를 분류하려고하며 분류 결과를 검증하기 위해 k 배 교차 유효성 검사를 사용하려고합니다. 하지만 여전히 k-fold 교차 유효성 검사를 사용하는 방법에 대해 혼란 스럽습니다. k-fold가 k 개의 부분 집합으로 데이터를 나누는 것을 알고 있으므로, k 개의 부분 집합 중 하나가 시험 집합으로 사용되고 다른 k-1 개의 부분 집합이 함께 학습 집합을 형성합니다. 트레이닝 세트에 따라 데이터를 훈련 받아야한다고 생각합니다. 따라서 k-fold 교차 유효성 검사를 사용하려면 필수 데이터는 레이블이 붙은 데이터입니까?, 맞습니까? 그리고 레이블이없는 데이터는 어떻습니까? 비 표시된 데이터는 NB를 들어, 클러스터링 방법을 사용해야에 대한naive bayes 분류기에서 k-fold 교차 유효성 검사를 사용하는 방법은 무엇입니까?

+0

일반적으로 감독 학습의 경우 데이터에 라벨을 지정해야합니다. 그런 다음 평가를 위해 데이터에 라벨을 지정해야합니다. –

+0

실제로 k- 배 교차 유효성 검사는 훈련을위한 순진한 베이에 사용되고 테스트에는 사용되지 않습니까? –

+0

그럼 k-1 부분 집합으로 Naive Bayes를 훈련하게 될 것입니다. 모델이 작성되면 나머지 서브 세트로 모델을 평가합니다. 모델은 클래스를 예측할 것이며이 예측 된 결과를 corret 결과와 비교할 수 있습니다. – user

답변

0

어쩌면이 코드는 당신을 도울 것입니다 :

[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로 데이터를 분리하는 것입니다.

건배

관련 문제