前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MLK | 那些常见的特征工程

MLK | 那些常见的特征工程

作者头像
Sam Gor
发布2019-07-08 15:14:54
6290
发布2019-07-08 15:14:54
举报
文章被收录于专栏:SAMshareSAMshare
"MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,内容主要来自于《百面机器学习》一书,结合自己的经验与思考做的一些总结语归纳。"

? Index

  • 特征归一化
  • 类别特征处理
  • 高维组合的处理
  • 文本表示模型
  • Word2Vec
  • 图像数据不足的处理

? 特征归一化

为了消除不同数据特征之间的量纲影响,我们需要对数据特征进行归一化处理,使得不同指标之间有一定的可比性。常用的归一化方法有:

  • 线性函数归一化(Min-Max Scaling):对数据进行线性变换,使之映射到0~1之内,其公式为:
  • 零均值归一化(Z-Score Normalization):对数据进行转换映射到均值为0,标准差为1的分布上。

那么,特征归一化的原因是什么呢?一般可以参考下面的随机梯度下降的例子:

其中,上图中X1的取值范围为[0, 10],X2的取值范围为[0, 3],当不做任何数据归一化处理的时候,在学习率相同的情况下,X1的更新速度会大于X2,需要较多次的迭代才会找到最优解,就如左图所示。相反如果归一化后,则会像右图一样,更加容易找到最优解。

所以,我们可以得出一种常见的结论,就是 通过梯度下降法求解的模型一般都是需要特征归一化的,如线性回归、逻辑回归、支持向量机、神经网络等等。

? 类别特征处理

类别变量,又叫Categorical Feature,比如性别、教育水平之类的,一般模型都是无法直接用这些变量的,都需要经过一些转换,一般常用的方法如下:

  • 序号编码(Ordinal Encoding):通过用来处理有序变量,如成绩,可以分为高分、中等、低分,可以按照高分>中等>低分的顺序来进行编码。
  • 独热编码(One-hot Encoding):通过用来处理类别间没有大小关系的特征,如血型,比如A、B、O、AB,通过独热编码可以变成一个4维稀疏向量,A(1,0,0,0)、B(0,1,0,0)、O(0,0,1,0)、AB(0,0,0,1)。但是,一般如果遇到了类别特别多的类别变量,如城市,可就要注意: 1)利用稀疏向量来作为输入,从而节省空间; 2)配合特征选择降低维度。因为高维度特征在K-means算法中会很难衡量距离,在逻辑回归中很容易出现过拟合现象。
  • 二进制编码(Binary Encoding):二进制编码主要分两步,先用序号编码给每个类别赋予新的类别ID,然后对类别ID进行二进制编码,还是血型A、B、O、AB,分别赋予为1,2,3,4,对应的二进制为001、010、011、100,其相比于独热编码还是可以节省一些空间。

? 高维组合的处理

高维组合指的就是变量组合与衍生,如近6个月金融类产品的使用次数(时间+产品类别),当交叉维度特别大的时候,则几乎没法训练模型。所以很多时候我们都是需要向低维度去分解,比如mxn规模的参数,可以分别用k维的低维度向量表示(k<<m, k<<n)。

而且,并不是所有的特征组合都有意义,盲目地去组合会出现参数过多,过拟合的情况,所以我们需要一个方法去有效地找到组合特征,一般常用地有基于决策树的特征组合寻找方法,从根节点出发到叶子节点的每一条路径都是一种特征组合,那如何构建有效的决策树?一般用梯度提升决策树,就是每次都在之前构建的决策树的残差上构建下一棵决策树。

? 文本表示模型

文本在机器学习领域是一个十分常见的非结构化数据,如何表示文本数据是十分重要的研究领域,常见的概念有:

  • 词袋模型(Bag of Words):指的是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词语在原文章中的重要程度。 权重TF-IDF(Term Frequency-Inverse Document Frequency)的计算公式:
  • IDF(t) 为逆文档频率,用来衡量单词t对表达语义所起的重要性,如果一个词在非常多的文章中都出现过,那么它可能是一个比较通用的词,那么贡献会较小,权重需要做惩罚。
  • N-gram模型:将连续出现的n个词(n<=N)组成的词组(N-gram)作为一个单独的特征放到向量表示中去构成模型。另外,同一个词可能有多种词性变化,所以一般会对单词进行词干抽取(Word Stemming),统一为同一词干的形式。
  • 主题模型(Topic Model):用于从文本库中发现有代表性的主题,并且能够计算出每篇文章的主题分布。
  • 词嵌入模型(Word Embedding):词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常K = 50~300)上的一个稠密向量(Dense Vector)。

? Word2Vec

Word2Vec上Google在2013年提出的词嵌入模型,其实就是一种浅层的神经网络模型,有两种网络结构:CBOW(Continues Bag of Word) 和 Skip-gram,都可以表示为由输入层(Input)、映射层(Projection)和输出层(Output)组成的神经网络。

CBOW(Continues Bag of Word)

根据上下文出现的词语来预测当前词语的生成概率。

Skip-gram

根据当前词语来预测上下文中各个词语的生成概率。

输入层

每个词都由独热编码方式表示,即所有词均表示为一个N维向量,其中N为词汇表中单词的总数,在向量中,每个词都将与之对应的维度置为1,其余维度的值均设为0。

映射层

又被叫做隐含层,K个隐含单元的取值可以由N维输入向量以及连接输入和隐含单元之间的NxK维 权重矩阵计算得到,在CBOW中,还需要将各个输入词所计算出的隐含单位求和。

输出层

通过隐含层向量(K维),以及连接隐含层和输出层之间的KxN维的权重矩阵计算得到,输出层是一个N维向量,每维与词汇表中的一个单词相对应,最后对输出层向量应用Softmax激活函数,可以计算出每个单词的生成概率。

Softmax公式:(其中X代表N维的原始输出向量,Xn为在原始输出向量中,与单词Wn所对应维度的取值。

? 图像数据不足的处理

一个模型所能提供的信息一般由两个来源:

  • 训练数据中所蕴含的信息
  • 人们提供的先验信息

一般,当你的图像数据不足的时候,可能会出现的情况就是模型过拟合,一般过拟合的处理办法有两种:

  • 基于模型的方法: 采用降低过拟合风险的措施,如简化模型、添加正则项、boosting、Dropout超参数等等;
  • 基于数据的方法:主要包括数据扩充(Data Augmentation),即根据一些先验知识,在保持特定信息的前提下对原始数据进行适当变换,因此,对于图像,我们可以有下面的方法去进行变换。
    • 一定程度内的随机旋转、平移、缩放、裁剪、填充、左右翻转;
    • 对图像中的像素添加噪声,如椒盐噪声、高斯白噪声;
    • 颜色变换;
    • 改变图像的亮度、清晰度、对比度、锐度等等。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAMshare 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ? Index
  • ? 特征归一化
  • ? 类别特征处理
  • ? 高维组合的处理
  • ? 文本表示模型
  • ? Word2Vec
  • ? 图像数据不足的处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档