2016-10-29 12 views
0

MATLAB의 환경에 익숙하지 않으며 아무리 많은 노력을 기울여도 다 변수 베르누이의 ML 알고리즘을 구성하는 방법에 대한 개념을 알 수 없습니다.Matlab의 최대 가능성 (복수 변수 베르누이)

N 변수 (x1, x2, ..., xN)의 데이터 집합이 있고 각 변수는 D 차원 (Dx1)의 벡터이고 p = (p1, p2,. .., pD). 나에게 데이터 세트에서 추정 된 확률의 D 벡터를 제공

for n=1:D 
    prob(n)=mle(dataset(:,n),'distribution', 'bernoulli'); 
end 

: 내가 만든

Pr(X|p)=Πp(d)^x(nd)*(1-p(d))^(1-x(nd)) 

코드는 MATLAB의 MLE 함수를 사용하여 : 그래서 베르누이 분포 형태를 가져야한다. 그러나 실제로 흥미로운 것은 mle을 사용하는 것이 아니라 단계별 MATLAB 프로세스에서 ML을 구현하는 방법입니다.

대단히 감사합니다.

답변

0

Bernoulli 분포에 대한 phat는 시도 횟수에 대한 성공률입니다. 수동으로하고 싶다면 각 벡터에서 성공 횟수 (1 또는 0)를 세어 벡터의 길이로 나눕니다. 행렬에 수직으로 저장된 1을 가정 할 때 빠른 방법이 있습니다.

bern_mat = [0 0 1 0 1 1; 1 1 0 1 0 0 ; 1 0 1 0 1 1]; % 3x6 matrix of 1's and 0's 
phat = sum(bern_mat,1)/size(bern_mat,1); % sum across the first dim then divide by size of first dim.