为什么我们在机器学习中总是使用高斯分布?

例如,我们总是假设数据或信号误差是高斯分布的?为什么?


回答:

数学思维的人会回答说“因为中心极限定理”。这个定理表达了这样一个观点:当你从几乎任何分布中取出一堆随机数并将它们加在一起时,你会得到一个近似正态分布的结果。你加的数字越多,结果就越接近正态分布。

我可以在Matlab/Octave中演示这一点。如果我生成1000个介于1到10之间的随机数并绘制直方图,我会得到这样的结果:

enter image description here

如果我不是生成一个随机数,而是生成12个并将它们加在一起,然后重复1000次并绘制直方图,我会得到这样的结果:

enter image description here

我在上面绘制了一个具有相同均值和方差的正态分布,以便你可以了解匹配的程度。你可以查看我用来生成这些图表的代码,在这个gist中

在典型的机器学习问题中,你会有来自许多不同来源的误差(例如,测量误差、数据输入误差、分类误差、数据损坏…),认为所有这些误差的综合效应近似于正态分布并不是完全不合理的(当然,你应该始终进行检查!)

对这个问题的更务实的回答包括:

  • 因为它使数学计算更简单。正态分布的概率密度函数是二次函数的指数。取对数(因为你经常这样做,因为你想最大化对数似然)会得到一个二次函数。对其进行微分(以找到最大值)会得到一组线性方程,这些方程很容易解析求解。

  • 它很简单——整个分布仅由两个数字描述,即均值和方差。

  • 它对大多数阅读你的代码/论文/报告的人来说是熟悉的。

这通常是一个很好的起点。如果你发现你的分布假设导致性能不佳,那么你可以尝试不同的分布。但你可能应该首先考虑其他改进模型性能的方法。

*技术点 – 它需要有有限的方差。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注