例如,我们想要计算一个非常长的数字列表的平均值,并且这些数字排序后几乎是线性的(或者我们可以为数据找到一个线性回归模型)。从数学上讲,我们可以通过以下方式聚合平均值:
((arr[0] + arr[length(arr)]) / 2 ) + intercept
或者,如果线性模型几乎是常数(斜率系数接近1),我们可以近似计算:
mean(arr[n/const]) = mean(arr)
这两种情况都应用了相同的概念,并且非常基础。是否有方法、模式、函数(希望是Python中的),或者任何研究建议可以帮助我们?当然,如果存在这样的模式,应该是通用的,不仅限于平均值的情况(可能适用于任何函数,或者至少是聚合函数,如:总和、平均值等)。(由于我没有坚实的数学背景,并且对机器学习是新手,请原谅我的无知)。如果有任何不清楚的地方,请告诉我。
回答:
大数定律指出,随着样本量的增加,一个样本观察值的平均值会以概率1收敛到真实的总体平均值。
因此,如果你的假设数组太大而无法计算平均值,你至少可以计算一个大样本的平均值,并知道你接近真实的总体平均值。
你可以使用 numpy.random.choice(arr,n)
从 numpy
数组中抽样,其中 arr
是你的数组,n
是你希望(或能够)抽样的元素数量。