什么叫分箱?
连续变量的离散化处理。例如年龄:从1、2、3、4……100变成“1~20”、“21~30”差不多这个样子。
问题场景(为什么要分箱):
不论是做业务分析还是建模前的特征工程,经常会遇到一个问题,连续变量需要分箱。且分箱会有一个诉求:分出来的组,对于目标指标(比如转化率)差异最大。
业务分析中这样做的目的在于:一些连续变量对于最终结果指标的影响程度有更好的可解释性。
比如客户的年龄与转化率相关性可能0.3~0.5,有一定的相关性,这样的结果很难下结论,也很难进行下一步推进。
但如果进行了分箱,比如:我们将客户分成了25岁以下,25~35岁,和35岁以上,可以发现,年龄较大的群体转化率更高,可以告诉业务方我们的产品更能吸引什么年龄段的用户。业务更能接受分了群的用户群体,而不是1~100的精确年龄。
而特征工程中试用分箱主要还是增强模型的泛化能力,避免过拟。
难点:
很直白的问题,怎么分才最合适?
解题思路:
分箱的方法论网上能搜到很多,分为有监督和无监督,这里不展开。
这里主要分享我整合的一个分箱函数。调用可以直接完成分箱。
代码与解释:
#系统
import os
#可视化包
import seaborn as sns
from IPython.display import Image
import pydo