将数据离散化、分桶是比较多件的数据处理方式。根据具体情况,这样的处理有以下好处
-
离散特征的增加和减少都较容易,有利于模型迭代
-
对异常离群点有很强的鲁棒性
对于远离数据正常分布范围的离群数据,在分桶时可分入正产范围的边界桶中。这样就消除了过大或过小异常数值的影响 -
缺失值可以单独分为一类进入模型
-
降低了数据复杂度,提升模型运算速度。如采用 one-hot 形式的稀疏向量表示,计算速度更快,结果也方便存储。
-
离散化数据后,采用例如 one-hot 形式表示,能为每个类别(或桶)附以单独的权重,相当于对原来的连续数据维度引入了非线性,相应地提升了特征表达能力
-
离散化后模型更稳定,不会因为特征的小变动导致完全不同的输出。但对于离散化划分边界出的数据正好相反,所以如何划分区间需要特别考虑。
对连续变量的分桶,可以分为无监督分桶,有监督分桶。
无监督分桶主要包括等宽划分、等频划分。
等宽指按相同数值宽度分组,这时每组内数据量不定,受异常值影响相对大。pandas.cut方法实现等宽划分。
等频指将数据集分为几等份,每组内数据量是相同的。pandas.qcut实现等频划分。
有监督的划分方法主要指卡方分桶。其依赖于卡方检验,从每个数据单独为一组开始,不断地将具有最小卡方值的相邻区间合并在一起,直到所有组间卡方值都大于给定阈值。要注意初始化时需要对实例进行排序,在排序的基础上进行合并
网友评论