2012-12-26 2 views
-1

행으로 구성되는 2 개의 클래스 (class1.dat 및 class2.dat)가 주어졌으며 각 행은 20 개의 특성 (20 개 값)의 벡터입니다.패턴 인식, 최대 우도, 순수 베이 즈 분류 자 ​​

필자의 비율로 정렬하고 최상의 5 가지 결과를 유지 한 다음 정상 분포라고 가정 할 때 정규 분포의 값을 추정하고 순진한 베이 즈 분류기로 오류를 계산합니다.

% i take 10 random characteristics 

    C1= class_1(:,1:10) 
    C2= class_2(:,1:10)     
% FDR matrix initialize 

    FDR=zeros(1,10);     
%Calculate fisher ratio 
%[t]=Fisher(x,y) where t:fisher ratio,x:data vector of first class,y: ...of second class 

    for i=1:10 
    FDR(i)=Fisher(C1(i,:),C2(i,:));     
    end 
%i find that the highest fisher ratio are 1,3,4,5,7 so i save them in a new matrix X 

    X1=[C1(:,1),C1(:,3),C1(:,4),C1(:,5),C1(:,7)]; 
    X2=[C2(:,1),C2(:,3),C2(:,4),C2(:,5),C2(:,7)]; 
    X=[X1;X2]; 
%Calculate the Gaussian ml estimate 
%[m,S]=Gaussian_ML_estimate(X) where X:LxN matrix m:L dimensional estimate of mean and %S:LxL dimensional estimate of convariance 

    [C1mean_mle, C1cov_mle]=Gaussian_ML_estimate(C1');     
    [C2mean_mle, C2cov_mle]=Gaussian_ML_estimate(C2');    
%I put together the estimates to use them in the last function, the naive bayes 

    Cmean_mle(:,1)=C1mean_mle; 
    Cmean_mle(:,2)=C2mean_mle; 
    Ccov_mle(:,:,1)=C1cov_mle; 
    Ccov_mle(:,:,2)=C2cov_mle; 

내가 다음에 할 무엇인지에 문제가 이니

이 내 코드입니다.

[z] = bayes_classifier(m,S,P,X) 

INPUT 인자 : m : j 번째 열 j 번째 클래스의 평균이다 LXC 행렬 I는 기능을 갖는다. S : 1xlxc 행렬, 여기서 S (:, :, j)는 번째 클래스의 정규 분포의 공분산 행렬에 해당합니다.
P : j 번째 구성 요소가 j 번째 클래스의 확률 일 수있는 c 차원 벡터입니다.
X : 1xN 행렬로, 데이터 열은 으로 분류됩니다.

OUTPUT 인수 :
Z : N 차원 벡터, 그 i 번째의 요소는 i 번째 데이터 벡터를 분류하는 클래스 라벨 이다.

이 기능 :

[clas_error] = compute_error(y,t_est) 

는 데이터 세트에 기초하여 분급의 오차를 계산한다.

입력 인수 :
y : 데이터 세트의 벡터 N 벡터의 클래스 레이블을 포함하는 N 차원 벡터입니다.
t_est : X의 각 벡터가 에 따라 분류 규칙에 할당 된 의 클래스 레이블을 포함하는 N 차원 벡터입니다.
OUTPUT
clas_error : 분류 오류입니다.

이 나는 ​​긴 포스트이었다 알 수 있도록 :

+0

안녕하십니까, StackOverflow에 오신 것을 환영합니다! 불행히도, 당신이 말했듯이,이 긴 게시물에는 너무 많은 정보가 담겨 있습니다. 제발 질문을 줄이고 귀하의 질문에만 관련 부분을 유지, 솔직히 ... 나는 질문을 찾지 못했지만, 나는 길을 잃었 어. –

답변

0

내가 순진 베이 즈에 익숙 해요, 당신이 작성하는 것과 내가 아마 당신의 질문에 대답 할 수있는 감각을 얻을를 읽을 사람들을 읽어 주셔서 감사합니다. 나는 그것이 무엇인지 완전히 확신하지 못합니다. 당신은 정교 할 수 있습니까?

주목할 점은 내가 조금 이상하다고 생각하는 것은 당신이 공분산에 대해 이야기하고 있다는 것입니다. 순진한 베이의 전제는 클래스가 주어지면 특성이 조건부로 독립적이라는 것입니다. 공분산을 사용하는 경우 각 주에는 실제로 n 차원 가우스 (n, 독립, 1 차원 가우시안과 반대)에서 가져온 데이터가 있습니다. 그 시점에서, 그것은 정말로 순진한 Bayes가 아니라 Gaussian Mixture Model입니다. 또한 아주 좋은 모델. 이는 방금보다 표현력이 뛰어나므로 더 많은 양의 데이터를 보유 할 때 더 적합합니다 (소규모 데이터 세트를 과도하게 적용하는 경향이 큽니다).

또한 관련성이 낮은 데이터를 제거하기 위해 피셔 정보 기준을 사용하면 흥미로운 일입니다.나중에 계산 부담을 덜어주는 것 외에도 이점을 확신 할 수 없습니다. 당신이 순진하고 베이 즈에 적합 할 때, 나중에 레이블을 결정할 때 어떤 요소가 더 중요한지 추출 할 수 있습니다.

관련 문제