楼主: ZQZ520
8402 130

[数据挖掘理论与案例] 用Python实现极大似然估计   [推广有奖]

回帖奖励 606 个论坛币 回复本帖可获得 3 个论坛币奖励! 每人限 1 次
  • 2关注
  • 47粉丝

运营管理员

院士

14%

还不是VIP/贵宾

-

威望
4
论坛币
85770 个
学术水平
93 点
热心指数
194 点
信用等级
88 点
经验
31284 点
帖子
629
精华
7
在线时间
2418 小时
注册时间
2014-5-7
最后登录
2018-11-15

ZQZ520 在职认证  发表于 2018-7-12 09:12:18 |显示全部楼层

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


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

00.png

                              

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

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

                                              01.png


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


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

1.png


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

2.png


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


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

3.png


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


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

4.png


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


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

5.png


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

6.png


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

7.png


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


       上述是Python应用的案例,跟着覃老师一起领悟数据挖掘算法在行业应用,8月9-12日深圳见,全程没有艰深的公式,几乎以实际案例带动启发理解,注重实际工作经验分享,可以在工作学习中少走弯路。


      覃老师企业内训经验也相关丰富,帮助学员拓展数据思维、扫清知识上的障碍,深受客户的好评。


中国电信企业内训详情链接 http://www.cda.cn/hd/162.html


中国工商银行企业内训详情链接  http://www.cda.cn/hd/125.html


(深圳现场班)

(远程直播班)  


PS:感兴趣的朋友们请联系张老师获取详细课程内容,报名学员可以获得往期预习视频。


在线咨询:


座机:010-68456523

QQ:28819897122881989712

扫码添加微信


9.jpg











8.jpg
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
刘彦楼 + 100 精彩帖子
crystal8832 + 10 + 1 + 1 + 1 精彩帖子
阿扁V5 + 100 精彩帖子

总评分: 经验 + 200  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分




CDA数据分析交流群 217748971
stata SPSS
ZQZ520 在职认证  发表于 2018-7-12 09:30:31 |显示全部楼层
一、课程特色
1.全程没有艰深的公式,几乎全部以实际案例带动启发理解,以通俗易懂的语言讲清楚深刻的数据分析和挖掘思想,随时互动、答疑解惑
2.注重学以致用、注重应用场景再现。把工作中常见的数据分析模型和案例加以剖析,使得学员在实际工作中很快能上手进行实际问题的解决
3.注重实际工作经验分享,让学员在工作学习中少走弯路,以培养兴趣为引导、以阐明基本原理思想为基础,让学员在数据分析中有应万变的能力

二、授课老师
      覃老师,早年毕业于中国人民大学统计学院,近 20 年来一直进行着数据分析的理论和实践,熟悉数据分析与建模,擅长使用Python、R语言、SAS和Spark解决大数据建模及算法优化难题,积累了大量实践案例,经验丰富;善于用逻辑贯穿数据分析过程,把深奥的思想和方法用通俗易懂的语言讲述清楚透彻,善于用数据分析计算机程序实现从数据到结论到预测的落地过程。2010 年至今培养了上万名(包括首批)使用R语言、SAS和Python等工具实现数据分析和挖掘的专业人士,帮助他们在数据挖掘领域提升工作技能或实现就业。
     覃老师曾在某世界500强金融业公司工作期间曾带队负责开发国内首款基于数据分析建模、随机模拟和最优化精确计算的金融年金产品,该产品销售额持续领跑同业市场多年,获得金融产品创新大奖。
     覃老师培训或完成过数据分析和挖掘项目的企业有中国人寿、工商银行、农业银行、汇丰银行、北京银行、渤海银行、宁波银行、陆金所、中国电信、中国移动等。

三、课程安排

上课时间:2018年8月09—12日
上课地点:深圳市南山区科技园北区科技北一路17号摩比大厦
现场费用:3600/2800元(学生价格2800元 仅限全日制本科生及硕士研究生)
直播费用:2800元/人(同步上课时间 课程内容)
每天授课:上午9:00-12:00;下午13:30-16:30;16:30-17:00(答疑)
课程优惠:
1.现场班老学员9折优惠;
2.同一单位三人以上同时报名9折优惠;
以上优惠不叠加
回复

使用道具 举报

ZQZ520 在职认证  发表于 2018-7-12 09:32:50 |显示全部楼层
覃老师主讲中国电信Python课程内训,深受客户认可,具体详情链接 http://www.cda.cn/hd/162.html
回复

使用道具 举报

阿扁V5 学生认证  发表于 2018-7-12 09:38:26 |显示全部楼层

回帖奖励 +3 个论坛币

支持一下
回复

使用道具 举报

人脉引爆点 在职认证  发表于 2018-7-12 09:40:49 |显示全部楼层

回帖奖励 +3 个论坛币

python真的火啊
回复

使用道具 举报

浮世若离丶 发表于 2018-7-12 09:47:30 |显示全部楼层

回帖奖励 +3 个论坛币

人生苦短,我学Python
回复

使用道具 举报

Crsky7 发表于 2018-7-12 10:37:59 |显示全部楼层

回帖奖励 +3 个论坛币

用Python实现极大似然估计
回复

使用道具 举报

nndbc 发表于 2018-7-12 10:58:45 |显示全部楼层

回帖奖励 +3 个论坛币

回复

使用道具 举报

tt_abc 发表于 2018-7-12 10:59:15 |显示全部楼层

回帖奖励 +3 个论坛币

回复

使用道具 举报

zhangjike0216 发表于 2018-7-12 11:01:38 |显示全部楼层

回帖奖励 +3 个论坛币

看看,这个挺需要的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

GMT+8, 2018-11-15 12:39