特征工程-特征预处理

特征工程

-Data PreProcessing(数据预处理)
-Feature Extraction(特征提取)
-Feature Selection(特征选择)
-Feature construction(特征构造)等 ...
而数据预处理又包括了数据清洗和特征预处理等子问题。

image.png

标准化与归一化对比

1)标准化与归一化的异同
相同点:
它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩再进行平移。

不同点:
-目的不同,归一化是为了消除纲量压缩到[0,1]区间;
-标准化只是调整特征整体的分布;
-归一化与最大,最小值有关;
-标准化与均值,标准差有关;
-归一化输出在[0,1]之间;
-标准化无限制。

2)什么时候用归一化?什么时候用标准化?
-如果对输出结果范围有要求,用归一化;
-如果数据较为稳定,不存在极端的最大最小值,用归一化;
-如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。

3)归一化与标准化的应用场景
在分类、聚类算法中,需要使用距离来度量相似性的时候(如SVM、KNN)、或者使用PCA技术进行降维的时候,标准化(Z-score standardization)表现更好;
在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。
比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围;
基于树的方法不需要进行特征的归一化。
例如随机森林,bagging与boosting等方法。
如果是基于参数的模型或者基于距离的模型,因为需要对参数或者距离进行计算,都需要进行归一化。

数值型特征特征分箱(数据离散化)

分箱的重要性及其优势:
-离散特征的增加和减少都很容易,易于模型的快速迭代;
-稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
-离散化后的特征对异常数据有很强的鲁棒性;
比如一个特征是年龄>30是1,否则0。
如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;

-对于线性模型,表达能力受限;
-单变量离散化为N个后,每个变量有单独的权重,相当于模型引入了非线性,能够提升模型表达能力,加大拟合;
-离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
-特征离散化后,模型会更稳定;
比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。
当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;

-特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险;
-可以将缺失作为独立的一类带入模型;
-将所有变量变换到相似的尺度上。

待完善

你可能感兴趣的:(特征工程-特征预处理)