행으로 구성되는 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 : 분류 오류입니다.
이 나는 긴 포스트이었다 알 수 있도록 :
안녕하십니까, StackOverflow에 오신 것을 환영합니다! 불행히도, 당신이 말했듯이,이 긴 게시물에는 너무 많은 정보가 담겨 있습니다. 제발 질문을 줄이고 귀하의 질문에만 관련 부분을 유지, 솔직히 ... 나는 질문을 찾지 못했지만, 나는 길을 잃었 어. –