python 最优化 准确性_简单的Python编程解决概率统计中的最优化问题

本文通过Python的优化函数解决了一个与概率统计相关的最优化问题,探讨了在不同情况下求解最小值的方法。示例中,随着单个事件概率上升,所需检测次数也略有增加。
摘要由CSDN通过智能技术生成

晚上刚上完课,朋友就发来消息询问,如何用MATLAB求取不同情况下的最小值

0a7a76c7a89c?utm_campaign=maleskine

聊天截图

0a7a76c7a89c?utm_campaign=maleskine

具体的函数表达式

可以看出 EM 是一个由k 和p共同决定的二元函数,它是一个数学期望(这里省略了原题干,有兴趣的读者可在文章的末尾留言)

说实话,笔者并不熟悉 MATLAB 的相关操作,MATLAB 是一个商用的数学建模分析仿真软件,同时也是一门编程语言。但是求解这个最优化问题,我们完全可以用到我们在课堂上学到的 Python 知识.

程序在 Anaconda带的 dupyter notebook 中运行

def optimize(min_k,p):

EM_list = []

k_list = []

for k in range(min_k,min_k**2,1):

EM = 1 - k*(1-p)**k + k

EM_list.append(EM)

k_list.append(k)

min_value = min(EM_list)

index = EM_list.index(min_value)

best_k = k_list[index]

answer = [min_value, best_k]

return answer

optimize(10,0.0001)

运行的结果还不错,符合我们数学系高材生老沈的预期:

[1.0099955011997892, 10]

那我们接下来继续探索下去,找一找 minimum value of EM responding to the variation of p 的规律

result_list = []

p = 0.0001

while p <= 0.001:

result_list.append(optimize(10,p))

p += 0.0001

for i in range(0,9):

print(result_list[i])

The result of this coding block generally shows us the pattern, which is illustrated bellow:

[1.0099955011997892, 10]

[1.0199820095966388, 10]

[1.0299595323829926, 10]

[1.0399280767462624, 10]

[1.0498876498688219, 10]

[1.059838258928039, 10]

[1.0697799110962176, 10]

[1.0797126135406678, 10]

[1.0896363734236783, 10]

看起来,随着单个事件的概率上升(在该例中是群体发病概率),需要的分组检测次数 to identify the illness 会略有增加。其实在这个例子中都是 2 次。

好了,以上就是今天的分享~

谢谢您的阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值