【问题标题】:Maximum Likelihood on Matlab (multivariate Bernoulli)Matlab 上的最大似然(多元伯努利)
【发布时间】:2017-03-12 09:37:38
【问题描述】:

我是 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。

非常感谢。

【问题讨论】:

    标签: matlab mle bernoulli-probability


    【解决方案1】:

    伯努利分布的 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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 2016-02-19
      • 2015-01-15
      • 2019-03-22
      • 2020-12-17
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多