百面机器学习--机器学习面试问题系列(一)特征工程

本文是在学习《百面机器学习 算法工程师带你去面试》过程中的学习笔记,将面试问题进行记录以方便查阅,根据目录分成系列。持续更新中…


在这里插入图片描述

一、特征工程

机器学习中常用的两种数据类型:

  • 结构化数据:数据特征都可以表示在一张excel表里,每一列都有清晰的定义,每一行代表一个样本信息。
  • 非结构化数据:文本、视频、音频、图像等数据。
1. 特征归一化:

分析结果会侧重于数值差别较大的特征。将所有特征统一到一个大致相同的数值区间,以便进行分析。

常用的归一化方法:

  • 线性函数归一化 Min-Max Scaling:原始数据进行线性变换,映射到[0,1]的范围

    X n o r m = X − X m i n X m a x − X m i n X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}} Xnorm=XmaxXminXXmin

  • 零均值归一化 Z-Score Normalization:将原始数据映射到均值0,标准差为1的分布上

    z = x − μ σ z=\frac{x-\mu}{\sigma} z=σxμ
    通过梯度下降法求解的模型是需要归一化的,如线性回归、逻辑回归、支持向量机、神经网络等。但对于决策树模型并不适用,以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,信息增益比与也正是否归一化无关。

2. 类别型特征:

在有限选项内取值的特征,如性别(男女)、血型(A,AB,B,O)。类别型特征通常是字符串类型,决策树等少量模型可以直接处理字符串形式输入,大多数模型需要转换成数值型特征才能正确工作。

对类别型特征进行预处理使其变成数值型特征,常用预处理方式也叫编码方式:

  • 序号编码:对于类别间有大小关系的数据。如“高,中,低”三类,可以编码为“3,2,1”,序号编码保留了大小关系。

  • 独热编码:类别间不具有大小关系的数据。如血型(A,B,AB,O),每一个类别变成一个四维的稀疏向量,如A型:(1,0,0,0),B型:(0,1,0,0),AB型:(0,0,1,0),O型(0,0,0,1)。

    注意:如果类别值较多,那表示每一类的向量维度会很大,在存储时也会造成空间的浪费。所以可以使用稀疏向量表示:假设 v = [ 0 , 0 , 0 , 1 , 0 , 0 , 1 ] v=[0,0,0,1,0,0,1] v=[0,0,0,1,0,0,1] 稀疏向量表示为 ( 7 , [ 3 , 6 ] , [ 1 , 1 ] ) (7,[3,6],[1,1]) 7,[3,6],[1,1] ,7代表长度,[3,6]代表非零元素下标,[1,1]代表非零元素的值。并且可以配合特征选择来降低维度,对分类、预测没有帮助的特征去掉。

  • 二进制编码:如血型(A,B,AB,O),先用序号给每个类别一个ID,A:1,B:2,AB:3,O:4,再将ID用二进制表示:

    类别ID二进制表示
    A10 0 1
    B20 1 0
    AB30 1 1
    O41 0 0

    维数比独热编码少,存储空间更小。

3. 高维组合特征的处理:

为提高复杂关系的拟合能力,在特征工程中将一阶离散特征两两组合,构成高阶组合特征。如广告点击预估问题:广告类型有电影和电视剧两种,语言类型有中文和英文两种,那组合特征就表示为中文电影、英文电影、中文电视剧、英文电视剧四种。

随着原始数据特征维数的增多,组合特征的维数会更加快速增长。处理高维的组合特征一个有效的方式为:将原始特征使用低维向量表示(矩阵分解的思路)。(目前这里还不大清楚,后面看到数据降维的时候返回来再解释一下)

4. 组合特征:

上面介绍了将离散特征两两组合来提高复杂关系的拟合能力,也介绍了降维的方法来减少参数量。但是当原始数据特征特别多的时候,就需要我们辨别一下哪些特征组合是有意义的。其中一种方式是基于决策树的特征组合寻找方法。如何根据原始数据有效的构造决策树?可以采用梯度提升决策树(后续再来进行解释)。

5. 文本表示模型:

文本是非结构化的数据,表示文本数据是机器学习领域的一个重点研究方向。常用方式有:

  • 词袋模型:将文本以单词为单位切分开,每一维代表一个单词,文本就表示成了一个长向量。每一维有一个对应权重,表示这个词在文章中的重要程度,常用TF-IDF来计算权重:

    T F − I D F ( t , d ) = T F ( t , d ) ∗ I D F ( t ) TF-IDF(t,d)=TF(t,d)*IDF(t) TFIDF(t,d)=TF(t,d)IDF(t)

    TF(t,d)表示单词t在文档d中出现的频率。IDF(t)是逆文档频率,衡量单词t对表达语义的重要性,表示如下:

    I D F ( t ) = l o g 文 章 总 数 包 含 单 词 t 的 文 章 总 数 + 1 IDF(t)=log\frac{文章总数}{包含单词t的文章总数+1} IDF(t)=logt+1

    可以理解为,如果t在很多文章中都出现了,那它可能是比较通用的词汇,对区分语义贡献较小,对其权重进行惩罚。

  • N-gram:词袋模型将每个单词进行划分,但对于”natural language processing”这样的词汇拆分开来与我们期望获取的语义信息大相径庭。所以采取将连续出现的n个词组成的词组作为一个单独的特征放在向量表示中,就构成了N-gram模型。对于同一个词,其词性的变化做词干抽取(Word Stemming)处理。

  • 主题模型:从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且计算出每篇文章的主题分布。(后面会进行详细介绍)

  • 词嵌入与深度学习模型:词嵌入是将词向量化的模型的统称,核心思想是每个词都映射成低维空间(通常K=50~300)上的一个稠密向量。K维空间中的每一维可以看作一个隐含的主题。假设一篇文章有N个词,每个词映射成了K维向量,用矩阵N*K来表示这篇文章太过于底层,很难得到满意的效果。所以利用深度学习模型来提取高层特征。卷积神经网络和循环神经网络在文本表示中取得了很好的效果。

6. Word2Vec:暂时跳过
7. 图像数据不足时的处理方法:

以分类任务为例,训练数据不足会导致过拟合问题。解决办法:

  • 一是基于模型的:简化模型、添加约束(如正则项)、集成学习、Dropout超参数等;
  • 二是基于数据的:进行数据扩充,以图像为例如旋转、平移、裁剪、缩放;添加噪声扰动;颜色变换;改变亮度清晰度对比度等。除了在图像空间进行变换,还可以先提取图像特征,在特征空间进行变换。也可以使用生成模型生成一些样本。
  • 三是可以借助迁移学习:在大规模数据集上 预训练好通用的模型,针对目标任务的小数据集上进行微调(fine-tune)。
    下一章传送门:百面机器学习–机器学习面试问题系列(二)模型评估
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值