直方图与分箱
数据分箱(Data binning)bucketing-数据分段 数据分组
无监督分组,有监督分组
等距分箱
等频分箱
等距 pandas.cut 根据指定分界点对连续数据进行分箱处理
等频 pandas.qcut 根据指定箱子的数量对连续数据进行等宽分箱处理 分位数进行分区的
np.digitize():主要用于将一组数据进行分区。
np.quantile(df['a'],bins) #返回值为各个分位数的具体值
标量序列,分区的依据,bins内的数据一定要是降序或者升序的数据,不能是一堆无序数据
卡方分箱
直方图(Histogram)
Histogram 是一种图示分布频率(或百分比)的图形,它将数值分布表示为一系列垂直条形。直方图可以帮助我们了解一组数据的分布形态和常见取值范围
分步骤绘制直方图
1.数据分箱
分箱是一种常见的数据预处理技术,有时也被称为 分桶或 离散化,可用于将连续数据的间隔分组到“箱”或“桶”中
cut也可以将值分类为离散的间隔。此函数对于从连续变量到分类变量很有用。cut的参数如下
qcut可以根据排名或基于样本分位数将变量离散为大小相等的桶
bins = np.linsoace(0,10,10)
digitized= np.digitize(data,bins)
2.统计频次
### np.unique() 函数 去除其中重复的元素 ,并按元素 由小到大 返回一个新的无元素重复的元组或者列表
#numpy.unique(arr, return_index, return_inverse, return_counts) return_counts:如果为 true,返回去重数组中的元素在原数组中的出现次数
import numpy as np
myarray = np.array([1, 2, 2, 3, 3, 3])
values, counts = np.unique(myarray, return_counts=True)
print(dict(zip(values, counts)))
3.绘图
plt.hist(myarray, color='green')
plt.show()
直接分箱-可视化
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(170, 10, 250)
plt.hist(data, bins= 20, color='green')
plt.show()