2013-06-05 2 views
1

Naive Bayes Classifier를 사용하고 있습니다. 다음은 tutorial입니다. 훈련 된 데이터에 대해 저는 308 개의 질문을 사용하고 수동으로 태그가 지정된 26 개의 카테고리로 카테고리를 분류하고 있습니다. 데이터를 보내기 전에 NLP를 수행 중입니다. NLP에서 수행 중 (문장 부호 제거, 토큰 화, 정지 단어 제거 및 형태소 분석) 이 필터링 된 데이터가 mahout의 입력으로 사용됩니다. mahout을 사용하여 NBC에서이 데이터를 학습하고 모델 파일을 가져옵니다. 지금 내가 달릴 때Naive Bayes Classifier의 정확도를 향상시키는 방법은 무엇입니까?

mahout testnb 

나는 정확한 인스턴스를 96 %로 얻는다.

내 테스트 데이터의 경우 수동으로 태그를 추가 한 100 개의 질문을 사용하고 있습니다. 그리고 훈련 된 모델을 테스트 데이터와 함께 사용할 때, 올바르게 분류 된 인스턴스를 1 %로 얻습니다. 이것은 나를 화나게하고있다.

누구나 내가 뭘 잘못했는지 나에게 제안하거나 NBC의 성능을 향상시키는 몇 가지 방법을 제안 할 수 있습니까?

이상적으로 트레이닝과 테스트에 필요한 질문 데이터의 양은 어느 정도입니까?

+0

교육용으로 300 개의 입력 된 "벡터"가 있습니까? 진심이야? –

+0

@ThomasJungblut이 300보다 적습니까? 각 학급/카테고리별로 얼마나 많은 질문을해야합니까? – SLearner

답변

5

이것은 훈련 세트에서 매우 높은 정확도를 얻을 수 있지만 실제 상황에서는 낮은 %의 고전적인 문제인 것으로 보입니다.

더 많은 교육 인스턴스가 필요할 수 있습니다. 또한 26 개의 카테고리가 가지고있는 기능과 상관 관계가없는 가능성이 있습니다. 기계 학습은 마술 적이 아니며 변수와 결과 사이에 일종의 통계적 관계가 필요합니다. 사실 NBC가 여기서하고있는 일은 실제로 훈련 밖의 질문에는 전혀 쓸모없는 훈련 세트를 "암기"하는 것입니다.

+0

나는 훈련 된 데이터 세트를 600으로, 테스트 데이터 세트를 100으로, 카테고리를 줄이고 이제는 8 개의 카테고리로 줄였습니다. NLP가없는 테스트 데이터에서 17 %의 정확도를 얻었습니다. NLP를 사용하면 정확도가 10 %입니다. NLP 수행 중 (구두점 제거, 스톱 워드 제거, 토큰 화 및 형태소 분석) 몇 가지 제안 사항을 제안 해주십시오. 내가 뭘 잘못하고 있는지 알 수 없다. NLP를 사용해야합니까? 또한 훈련 된 데이터와 테스트 데이터를 얼마나 많이 늘려야합니까? – joashp

+1

@ user2331441 나는 당신이 틀린 일이 없다고 믿는다. 통계적으로 문제가있다. 당신이 80 개 (각 카테고리에 대해 10 개)를 훈련 한 카테고리에서 말하면, 당신의 테스트 세트의 미래 문장은 관련/유사한 단어를 가져야한다. 예를 들어, '태양이 어떤 색입니까?' 그리고 당신은 '태양이 노랗다'라는 답을 훈련 시켰습니다. 미래의 질문에 'color'와 'sun'이라는 단어가 포함되어 있지 않다면 답을 얻지 못할 것입니다. 누군가가 '지구가 궤도에 진주하는 별이 무엇입니까?'라는 질문을 입력하면 어떻게됩니까? 귀하의 훈련 된 데이터와 질문 사이에 아무런 상관 관계가 없습니다 ... –

+1

더 많은 데이터를 훈련할수록 정확도가 높아집니다 ... (텍스트 본문이 클수록 조회수가 높아지지만 또한 오탐을 당할 가능성이 높습니다) ... 이것은 지금까지의 경험이었습니다! –

관련 문제