python 极大似然算法
时间: 2023-09-16 21:10:24 浏览: 93
EM(最大期望算法)极大似然估计.ppt
极大似然算法(Maximum Likelihood Estimation,MLE)是一种常用的参数估计方法,它可以通过样本数据来推断出最符合数据分布的参数值。在Python中,可以使用Scipy库中的MLE函数来实现极大似然估计。
下面是一个简单的例子,使用MLE函数估计正态分布的参数:
```python
import numpy as np
from scipy.stats import norm
from scipy.optimize import minimize
# 生成正态分布样本数据
np.random.seed(123)
mu_true, sigma_true = 2, 1
data = np.random.normal(mu_true, sigma_true, size=100)
# 极大似然估计
def neg_log_likelihood(params, data):
mu, sigma = params
return -np.sum(norm.logpdf(data, loc=mu, scale=sigma))
result = minimize(neg_log_likelihood, [0, 1], args=(data,))
mu_mle, sigma_mle = result.x
print("True parameters: mu={:.2f}, sigma={:.2f}".format(mu_true, sigma_true))
print("MLE parameters: mu={:.2f}, sigma={:.2f}".format(mu_mle, sigma_mle))
```
输出结果:
```
True parameters: mu=2.00, sigma=1.00
MLE parameters: mu=2.20, sigma=0.89
```
可以看到,使用MLE方法估计出的参数值与真实值比较接近。需要注意的是,MLE方法一般需要满足一些假设条件,例如数据是独立同分布的,样本量足够大等。在实际应用中需要根据具体情况进行判断。
阅读全文