2018-12-06
阅读量:
697
探索一维数据
最简单的情形是,你得到的一个数据集合仅仅是一维数据集。比如,它们可以是每个用户
在你的网站上平均每天花费的时间, 每个数据科学教程视频的观看次数,或者是你的数据
科学图书馆中每本数据科学书的页数。
第一步显然是计算一些总结性统计数据。 比如你可能想知道你的数据集中有多少个数据
点,最小值是多少,最大值是多少,平均值是多少,或者标准差是多少。
如果你仍不能很好地理解以上步骤, 那么下一步最好是绘出直方图,即将你的数据分组成
离散的区间(bucket),并对落入每个区间的数据点进行计数:
数据工作
def bucketize(point, bucket_size):
"""floor the point to the next lower multiple of bucket_size"""
return bucket_size * math.floor(point / bucket_size)
def make_histogram(points, bucket_size):
"""buckets the points and counts how many in each bucket"""
return Counter(bucketize(point, bucket_size) for point in points)
def plot_histogram(points, bucket_size, title=""):
histogram = make_histogram(points, bucket_size)
plt.bar(histogram.keys(), histogram.values(), width=bucket_size)
plt.title(title)
plt.show()
比如,考虑以下两个数据集:
random.seed(0)
# -100到100之间均匀抽取
uniform = [200 * random.random() - 100 for _ in range(10000)]
# 均值为0标准差为57的正态分布
normal = [57 * inverse_normal_cdf(random.random())
for _ in range(10000)]
这两个数据集的均值都接近 0,标准差都接近 58 ,但它们的分布非常不同。
plot_histogram(uniform, 10, "均匀分布的直方图")
plot_histogram(normal, 10, "正态分布的直方图")
这两种分布有非常不同的最大值和最小值。但是,仅仅知道这一点并不足以理解它们有何
差异。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论