JJC's 테크니컬 다이어리

Octave 에서 Bayes 분류기 활용 부류 판단 본문

Pattern Recognition

Octave 에서 Bayes 분류기 활용 부류 판단

털털한JJC 2016. 3. 27. 12:19


새롭게 주어진 데이터 x=[0,2] 에 대하여 클래스 공통 공분산행렬을 가정한 경우의 판별함수를 이용하여 어떤 클래스에 속하는지를 판단하기

[소스 코드]

load data4_1

K=2; %클래스 개수

M=[mean(X1);mean(X2)]; %클래스별 표본평균의 계산

S(:,:,1) = cov(X1);     %클래스별 표본공분산 계산

S(:,:,2) = cov(X2);

smean= (cov(X1)+cov(X2))/2; %클래스별 표본공분산의 평균

 

%새롭게 주어진 데이터

X = [0,2]

 

for j=1:2

    %모든 클래스에 동일한 공분산행렬을 가정한 경우의 판별함수

    d2(j,1)=(X(1,:)-M(j,:))*inv(smean)*(X(1,:)-M(j,:))';

end

 

[min2v,min2i]=min(d2);

 

min2i   % 클래스 출력



[출력결과]

>> bayes
X =

   0   2

min2i =  1
>>

참고:

min함수:  입력 1개와 출력 2개 인자로 min이 호출되는 경우, 최소값의 첫 index 를 함께 반환 한다. 즉,

          [x, ix] = min ([1, 3, 0, 2, 0])

              =>  x = 0

                  ix = 3