连续特征离散化

连续特征离散化

首先from wiki给出一个标准的连续特征离散化的定义:

在统计和机器学习中,离散化是指将连续属性,特征或变量转换或划分为离散或标称属性/特征/变量/间隔的过程。这在创建概率质量函数时非常有用 - 正式地,在密度估计中。它是一种离散化的形式,也可以是分组,如制作直方图。每当连续数据离散化时,总会存在一定程度的离散化误差。目标是将数量减少到手头的建模目的可忽略不计的水平。

在金融领域比较常见。比如在银行风控模型的建模过程中常常涉及到连续特征的离散化,一般来说比较常见的是使用线性回归、逻辑回归的时候常常会对连续特征进行分箱,在建立分类模型时,常常需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。比如在建立申请评分卡模型时用logsitic作为基模型就需要对连续变量进行离散化,离散化通常采用分箱法。下面来谈谈为什么我们要进行连续特征离散化。

  • 1.离散特征的增加和减少都很容易,易于模型的快速迭代。

    比如说我们当前训练集的年龄是20~30岁,假设在20~30之间分了5个箱子离散化然后onehot展开,下一次训练的时候如果出现超过30岁的特征,那么直接增加一列0-1特征用来表示用户是否超过30岁即可。

  • 2.稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展。

    稀疏矩阵可以使用稀疏矩阵的存储方式,比如python中的csr_matrix模块,通过稀疏矩阵的存储方式对原始数据进行了压缩。

  • 3.离散化后的特征对异常数据有很强的鲁棒性。

    比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。

  • 4.特征离散化后,模型会更稳定。

    比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问,很多时候涉及到业务知识层面的东西。

  • 5.特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

    (当使用连续特征时,一个特征对应于一个权重,那么,如果这个特征权重较大,模型就会很依赖于这个特征,这个特征的一个微小变化可能会导致最终结果产生很大的变化,这样子的模型很危险,当遇到新样本的时候很可能因为对这个特征过分敏感而得到错误的分类结果,也就是泛化能力差,容易过拟合。而使用离散特征的时候,一个特征变成了多个,权重也变为多个,那么之前连续特征对模型的影响力就被分散弱化了,从而降低了过拟合的风险。)

来源:https://zhuanlan.zhihu.com/p/68865422
仅仅用于自己学习,汇总知识,望理解。

你可能感兴趣的:(数据驱动的复杂系统分析)