#此篇为学习笔记,部分资料、图片来源 图灵程序设计丛书 《精通特征工程》阿曼达 .卡萨丽、爱丽丝.郑 著
好的特征不经能够表示出数据的主要特点,还应该符合模型的假设,因此通常必须进行数据转换。数值型数据的特征工程技术是非常基本的,只要原始数据被转换成数值型特征,就可以应用这些技术。
模型堆叠:使用统计模型的输出作为复杂特征,这种思想称为模型堆叠。
标量、向量和空间
单独的数值型特征称为标量,标量的有序列表称为向量,向量位于向量空间中
所有数据的集合可以在特征空间中形象地表示为一个点云,同时也可以在数据空间中表示出特征。
在数据向量中,抽象的向量和它的特征维度具有实际意义。这里采用书上的例子:例如,可以用向量表示某人对歌曲的偏好,这时每首歌都是一个特征,值为1代表喜欢这首歌,值为-1代表不喜欢这首歌。假设向量v表示听众Bob的偏好,他喜欢“Blowin' in the Wind”,不喜欢“Poker Face”,Alice以上两首歌都喜欢。
处理计数
在大数据时代,计数数据可以无限度地快速增长。当数据被大量且快速的生成的时候,很可能包含一些极端值。这时就应该检查数据的尺度,确定是保留数据的原始数据形式,还是应该将它们转换成二值数据,或者进行颗粒度的分箱操作。
二值化
强壮指标:在统计学术语中,“强壮”意味着该方法适用于各种情况。
根据阈值将数据二值化(将特征值设置为0或1)大于阈值的值映射到1,而小于或等于阈值的值映射到0.默认阈值为0时,只有正值映射到1。二值化是文本计数数据的常用操作,分析人员可以决定只考虑是否存在某个特征,而不是量化出现次数
区间量化
为什么要使用区间量化?
-
简化数据:将连续的数值数据转换为分类数据,可以简化数据结构,便于理解和分析。减少数据的维度,使算法能够更高效地处理。
-
减少噪声影响:通过将数据分组,可以降低噪声的影响,因为一些随机波动会被区间化过程平滑掉。
-
提高模型稳定性:在某些情况下,模型可能对连续变量的变化过于敏感,区间化可以增加模型的鲁棒性,使其对输入数据的小幅变化不那么敏感。
-
处理非线性关系:当变量与目标之间存在非线性关系时,区间化可以帮助捕捉这种关系,特别是在模型假设线性关系的情况下。
-
方便解释:分类数据往往比连续数据更容易解释,尤其是在业务报告或决策制定中。
-
数据可视化:对于数据可视化,区间化可以使图表更加清晰,易于理解。
-
适应算法需求:某些机器学习算法,如决策树,更适合处理分类数据,因此区间化可以提升这些算法的性能。
-
数据分布的探索:区间化可以揭示数据的分布特性,比如使用分位数区间化可以更好地了解数据的中心趋势和离散程度。
书上的总结来说:区间量化可以将连续型数值映射成离散型数值,我们可以将这种离散型数值看作一种有序的分箱序列,它表示对密度的测量。
两种确定分箱宽度的方法:
固定宽度分箱:当数值横跨多个数量级时,最好按照10的幂(任何常数幂)来进行分组
自适应分箱:分位数分箱(分位数是可以将数据划分成相等的若干份数的值)
对数变换
对数函数可以对大数值的范围进行压缩,对小数值的范围进行扩展。x越大,log(x)增长的越慢。
对于具有重尾分布的正数值处理,对数变换是一个非常强大的工具。它压缩了分布高端的长尾,使之成为较短的尾部,并将低端扩展为更长的头部。
指数变换是个变换族,对数变换只是它的一个特例。用统计学术语来说,它们都是方差稳定化变换。
平方根变换和对数变换都可以简单推广为Box-Cox变换:
λ小于1时,可以压缩高端值,大于1时起的作用相反。
只有当数据为正时,Box-Cox才有效
特征缩放/归一化
如果模型对输入特征的尺度很敏感,就需要进行特征缩放,特征缩放会改变特征尺度,有些人将其称为特征归一化。
min-max缩放
特征标准化/方差缩放
注意!!!!不要“中心化”稀疏数据!
欧几里得归一化
不论使用何种缩放方式,特征缩放总是将特征除以一个常数(称为归一化常数)。因此它不会改变单特征分布的形状。
交互特征
两个特征的乘积可以组成一对简单的交互特征,这种相乘关系可以用逻辑操作符AND来类比,它可以表示出由一对条件形成的结果。
特征选择
特征选择技术可以精简掉无用的特征,以降低最终模型的复杂性,它的最终目的是得到一个简约模型,在不降低预测准确率或者对预测准确率影响不大情况下提高计算速度。
特征选择不是为了减少训练时间(实际上,一些技术会增加总体训练时间),而是为了减少模型评分时间。
特征选择技术可以分为三类:
过滤:对特征进行预处理,以除去那些不太可能对模型有用处的特征
打包方法:这些技术的成本非常高昂,但它们可以试验特征的各个子集,这意味着我们不会意外地删除那些本身不提供什么信息但和其他特征组合起来却非常有用的特征。打包方法将模型视为一个能对推荐的特征子集给出合理评分的黑盒子。
嵌入式方法:这种方法将特征选择作为模型训练过程的一部分。与过滤技术相比,嵌入式方法可以选择出特别适合某种模型的特征。