0

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

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

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

4

1 回答 1

1

我将假设这不是课堂作业的一部分来发布我的答案。

该问题提供了有关分布均值和方差的信息,分别为 38 和 5。假设一个高斯分布,我们可以通过在累积分布函数中插入适当的值来回答这个问题。为了计算 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

我们首先计算norm.cdf(60, 38, 5),得出使用 60 升或更少农药的农民比例。从中减去norm.cdf(30, 38, 5),即使用 30 升或更少的农民的比例。根据定义,这将给我们农民使用 范围内的农药量[30, 60],这就是问题所要求的。

至于绘图,这里已经有很多优秀的答案,比如这个。我会为喜欢的线程保留我的答案。

于 2020-05-05T18:06:35.070 回答