2016-11-13 15 views
-1

9 개의 연속 데이터 열과 4 개의 범주 데이터가 포함 된 데이터 집합이 있다고 가정 해 보겠습니다. Matlab에서는 열을 두 그룹으로 나누어 개별적으로 교육/테스트 (순진한 베이)를 수행하고 연속 열의 오류율이 0.45이고 범주 형 열의 오류가 0.33임을 확인합니다. 내 질문은 - 어떻게 결합 오류를 결정합니까?어떻게 오류율을 병합 또는 결합합니까?

편집 - 간단한 의사 개요 추가 :

for x = 1:num_iterations 
    Mdl_NB1 = fitcnb(TrainingSet_Con,TrainingTargets,'Distribution','normal'); 
    Mdl_NB2 = fitcnb(TrainingSet_Dis,TrainingTargets,'Distribution','mn'); 
    [NB1_label,NB1_Posterior,NB1_Cost] = predict(Mdl_NB1,TestPoint_Con); 
    [NB2_label,NB2_Posterior,NB2_Cost] = predict(Mdl_NB2,TestPoint_Dis); 
    NB1_cumulLoss = NB1_cumulLoss + resubLoss(Mdl_NB1); 
    NB2_cumulLoss = NB2_cumulLoss + resubLoss(Mdl_NB2); 
end 
NB1_avg_score = NB1_cumulLoss/num_iterations 
NB2_avg_score = NB2_cumulLoss/num_iterations 
total_avg_score = ??? 

세 가지 분명한 선택을 원칙적으로 다음과 같습니다

  • (A + B)/2
  • A * B를
  • (A * (CountA/TotalCount)) + (B * (CountB/TotalCount))

이 중 어느 것이 맞는지 확실하지 않습니다.

+0

모든 코드 예는 무엇입니까? – Marcin

+0

편집을 참조하십시오. – swabygw

답변

0

이것은 의미가 없습니다. 당신은 효과적으로 두 개의 분리 된 모델을 구축하고 있습니다. 그래서 하나 (아마도 'Distribution','mvmn'와) 모든 열이 하나 개의 모델을 만들거나

처럼 뭔가 하나에 두 모델을 결합
Mdl_Ens = fitcnb([NB1_Posterior; NB2_Posterior],TrainingTargets,'Distribution','normal'); 
NEns_cumulLoss = NEns_cumulLoss + resubLoss(Mdl_Ens); 

실제로 컬럼의 서브 세트를 기반으로 두 모델의 출력 중 하나의 모델을 구축하는 마다.