一个关于常规计算汇总统计的简单介绍

https://machinelearningmastery.com/a-gentle-introduction-to-calculating-normal-summary-statistics/


1、一个数据样本代表着广泛的群体抽象汇总(快照),观察样本集由两部分构成,某个领域,或者某个过程生成。
2、有趣的是,许多观察样本集符合一个共同的模式或他们的分布叫做正态分布,正式的说,符合高斯分布。关于高斯分布我们知道很多,
例如,用高斯数据使用统计子场和统计方法。

3、在本教程中,你将会发现高斯分布,如何识别它,以及如何计算从该分布中提取数据秘钥的汇总统计。
完成本教程后,你将会知道。
a.高斯分布可以描述许多观察者集,包括许多应用在机器学习中的观察者集。
b.分布的中心趋势是最有可能的观测值,并且可以预算样本的平均值和中位数。
c.方差在分布中代表偏差的平均值,可以从样本集中估计方差和标准差。

教程概述
本教程分为6个部分:
1、高斯分布
2、样本与人口
3、测试数据集
4、中心倾向
5、方差
6、高斯的描述


一、高斯分布
a--> 数据分布指的是它在绘制图形时的形状,如直方图。
b--> 最常见和广为人知的连续值分布钟形曲线,他被成为正常分布,
因为他是许多数据的落入分布,他也被成为高斯分布,正式的命名为卡尔·弗里德里希·高斯
c--> 这样你会看到数据是正态分布或高斯的引用,他们是可互换的,两者都指的是同一事物:数据看起来像高斯分布。

具有高斯分布的观测一些例子包括:
a.人的身高
b.智商得分
c.体温
d.让我们看看正态分布,下面是生成和绘制理想化高斯分布的一些代码。
            
 
 
                # generate and plot an idealized gaussian
		from numpy import arange
		from matplotlib import pyplot
		from scipy.stats import norm
		# x-axis for the plot
		x_axis = arange(-3, 3, 0.001)
		# y-axis as the gaussian
		y_axis = norm.pdf(x_axis, 0, 1)
		# plot data
		pyplot.plot(x_axis, y_axis)
		pyplot.show()

运行这个程序可以看到,看到理想化的高斯分布
X轴是观测值,Y轴是每个观测的频率。在这种情况下。0是最常见的,-3.0和3.0是罕见或者是不可能的。


当数据分布式高斯或者我们假设为高斯分布对于计算是非常有用的。因为高斯分布是很好理解的。
因此统计领域的大部分都致力于这种分布的方法。

幸运的是,很多我们用于机器学习的数据都是符合高斯分布的。
例如我们用来拟合模型的输入数据,以对不同样本的训练数据进行重复的模型评价。
不是所有的数据都是高斯分布,

不是所有的数据度符合高斯,有时候通过反复观察数据的直方图曲线或者使用统计测试来检查这一发现是很重要的。
不符合高斯分布的观测的例子:
a.人民的收入
b.城市人口
c.图书销售

sample与population
我们可以认为数据是由一些未知的过程产生的。

我们收集的数据叫做数据样本,我们收集所有的数据叫做全局数据(群体数据)。

数据样本:一组观察结果的子集。
数据群体:来自群体所有的观测数据集。

***这是一个很重要的区别,因为不同的统计方法被用在样本与全局数据。
   并且应用在机器学习中,我们经常用数据样本。
   如果你再机器学习当中读或用population这个词,他很可能意味着统计方法上的样本。
   
您将在机器学习中遇到的两个示例数据包括:


训练和测试数据集。
一个模型的性能分数。
当使用统计方法时,我们常常希望只使用样本中的观测数据集来对全局数据进行声明。


这两个明显的例子包括:
训练样本必须是观察群体数据集的代表,以便我们可以拟合一个有用的模型。
测试样本必须是观察群体数据集的代表,以便我们可以建立一个公正的评价模型技能。
因为我们在处理样本和对群体数据集进行声明,这意味着总是存在一些不确定性,重要的是理解和报告这种不确定性。


测试数据集
在我们研究高斯分布数据的一些重要的汇总统计之前,让我们首先生成一个我们可以处理的数据样本。
我们可以使用 Numpy的randn()函数来生成从高斯分布中提取的随机数的样本。

有两个关键参数定义任何高斯分布,它们是平均值和标准偏差。
稍后我们将深入研究这些参数,因为它们也是关键统计数据来估计何时我们从一个未知的高斯分布中提取数据。

randn() 函数将产生一个指定数目的随机数(例如10000),从高斯分布中提取,其平均值为零,标准偏差为1。
然后,我们可以将这些数字缩放到我们选择的高斯,通过重新编号。
这可以通过增加期望的平均值(例如50)和乘以标准偏差(5)来实现。

data = 5* randn(10000) + 50

然后,我们可以使用直方图绘制数据集,并寻找绘制数据的预期形状。

下面列出完整的例子。
# generate a sample of random gaussians
from numpy.random import seed
from numpy.random import randn
from matplotlib import pyplot
# seed the random number generator
#随机种子(Random Seed)是计算机专业术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。
#般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
seed(1)
# generate univariate observations
data = 5 * randn(10000) + 50
# histogram of generated data
pyplot.hist(data)
pyplot.show()

运行示例生成数据集并将其绘制为直方图。
我们几乎可以看到高斯形状的数据,但它是块状的。这突出了一个重要的观点。
有时,数据将不是完美的高斯,但它将具有高斯型分布。
它几乎是高斯的,如果它以不同的方式绘制,以某种方式缩放,或者如果收集更多的数据,它可能会更高斯。
通常,当使用高斯型数据时,我们可以将其视为高斯,并使用所有相同的统计工具并得到可靠的结果。

在这个数据集的情况下,我们有足够的数据,情节是块状的,
因为绘图功能选择一个任意大小的桶分裂数据。
我们可以选择一种不同的、更细粒度的方法来分割数据并更好地揭示潜在的高斯分布。
下面列出了更精致的情节的更新例子。



运行这个例子,我们可以看到,选择100个数据分割可以更好地创建一个清晰显示数据的高斯分布的曲线图。
数据集是由完美的高斯生成的,但随机选择的数字,我们只选择了10000个观察为我们的样本。
你可以看到,即使有了这个控制的设置,数据样本中也有明显的噪声。
这突出了另一个重要点:我们应该总是期望一些噪声或限制在我们的数据样本中。与纯基础分布相比,数据样本总是包含错误。


中心趋势
分布的中心趋势是指中间值或者典型值在分布中。是最常见或是最有可能的值。
在高斯分布中,中心趋势被称为均值,或更正式地,算术平均值,是定义任何高斯分布的两个主要参数之一。
将样本的平均值作为观测值的总和除以样本中的观测总数。

mean = sum(data) /length(data)
或者写成:
mean =1/length(data) * sum(data)
或者用Numpy 的mean方法
result = mean(data)

#calculate the mean of a sample
from numpy.random import seed
from numpy.random import randn
from numpy import mean
#seed the randpm number generator
seed(1)
#generate univariate observations
data = 5 * randn(10000) +50
#calculate mean
result = mean(data)
print('Mean: %.3f'% result)

运行示例计算并打印样本的平均值。
该样本的算术平均值的计算是估计样本的基础高斯分布的参数的估计。作为一个估计,它将包含误差。
因为我们知道基础分布有50的真平均值,我们可以看到10000个观测样本的估计是相当准确的。



平均值很容易受到离群值的影响,也就是说,远离均值的稀有值。这些可能是对分布或误差边缘的合理稀有观测。 此外,均值可能是误导性的。在另一个分布上计算平均值,例如均匀分布或功率分布,可能不太有意义,因为虽然可以计算该值,
但它将指的是看似任意的期望值,而不是分布的真实中心趋势。
在离群值或非高斯分布的情况下,交替且常用的计算中心趋势是中值。
通过首先对所有数据进行分类,然后在样本中定位中间值来计算中值。
如果有奇数的观测,这是简单的。如果有偶数观测值,则计算中值作为中间两个观测值的平均值。
我们可以通过调用Mead()NUMPY函数来计算数组的中值。

****总而言之:不符合高斯分布的观测的例子需要用中位数来表示中心趋势。
符合高斯分布,我们用平均数来表示。

result = median(data)


方差
分布的方差是指平均观测值与平均值的变化或差异有多大。
将方差视为分布分布的度量是有用的。低方差将具有围绕平均值(例如窄钟形)分组的值,
而高方差将具有从平均值扩展的值(例如宽钟形)。
我们可以用一个例子来演示这一点,通过绘制具有低和高方差的理想化高斯。下面列出完整的例子。

统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义

# generate and plot gaussians with different variance
from numpy import arange
from matplotlib import pyplot
from scipy.stats import norm
# x-axis for the plot
x_axis = arange(-3, 3, 0.001)
# plot low variance
pyplot.plot(x_axis, norm.pdf(x_axis, 0, 0.5))
# plot high variance
pyplot.plot(x_axis, norm.pdf(x_axis, 0, 1))
pyplot.show()



运行的例子绘制两个理想化的高斯分布:蓝色与低方差分组周围的平均值和橙色具有较高的方差与更多的传播。

从高斯分布中提取的数据样本的方差被计算为样本中每个样本的平均观测值的平均平方差:
variance = 1 / (length(data) - 1) * sum(data[i] - mean(data))^2

其中方差通常表示为S^ 2,清楚地表示度量的平方单位。
你可以看到方程中没有(1)的观测值,这是对种群的方差的计算,而不是样本的计算。
我们可以使用VAR()函数计算NoMPY中的数据样本的方差。
下面的示例演示计算测试问题的方差。
#calculate the variance of a sample
from numpy.random import seed
from numpy.random import randn
from numpy import var
#seed the random number generator
seed(1)
#generate univariate observations
data = 5 * randn(10000) + 50
#calculate variance
result = var(data)
print('Variance: %.3f' % result)


很难解释方差,因为单位是观测的平方单位。我们可以通过将结果的平方根返回到观测值的原始单位。






例如,24.939的平方根大约为4.9。
通常,当高斯分布的扩展被总结时,它使用方差的平方根来描述。
这就是所谓的标准偏差。标准偏差,连同平均值,是指定任何高斯分布所需的两个关键参数。
我们可以看到,当样本被创建用于测试问题时,4.9的值与指定的标准偏差的值非常接近。
我们可以将方差计算在平方根中直接计算出标准偏差。

standard deviation = sqrt(1 / (length(data) - 1) * sum(data[i] - mean(data))^2)

其中标准差通常写成S或希腊小写字母Sigma。
标准偏差可以通过STD()函数直接在数组的NUMPY中计算。
下面的例子演示了关于测试问题的标准偏差的计算。

运行示例计算并打印样品的标准偏差。该值与方差的平方根匹配,并且非常接近5,这是问题定义中指定的值。

可以针对非高斯分布计算方差的度量,但通常需要被识别的分布,从而可以计算特定于该分布的方差度量。


总结


在本教程中,您发现了高斯分布,如何识别它,以及如何计算从该分布中提取的数据的密钥汇总统计。
具体来说,你学到:
高斯分布描述了许多观测,包括在应用机器学习期间观察到的许多观测。
分布的中心趋势是最有可能的观测值,并且可以从数据样本中估计为平均值或中值。
方差是分布中平均值的平均偏差,可以从数据样本中估计为方差和标准偏差。





猜你喜欢

转载自blog.csdn.net/Cincinnati_De/article/details/80224454
今日推荐