万字长文总结特征工程干货

举报
鲤鱼君 发表于 2021/04/02 18:16:20 2021/04/02
【摘要】 万字长文总结特征工程干货 1. 简介( Feature Engineering) 1.1问题定义“Feature engineering is the art part of data science” —Sergey YurgensonFeature engineering is the process of using domain knowledge to extract feat...

万字长文总结特征工程干货

1. 简介( Feature Engineering)

1.1问题定义

“Feature engineering is the art part of data science” —Sergey Yurgenson

Feature engineering is the process of using domain knowledge to extract features from raw data via data mining techniques. These features can be used to improve the performance of machine learning algorithms.—wiki

特征工程(Feature Engineering)是将数据转换为能更好地表示潜在问题的特征,从而提高机器学习性能的过程。

1.2特征工程评价指标

a.使模型更精准:好的特征工程是数据中抽取出来的对预测结果最有用的信息,可以提高模型的业务指标。

序号 领域 评价指标 介绍
1 classification(分类) accuracy_score 分类准确率分数是指所有分类正确的百分比
2 balanced_accuracy_score 计算平衡精度
3 confusion_matrix 混淆矩阵
4 f1_score f1值
5 jaccard_similarity_score Jaccard相似系数得分
6 precision_recall_fscore_support 为每个类计算precision, recall, F值和 support
7 precision_score 计算precision
8 recall_score 计算召回率
9 multilabel_confusion_matrix 多标签混淆矩阵
10 regression(回归) explained_variance_score 解释回归模型的方差得分,其值取值范围是[0,1],越接近于 1说明自变量越能解释因变量的方差变化,值越小则说明效果越差。
11 mean_absolute_error 平均绝对误差
12 mean_squared_error 均方差(Mean squared error,MSE),该指标计算的是拟合数据和原始数据对应样本点的误差的平方和的均值,其值越小说明拟合效果越好
13 mean_squared_log_error 均方差加log
14 r2_score R2 决定系数(拟合优度) 模型越好:r2→1 模型越差:r2→0

b.模型更简单:好的特征工程应该使得模型复杂度更低,更加精简

ID 评价指标 介绍
1 参数个数 参数量 模型的参数数量
2 时间复杂度 计算量FLOPS 模型的运算次数

c. 模型更稳定: 算法模型运行更加稳定,鲁棒性更强

ID 名称 评价指标 介绍
1 计算稳定性 下溢(Underflow)和上溢(Overflow) 受限于计算机的运算精度使得大量的微小误差积少成多造成模型失效
2 特征稳定性 P S I = ( ρ t e s t i ρ b a s e i ) ln ( ρ t e s t i / ρ b a s e ) PSI = \sum{(\rho_{test}^{i} - \rho_{base}^{i})\ast \ln (\rho_{test}^{i}/ \rho_{base})} PSI是对两个日期的特征数据进行计算,可以任选其一作为base集另一则是test集,小于0.1认为特征稳定
3 模型稳定性 psi = sum((实际占比-预期占比)/ln(实际占比/预期占比)) 一般认为psi小于0.1时候模型稳定性很高,0.1-0.25一般,大于0.25模型稳定性差,建议重做。
4 模型稳定性 交叉验证 当算法的输入发生变化时,输出是否会随之发生较大的变化

2. 特征工程

2.1特征变换

特征变换(feature transformation)指的是使用数学映射从现有特征构建新特征。例如,在一组体检数据中,若提供了身高、体重等信息,想要判断受检者健康情况,单单把身高、体重两列数据不加处理地直接交给模型进行训练,训练结果就不够好。

2.1.1 特征编码

对于离散的类别特征,往往需要进行必要的特征编码才能将其作为特征输入到模型中。常用的编码方式有OneHot编码。譬如对于性别这个特征(取值为男性和女性),使用这两种方式可以分别编码为{0,1}和{1,0}。此外还有Count Encoding和Target Encoding。Count Encoding编码,用类别的频数来编码,也可以对频数进行归一化,Target Encoding用目标变量(二分类)中的某一类的比例来编码。

2.1.2 特征归一化

归一化:使得不同尺度的数据转换到同一规格尺度

目的:

1)归一化可以让不属于同一尺度的特征值进行比较:比如身高(cm)体重(kg)

2)归一化后模型收敛会加快(运行速度快)

3)归一化对一些模型的结果影响比较大,比如聚类模型,归一化后效果更好

效果:把原始的连续型变量转换为均值为0,标准差为1的变量

公式:

x ~ = x x ˉ δ \tilde{x}=\frac{{x-\bar{x}}}{\delta}

x \overline{x} 均值, δ \delta 是标准差。

最大最小归一化

效果:把原始的连续型变量转换为范围在[a-b]之间的变量,常见的a=0,b=1

公式:

x ~ = x m i n ( x ) m a x ( x ) m i n ( x ) \tilde{x}=\frac{{x-min(x)}}{max(x)-min(x)}

2.1.3特征离散

特征离散化:把连续的数值切割为少数的一些区间,例如将年龄切割为5个年龄段

目的:离散化后的特征方便探索数据的分布和相关性,同时对异常数据有很强的鲁棒性可以减少异常数据对模型的影响,对特征离散化后引入非线性,可以提升模型的预测能力。

常用的无监督的离散化方法主要有:自定义规则,等宽法,等频法等。

二值化是一种特殊的离散方法,它把连续型变量分割为0/1(是/否)类型的类别型变量,例如年龄是否大于18岁,电话号码是否是手机 城市是否是一线城市。

2.1.4特征深度合成

特征深度合成算法(结构型数据 知识图谱)

论文:Kanter, James Max, and Kalyan Veeramachaneni. “Deep feature synthesis: Towards automating data science endeavors.” 2015 IEEE international conference on data science and advanced analytics (DSAA). IEEE, 2015.

原理:
image.png

例子:
image.png

开源实现:https://github.com/Featuretools

2.2特征交叉

特征组合也叫特征交叉(Feature Crosses),即不同类型或者不同维度特征之间的交叉组合,其主要目的是为了弥补早期的模型无法有效的进行特征组合而产生的:
image.png

按照特征进行分类可以分为类别特征之间交叉类别特征和数值特征之间交叉

类别特征之间交叉组合:比如用户性别、年龄、喜爱视频类别之间的交叉特征。类别特征数值特征之间交叉组合 这类特征通常是在类别特征某个具体类别中计算一些统计量。例如用户对不同类目视频的完播率、平均播放时长等。

与非嵌入法不同,嵌入法是直接将特征交叉嵌入到模型的构建过程中。

按照特征交叉的方式可以分为非嵌入式和嵌入式

非嵌入式交叉:非嵌入式的关联方式有内积、笛卡尔积、哈达玛积以及多项式方法等。

嵌入式交叉: 利用模型可以自动进行特征的交叉组合,比如常用的 FM 和 FFM 模型等

2.2.1非嵌入法

非嵌入法和具体的机器学习算法相互独立,可以通过机器学习算法评估特征子集的效果,非嵌入法主要包括内积、笛卡尔积、哈达马内积以及多项式的方法进行组合。
image.png
image.png

2.2.2模型特征交叉

模型特征交叉:

针对特征交叉的问题,工程师首先想到的是特征两两组合,这种组合特征然后在手工筛选的方式无疑是低效的。

2.2.2.1 POLY2模型

POLY2模型:

P O L Y 2 ( w , x ) = j 1 = 1 n 1 j 2 = j 1 + 1 n w h ( j 1 , j 2 ) x j 1 x j 2 POLY2(w,x) = \sum_{j_{1} = 1}^{n-1}\sum_{j_{2} = j_{1}+1}^{n}w_{h}(j_{1},j_{2})x_{j1}x_{j2}

POLY2模型一定程度上解决了特征组合的问题,但是它本质还是线性模型,训练方法和逻辑回归一样。

缺陷:

1)在处理数据时,类别数据一般采用onehot编码,这样的话特征向量会很稀疏,再利用POLY2进行无选择的特征交叉会使原来非常稀疏的特征向量更加稀疏,会导致大部分交叉特征权重缺少有效的数据进行训练

2)权重参数的数量由 n n 直接上升到 n 2 n^{2} 极大的增加了训练复杂度。

2.2.2.2 FM模型

FM模型

为了POLY2模型的缺陷,Rendle于2010年提出FM模型:

下面是FM的二阶形式:

F M ( w , x ) = j 1 = 1 n 1 j 2 = j 1 + 1 n ( w 1 . w 2 ) x j 1 x j 2 FM(w,x) = \sum_{j_{1} = 1}^{n-1}\sum_{j_{2} = j_{1}+1}^{n}(w_{1}.w_{2})x_{j1}x_{j2}

与POLY2模型相比,主要的区别是用两个向量的内积 代替了单一的权重系数

FM为每个特征学习了一个隐权重向量,在特征交叉时,使用两个特征隐向量的内积 w 1 . w 2 w_{1}.w_{2} 作为交叉特征的权重。

FM引入隐向量的思路和矩阵分解的思路有异曲同工之妙,直接把POLY2模型 n 2 n^2 级别的权重直接降低到 n k nk ,梯度下降过程训练FM过程中,FM的复杂度同样减低到 n k nk

隐向量的引入也使FM可以更好的解决数据稀疏性的问题,比如推荐场景中某样本有两个特征频道(channel)和品牌(brand),某训练样本组合是(ESPN,Adidas)在POLY2中,只有ESPN和Adidas同时出现在一个样本中的时候模型才能学习到权重,而在FM中,ESPN的隐向量可以通过(ESPN,Gucci)学习,Adidas隐向量可以通过( NBC,Adidas )学习,甚至对于没有出现过的(NBC,Gucci)模型也可以学习到权重

理论上,FM可以引申到三阶特征交叉,甚至更高维度,但是由于组合爆炸的问题,三阶FM无论是权重数量还是训练复杂度都过高。

2.2.2.3 GBDT+LR模型

FM模型只能做二阶特征交叉,要想提高特征交叉的维度会不可避免的产生组合爆炸和计算复杂度高的问题。

为了有效的解决高维特征组合和特征筛选的问题,2014年Facebook提出来GBDT+LR模型

组合模型利用GBDT自动进行特征筛选和组合,生成新的离散特征向量,然后把该特征向量当做LR模型的输入。
image.png

一个训练样本输入GBDT模型落入 某一子树,会根据每个节点的规则最终落到某个叶子节点上,那么这个叶子节点标为1,其他节点为0,综合所有子树的结果,把特征向量连接起来就是新的离散型特征向量。
image.png

事实上,决策树的深度决定了特征交叉的阶数,如果决策树深度为4那么就是3次节点分裂的结果也就是三阶特征交叉。可以看出GBDT特征组合能力远远强过FM,但是GBDT容易过拟合。

2.3特征压缩

当特征经过处理之后,虽然可以直接训练模型了,但是可能由于特征矩阵过大,导致计算量大,出现训练时间长的问题,因此对特征进行压缩可以有效解决训练时间过长的问题特征压缩最直接的方法就是特征降维,常见的降维方法主要是主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中。

2.3.1降维算法

PCA算法:

​ PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到 个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

LDA算法:

​ 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离和最大的类间距离,即模式在该空间中有最佳的可分离性。

2.3.2 Embedding技术

Embedding中文可以直译为嵌入,一般翻译为向量化或者向量映射。特别是在推荐广告和搜索为核心的互联网Embedding技术应用非常广泛。Embedding从形式上讲就是用一个低稠密的向量“表示”一个对象。这里对象可以是一个词也可以是一个电影一个商品。表示就是说Embedding向量能够表达相应对象的某些特征,同时向量之间的距离反映了对象之间的相似性。

Embedding方法首先流行于NLP领域,在大语料的输入下,Embedding可以挖掘一些潜在的知识。

Embedding技术的重要性:

1)推荐场景中大量使用onehot编码对类别id型特征进行编码,导致样本特征极度稀疏,在几乎所有的推荐模型中都会有Embedding层负责将这些高维稀疏的特征转换成低维稠密特征向量。

2)Embedding本身就是十分重要的特征向量,Embedding的表达能力更强

3)Embedding技术对物品用户的相似度计算是最常用的一种召回层技术,结合局部敏感哈希技术之后更适合海量数据的初步筛选。

2.3.2.1 Word2vec

Word2vec

自2013年谷歌提出Word2vec以来,Embedding技术从自然语言处理推广到广告 搜索 图像 推荐等深度学习领域。Word2vec是word to vector 的简称,Word2vec是一种生成对词的向量表达的一种方法。

为了训练Word2vec模型,需要准备一组由句子组成的语料,我们假设一个长度为T的句子 w 1 w 2 w 3 . . . w T w_{1} w_{2} w_{3}... w_{T}
image.png

CBOW模型是用 w T w_{T} 的周边词预测 w T w_{T} ,Skip-Gram是用 w T w_{T} 预测 w T w_{T} 的周边词。

输入:选取一个 2 c + 1 2c+1 (目标词前后各取 c c 个词)的滑动窗口,从语料库抽取一个句子,滑动窗口从左到右,每移动一次,窗口中的词就组成了一个训练样本。

优化目标:每个词 w t w_t 决定了相邻词 x t + 1 x_{t+1} 基于极大似然法,希望所有样本条件概率 p ( w t + j w t ) p(w_{t+j}|w_{t}) 的乘积最大

1 T t = 1 T c j c , j 0 log p ( w t + j w t ) \frac{1}{T}\sum_{t = 1}^{T}\sum_{-c\leq{ j }\leq c, j\neq 0 }\log{p(w_{t+j}|w_{t})}

p ( w t + j w t ) p(w_{t+j}|w_{t}) 的定义:Word2vec模型的目的是希望用一个向量 V w V_w 表示词 w w ,用词之间的内积 V i T V j V_{i}^{T}V_{j} 表示语义的接近程度,最后套上一次softmax函数就可以对上多分类。

p ( w O w I ) = e x p ( V w o T V w I ) t = 1 T e x p ( V w T V w I ) p(w_{O}|w_{I}) = \frac{exp(V_{wo}^{T}V_{wI})}{\sum_{t = 1}^{T}exp(V_{w}^{T}V_{wI})}

V w T V_{w}^{T} 表示要训练出的词向量 V w I V_{wI} 是输入词的向量 V w o T V_{wo}^{T} 是输出词的向量

2.3.2.2 Item2vec

基本思想:Word2vec是对词序列进行Embedding,那么这里的词也可以是一个商品 一部电影。

Word2vec 一个长度为T的句子 w 1 w 2 w 3 . . . w T w_{1} w_{2} w_{3}... w_{T} 优化目标

1 T t = 1 T c j c , j 0 log p ( w t + j w t ) \frac{1}{T}\sum_{t = 1}^{T}\sum_{-c\leq{ j }\leq c, j\neq 0 }\log{p(w_{t+j}|w_{t})}

那么对应到Item2Vec就对应一个长度为K的用户历史记录 w 1 w 2 w 3 . . . w K w_{1} w_{2} w_{3}... w_{K}
Item2Vec的优化目标变成了:

1 T t = 1 T j i K log p ( w t + j w t ) \frac{1}{T}\sum_{t = 1}^{T}\sum_{j\neq i }^{K}\log{p(w_{t+j}|w_{t})}

可以发现Item2Vec摒弃了时间窗口的概念,认为序列里任意两个物品都是相关的,剩下的训练过程和word2vec一致。

2.3.2.3 GraphEmbedding

GraphEmbedding是对图结构中的节点进行Embedding编码的方法,最终生成的Embedding向量一般包含图的结构信息和附近节点的局部相似性信息。
DeepWalk是早期影响力比较大的一种GraphEmbedding方法,该方法是2014年提出的,它的主要思想是在由物品组成的图结构上进行随机游走,产生大量的物品序列,然后将这些物品序列作为训练样本输入word2vec进行训练,得到物品Embedding向量。

image.png

2016年,斯坦福大学在DeepWalk的基础上更进一步,通过调整随机游走权重的方法使graph embedding的结果在网络的同质性(homophily)和结构性(structural equivalence)中进行权衡权衡。具体来讲,网络的“同质性”指的是距离相近节点的embedding应该尽量近似,节点u与其相连的节点s1、s2、s3、s4的embedding表达应该是接近的,这就是“同质性“的体现。“结构性”指的是结构上相似的节点的embedding应该尽量接近,图中节点u和节点s6都是各自局域网络的中心节点,结构上相似,其embedding的表达也应该近似,这是“结构性”的体现。
image.png

为了使Graph Embedding的结果能够表达网络的结构性,在随机游走的过程中,需要让游走的过程更倾向于宽度优先搜索(BFS),因为BFS更喜欢游走到跟当前节点有直接连接的节点上,因此就会有更多同质性信息包含到生成的样本序列中,从而被embedding表达;另一方面,为了抓住网络的同质性,就需要随机游走更倾向于深度优先搜索(DFS),因为DFS会更倾向于通过多次跳转,游走到远方的节点上,使得生成的样本序列包含更多网络的整体结构信息。

那么在node2vec算法中,是怎样控制BFS和DFS的倾向性的呢?主要是通过节点间的跳转概率。图5显示了node2vec算法从节点𝑡跳转到节点𝑐后,下一步从节点𝑣跳转到周围各点的跳转概率。
image.png
形式化来讲,从节点𝑣跳转到下一个节点𝑥的概率为image.png

image.png

其中, d t x d_{tx} 指的是节点 t到节点x的距离,参数 p p q q 共同控制着随机游走的倾向性。参数 p p 被称为返回参数(return parameter), p p 越小,随机游走回节点t的可能性越大,node2vec就更注重表达网络的同质性,参数 q q 被称为进出参数(in-out parameter), q q 越小,则随机游走到远方节点的可能性越大,node2vec更注重表达网络的结构性,反之当前节点更可能在附近节点游走。

论文:Grover A, Leskovec J. node2vec: Scalable feature learning for networks[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016: 855-864.

2.4特征选择

有一种说法是,特征决定了效果的上限,而不同模型只是以不同的方式或不同的程度来逼近这个上限,好的特征输入对于模型的效果至关重要(Garbage in, garbage out)。要做好特征工程,往往跟领域知识对问题的理解程度有很大的关系。

2.4.1传统方法

在做特征抽取的时候,我们是尽可能地抽取更多的Feature,但过多的Feature会造成冗余,容易过拟合等问题,因此我们要进行特征筛选。

特征选择的方法有很多,主要的特征筛选方法有:过滤方法,封装方法,嵌入方法。

2.4.1.1过滤法

  1. 覆盖率:覆盖率主要计算每个特征的覆盖率(即特征在训练集中出现的比例),如果特征的覆盖率很小,比如我们有10000个样本,某个特征只出现了5次,说明这个特征覆盖率对模型预测的作用不大,覆盖率小的特征就可以剔除了。

  2. 皮尔逊相关系数:皮尔逊相关系数用于度量两个变量 和 的线性相关性。

两个变量之间的相关系数为协方差与标准差的商,它主要是衡量两个变量之间的线性关系,数值在[-1.0, 1.0]区间中。数值越是接近0,两个变量越是线性不相关。但是数值为0,并不能说明两个变量不相关,只是线性不相关而已。

  1. Fisher得分:对于分类问题,好的特征应该是在同一个类别中取值比较相似,而在不同的类别中之间取值相差比较大。因此特征 的重要性可以用Fisher得分表示为:
    image.png

假设我们一共有 K类别, uij表示特征 i在类别j 中的均值, u i u_i 表示特征 i i 的均值, p i j p_{ij} 表示特征i在类别 j中的方差, n j n_j 表示类别j中的样本数。Fisher得分越高表示特征在不同类别特征之间的差异越大,在同一类别中差异性越小。

  1. 卡方检验:对每个指定的值,理论计算出来的频率与实际收集到的数据统计出来的频率之间总是存在一些偏差,把每一个指定值的偏差以平方的形式加起来,如果这个值比较小,则说明分布拟合得较好,如果这个值很大,则说明实际收集到的数据与目标分布并不相同,需要去寻找其它恰当的分布。
    image.png

皮尔逊卡方检验:皮尔逊卡方检验适用于变量和变量都为连续变量的情况:
image.png

卡方统计量取值越大,特征相关性越高

  1. **互信息:**在概率论和信息论中,互信息用来度量两个变量之间的相关性。互信息越大说明两个变量相关性越高,互信息为0说明两个特征相对独立。
    image.png

  2. **相关特征选择(CFS):**相关特征选择是基于以下假设来进行评估特征集合重要性的,好的特征集合应该是包含和目标变量非常相关的特征,但是这些特征之间彼此不想管。对于包含 K K 个特征的集合
    image.png

其中, r c f 1 r_{cf1} 表示特征变量和目标变量之间的相关性, r f i f j r_{fifj} 表示特征变量之间的相关性,这里的相关性可以是皮尔相关系数等。CFS越大越好

2.4.1.2封装法

封装方法

过滤方法和具体的机器学习算法相互独立,封装方法是直接使用机器学习算法评估特征子集的效果,封装得分是使用特征子集搜索和评价指标相结合的方法。
image.png

搜索算法有贪婪算法和穷举,贪婪搜索算法(greedy search)是局部最优算法。与之对应的是穷举算法 (exhaustive search),穷举算法是遍历所有可能的组合达到全局最优级,但是计算复杂度是 ,一般是不太实际的算法。

前向搜索:特征子集从空集开始,每次只加入一个特征达到阈值或者n时,从所有子集中选出错误率最小的。

后向搜索:特征子集从全集开始,每次只删除一个特征并评价,直到达到阈值或者为空,然后选择最佳的子集。

2.4.1.3嵌入法

过滤方法和具体的机器学习算法相互独立,封装方法是直接使用机器学习算法评估特征子集的效果,这种方法需要多次模型训练,计算效率低,嵌入法是直接将特征选择嵌入到模型的构建过程中。
image.png

嵌入法比较经典的例子是LASSO,在LASSO之前,大家都采用岭回归对回归系数进行衰减来防止过拟合,但是岭回归不能进行特征选择,对模型可解释性没有帮助,Lasso对回归系数进行了L1惩罚项来防止过拟合,可以让特定的特征变成0,在实际应用中𝜆越大回归系数越稀疏,𝜆一般采用交叉验证的方式来验证。另一类嵌入方法是基于树模型的,对基于决策树的算法,如随机森林 GBDT等可以输出特征重要性。嵌入法既有过滤法计算效率高的优点又有封装法和机器学习算法结合的优点。

2.4.2开源

2.4.2.1开源汇总

业界开源框架基本都是基于某一有效算法构建起来的,用户在使用时只需将数据导入,数据便会依据这些系统/框架本身设定的原理自动进行特征转换、特征扩充或降维等操作

ID 框架名 基本原理 优点 缺点 Star
1 Featuretools 依赖于特征深度合成算法,提取数据特征 可以快速的生成大量候选特征集合 a容易造成特征维数过多 b可解释性偏弱 5.3k
2 TSFRESH 基于fresh算法进行特征选择 1.可以自动提取超过100种的时间序列特征2.可以基于假设检验过滤无关特征 目前只有单机版 5.3k
3 AutoLearn 利用每个特征通过应用回归算法对其他特征进行预测 通过消除模型中不相关的特征来提高分类准确性,识别有效特征 输出特征信息少 21
4 ExploreKit 通过组合原始特征中的信息生成大量候选项集,通过模拟候选特征和数据集之间的相互作用来预测新的候选特征的重要性 提高了预测性能,克服了特征空间指数增长的问题 选择特征的可解释性不强,目前关注度不高 53

2.4.2.2论文相关开源

1)从数据的角度梳理了传统数据、结构化数据、异构数据和流式数据的典型特征选择算法。并将其为四大类:基于相似性的、基于信息理论的、基于稀疏学习的和基于统计的方法,并开源了特征选择库,它包含了大多数流行的特征选择算法。

Li, Jundong, et al. “Feature selection: A data perspective.” ACM Computing Surveys (CSUR) 50.6 (2017): 1-45.

GitHub开源:https://github.com/jundongl/scikit-feature

包含的算法:

ID 算法 参考
Information theoretica based CIFE Conditional infomax learning: An integrated framework for feature extraction and fusion
CMIM Fast Binary Feature Selection with Conditional Mutual Information
DISR Information-theoretic feature selection in microarray data using variable complementarity
FCBF Feature Selection for High-Dimensional Data: A Fast Correlation-Based Filter Solution
ICAP A powerful feature selection approach based on mutual information
JMI Data visualization and feature selection: New algorithms for non-gaussian data
MIFS Using mutual information for selecting features in supervised neural net learning
MIFS Using mutual information for selecting features in supervised neural net learning
MIM Feature selection and feature extraction for text categorization
MRMR Feature selection based on mutual information: Criteria of maxdependency, max-relevance, and min-redundancy
similarity based fisher_score R.O. Duda, P.E. Hart, and D.G. Stork, Pattern Classification
reliefF Theoretical and Empirical Analysis of ReliefF and RReliefF
trace_ratio Trace Ratio Criterion for Feature Selection
Sparselearning based ll_l21 Feature Selection for Classification: A Review
ls_l21 Feature Selection for Classification: A Review
RFS Efficient and Robust Feature Selection via Joint l2,1-Norms Minimization
statistical based CFS Feature selection for machine learning: Comparing a correlation-based filter approach to the wrapper
chi_square Chi2: Feature selection and discretization of numeric attributes
f_score The interpretation of population structure by f-statistics with special regard to systems of mating
gini_index Variabilita e Mutabilita
t_score Statistics and data analysis in geology
streaming alpha_investing Streaming Feature Selection using Alpha-investing
structure graph_fs Feature Selection for Classification: A Review
group_fs Feature Selection for Classification: A Review
tree_fs Feature Selection for Classification: A Review
wrapper decision_tree_ backward An Introduction to Variable and Feature Selection
decision_tree_ forward An Introduction to Variable and Feature Selection
svm_backward An Introduction to Variable and Feature Selection
svm_forward An Introduction to Variable and Feature Selection

2.4.2.4时间序列特征

时间序列特征:TSFRESH库

Christ M, Kempa-Liehr A W, Feindt M. Distributed and parallel time series feature extraction for industrial big data applications[J]. arXiv preprint arXiv:1610.07717, 2016.

TSFresh:

image.png

Fresh特征选择算法原理:

1、如果特征是二类的标签也是二类的,则使用fisher检验。
2、假设特征是二类的而标签是连续值,则使用ks检验
3、如果特征是连续值而标签是二类的,则使用ks检验或 Mann-Whitney U test
4、如果特征是连续值而标签也是连续值,则使用kendall相关系数

开源实现:https://github.com/blue-yonder/tsfresh

最后大家喜欢的话可以点赞和关注哦(^o^)/~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。