特征工程怎么做

在工业应用中,feature 比算法重要,数据比 feature 重要,有很多 kaggle 参赛者分享经验时也是说 feature engineering 很重要,今天来写一写特征工程相关的。

本文结构

  1. Feature Engineering 是什么
  2. 有什么用
  3. 怎么用
  4. 实际应用

1. 是什么

参考

先用例子来直观地了解一下

例如要分析声音,直接拿来数据,是什么都学不到的,需要进行 fourier 变换

Paste_Image.png

例如分析图片,判断这个图片是不是苹果,可以选择 形状,颜色分布,边 来作为feature

Paste_Image.png

特征工程就是选择一些表示典型特征的数据,来替代原始数据作为模型的输入,进而得到比较好的输出效果。

2. 有什么用

特征越好,模型的性能越好,而且可以不用很复杂的数学模型也能达到不错的效果

3. 怎么做

参考

特征工程是个过程,包括三个子模块:特征构建->特征提取->特征选择

特征构建:根据原始数据构建新的特征,需要找出一些具有物理意义的特征。

特征提取:自动地构建新的特征,将原始特征转换为一组具有明显物理意义或者统计意义或核的特征。例如 Gabor、几何特征、纹理等。

常用的方法有:

  • PCA (Principal component analysis,主成分分析)
  • ICA (Independent component analysis,独立成分分析)
  • LDA (Linear Discriminant Analysis,线性判别分析)

特征选择:从特征集合中挑选一组最具统计意义的特征子集,把无关的特征删掉,从而达到降维的效果

常用的方法:

  • filter(刷选器)方法:Pearson相关系数,Gini-index(基尼指数),IG(信息增益)等
  • wrapper(封装器):有逐步回归(Stepwise regression)、向前选择(Forward selection)和向后选择(Backward selection)等
  • Embeded(集成方法):Regularization,或者使用决策树思想,Random Forest和Gradient boosting等

这篇文章《使用sklearn做特征工程》, 使用sklearn中的IRIS(鸢尾花)数据集来对特征处理的过程进行了说明,包括包的使用,数据预处理,还有上面提到的一些特征选择方法的 python 代码和应用例子:

特征选择部分:

  • Filter:方差选择,相关系数法,卡方检验,互信息法
  • Wrapper:递归特征消除法
  • Embedded:基于L1,L2惩罚项的特征选择法,基于树模型GBDT的特征选择法

特征提取部分:

降维:主成分分析法(PCA),线性判别分析法(LDA)

图片来源:

对于上面提到的方法,还需要学习一下各自的含义原理和应用场景。

这是 CS 294: Practical Machine Learning的一个课件,讲了 feature engineer 主要方法的原理和应用结果

此外,scikit learn 有关于 Feature extraction 的讲解和代码例子,可以学习学习

4. 实际应用

伯乐在线上的一篇文章 关于推荐系统中的特征工程, 以个性化推荐系统为例,介绍了特征工程在实际的问题里是怎么做的。

下面是Quora上对‘What are some best practices in Feature Engineering?’这个问题的一个回答,讲了一些实际的经验,应用时可以作为一点启发:

  1. 理解数据
    1. 特征是连续的还是离散
    2. 特征数据的分布如何
    3. 分布依赖的因素
    4. 是否有数据缺失,重复,交叉
    5. 特征的来源
    6. 数据是实时的吗
  2. 头脑风暴更多的特征 好的特征具有下面特点
    1. 能够直观地解释
    2. 可以被计算
    3. 是很好地观察数据的方式 例如:用户是否成为网站的注册用户?过去一周花费多少时间在这个网站上?在所有注册用户花费时间的分布中,这个用户处于什么位置?
  3. 检验你的猜测 建模完成后要检验,数据分割,交叉检验等。
  4. 围绕你的目标思考 无论是做回归,分类,还是聚类问题,你的猜想和建模都是为了解决这个问题服务的。
  5. 坚持 RFMVT 原则
    • Recency. Signals how old certain event is.
    • Frequency. Signals how often does certain events occur.
    • Monetary. Any numerical representation of direct of indirect business value of an example.
    • Variety. How many distinct items are found for certain type of an example.
    • Tenure. How much time has elapsed since the first appearance of certain example or of an example of certain type.
  6. 不要过于工程化 快速迭代,最有效的方式就是提出正确的问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

称霸Kaggle的十大深度学习技巧

在各种Kaggle竞赛的排行榜上,都有不少刚刚进入深度学习领域的程序员,其中大部分有一个共同点:

1651
来自专栏新智元

效果惊艳!FAIR提出人体姿势估计新模型,升级版Mask-RCNN

来源:densepose.org 【新智元导读】FAIR和INRIA的合作研究提出一个在Mask-RCNN基础上改进的密集人体姿态评估模型DensePose-R...

43513
来自专栏AI科技大本营的专栏

撕起来了!谁说数据少就不能用深度学习?这锅俺不背!

作者 | Andrew L. Beam 编译 | AI100 撕逼大战,从某种角度,标志着一个产业的火热。 最近,大火的深度学习,也开始撕起来了。 前几日,有一...

4917
来自专栏Pytorch实践

Pytorch实现skip-gram模型训练word2vec

对于词语的表示,最开始采用one-hot编码,用于判断文本中是否具有该词语;后来发展使用Bag-of-Words,使用词频信息对词语进行表示;再后来使用TF-I...

4286
来自专栏目标检测和深度学习

学界 | 史上最强GAN图像生成器,Inception分数提高两倍

在向 ICLR 2019 提交的论文中,有一篇 GAN 生成图像的论文引起了所有人的注意,很多学者惊呼:不敢相信这样高质量的图像竟是 AI 生成出来的。其中生成...

2266
来自专栏null的专栏

简单易学的机器学习算法——协同过滤推荐算法(2)

一、基于协同过滤的推荐系统     协同过滤(Collaborative Filtering)的推荐系统的原理是通过将用户和其他用户的数据进行比对来实现推荐的。...

3256
来自专栏机器之心

IJCAI 2018 | 海康威视Oral论文:分层式共现网络,实现更好的动作识别和检测

选自arXiv 作者:Chao Li等 机器之心编译 参与:Panda 动作识别和检测正得到计算机视觉领域越来越多的关注。近日,海康威视在 arXiv 发布了在...

3796
来自专栏机器学习算法与Python学习

称霸Kaggle的十大深度学习技巧

在各种Kaggle竞赛的排行榜上,都有不少刚刚进入深度学习领域的程序员,其中大部分有一个共同点:

1482
来自专栏AI科技评论

学界 | OpenAI最新研究:“对抗样本”能轻易黑掉AI系统,如何抵御?

AI科技评论按:近日,OpenAI发表最新研究,论述了AI安全领域的一大隐忧:“对抗样本”,它可以轻易地让机器学习系统产生误判,这会对AI的应用实践产生影响。在...

3885
来自专栏DT数据侠

看脸时代,“颜值”竟然都有了计算方法!

“魔镜魔镜告诉我,谁是世界上最美的女人?”这句伴随童年的话也有现实版哦~神经网络可以预测人脸颜值,这方面也出现了不少研究。今年年初华南理工大学的研究者发布论文,...

1340

扫码关注云+社区

领取腾讯云代金券