我是MATLAB环境的新手,不管我多么挣扎,似乎我无法得到如何为多元伯努利构建ML算法的概念。
我有一个N个变量的数据集(x1,x2,...,xN),每个变量都是D维度(Dx1)的向量,参数向量的形式为p =(p1,p2,.. 。,pD)。所以伯努利分布应该具有以下形式:
Pr(X|p)=Πp(d)^x(nd)*(1-p(d))^(1-x(nd))
我创建的代码使用MATLAB的mle函数:
for n=1:D
prob(n)=mle(dataset(:,n),'distribution', 'bernoulli');
end
它给出了来自数据集的估计概率的D向量。 但是,我真正感兴趣的是如何在逐步的MATLAB过程中实现ML,而不仅仅是使用mle。
非常感谢。
答案 0 :(得分:0)
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.