4

간단한 naive bayes 알고리즘을 사용하여 mahout에서 문서 분류기를 만들고 있습니다. 현재 가지고있는 데이터 (문서)의 98 %는 클래스 A이고 2 %만이 B 클래스입니다. 제 질문은 클래스 A 문서 대 클래스 B 문서의 비율이 그렇게 넓기 때문에 분류기를 정확하게 훈련시킬 수 있을까요?Naive Bayes 분류자를 사용한 문서 분류

내가 생각하고있는 것은 클래스 A 문서 전체를 무시하고 내가 가지고있는 데이터 세트를 "조작"하여 문서 구성에 큰 차이가 없도록하는 것입니다. 따라서 내가 끝내게 될 데이터 세트는 클래스 B의 30 %와 클래스 A의 70 %로 구성됩니다. 그러나 인식하지 못하는 어떤 반향이 있습니까?

답변

1

인스턴스를 줄이기 위해 데이터 세트 A를 반드시 샘플링해서는 안됩니다. 몇 가지 방법은 대부분 언더 샘플링 (당신이 한 정확히), 소수 민족 오버 샘플링, 치매와 같은 불균형 데이터 세트에서 효율적으로 학습 할 수 있으며, 다음 등 이러한 방법의 실증적 비교입니다 : 또는 http://machinelearning.org/proceedings/icml2007/papers/62.pdf

, 당신은을 정의 할 수 있습니다 분류 자에 대한 사용자 정의 비용 행렬 즉, B = 포지티브 클래스라고 가정하면 비용 (거짓 긍정) < 비용 (거짓 부정)을 정의 할 수 있습니다. 이 경우, 분류기의 출력은 양의 클래스쪽으로 편향됩니다. 다음은 매우 유용한 자습서입니다. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.164.4418&rep=rep1&type=pdf

2

성능의 척도로서 얼마나 좋은 "정확도"가 많은지는 문제에 달려 있습니다. "A"를 "B"로 잘못 분류하면 "B"를 "A"로 잘못 분류하는 것과 마찬가지로 나쁘고/좋지 만, 모든 것을 "A"로 표시하는 것 외에는 아무 이유도 없습니다. 당신에게 98 %의 정확도 (불균형 분포가 실제 분포를 대표하는 한).

귀하의 문제를 알지 못하고 (정확도를 사용해야하는 경우) 최선의 대답은 "데이터 세트에 따라 다릅니다"입니다. 가능성은 낮지 만 표준 naive 베이로 99 %의 정확도를 얻을 수 있습니다. 특히 Naive Bayes의 경우, 당신이 할 수있는 한 가지는 사전 승자의 사용을 중지하는 것입니다 (사전은 본질적으로 각 클래스의 비율입니다). 이는 모델 매개 변수가 불균등 한 데이터 양으로부터 배웠지 만 모든 클래스가 동등하게 발생할 가능성이있는 것으로 가장하는 효과가 있습니다.

제안 된 솔루션은 일반적으로 잘 수행되는 경우가 있습니다. 또 다른 방법은 더 작은 클래스의 가짜 데이터를 만드는 것입니다 (데이터를 사용하는 방식, 텍스트 문서의 경우 특히 좋은 방법을 모르는 경우). 또 다른 방법은 부족한 클래스의 데이터 요소의 가중치를 높이는 것입니다.

"불균형 분류"를 검색하고 이러한 유형의 문제에 대해 더 많은 정보를 찾을 수 있습니다 (더 어려운 문제 중 하나임).

실제로 정확도가 문제에 대한 적절한 척도가 아니라면 "비용에 민감한 분류"에 대한 자세한 정보를 검색하면 도움이됩니다.

관련 문제