我正在从作者写的一本书中学习ML: housing.hist(bins = 50,figsize =(20,15)) plt.show() - 绘制数据的直方图。 在那里,我不明白bin属性的意义和需要以及如何为它确定一个值。
我接着去了pandas文档网站(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.hist.html)但仍然不明白参数“bins”是什么意思。
答案 0 :(得分:0)
简单回答: bins
应该是您想要在直方图中显示的条数。
但是让我们解开链:Pandas hist
函数调用matplotlib's hist
函数。与pandas相比,matplotlib有一个详细的docstring,
bins
:整数或序列或'自动',可选如果给出一个整数,则计算并返回bin + 1 bin边缘,与
numpy.histogram()
一致。如果bin是一个序列,则给出bin边缘,包括第一个bin的左边缘和最后一个bin的右边缘。在这种情况下,箱子不加修改地返回。
除了最后一个(最右边)的垃圾箱以外的所有垃圾箱都是半开的。换句话说,如果箱子是:
[1, 2, 3, 4]
然后第一个bin是[1, 2)
(包括1,但不包括2)和第二个[2, 3)
。但是,最后一个bin是[3, 4]
,其中包含4
。如果垃圾箱是一个序列,则支持不等间距的垃圾箱。
应该注意,默认情况下,选择最小和最大数据点之间的numpy
默认值为10个bin。这意味着数据范围被划分为10个大小相等的区间,并且任何值都分配给这10个区间中的一个,加起来为bin的值。然后,该值将显示为图中相应柱的高度。
将bin
的值更改为其他数字,可以让您拥有更多或更少的间隔。
另外,查看wikipedia可能有所帮助:
没有“最佳”数量的垃圾箱,不同的垃圾箱尺寸可以揭示数据的不同特征。 [...]
使用较宽的区域,其中基础数据点的密度较低,降低了由于采样随机性引起的噪声;使用密度较高的较窄的箱(因此信号会淹没噪音)可以提高密度估算的精确度。
在这种情况下,“更宽的箱子”意味着bins
的数字越小,“更窄的箱子”的数量越大bins
。