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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值