热线电话:13121318867

登录
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)
# -100100之间均匀抽取
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.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子