2014-12-19 1 views
2

MATLAB에서 Naive Bayes 알고리즘으로 텍스트 분류를 구현하고 싶습니다. 지금은 3 행렬 위해 가지고 : - : - (15000 * 9 셀 단어 수 행렬순진한 베이로 MATLAB에서 텍스트 분류 구현

  1. 클래스 전과
  2. 교육 자료 (8 * 2 셀, 8 개 클래스 이름 각 클래스 훈련에서 그 %에 대한) - 각 클래스에 대해 모든 지형지 물 (단어) 계산 마지막 열은 모든 문서의 단어 수입니다.
  3. 테스트 데이터 : (2000 * 1) 셀을 가진 행렬 - 각 셀에 대해 문서를 대표하십시오.

어떻게해야합니까? 리콜과 정밀도를 계산하고 싶습니다. 테스트 세트. matlab naive bayes 함수를 살펴 보았습니다. 간단하다고 가정합니다.하지만 어떻게 시작해야하는지 잘 모르겠습니다.

감사

답변

3
여기

나이브 베이 즈 분류의 예는, 내 데이터, 세 종류였다

x1 = 5 * rand(100,1); 
y1 = 5 * rand(100,1); 
data1 = [x1,y1]; 
x2 = -5 * rand(100,1); 
y2 = 5 * rand(100,1); 
data2 = [x2,y2]; 
x3 = -5 * rand(100,1); 
y3 = -5 * rand(100,1); 
data3 = [x3,y3]; 
traindata = [data1(1:50,:);data2(1:50,:);data3(1:50,:)]; 
testdata = [data1(51:100,:);data2(51:100,:);data3(51:100,:)]; 
label = [repmat('x+y+',50,1);repmat('x-y+',50,1);repmat('x-y-',50,1)]; 

. 이제 분류,

nb = NaiveBayes.fit(traindata, label); 
ClassifierOut = predict(nb,testdata); 

데이터 대신 셀 대신 매트릭스로 변경해야하지만 레이블은 okey라고 생각합니다.

다음은 결과입니다. blue은 학습 데이터이고 나머지는 3 개의 클래스에 대한 분류기 출력입니다.

enter image description here

또한 멀티 클래스 데이터에 대한 리콜 및 정밀의 계산 here을 볼 수 있습니다.