用Python实现极大似然估计

来源:经管之家

ID:jgjgedu

极大似然估计(Maximum likelihood estimation, 简称MLE)是很常用的参数估计方法,极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,... ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现的概率P(A)较大。也就是说,如果已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值(请参见“百度百科”)。

本文以一个简单的离散型分布的例子,模拟投掷硬币估计头像(head)向上的概率。投掷硬币落到地面后,不是head向上就是tail朝上,这是一个典型的伯努利实验,形成一个伯努利分布,有着如下的离散概率分布函数:

其中,x等于1或者0,即结果,这里用1表示head、0表示tail。

对于n次独立的投掷,很容易写出其似然函数:

现在想用极大似然估计的方法把p估计出来。就是使得上面这个似然函数取极大值的情况下的p的取值,就是要估计的参数。

首先用Python把投掷硬币模拟出来:

通过此模拟,使用sympy库把似然函数写出来:

从上面的结论可以看出,作100次伯努利实验,出现positive、1及head的数目是53个,相应的0也就是tail的数目是47个,比较接近我们设的初始值0.5即1.0/2(注意:现在我们假设p是未知的,要去估计它,看它经过Python的极大似然估计是不是0.5!)。

下面,我们使用Python求解这个似然函数取极大值时的p值:

结果没有什么悬念,53/100的值很接近0.5!

取对数后,上面Python的算法最后实际上是求解下式为0的p值:

上式留给网友自行推导,很多资料都可找到该式。这个式子,是著名的Logistic回归参数估计的极大似然估计算法的基础。

进一步,为了更加直观的理解投掷硬币的伯努利实验,我们给出以均值(均值为100*0.5=50)为中心对称的加总离散概率(概率质量函数(probability mass function),Python里面使用pmf函数计算):

对于上面的Python代码,可以通过下图更好地去理解:

把这20个离散的概率全部显示出来,也可以看到在0.08左右取到它们的最大值:

本文针对简单的离散概率质量函数的分布使用Python进行了极大似然估计,同时该方法可以应用于连续分布的情形,只要通过其概率密度函数得出其似然函数即可。希望网友把本文的代码实践一遍,也可以和R语言、SAS等软件得到的结论相比较,从而得到更好的极大似然估计的实现方法。

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

- END -


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2018-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

机器学习(4)之线性判别式(附Python源码)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 LDA是什么? 线性判别式分析(Li...

4129
来自专栏量化投资与机器学习

量化投资之机器学习应用——基于 SVM 模型的商品期货择时交易策略(提出质疑和讨论)

2016年在东证期货的量化报告里,读到一篇文章,关于量化投资策略之机器学习应用——基于 SVM 模型的期货择时交易策略 。就顺手算了一下,发现了一些问题,因此和...

5359
来自专栏新智元

计算机视觉中,目前有哪些经典的目标跟踪算法?

【新智元导读】这篇文章将非常详细地介绍计算机视觉领域中的目标跟踪,尤其是相关滤波类方法,分享一些作者认为比较好的算法。 相信很多来这里的人和我第一次到这里一样,...

89410
来自专栏计算机视觉战队

AI都可以将文字轻松转成图像

夜晚是如此的安静,但是依然有很多挑灯夜战的你、他、她......无论在哪座城市,都会有忙碌的人在灯光下依然勤奋努力的工作,希望分享的这首小曲可以缓解夜间工作的疲...

5893
来自专栏Petrichor的专栏

深度学习: 论网络深度的利弊

[1] 深层学习为何要“Deep”(上) [2] 深层学习为何要“Deep”(下)

1683
来自专栏IT派

教程 | 一文读懂如何用LSA、PSLA、LDA和lda2vec进行主题建模

在自然语言理解任务中,我们可以通过一系列的层次来提取含义——从单词、句子、段落,再到文档。在文档层面,理解文本最有效的方式之一就是分析其主题。在文档集合中学习、...

2151
来自专栏AI科技评论

热议 | 恺明大神又发新作 Rethinking ImageNet Pre-training,读过论文的你怎么看?

社长为你推荐来自 AI 研习社问答社区的精华问答。如有你也有问题,欢迎进社区提问。

883
来自专栏机器之心

教程 | 一文读懂如何用LSA、PSLA、LDA和lda2vec进行主题建模

在自然语言理解任务中,我们可以通过一系列的层次来提取含义——从单词、句子、段落,再到文档。在文档层面,理解文本最有效的方式之一就是分析其主题。在文档集合中学习、...

1280
来自专栏AI科技大本营的专栏

Fast.ai深度学习实战课程 Lesson7 学习笔记:CNN Architectures

本篇是AI100学院此前重点推出的《Fast.ai 深度学习实战课程》(中文字幕)第七节的学习笔记,分享者胡智豪。 如果你对深度学习感兴趣,该系列课程千万不...

4686
来自专栏机器之心

MetaMind深度解读NLP研究:如何让机器学习跳读

选自MetaMind 作者:Alexander Rosenberg Johansen 机器之心编译 参与:机器之心编辑部 自然语言处理是人工智能研究的核心问题之...

3729

扫码关注云+社区

领取腾讯云代金券