首先给出特征工程的概述图,如下图。
然后接下来,会就其中的内容详细学习。
一,单个特征归一化
归一化就是指当每个特征的数值之间相差太大,无法很好的相互映射时,通过函数处理使其落在同一数量级的区间的方式。
归一化的方式通常有两种:
Standardization
Standardization又称为Z-score normalization,量化后的特征将服从标准正态分布:
μ和δ分别为对应特征的均值和标准差。量化后的特征将分布在[-1, 1]区间。
Min-Max Scaling
Min-Max Scaling又称为Min-Max normalization, 特征量化的公式为:
它对原始数据进行线性变换,使结果映射到[0,1]的范围,实现对原始数据的等比缩放。如果要将数据限制到[-1,1],则:
二,特征离散化
链接:https://www.zhihu.com/question/31989952/answer/54184582
在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:
离散特征的增加和减少都很容易,易于模型的快速迭代;
稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
1,离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
2,逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
3,离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
4,特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;
5,特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
离散化方法的分类:
1,无监督方法
又分:分箱法和直观划分法
分箱法又分:等宽分箱法和等频分箱法
2,有监督的方法
R方法,卡方检验等
Dummy Code:虚拟变量,又称名义变量或哑变量,用以反映质的属性的一个人工变量,是量化了的自变量,通常取值为0或1。引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到两个方程的作用,而且接近现实。
三,数据变换
为什么要进行对数变换(转载自:https://www.cnblogs.com/gczr/p/7119826.html)
在实际生活中,最常见的情形是靠近正无穷的一侧有一个长尾巴(如图1左),习惯上称为「右偏」(right-skewed)或「正偏态」(positive skewness)。许多人会有点儿困惑,觉得图上分布的那个峰明明是向左边负数一侧偏的,怎么叫「右偏」「正偏态」呢?要记住,当我们描述偏态的方向时,说的是分布的尾巴,而不是峰。这本身没有什么大道理可讲,就是一种约定俗成而已。图1 一个右偏(正偏态)的总体分布
为了要把分布右侧的尾巴缩短一点,我们需要这样一个函数,它在 y 比较小的时候增长得比较快,而在 y 比较大的时候增长得慢一些。这样一来,在原来分布右边相距较远的任意两个点之间的距离就会相对变小,从而分布的偏态就能得到改善了。
1,对数变换
图2 使用对数函数对图1中的右偏样本作变换
2,指数变换
图 3 使用平方根函数对图1中的右偏样本作变换