数据分箱
##为什么需要将连续数据做分箱?(为什么要对连续特征做离散化处理)
- 离散特征的增加与减少都很容易,易于模型的快速迭代,(就是说增加一个或几个离散特征,模型在原先的基础上训练,相对于连续特征,时间花费比较少)
- 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
- 逻辑回归属于广义线性模型,表达能力受限;单变量散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。
- 离散化的特征对异常数据有很强的鲁棒性,比如:一个特征是年龄>30是1,否则是0,。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。
- 离散化后可以做特征交叉,由(M+N)个变量变成M×N个变量进一步引入了非线性,提升表达能力(就是说一个连续的特征离散化为M个特征,另一个连续性特征离散为N个特征,若这个两个连续性特征交叉,即M个特征与N个特征交叉,那就能新产生M×N个特征)
- 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户长一岁就变成了完全不同的人,当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。
- 特征离散化以后,起到了简化逻辑回归模型的作用,降低了模型过拟合的风险。
- 可以将缺失处理为独立的一个类来带入模型
- 分箱后降低模型运算复杂度,提升模型运算速度,对后期上线较为友好。
分箱的类型包括哪些?
等频分箱,等距分箱,卡方分箱
等频分箱就是将多少个数分为一组。比如:1,2,3,4,7,8,9,12,25,35,39,40如果按频数为4分为一组,那么可以分成3组,按顺序是【1,2,3,4】,【7,8,9,12】,【25,35,39,40】
等距分箱就是在某一个间隔里的数为一组。比如:1,2,3,4,5,6,7,8,34。在按照间隔3为一组,得到【1,2,3,4】,【5,6,7,8】,【34】