博客
关于我
机器学习(湖北师范大学教程)-极大似然估计算法
阅读量:337 次
发布时间:2019-03-04

本文共 974 字,大约阅读时间需要 3 分钟。

考虑一个抛硬币的例子,假设这个硬币正面跟反面轻重不同,我们把这个硬币抛80次(即,我们获取一个样本x1=H,x2=T,…x80=T并把正面次数记下来,正面记为H,反面记为T),并把抛出一个正面的概率记为p,抛出一个反面的概率记为1-p。假设我们抛出了49个正面,31个反面,即49次H,31次T。假设这个硬币是我们从一个装了三个硬币的盒子里取出的。这三个硬币抛出正面的概率分别为p=1/3,p=1/2,p=2/3.这些硬币没有标记。所以我们无法知道哪个是哪个。使用最大似然估计,通过这些实验数据(即采样数据),我们可以计算出哪个硬币的可能性最大。这个似然函数取以下三个值中的一个:
P(H=49,T=31 | p=1/3) = 0.000

P(H=49,T=31 | p=2/3) = 0.054

P(H=49,T=31 | p=1/2) = 0.012
所以看到p=2/3时,似然函数取得最大值,这就是p的最大似然估计。下面是代码的计算:

import mathw = 2.0/3#最大概率h = 49#正面次数t = 31#返面次数def DefineParam():    H=h    T=t    return H,Tdef MaxinumLikehood(p=w):    H,T = DefineParam()#获取参数    f1 = math.factorial(H+T)/(math.factorial(H)*math.factorial(T))#计算p部分 80!/(49!*31!)    f2 = (p**H)*((1.0-p)**T)    return f1*f2#计算似然数值print(MaxinumLikehood())##下面是测试,用于验证似然估计算法的正确性# (发现最后一行的i接近0.6125,也就是w=0.6125时,似然数值(概率)最大) 而49/80=0.6125 说明似然估计算法是正确的w = 0.00001max = 0.0i=0.0while w<1:    k = MaxinumLikehood(w)    if k>max:        max = k        i = w        print(i,max)    w = w + 0.00001print(i,max)

在这里插入图片描述

转载地址:http://ujhe.baihongyu.com/

你可能感兴趣的文章
考研必备100个网站
查看>>
不知道考研各科课程那个老师的课好?怎么选择安排?在哪找课程课本资料?看这里
查看>>
考研高数一_高数二_高数三考试大纲
查看>>
【无线传感器网络简明教程-学习笔记8】第八章 无线传感器网络试验
查看>>
【无线传感器网络简明教程-学习笔记11】第三章课后思考题答案
查看>>
C++第十三次作业(拷贝构造函数_对象数组)
查看>>
【考研高数-高等数学-基础】第四章 不定积分
查看>>
【考研高数-高等数学-基础】第六章 定积分的应用
查看>>
【考研英语-基础-简单句】简单句的核心变化_谓语情态
查看>>
【考研英语-基础-简单句】简单句的核心变化_谓语否定与强调_考场攻略
查看>>
基于CC2530的跑马灯实验
查看>>
17级软件技术二班刘鑫磊安卓学期总结
查看>>
配置Log4j详细版
查看>>
数据结构 第五章 二叉树-1
查看>>
[Easy] 58. Length of Last Word
查看>>
[Easy] 100. Same Tree
查看>>
[Easy] 136. Single Number
查看>>
旁路由Openwrt设置
查看>>
PVE+集客AC+K2T-AP
查看>>
【已解决】PVE shell: “connect: Network is unreachable”
查看>>