特征工程:是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题和预测模型之间的关系。

对于机器学习问题,数据和特征往往决定了结果的上限,而算法,模型的选择及优化则是在逐步接近这个上限。特征工程的框架图:

常用的数据类型:

(1)结构化数据:可以看成关系型数据库的一张表,每列都有清晰的定义,包含了数值型和类别型两种基本数据类型;每行代表一个样本的信息。

(2)非结构化数据:主要包括文本、图像、音频、视频教程,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且数据的大小各不相同。

第1问:为什么对数据进行归一化?

为了消除数据特征之间的量纲影响,对数据进行归一化,使得不同指标之间具有可比性。对数值型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。常用方法:

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

(2)零均值归一化(Z-score Normalization):它将数据映射到均值为0,标准差为1的分布上。假设原始特征的均值是,标准差是,公式为

例:以梯度下降的实例说明,未归一化的数据在学习速率相同的情况下,对数据进行归一化之后,数据可以更快地找到最优解。

在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归,逻辑回归,支持向量机,神经网络模型等。但是对于决策树模型并不适用,归一化之后的数据并不会改变样本在特征X上的信息增益。

其他:树形模型是否需要归一化?

树形模型不需要归一化,不会影响结点分裂时的选择特征。

第2问:在数据处理时,类别型特征怎么处理?

类别型特征主要是只在有限选项内取值的特征,例如性别(男女),血型(A,B,AB,O)。类别型特征原始输入通常是字符串类型,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归等大部分模型来说,都需要处理转换成数值型特征。

处理方法:序号编码(Ordinal Encoding),独热编码(One-hot Encoding),二进制编码(Binary Encoding)

序号编码:用于处理类别间具有大小关系的数据。如成绩可以分为低,中,高三档。并存在排序问题,表示为高3,中2,低1。

独热编码:用于处理类别间不具有大小关系的特征。如血型有四个取值,可以转换为4维稀疏变量,如:

血型 A B AB O
  1 0 0 0
  0 1 0 0
  0 0 1 0
  0 0 0

1

对于类别取值较多的情况下使用独热编码应该注意:

(1)使用稀疏向量来节省空间。在独热编码下,特征向量只有某一维取值为1,其他位置均取0。因此可以利用向量的稀疏表示有效地节省空间。

(2)配合特征选择来降低难度。高维特征会带来以下问题:一是KNN中,高维空间下两点的距离很难得到有效的衡量。二是在逻辑回归模型中,参数的数量会随着维度的增高而增加,容易引起过拟合问题。三是通常只有部分维度是对分类、预测有帮助,因此可以考虑配合特征选择来降低维度。(注:不太明白什么叫配合特征选择,是在这个编码下,只取部分特征吗,这个特征怎么取,方法呢?会不会造成特征丢失?)

二进制编码:主要是分两步:先用序号编码给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果。如下:

血型 类别ID 二进制表示
A 1 001
B 2 010
AB 3 011
O 4 100

二进制是对ID进行哈希映射,最终得到0/1特征向量,且维数少于独热编码,节省了存储空间。

其他编码方式:Helmert Contrast,Sum Contrast,Polynomial Contrast,Backward Difference Contrast。

百面机器学习——第一章特征工程相关推荐

  1. 百面机器学习第一章——特征工程(基本是百面机器学习书的内容)

    02.类别型特征 ------------------------------------------ 场景描述 类别型特征(Categorical Feature)主要是指性别(男.女).血型(A. ...

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

    https://www.toutiao.com/a6690498502436323854/ 2019-05-13 21:15:03 1. 什么是特征工程 对数据进行一系列处理构成特征输入给模型 例如, ...

  3. 百面机器学习 -- No.2 特征工程 -- 训练数据不足的情况下会带来什么问题,如何缓解?

    训练数据不足的情况下会带来什么问题,如何缓解? 数据不足会带来什么问题 如何解决 ? 数据不足会带来什么问题 机器学习任务的问题,可以简单的理解成寻找最佳的拟合函数和最佳的泛化函数,拟合函数是用来学习 ...

  4. 机器学习实战之特征工程

    机器学习实战与特征工程 1.机器学习概述 1.1 什么是机器学习 1.2 为什么要机器学习 1.3 机器学习应用场景 1.4 学习框架和资料的介绍 2.特征工程 2.1 特征工程介绍 2.1.1 数据 ...

  5. 模式识别与机器学习·第一章——概论

    模式识别与机器学习·第一章--概论 开篇 模式识别 模式 识别 机器学习 研究目的 发展历史 模式识别简史 机器学习简史 系统方法 系统目标 假说的获得 系统的构成 小结 开篇 这系列博客主要用来回忆 ...

  6. python 机器学习第一章

    机器学习是一门能够发掘数据价值的算法和应用,是计算机科学中最激动人心的一个领域之一. 接下来的时间,开始学习吧! python机器学习第一章 1.机器学习方法分为三类:监督学习,无监督学习,强化学习. ...

  7. 机器学习中的特征工程——分类变量的处理

    出品 | CDA数据分析研究院,转载需授权 文章目录 分类变量 概念 判断 类型 少类别分类变量处理方法 独热编码(One-hot encoding) 虚拟编码(Dummy coding) 效应编码( ...

  8. 机器学习中的特征工程

    机器学习中的特征工程 什么是特征工程 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器 ...

  9. 第一章 网络工程基础

    第一章 网络工程基础 什么是网络工程? ​ 计算机网络工程是在信息系统工程方法和完善的组织机构指导下,根据网络应用的需求,按照计算机网络系统的标准.规范和技术,详细规划设计可行方案,将计算机网络硬件设 ...

最新文章

  1. java 文本压缩_[Java基础]Java使用GZIP进行文本压缩
  2. 2017吉首大学新生赛
  3. 2 创建联合索引_想进大厂,这些Mysql索引底层知识你是必须知道的
  4. 【若依(ruoyi)】Bootstrap-Table表格排序
  5. Spring入门 IOC
  6. c++ 向量的值逆序输出_C++中vector的常用方法
  7. python入门(5)使用文件编辑器编写代码并保存执行
  8. python3连接oracle 11G数据库
  9. android room_Android Room –待办事项清单应用程序
  10. UI自动化---Wechat批量表情包轰炸
  11. MySQL redhat7 安装mysql8
  12. 【干货分享】Color Fonts是什么?多彩字体详解
  13. 苏州大学计算机考研复试机试,2014年苏州大学计算机考研经验
  14. Jmeter. TCP取样器改变编码方式
  15. 该怎么把光纤接入家里预埋的网线中?
  16. gt、lt、ge、le、eq、ne的含义
  17. CSS 实现平行四边形、菱形、切角效果、梯形
  18. 做自媒体,学视频剪辑须知的四大宝藏网站
  19. 网页中加入当前时间html,如何在网页中加入当前时间的代码
  20. 26 岁年薪百万!华为最新“天才少年”曝光,学霸兼 B 站 UP 主,还爱跳街舞

热门文章

  1. javascript 里Array的一些方法
  2. Android应用开发—TabLayout定制化Tab样式
  3. laravel安装prettier,git hook代码格式化工具
  4. Java 8 Stream的性能到底如何?
  5. 什么是IPsec协议
  6. Spring AOP 代理模式
  7. cad多段线画圆弧方向_CAD箭头怎么画
  8. 以太网,局域网,万维网
  9. 99 网络编程_传统网络工程师如何利用python实现公司内网IP地址信息查询?
  10. int main() 与 void main()