『迷你教程』机器学习的中心极限定理及Python实现

2022/2/3 17:43:11

本文主要是介绍『迷你教程』机器学习的中心极限定理及Python实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 中心极限定理
  • 大数定律
  • 一个随机的示例

中心极限定理是统计学和机器学习中经常被引用但被误解。

它经常与大数定律相混淆。尽管该定理对初学者来说可能看起来很深奥,但它对我们如何以及为什么可以对机器学习模型的技能进行推断具有重要意义,例如一个模型在统计上是否优于另一个模型以及模型技能的置信区间。

中心极限定理

中心极限定理,简称 CLT,是统计和概率领域的重要发现和支柱。
在这里插入图片描述

该定理指出,随着样本大小的增加,多个样本的均值分布将近似于高斯分布。

我们可以想象进行试验并获得结果或观察结果。我们可以再次重复试验并获得新的独立观察结果。收集在一起,多个观测值代表一个观测值样本。

样本是在给定试验中可以进行的所有可能观察结果的更广泛群体中的一组观察结果。

  • 观察:一项实验的结果。
  • 样本:从单独的独立试验中收集的一组结果。
  • 人口:可以从试验中看到的所有可能观察结果的空间。

如果我们计算样本的均值,它将是对总体分布均值的估计。但是,就像任何估计一样,它会是错误的并且会包含一些错误。如果我们抽取多个独立样本,并计算它们的均值,这些均值的分布将形成高斯分布。

重要的是,每个产生观察结果的试验都是独立的,并以相同的方式进行。这是为了确保样本来自相同的基本人口分布。更正式地说,这种期望被称为独立同分布或 iid

首先,中心极限定理令人印象深刻,特别是因为无论我们从中抽取样本的总体分布的形状如何,都会发生这种情况。它表明估计总体均值的误差分布符合统计学领域非常了解的分布。

其次,随着从总体中抽取的样本大小的增加,这种高斯分布的估计将更加准确。这意味着,如果我们使用我们对高斯分布的一般知识来开始对从总体中抽取的样本均值进行推断,那么随着我们增加样本量,这些推断将变得更加有用。

一位非常聪明的科学家曾向我提到中心极限中心极限定理的一个有趣含义是,您可以使用它来生成高斯随机数。您可以生成均匀随机整数,将它们的组相加在一起,总和的结果将是高斯的。请记住,均值只是样本的归一化总和。与其他方法(如 Box-Muller 方法)相比,这是一种生成随机高斯变量的更慢的方法,但该定理是一个清晰(且巧妙)的应用。

大数定律

初学者经常将中心极限定理与大数定律混淆。
在这里插入图片描述

大数定律是另一个不同于统计学的定理。更简单的说法是,随着样本规模的增加,样本均值对总体均值的估计越准确。

中心极限定理没有说明关于单个样本均值的任何内容;相反,它更广泛,并说明了样本均值的形状或分布。

大数定律是直观的。这就是为什么我们认为收集更多数据将导致来自该领域的观察样本更具代表性。该定理支持这种直觉。

中心极限定理并不直观。相反,我们可以利用这一发现来声明样本均值。

一个随机的示例

我们可以通过一个涉及模具滚动的工作示例来具体说明中心极限定理。

请记住,骰子是一个立方体,每边都有不同的数字,从 1 到 6。每个数字都有六分之一的可能性从卷中出现。给定相同的可能性,从掷骰子中出现的数字的分布是均匀的。

我们可以使用randint() NumPy 函数生成 1 到 6 之间特定数量的随机骰子(例如 50)。

# 一个随机的例子
rolls = randint(1, 7, 50)

下面列出了完整的示例。

from numpy.random import seed
from numpy.random import randint
from numpy import mean

seed(1)

rolls = randint(1, 7, 50)
print(rolls)
print(mean(rolls))

运行该示例生成并打印 50 个模具卷的样本和样本的平均值。

我们知道分布的平均值是 3.5,计算公式为 (1 + 2 + 3 + 4 + 5 + 6) / 6 或 21 / 6。

我们可以看到样本的均值略有错误,这在意料之中,因为它是对总体均值的估计。

[6 4 5 1 2 4 6 1 1 2 5 6 5 2 3 5 6 3 5 4 5 3 5 6 3 5 2 2 1 6 2 2 6 2 2 1 5
 2 1 1 6 4 3 2 1 4 6 2 2 4]
3.44

这是将模拟骰子滚动 50 次的结果。

然后我们可以多次重复此过程,例如 1,000。这将为我们提供 1,000 个样本均值的结果。根据中心极限定理,这些样本均值的分布将呈高斯分布。

下面的示例执行此实验并绘制样本均值的结果分布。

from numpy.random import seed
from numpy.random import randint
from numpy import mean
from matplotlib import pyplot

seed(1)

means = [mean(randint(1, 7, 50)) for _ in range(1000)]

pyplot.hist(means)
pyplot.show()

运行该示例创建样本均值的直方图。

我们可以从分布的形状看出该分布是高斯分布的。有趣的是,样本中的误差量意味着我们可以在 50 次掷骰子的 1,000 次试验中看到。

此外,中心极限定理还指出,随着每个样本的大小(在这种情况下为 50)增加,样本均值将更好地接近高斯分布。
在这里插入图片描述

对机器学习的影响
中心极限定理在应用机器学习中具有重要意义。

该定理确实为线性算法(如线性回归)提供了解决方案,但不适用于使用数值优化方法求解的人工神经网络等奇异方法。相反,我们必须使用实验来观察和记录算法的行为,并使用统计方法来解释它们的结果。

让我们看两个重要的例子。

显着性测试

为了将一个模型的技能与另一个模型的技能进行比较,我们必须使用诸如统计显着性检验之类的工具。

这些工具估计模型技能分数的两个样本是从模型技能分数的相同或不同的未知潜在分布中抽取的可能性。如果看起来样本是从同一群体中抽取的,则假设模型技能之间没有差异,任何实际差异都是由于统计噪声造成的。

做出这样的推理声明的能力是由于中心极限定理和我们对高斯分布的了解以及两个样本均值成为样本均值的同一高斯分布的一部分的可能性有多大。

置信区间

一旦我们训练了最终模型,我们可能希望推断模型在实践中的熟练程度。

这种不确定性的表现被称为置信区间。

我们可以对模型准确性进行多个独立(或接近独立)评估,以得出候选技能估计的总体。这些技能估计的平均值将是模型技能对问题的真实潜在估计的估计(有误差)。

根据中心极限定理知道样本均值将是高斯分布的一部分,我们可以使用高斯分布的知识来估计基于样本大小的样本均值的似然性,并计算期望置信区间模型的技能。



这篇关于『迷你教程』机器学习的中心极限定理及Python实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程