《深度学习的数学——使用Python语言》第4章 统计学学习
[复制链接]
第四章 统计学初步学习
统计量是根据样本计算的一个数值,用于衡量样本某一方面的特征,在深度学习中,当提到样本时,通常指的是数据集。
在计算中位数的时候,二等分。
分位数和箱型图
通过模拟得到了一组考试数据,其中包含1000个考试分数,数据位于文件exams.npy中,我们将使Numpy计算分位数,并在直方图上标记位数的位置
首先加载了考试数据,并把第一个考试分数保存在p.
d = np.load("exams.npy")
p = d[:,0].astype("uint32")
q = np.quantile(p, [0.0, 0.25, 0.5, 0.75, 1.0])
print()
print("Quartiles: ", q)
print()
print("Counts by quartile:")
print(" %d" % ((q[0] <= p) & (p < q[1])).sum())
print(" %d" % ((q[1] <= p) & (p < q[2])).sum())
print(" %d" % ((q[2] <= p) & (p < q[3])).sum())
print(" %d" % ((q[3] <= p) & (p < q[4])).sum())
print()
统计了数组p在各个区间的取值个数,由于总共有1000个值,因此我们预期每个区间应该有250个值,结果如下
说明有250个值小于56.75, 237个值落在56.75到68上,其它类似
用exams.npy中的三轮考试分数绘制箱型图,执行 以下代码
h = np.bincount(p, minlength=100)
x = np.arange(101)
plt.bar(x,h, width=0.8*(x[1]-x[0]))
n = 1.1*h.max()
plt.plot([q[1],q[1]],[0,n], linewidth=3, color='k')
plt.plot([q[2],q[2]],[0,n], linewidth=3, color='k')
plt.plot([q[3],q[3]],[0,n], linewidth=3, color='k')
plt.xlim((p.min()-1,p.max()+1))
plt.ylabel("Count")
plt.tight_layout(pad=0,w_pad=0,h_pad=0)
plt.savefig("quantiles_plot.png", dpi=300)
#plt.show()
plt.close()
箱型图可以告诉我们数据集与正态分布的相似程度。
import matplotlib.pylab as plt
在Python中,matplotlib是一个非常流行的数据可视化库。它提供了丰富的绘图功能,可以帮助我们轻松地创建各种类型的图表,如折线图、柱状图、散点图等。在matplotlib库中,pyplot模块是最常用也是最基本的绘图模块。要导入matplotlib.pyplot模块,并为其设置别名plt。
箱型图能够可视化的对数据进行概括。
中间橙色的是中位数Q2,上下分别为Q3和Q1,Q3和Q1数值差称为四分差IQR。
IQR越大,围绕中位数的数据越发散。
相比直方图,现在箱型图中的纵轴对应考试分数。
中位数Q2被标记在靠近箱型框中间的位置。
|