gpt4 book ai didi

python - 如何在 Python 中使用 MLE 估计高斯分布参数

转载 作者:行者123 更新时间:2023-11-30 09:46:58 27 4
gpt4 key购买 nike

我有一组具有高斯分布的数据,这是一个直方图,显示了它们的实际外观:

Gaussian distribution

我必须使用贝叶斯分类器将这些数据分为两类,我正在使用 sklearn 进行此操作,并且运行良好。然而,作为工作的一部分,我必须使用 MLE 估计数据的分布参数 (σ, μ) 并在我的分类器中使用它们。

那么是否有任何 python 库或伪代码可以使用最大似然法估计高斯分布参数,以便我可以在分类器中使用估计值?

我正在寻找类似于 Matlab 的 mle(data,'distribution',dist) 的东西。

phat = mle(MPG,'distribution','burr')
phat =
34.6447 3.7898 3.5722

最佳答案

因此,由于您的数据是多维的(D,在您的情况下具体为 D=15),因此您需要对数据的均值(D 维)和协方差(D^2 维)进行建模。

您可以使用 numpy 轻松实现它,如下所示

import numpy as np

def gaussian_mle(data):
mu = data.mean(axis=0)
var = (data-mu).T @ (data-mu) / data.shape[0] # this is slightly suboptimal, but instructive

return mu, var

为了看看它是否有效,让我们在一些人工数据上运行它:

mean = [1.0, 3.14]                                                                                                                                                                                    
cov = [[2.0, 0.5], [0.5, 10]]
data = np.random.multivariate_normal(mean, cov, 10000)

print(gaussian_mle(data))

在自定义格式之后,这给了我们(当我们随机采样时,结果可能会略有不同):

(
array([1.00981014, 3.1217965 ]), # sample mean
array([[2.0266404 , 0.43036865],
[0.43036865, 9.87599803]]) # sample covariance
)

关于python - 如何在 Python 中使用 MLE 估计高斯分布参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51342724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com