https://www.toutiao.com/a6690498502436323854/

2019-05-13 21:15:03

1. 什么是特征工程

对数据进行一系列处理构成特征输入给模型

例如,我们想让机器识别这个图片是不是苹果,可以选择 形状,颜色分布,边 来作为feature:

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

特征工程的目的

  • 去掉数据中的杂质
  • 构造更高级的高效的特征来描述数据。

怎么做特征工程?

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

  • 特征构建:根据原始数据构建新的特征,需要找出一些具有物理意义的特征。
  • 特征提取:自动地构建新的特征,将原始特征转换为一组具有明显物理意义或者统计意义或核的特征。例如 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(基于L1,L2惩罚项的特征选择法),或者使用决策树思想,Random Forest和Gradient boosting等


2. 两种常用的数据类型

  • 结构化数据

即每一行数据表示一个样本,每列都有清晰的定义

有数值型、类别型两种基本类型

  • 非结构化数据

主要包括文本、图像、音频、视频数据

无法用一个简单的数值表示,每条数据的大小各不相同


3. 为什么需要对数值类型的特征做归一化?

什么是特征归一化?

将所有的特征都统一到一个大致相同的数值区间内。

如何进行归一化?

  • Min-Max Scaling

结果映射到[0, 1]之间

  • Z-Score Normalization

将原始数据映射到均值为 0、标准差为 1 的分布上

为什么要进行归一化?

例如,身高特征会在 1.6~1.8m 范围,体重特征会在 50~100kg 的范围,体重特征会对问题有更大的影响

理论上看

因为特征的数值范围不同的话,会影响梯度下降的速率
如果将目标函数的等值图画出来,数值范围大的特征,那个方向会需要更多次的迭代才能找到最优解。
如果将每个特征的范围转化成一致的,那么等值图的图形会是一个圆形,梯度下降在各个方向的速率是一样的,可以更快地找到最优解。

什么时候需要进行归一化?

  • 通常在需要用到梯度下降法的时候。

包括线性回归、逻辑回归、支持向量机、神经网络等模型。

  • 决策树模型就不适用

例如 C4.5 ,主要根据信息增益比来分裂,归一化不会改变样本在特征 x 上的信息增益


4. 类别型特征

什么是类别型特征?

例如:性别(男、女)、血型(A、B、AB、O)

通常是字符串形式,需要转化成数值型,传递给模型

如何处理类别型特征?

  • 序号编码(Ordinal Encoding)

例如学习成绩有高中低三档,也就是不同类别之间关系。

这时可以用321来表示,保留了大小关系。

  • 独热编码(One-hot Encoding)

例如血型,它的类别没有大小关系。A 型血表示为(1, 0, 0, 0),B 型血表示为(0, 1, 0, 0)……

  • 二进制编码(Binary Encoding)

第一步,先用序号编码给每个类别编码

第二步,将类别 ID 转化为相应的二进制

例如,B 型血的 ID 为 2,二进制表示为 010

优点:这种方法得到的结果维数少于独热编码

《百面机器学习》笔记-特征工程相关面试题相关推荐

  1. 百面机器学习之特征工程

    1.为什么需要对数值类型的特征做归一化? 为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性. 对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值 ...

  2. 特征工程相关面试题以及参考答案

    1.你是怎样理解"特征"? 特征就是,于己而言,特征是某些突出性质的表现,于他而言,特征是区分事物的关键 2.给定场景和问题,你如何设计特征?(特征工程方法论) 基于人工经验的特征 ...

  3. 【机器学习】特征工程概述

    特征工程 "数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已." 1.概念 维基百科:特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过 ...

  4. 【CS224W】(task2)传统图机器学习和特征工程

    note 和CS224W课程对应,将图的基本表示写在task1笔记中了:传统图特征工程:将节点.边.图转为d维emb,将emb送入ML模型训练 Traditional ML Pipeline Hand ...

  5. 推荐系统学习笔记——特征工程

    特征工程 一. 概述 二. 特征工程构建原则 三. 常用的特征有哪些 四. 常用的特征的处理方法 五. 特征选择 六. 总结 推荐系统学习笔记系列链接: 推荐系统学习笔记--特征工程 推荐系统学习笔记 ...

  6. 十二种特征工程相关技术简介

    http://blog.itpub.net/29829936/viewspace-2648602/ 本文主要包含的目录如下: 一.简介 二.错误数据和缺失值 三.特征的种类 四.特征工程技巧 4.1. ...

  7. 面向机器学习的特征工程翻译版

    前些日子推荐了一个仓库,是知名开源apachecn组织翻译的<面向机器学习的特征工程>英文版,可以说是特征工程的宝典,值得推荐. 仓库说明 知名开源apachecn组织翻译了<面向机 ...

  8. 面向机器学习的特征工程 三、文本数据: 展开、过滤和分块

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:@kkejili 校对:@HeYun 如果让你来设计一个算法来分析以下段落,你会怎么做? Emma knocked on t ...

  9. 面向机器学习的特征工程 一、引言

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:@ZhipengYe 校对:(虚位以待) 机器学习将数据拟合到数学模型中来获得结论或者做出预测.这些模型吸纳特征作为输入.特 ...

最新文章

  1. SQL 2008中修改表结构提示“阻止保存要求重新创建表的更改”
  2. java基础知识之初识java
  3. 一次检验自己技术和耐力的碎片提取经历
  4. linux select 异步,Linux上用select()实现异步的Echo服务器
  5. 【推荐系统】一文梳理序列化推荐算法模型进展
  6. “暧昧”的吉本,“疗伤”的芭娜娜
  7. c语言第一次作业,C语言培训班第一次作业 (1)
  8. 强化学习在美团“猜你喜欢”的实践
  9. Linux 系统检测工具
  10. type或者xtype总结
  11. MAVEN插件打包SNAPSHOT包MANIFEST.MF中Class-Path带时间戳的问题
  12. ThinkPHP商城分类无限分类遍历数据
  13. swf导出html代码,将SWF轻松导出HTML5
  14. 车牌识别算法实现及其代码实现之三:车牌识别
  15. 2020中国边缘计算企业20强
  16. 开放耳机有什么优缺点,列举出几款口碑不错的开放式耳机
  17. 参考文献格式详细解释和引用(常见)
  18. 搞不定思想和组织转变,何谈企业转型
  19. abc android软件,学习ABC Learn ABC软件
  20. Linux创建widget过程,Linux上打包wgz和wgt widget项目

热门文章

  1. python opencv cv2 API
  2. cos2x = cos^2x-sin^2x的推导
  3. 自己写的一个启动JBoss服务器的bat批处理
  4. spring整合mybatis(入门级简单教程2)
  5. 唐杉博士:人工智能芯片发展及挑战
  6. 人类高质量AI训练方式:精细化数据集管理颠覆唯SOTA论
  7. 刷新4项文档智能任务纪录,百度TextMind打造ERNIE-Layout登顶文档智能权威榜单
  8. Python编程神器Jupyter Notebook使用的28个秘诀(附代码)
  9. 福利 | “石墨烯之父”现场演讲!中国科幻大会“科技与未来”论坛报名中
  10. Bert时代的创新:Bert应用模式比较及其它