如何在python中使用stats.norm来解决下面与概率分布相关的问题

2024-06-14 20:46:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在ML书中遇到了这个问题,它实际上更像是一个数学问题,而不是ML。如果您能用stat或任何绑定到python的包给我一个解决方案,我将不胜感激

根据对1000名葡萄种植户(约10英亩葡萄田)农药使用情况的调查,发现葡萄种植户平均每周喷洒38升农药,相应的标准偏差为5升。假设每周农药喷洒量服从正态分布。编写代码以回答以下问题:

(a)农民每周喷洒农药超过50升的比例是多少? (b) 有多大比例的农民喷洒的农药少于10升? (c) 有多大比例的农民在30升到60升之间喷洒农药


Tags: 代码情况数学解决方案mlstat比例葡萄
1条回答
网友
1楼 · 发布于 2024-06-14 20:46:53

我会发布我的答案,假设这不是课堂作业的一部分

该问题提供了关于分布均值和方差的信息,分别为38和5。假设高斯分布,我们可以通过在cumulative distribution function中插入适当的值来回答这个问题。为了计算CDF,我们使用scipy

第一个问题是问“农民每周使用50升以上农药的比例”。在代码中,这意味着:

from scipy.stats import norm

print(1 - norm.cdf(50, 38, 5)) # 0.008197535924596155, or ~ 0.8 percent

请注意,我们从1中减去,因为问题要求50或更多,而不是最多50,这是如果我们使用CDF返回的值,我们将得到的结果

对于(b),我们可以这样做

print(norm.cdf(10, 38, 5)) # 1.0717590258310887e-08

这将为我们提供使用10升或更少杀虫剂的农民比例

对于最后一个问题,我们可以采取相同的方法,只需稍作改动:

print(norm.cdf(60, 38, 5) - norm.cdf(30, 38, 5)) # 0.9451952957565343

我们首先计算{},这给了我们农民使用60升或更少农药的比例。我们从中减去{},这是使用30升或更少的农民的比例。根据定义,这将使我们农民使用的农药量在[30, 60]范围内,这就是问题所要求的

至于绘图,这里已经有过多优秀的答案,例如this one。我会把我的答案留给诸如此类的线索

相关问题 更多 >