引言
尽管数值型数据已经很容易被数学模型所使用,但并不意味着不需要进行特征工程。
好的特征不仅能够表示出数据的主要特点,还应该符合模型的假设,因此通常必须进行数据转换。
数值型数据的特征工程技术是非常基本的,只要原始数据被转换为数值型特征,就可以应用这些技术。
1: 需要对数值型数据进行合理性检查,首先要看看它的量级。
2: 然后,还要考虑一下特征的尺度。
它的最大值和最小值是多少?是否横跨多个数量级?
如果模型是输入特征的平滑函数,那么它对输入的尺度是非常敏感的
例如,
3
x
+
1
3x + 1
3x+1是输入
x
x
x的一个简单线性函数,它的输出尺度直接取决于输入尺度
此外,k-均值聚类、最近邻方法、径向基核函数,以及所有使用欧式距离的方法都属于这种情况。
对于这类模型和模型成分,通常需要对特征进行标准化,以便将输出控制在期望的方位之内。
相反,逻辑函数对输入特征的尺度并不敏感。无论输入如何,这种函数的输出总是一个二值变量。
3: 数值型特征的分布也非常重要
4: 除了对特征进行转换以满足模型或训练过程中的假设,还可以将多个特征组合在一起形成更复杂的特征。
我们希望复杂特征能更加简洁地捕获到原始数据中的重要信息。
标量、向量和空间
单独的数值型特征称为标量,标量的有序列表称为向量,向量位于向量空间中。
在绝大多数机器学习应用中,模型的输入通常表示为数值向量
在数据世界中,抽象的向量和它的特征维度具有实际意义。
处理计数
在大数据时代,计数数据可以无限度的快速增长。
当数据被大量且快速的生成时,很有可能包含一些极端值。这时就应该检查数据的尺度,确定时应该保留数据原始的数值形式,还是应该将他们转换成二值数据,或者进行粗粒度的分箱操作。
二值化
将某个跨度很大的特征按其取值进行二值化
区间量化(分箱)
区间量化可以将连续型数值映射为离散型数值,我们可以将这种离散型数值看做一种有序的分箱序列,它表示的对密度的测量
为了对数据进行区间量化,必须确定每个分箱的宽度。有两种确定分箱宽度的方法:
固定宽度分箱和自适应分箱。
1 固定宽度分箱:
通过固定宽度分箱,每个分箱中会包含一个具体范围内的数值。这些范围可以人工定制,也可以通过自动分段来生成,它们可以是线性的,也可以是指数性的
要将计数值映射到分箱,只需用计数值除以分箱的宽度,然后取整数部分
当数值横跨多个数量级时,最好按照10 的幂(或任何常数的幂)来进行分组:0-9、10-99、100-999、1000~9999,等等。这时分箱宽度是呈指数增长的,从O(10) 到O(100)、O(1000) 以及更大。要将计数值映射到分箱,需要取计数值的对数
2 分位数分箱:
固定宽度分箱非常容易计算,但如果计数值中有比较大的缺口,就会产生很多没有任何数据的空箱子。根据数据的分布特点,进行自适应的箱体定位,就可以解决这个问题。这种方法可以使用数据分布的分位数来实现
分位数是可以将数据划分为相等的若干份数的值。例如,中位数(即二分位数)可以将数据划分为两半,其中一半数据点比中位数小,另一半数据点比中位数大。四分位数将数据四等分,十分位数将数据十等分,等等
对数变换
对数函数可将大数值的范围进行压缩,对小数值的范围进行扩展
特征缩放/归一化
特征缩放就会改变特征的尺度,有些人将其称为特征归一化。特征缩放通常对每个特征独立进行。
下面讨论几种常用的特征缩放操作,每种操作都会产生一种不同的特征值分布
min - max缩放:
m i n ( x ) 和 m a x ( x ) min(x)和max(x) min(x)和max(x)分别为这个特征在整个数据集中的最小值和最大值。min-max 缩放可以将所有的特征值压缩(或扩展)到[0,1]区间中。
特征标准化/方差缩放:
每个特征值减去该特征的均值,在除以方差的平方根。缩放后的特征均值为0,方差为1
交互特征:
由简单特征经过某种组合或运算生成的复杂特征就是交互特征。
特征选择:
特征选择技术可以精简掉无用的特征,以降低最终模型的复杂性,它的最终目的是得到一个简约模型,在不降低预测准确率或对预测准确率影响不大的情况下提高计算速度。
粗略的说,特征选择技术可以分为以下三类:
过滤:
过滤技术对特征进行预处理,以除去那些不太可能对模型有用处的特征。
例如我们可以计算出每个特征与响应变量之间的相关性或互信息,然后过滤掉那些在某个阀值之下的特征。
过滤这种特征选择的手段,没有考虑我们要使用的模型,因此它有可能无法为模型选择出正确的特征。
要谨慎的使用预过滤技术,以免在有用特征进入到模型训练阶段之前不经意的将其删除。
打包方法:
这些技术的成本非常高昂,但他们可以试验特征的各个子集,这意味着我们不会意外地删除那些本身不提供什么信息但和其他特征组合起来却非常有用的特征。
打包方法将模型视为一个能对推荐的特征子集给出合理评分的黑盒子。他们使用另外一种方法迭代的对特征子集进行优化
嵌入式方法:
这种特征将特征选择作为模型训练过程的一部分。
例如,特征选择是决策树与生俱来的一种功能,因为它在每个训练阶段都要选择一个特征来对树进行分割。另一个例子是ℓ1 正则项,它可以添加到任意线性模型的训练目标中。ℓ1 正则项鼓励模型使用更少的特征,而不是更多的特征,所以又称为模型的稀疏性约束