博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法面试必备-----特征工程
阅读量:2301 次
发布时间:2019-05-09

本文共 4058 字,大约阅读时间需要 13 分钟。

算法面试必备-----特征工程

算法面试必备-----特征工程

特征归一化

场景描述

为了消除数据特征之间的量纲影响 ,我们需要对特征进行归一化处理( Normalization) ,使得不同指标之间具有可比性。

问题: 为什么需要对数值类型的特征做归一化?

分析与解答

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。 最常用的方法主要再以下两种:

( 1 )线性函数归化( Min-Max Scaling ) 。 它对原始数据进行线性变换,使结果映射到 [0,1] 的范围,实现对原始数据的等比缩放。归一化公式如下:

Min-Max Scaling

( 2 )零均值归一化( Z-Score Normalization ) 。它会将原始数j居映射到均值为 0 ,标准差为 1 的分布上 。那么归一化公式定义为:

Z-Score Normalization
实例说明

为何归一化

注意:当然,数据归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的。包括:线性回归、逻辑回归、支持向量机、 神经网络等模型。但对于决策树模型则并不适用 ,以 C4.5 为例 ,决策树在进行节点分裂时主要依据数据集 D 关于特征 x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征 x 上的信息增益。

类别型特征

场景描述

类别型特征(Categorical Feature)主要是指性别(男、女)、血型(A、 B、 AB、 O) 等只在有限选页内取值的特征。

问题 在对数据进行预处理时,应该怎样处理类别型特征?

分析与解答

序号编码( Ordinal Encoding )
独热编码( One-hot Encoding )
二进制编码( Binary Encoding)
序号编码
独热编码1
在这里插入图片描述
二进制编码

高维组合特征的处理

问题:什么是组合特征,如何处理高维组合特征?

分析与解答

为了提高复杂关系的拟合能力,在恃征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。

在这里插入图片描述

在这里插入图片描述

组合特征

问题:怎样有效的找到组合特征?

本节介绍一种基于决策树的特征组合寻找方法。

假设原始输入特征包含年龄、性别、用户类型(试用期、付费)、物晶类型(护肤、食晶 等) 4 个方面的信息 ,并且根据原始输入和标签(点击 /未点击)构造出了决策树,如国 1.2所示。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

特征选择与特征提取(降维)

相同点与不同点

相同点与不同点

 相同点:特征选择和特征提取二者达成的效果相似,都是试图减少数据集中属性(特征)的数量,找出最有效(同类样本的不变性、不同样本的鉴别性、对噪声的鲁棒性)的特征。
 不同点:特征提取(降维)主要通过属性间的关系,通过组合原有属性产生新的属性,最终会改变特征空间;特征选择是在原始数据集中提取特征的子集,是一种包含关系,不改变特征空间。

特征选择

过滤型(Filter)

评估单个特征和结果值之间的相关性,排序留下TOP相关的特征部分。

  
 缺点:没有考虑到特征之间的关联作用,可能把关联特征去除掉。

(1) 方差选择法:根据阈值,移除低方差特征。

   SelectKBest移除那些除了评分最高的 K 个特征之外的所有特征。
   SelectPercentile移除除了用户指定的最高得分百分比之外的所有特征。
  
(2) 相关系数法:根据每个特征与目标值的相关系数与P值,去掉相关系数小的特征。

(3) 卡方检验:对于定性变量分析,经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,构建统计量:

在这里插入图片描述
(4)互信息法:经典的互信息也是评价定性自变量对定性因变量的相关性的,互信息计算公式如下:
在这里插入图片描述
  考虑两个随机变量X和Y,它们的联合概率密度函数为p(x,y),其边缘概率密度函数分别为p(x)和p(y),互信息I(X;Y)为联合分布p(x,y)和乘积分布p(x)p(y)之间的相对熵。

ps:F检验:用来评估两个变量的线性相关性;

T检验和F检验:

  在统计学中,一元线性回归里t检验和f检验等价,但在多元线性回归里,t检验可以检验各个回归系数显著性,f检验用来检验总体回归关系的显著性。
t检验常能用作检验回归方程中各个参数的显著性,而f检验则能用作检验整个回归关系的显著性。各解释变量联合起来对被解释变量有显著的线性关系,并不意味着每一个解释变量分别对被解释变量有显著的线性关系。
  在一般情形下,t检验与F检验的结果没有必然联系;但当解释变量之间两两不相关时,若所有解释变量的系数均通过t检验,那么回归方程也能通过F检验。

包裹型(Wrapper)

把特征选择看成是对特征子集的搜索问题,筛选各种特征子集,用模型进行评估结果。典型的包裹型算法为特征递归删除算法。

比如对逻辑回归算法:

(1)用全量变量跑回归模型;
(2)根据回归系数去掉系数比较小的5~10%的特征;
(3)不断回归,删掉回归系数小的特征,直到准确率/auc大幅下降。

给定一个外部的估计器,可以对特征赋予一定的权重(比如,线性模型的相关系数),recursive feature elimination ( RFE ) 通过考虑越来越小的特征集合来递归的选择特征。 首先,评估器在初始的特征集合上面训练并且每一个特征的重要程度是通过一个 coef_ 属性 或者 feature_importances_ 属性来获得。 然后,从当前的特征集合中移除最不重要的特征。在特征集合上不断的重复递归这个步骤,直到最终达到所需要的特征数量为止。

嵌入型(Embedded)

(1)基于惩罚项的特征选择法

使用带惩罚项的基模型,除了筛选出特征外,同时也进行了降维。
实际上,**L1惩罚项降维的原理在于保留多个对目标值具有同等相关性的特征中的一个,所以没选到的特征不代表不重要。**故,可结合L2惩罚项来优化。具体操作为:若一个特征在L1中的权值为1,选择在L2中权值差别不大且在L1中权值为0的特征构成同类集合,将这一集合中的特征平分L1中的权值,故需要构建一个新的逻辑回归模型:
(2)基于树模型的特征选择法

树模型中GBDT也可用来作为基模型进行特征选择,使用feature_selection库的SelectFromModel类结合GBDT模型

特征选择是一个重要的数据预处理过程,主要有两个原因:一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;二是增强对特征和特征值之间的理解

  
常见的特征选择方式
 去除方差较小的特征
 正则化。1正则化能够生成稀疏的模型。L2正则化的表现更加稳定,由于有用的特征往往对应系数非零。
 随机森林,对于分类问题,通常采用基尼不纯度或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。一般不需要feature engineering、调参等繁琐的步骤。它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。
 稳定性选择。是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。理想情况下,重要特征的得分会接近100%。稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。

特征提取(降维)

当特征选择完成后,可以直接训练模型了,但是可能由于特征矩阵过大,导致计算量大,训练时间长的问题,因此降低特征矩阵维度也是必不可少的。常见的降维方法除了以上提到的基于L1惩罚项的模型以外,另外还有主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:

PCA是为了让映射后的样本具有最大的发散性;

LDA是为了让映射后的样本有最好的分类性能。
所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。

文本表示模型

场景描述

文本是一类非常重要的非结构化数据,如何表示文本数据一直是机器学习领域的一个重要研究方向。

知识点

词袋模型( Bag of Words)
TF-IDF (Term Frequency-Inverse Document Frequency )
主题模型( Topic Model )
词嵌入模型( Word Embedding )

问题:有哪些文本表示模型?他们各自有什么优缺点?

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Word2Vec

场景描述

谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,有两种网络结构,分别是CBOW(Continues Bag of Words )和 Skip-gram。

问题:Word2Vec是如何工作的?和 LDA有什么区别与联系?

分析与解答

在这里插入图片描述
在这里插入图片描述

图像数据不足时的处理方法

场景描述

在机器学习中,绝大部分模型都需要大量的数据进行训练和学习(包捂有监督学习和无监督学习) 然而在实际应用中经常会遇到训练数据不足的问题。比如图像分类,作为计算机视觉最基本的任务之一真目标是将每幅图像划分到指定类别集合中的一个或多个类别中 。当训练一个图像分类模型时 , 如果训练样本比较少,该如何处理呢?

知识点

迁移学习( Transfer Learning ),生成对抗网络,图像处理,上采样技术,数据扩充。

问题:在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?

分析与解答

为了提高复杂关系的拟合能力,在恃征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
在这里插入图片描述

转载地址:http://jluib.baihongyu.com/

你可能感兴趣的文章
SpringMVC配置文件详解(六)
查看>>
SpringMVC请求处理之对方法参数的处理
查看>>
Cookie和Session
查看>>
Spring源码之AOP
查看>>
Spring AOP源码(下)
查看>>
JDK1.8中接口的新特性
查看>>
装饰者模式(一)
查看>>
DelegatingFilterProxy
查看>>
CAS
查看>>
CAS简单实例
查看>>
CAS结合openldap
查看>>
数据库基础知识
查看>>
Spring事务管理
查看>>
乐观锁-CAS
查看>>
Socket学习
查看>>
机器学习算法比较
查看>>
大杀器xgboost指南
查看>>
ubuntu14.04+hadoop2.6.2+hive1.1.1
查看>>
二叉查找树转双向链表JAVA实现
查看>>
包含min函数的栈JAVA实现
查看>>