特征工程

201 阅读4分钟

1、特征处理

归一化的概念和作用,几种不同的归一化公式

归一化公式
  • 线性函数归一化:归为0和1之间
  • 零均值归一化:将原始数据映射到均值为0,方差为1的分布上
为什么要做归一化

梯度降维可以很快找到最优解,通过梯度下降求解的模型通常需要归一化处理,例如线性回归,逻辑回归,支持向量机,以及神经网络。但是对于树模型,归一化是不适用的,原因是信息增益比或者信息增益率与归一化没关系,只与数值大小顺序有关。

类别型特征,数值型,文本型特征的处理

处理方法
  • 类别型特征处理:序号编码,one-hot,哈希处理再进行二进制编码数值型特征处理:归一化
  • bucket(分桶)文本表示:TF-IDF、LDA、word2vector 相对于类别类型的数据来说,文本类型更加丰富,也是一类非常重要的非结构化数据,因此文本类型的特征的数据化表示很重要
TF-IDF

每篇文章可以用一个长向量表示,每一维代表一个单词,记录该维对应的权重反映了这个词在原文章中的重要程度,常用TF-IDF来计算权重,TF是单词t在文档d中出现的频率,IDF是指的逆文档频率,即文章总数 / (包含单词t的文章总数+1)

N-gram:有的时候单词级别划分不是很好,因此需要对词组进行划分

Word2Vector 和 LDA

word2vector是目前最常用的词嵌入模型,有两种网络结构,分别是CBOW 和 Skip-gram,其中CBOW是根据上下文出现的词来预测当前词的生成概率,而Skip-gram是根据当前词来预测上下文中各词的生成概率;

  • Word2vec是词聚类,LDA是主题词聚类
  • 也许在方法模型上,他们两者是不同的,但是产生的结果从语义上来说,都是相当于近义词的聚类,只不过LDA是基于隐含主题的,WORD2VEC是基于词的上下文的,或者说LDA关注doc和word的共现,而word2vec真正关注的是word和context的共现
  • 更严谨的说,Word2vec所体现的是语义(semantic)和语法(syntactic)这些 low-level的信息。而LDA的主题词表现的是更 high-level的文章主题(topic)这一层的信息

特征缺失时处理方法

缺失值种类:数据缺失有完全随机缺失,随机缺失,非随机缺失

  • 完全随机缺失是不依赖任何不完全变量,不影响样本的无偏性;
  • 随机缺失是指的数据缺失不是完全随机的,该类数据缺失依赖于其他完全变量;
  • 非随机缺失就是指数据与特征本身有关,例如:很多人不愿意提供收入;

处理办法:丢弃特征,删除,填补和不处理

  • 丢弃特征:缺失值比例太大的时候应该舍弃该特征;
  • 删除:缺点是会牺牲大量的数据,丢失很多其他隐藏的信息,同时直接删除也可能改变原始数据的分布;
  • 填充:数值填充(均值,中位数,众数填充,插补),模型填充(kmeans聚类,缺失值预测等),虚拟变量(把是否缺失当作一列变量)

2、特征选择

Filter

单一特征选择,根据每个特征属性和目标属性之间的计算值来进行排序选择、方差选择、相关系数、卡方检验、互信息,信息增益,信息增益比等

Wrapper

先选定特定算法,然后再根据算法效果来选择特征集合。一般会选用普遍效果较好的算法, 例如Random Forest, SVM, kNN等等。

Forward Selection:挑出一些属性, 然后慢慢增大挑出的集合Backward Elimination:删除一些属性,然后慢慢减小保留的集合

Embedded

将特征选择过程嵌入到模型的计算中。

正则化就是在模型训练中加入了限制条件,使得部分特征的权重变小甚至变为0, L1的Lasso,L2的Ridge,以及混合的Elastic Net。需要详细了解L1筛选特征的原理(L1和L2的区别,对抗过拟合原理)、树模型特征筛选。

3、特征组合

特征组合的概念,处理高维组合特征以及如何有效地找到组合特征?

  • 两个或者多个类别型特征进行组合,生成新的特征;

  • 高维组合特征是根据FM来减少权重参数的学习规模;

  • 树模型进行特征组合,输出的子节点的值就是特征组合的结果;

参考:blog.csdn.net/helihongzhi…