特征工程基础知识(一):https://blog.csdn.net/liuxingxing_sun/article/details/110539139
分类变量
变量是用来表示类别或者是标记的,大型分类变量如id值,Ip地址等。
one-hot编码
虚拟编码
One-hot编码的问题是它允许有k个自由度,而变量本身只需要k-1个自由度,虚拟编码在进行表示的时候只使用k-1个特征。除去了额外的自由度。没有被使用的那个特征,通过一个全零向量来表示,称为参照类(通过pandas.get_dummies实现)。
效果编码
效果编码与虚拟编码非常的相似,但它的线性回归模型更容易解释。
处理大型分类变量
特征散列化
散列函数是一种确定性函数,可以将一个可能无界的整数映射到一个有限的整数范围[1,m]内。因为输入域可能大于输出范围,所以可能有多个值映射为同样的输出,称为碰。均匀散列函数可以确保将大致相同数量的数值映射到m个分相中(使用sciket-learn的FeatureHasher)。
分箱计数
分相技术不使用分类变量的值作为特征,是使用目标变量取这个值的条件概率。即不对分类变量的值进行编码,而是要算分类变量值与要测的目标变量之间的相关统计量。
分箱计数问题
处理稀有类:用back-off方法,将类的几数累加到一个特殊分箱中。如果类别的计数大于一个确定的阈值,那么就使用他自己的计数统计量,否则就使用Back-off分箱的统计量。
最小计数图
另一种方法称为最小计数图,那这种方法不管稀有类还是频繁类,所有类别都通过多个散列函数映射,每个散列函数的输出范围m都远远小于类别数量k。在计算统计量时要使用所有散列函数进行计算,返回结果中最小的那个统计量。与使用单散列函数相比,只用多个散列函数可以降低碰撞率
无界计数
各自优缺点
使用PCA(主成分分析)挤压数据
数据降维就是在保留重要信息的同时消除那些无信息量的信息。无信息量有多种定义方法,PCA关注的是线性相关性。当数据矩阵的列空间描述为所有特征向量的生成空间。如果列空间的秩小于特征总数,那么多数特征就是几个关键特征的线性组合。线性相关的特征是对空间和计算能力的浪费,因为它们包含的信息可以从更少的几个特征中推导出来。为了避免这种情况,PCA试图将数据挤压到一个为五,大大小于原空间的线性子空间。其核心思想是使用一些新特征替代冗余特征,这些新特征能恰当的总结初始特征空间中包含的信息。
PCA使用线性投影是将数据转换到新特征空间。
投影坐标:
投影坐标向量:
随机变量z的方差:
两个随机变量Z1和Z2之间的协方差:
Z的经验方差,基于观测z计算:
主成分目标函数:
根据平方和恒等式,多个项的平方和等于由这些项组成的向量的范数的平方,也就是这个向量与它自己的内积。把上一公式简洁化,用矩阵-向量表示形式:
根据上式,我们的目标就是找到一个能使输出向量的范数最大化的输入方向。也就是矩阵X的奇异值分解(SVD),最优的w就是X的主要左奇异向量,也就是XTX的主特征向量,投影数据就称为原始数据的主成分。
这个过程是可重复的,一旦找到了第一个主成分就可以重新使用这个公式。再加上一个附加条件即新向量与前面找到的向量是正交的。
第k+1个主成分的目标函数:
一旦找到了主成分,就可以使用线性投影对特征进行转换。
PCA投影矩阵:
简单PCA转换:
转换后的特征都是不相关的,换句话说,每对特征相量间的内积都是0。
有时候还应该通过归一化把特征的长度变为1,在信号处理领域,这种操作称为白化,这样做可以得到一组特征,彼此之间的相关度为0,与自身的相关度为1。将PCA转换乘以奇异值的导数就可以实现白化。
PCA+白化:
白化与数据降维是彼此独立的,可以分别进行,例如零相位成分分析(ZCA)是一种与PCA联系非常紧密的白化转换。但他不会减少特征的数量。
ZCA白化:
PCA的原理是线性投影,目标是最大化投影数据的方差。作为一种模型驱动的特征工程方法,其中的建模假设是方差能够很好的表示数据中包含的信息。同样,模型要找出的是特征之间的线性相关。在若干应用中,可以使用PCA来减少相关性或找出输入中常见的因子。