将连续型特征离散化的需要 or 优势

实验得出的规律:越是离散的特征、越是非线性模型,其建模能力越强,泛化性也就越强。

1. 连续型特征离散化的好处

        a. 异常数据鲁棒性:离散化后的特征对异常数据有更强的鲁棒性,例如年龄这类连续型特征,假设[0,30],[30,60],[60, + 无穷] 分别离散化为青年、中年和老年三类,此时如果出现200岁这样的异常值,离散化后的年龄特征会归为老年,能够很好的cover住这类情况。!需要注意的是,如何划分区间需要根据业务制定

        个人的一些想法:每类连续型特征值也是需要做异常值过滤、筛选,如果能够有很好的处理,并且特征契合任务目标(比如速度类特征,预测目标是时间或者速度)。是否会有更好的效果?

        b. 增强模型表达:从数据角度讲,离散特征通常比连续特征能表征更多复杂信息,更加鲁棒。因而将连续型单变量离散化为 K 个后(可能会one-hot或者二进制表示),为K维变量单独计算权重,为模型引入更多的非线性,提升模型表达能力,增强拟合 + 泛化性;离散化后的特征也可以做特征交叉(类似FM、FFM和GBDT),由(M + N)个变量变为 M * N 个变量,进一步引入非线性,提升表达能力。

        c. 模型迭代:离散型特征的增加和减少很容易(特征拼接时需要注意每类特征的维度起止索引),易于快速迭代。

        d. 模型推理速度:连续型特征转换为高维度离散型特征后,如果采用one-hot进行表示,该特征会呈现为一个高维稀疏向量,稀疏向量内积乘法运算速度快,结果方便存储,容易扩展;同时离散化后的特征易于处理,利于构建标准化的线上特征(特征拼接 + 分桶 + 特征交叉),达到online learning 的需求。

        e. 解释性:连续型特征离散化,赋予其容易理解的新属性(比如青年、中年、老年),这是一种可以验证的格式。

        f. 防止过拟合:特征离散化后,能够简化逻辑回归模型,降低模型过拟合的风险(抄来的,不是很懂)。

        李沐老师说过:模型是使用离散特征还是连续特征,其实是一个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。既可以离散化用线性模型,也可以用连续特征加深度学习。就看是喜欢折腾特征还是折腾模型了。通常来说,前者容易,而且可以n个人一起并行做,有成功经验;后者目前看很赞,能走多远还须拭目以待。

        补充:如何进行离散化?无监督方法都有哪些?有监督方法都有哪些?笔者接下来会跟进。

参考文献:连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? - 知乎

机器学习处理数据为什么把连续性特征离散化,离散化有何好处? - 知乎

猜你喜欢

转载自blog.csdn.net/xiao_ling_yun/article/details/129796770