百面机器学习-第一章特征工程

原文链接:https://www.jianshu.com/p/355c4001ca42

前言

如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点,希望对大家有帮助。

第一章 特征工程

引导语

一句业界经典的话:“Garbage in, garbage out”。对于机器学习问题,数据和特征决定了结果的上限,而模型、算法的选择和优化则是在逐步接近这个上限。
特征工程从本质上来讲,是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
本章主要讨论两种常用数据类型,结构化数据和非结构化数据。

  • 结构化数据。可以看作关系型数据库的一张表,每一列都有清晰的定义,包含数值型、类别型两种基本类型;每行表示一个样本的信息。
  • 非结构化数据。主要包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义。并且每条数据的大小各不相同。

注:主要从数值表示、类别定义来区分。

1、特征归一化

  1. 目的:消除数据特征之间的量纲影响,使得不同指标之间具有可比性
  2. 常用方法有线性函数归一化零均值归一化
  • 线性函数归一化(Min-Max Scaling,最大最小值归一化),将数据映射到[0,1]的范围内。
    X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}
  • 零均值归一化(Z-Score Normalization),将数据映射到均值为0、标准差为1的分布上。
    z=\frac{x-\mu}{\sigma}
  1. 如果模型用梯度下降来进行求解,数据归一化主要对收敛速度产生影响。将各个特征映射到同一个区间内,可以使得各个特征的更新速度变得更一致,容易更快地通过梯度下降找到最优解。
  2. 通过梯度下降求解的模型通常需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等。但对于决策树并不适用。例如C4.5节点分裂主要依据信息增益比,而归一化并不会改变信息增益比。
    注:经过实践,确实是这样,有可能归一化之后反而使决策树性能下降。

2、类别型特征

  1. 类别型特征指在有限选项内取值的特征。通常为字符串形式。决策树等少数模型能直接处理字符串形式的输入,逻辑回归、SVM等类别型特征必须处理成数值型特征才能正确工作。
  2. 处理类别型特征的方法:
  • 序号编码,如成绩可以转化为高、中、低三档,分别用3、2、1表示,转换后依然保留了大小关系。
  • one-hot编码,通常用于处理类别间不具有大小关系的特征,如各种血型,A型编码为(1,0,0,0),B型编码为(0,1,0,0)。
    one-hot编码需要注意:当类别取值较多时,用one-hot就会非常稀疏,可以用稀疏向量形式输入来节省空间,目前大部分算法都接受这种输入形式。但是高维one-hot编码会有几个问题:1.knn中高维空间下很难有效衡量两点的距离。2.逻辑回归中参数数量会随维度增高而增多,容易引起过拟合。通常只有部分维度对分类、预测有帮助,因此可以配合特征选择来降维。
    注:也就是说需要酌情筛掉。
  • 二进制编码,和one-hot的思想差不多,它允许多位为1。本质是利用二进制对ID进行hash映射,比one-hot节省空间。
  • 还有其他编码方式:Helmert Contrast、Sum Contrast、Polynomial Contrast、Backward Difference Contrast。

3、高维组合特征的处理

  1. 目的:提高复杂关系的拟合能力。
  2. 组合特征是指把一阶离散特征两两组合,构成高阶组合特征。
    注:注意是离散特征。
    例如将语言(中文、英文);剧集类型(电影、电视剧)两个一阶离散特征组合为二阶特征,则有中文电影、中文电视剧、英文电影、英文电视剧四种类型。
    假设数据的特征向量为X=(x_1,x_2,...,x_k),则有
    Y=sigmoid\sum_i\sum_j w_{ij}<x_i,x_j>如上面的问题,则w的维度为2*2=4。
  3. 当引入ID类型的特征时,通常需要降维。如推荐问题,通常有如下的组合特征:
是否点击uid=1,item id=1uid=2,item id=1uid=2,item id=1...uid=m,item id=n
010...00
101...00
..................

如上表,则要学习的参数规模为m\times n,参数规模太大,一种行之有效的方法是经用户和物品分别用k维的低维向量表示(k远小于m和n),则参数的规模变为m\times k+n\times k。实际是矩阵分解

4、组合特征

简单地将特征两两组合容易存在参数过多过拟合等问题。本节提供了一种基于决策树的组合特征寻找方法。
例如一个点击预测问题:输入特征有年龄、性别、用户类型(试用期/付费)、物品类型(护肤/食品)。我们构造一个决策树如下:

1-4 基于决策树的特征组合方法.jpg

从根节点到叶节点的每条路径都可以看成一种特征组合的方式。根据上面建立的决策树,我们有4条路径。则可以得到以下样本的编码方式。

是否点击年龄性别用户类型物品类型编码
28免费护肤(1,1,0,0)
36付费食品(0,0,1,1)

如第一条样本,满足图上的下面的两条路径,则可编码为(1,1,0,0)。
注:感觉这种方式确实是组合特征降维的比较好的方式,但是问题是首先要建立一颗树。

5、文本表示模型

  1. 词袋模型和N-gram模型
  • 词袋模型是最基础的文本表示模型。是将文章以词为单位切分开,忽略词的出现顺序,将文章表示成一个长向量,每一维代表一个单词,该维的权重表示重要程度。常用TF-IDF来计算权重。(注意逆文档频率是要取log对数的)
  • N-gram是指有些词组不能拆开,那么由这n个词组成的词组(N-gram)也作为一个单独的特征放到向量表示中,构成N-gram模型。

注:总的来说就是,TF-IDF是词袋模型中的一种计算权重的方法,N-gram是一种为了解决词组不可分的一种方法,也属于词袋模型,最后依然要用词袋模型来表示。

  1. 主题模型
    词袋模型和N-gram模型无法识别两个不同的词或词组具有相同的主题,主题模型可以将具有相同主题的词或词组映射到同一维度上,映射到的这一维度表示某个主题。主题模型是一种特殊的概率图模型,后面第六章第五节会讲。
  2. 词嵌入
    词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射到低维空间(K=50~300)上的一个稠密向量。K维空间的每一维也可以看作一个隐含的主题,但没有主题模型那样直观。

6、Word2Vec

  1. Word2Vec是2013年提出的,是目前最常用的词嵌入模型之一。它实际是一种浅层的神经网络模型,有两种网络结构:CBOW(Continues Bag of Words)和Skip-gram
    COBW根据上下文出现的词语来预测当前词的生成概率,Skip-gram根据当前词来预测上下文中各词的生成概率。结构如下图:
    1-6 Word2Vec的两种网络结构.jpg

    图中w(t)即当前词,w(t-2)w(t-1)w(t+1)w(t+2)即上下文中出现的词,所谓的滑动窗口大小就是上下文取词个数,为2。
  2. CBOW的训练方式:模型有输入层、映射层、输出层。
  • 输入层是one-hot编码的上下文词,如果词汇表中单词总数为N,则输入层的词表示即为N维one-hot向量。
  • 映射层(隐含层)有K个隐含单元,即我们要得到的K维词嵌入向量,这里就是K个隐含单元。映射层的值由输入层的N维向量和N\times K维权重矩阵计算得到。
    注:CBOW模型需要将输入词计算的隐含单元值求和,比Skip-gram多这一部分。
  • 输出层向量的值由隐含层的K维向量和K\times N维向量计算得到,输出也是N维向量。但是这里的输出向量并不能保证所有维度加起来为1(one-hot编码加起来就为1),要通过Softmax激活函数进行归一化。
  • 训练的目标是使得语料库中所有单词的整体生成概率最大化。可以用反向传播,沿梯度更优的方向更新权重,但是由于Softmax存在归一化项,推导出来的迭代公式需要对词汇表中所有单词进行遍历(毕竟是N维词向量),所以每次迭代过程非常缓慢。有Hierarchical Softmax和Negative Sampling两种改进方法。
  • 得到训练出来的各词对应的向量:训练得到的维度为N\times KK\times N的矩阵,可以选择任意一个作为N个词的K维词向量。
  1. Word2Vec和LDA的区别和联系:
  • LDA利用文档中单词的共现关系来对单词按主题聚类,可以理解为将“文档-单词”矩阵分解为“文档-主题”和“主题-单词”两个概率分布。但Word2Vec更多融入了上下文共现的特征,是对“上下文-单词”矩阵进行学习。
  • 主题模型通过一定的结构调整可以基于“上下文-单词”单词矩阵进行主题推理,词嵌入方法也可以根据“文档-单词”矩阵学习出词的隐含向量表示。
  • 最大的区别是模型本身。主题模型是一种基于概率图模型的生成式模型,其似然函数可以写成若干条件概率连乘的形式,其中包括需要推测的隐含变量(即主题)。词嵌入一般表达为神经网络的形式,似然函数定义在网络的输出之上,需要通过学习网络的权重得到单词的稠密向量表示。

7、图像数据不足时的处理方法

  1. 一个模型能提供的信息一般来源于两个方面:一是训练数据中蕴含的信息;二是模型的形成过程中(包括构造、学习、推理等)人提供的先验信息
  2. 训练不足时则要提供更多先验信息。先验信息作用在模型上,如让模型采用特定的内在结构条件假设或添加一些约束条件。先验信息也可以作用在数据集上,如根据特定的先验假设调整变换扩展数据集,让其展现出更多更有用的信息。
  3. 图像分类任务中,训练数据不足的问题主要表现在过拟合方面,处理方法可以分为两类:
  • 基于模型的方法:主要是采用降低过拟合风险的措施,包括简化模型(将非线性模型简化为线性模型)、添加约束项以缩小假设空间(L1/L2正则项)、集成学习Dropout超参数等。
  • 基于数据的方法:主要通过数据扩充(Data Augmentation,数据增强),对原始数据进行适当变换以达到扩充数据集的效果。
    具体到图像分类,有四种变换方法:(1)随机旋转、平移、缩放、裁减、填充、左右翻转等,对应不同角度的观察结果。(2)对像素添加噪声扰动,如椒盐噪声、高斯白噪声等。(3)颜色变换。(4)改变亮度、清晰度、对比度、锐度等。
  1. 除了在图像空间进行变换,还可以对图像进行特征提取,然后在图像的特征空间内进行变换,利用一些通用的数据扩充或上采样技术如SMOTE等进行扩充。这些都是一些启发式的变换方法,还可以通过GAN等生成模型合成新样本,还可以借助其他模型或数据来进行迁移学习

小结

本章干货还是很多的,表述非常清晰,非常易懂。之前没有弄懂的东西,比如Word2Vec的训练过程,让我终于了解了结构和训练方法。但是特征工程还有非常多的技巧,特征选择也还有更多的方法,还要多学习其他方法。

结尾

如果您发现我的文章有任何错误,或对我的文章有什么好的建议,请联系我!如果您喜欢我的文章,请点喜欢~*我是蓝白绛,感谢你的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐几个NLP出论文的好方向!!

如果你准备发NLP方向的论文&#xff0c;或准备从事科研工作或已在企业中担任NLP算法岗的工作。那么我真诚的向大家推荐&#xff0c;贪心学院《自然语言处理高阶研修班》&#xff0c;目前全网上应该找不到类似体系化的课程。课程精选了四大主题进行深入的剖析讲解&#xff0c;四…

Android热更新方案Robust

美团是中国最大的O2O交易平台&#xff0c;目前已拥有近6亿用户&#xff0c;合作各类商户达432万&#xff0c;订单峰值突破1150万单。美团App是平台主要的入口之一&#xff0c;O2O交易场景的复杂性决定了App稳定性要达到近乎苛刻的要求。用户到店消费买优惠券时死活下不了单&…

会议研讨 | TF45: 知识图谱新技术、新场景、新应用

基于“新基建”面向新产业、新业态和新模式的背景下&#xff0c;知识图谱作为人工智能的重要基石正在火热发展中。新的知识图谱技术在新的场景和应用中使人工智能从感知智能逐渐向认知智能过渡。知识图谱与产业的结合愈加紧密&#xff0c;除了在搜索与推荐、知识问答等通用领域…

LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)

文章目录1. 题目2. 解题1. 题目 给定一个二叉搜索树和一个目标结果&#xff0c;如果 BST 中存在两个元素且它们的和等于给定的目标结果&#xff0c;则返回 true。 案例 1: 输入: 5/ \3 6/ \ \ 2 4 7Target 9 输出: True案例 2: 输入: 5/ \3 6/ \ \ 2 4 7Tar…

盘点来自工业界的GPU共享方案

文 | 阎姝含源 | 极市平台进年来工业界一直孜孜不倦地寻求提升GPU利用率的方案&#xff0c;能被更多用户理解和使用的GPU共享走进工程师的视野中。本文将总结目前有公开PR的、来自工业界的部分GPU容器计算共享方案&#xff0c;看看工业界对GPU共享的定位和需求。本文将依旧着眼…

百面机器学习|第二章模型评估知识点 蓝白绛

前言 如果你能找到这里&#xff0c;真是我的幸运~这里是蓝白绛的学习笔记&#xff0c;本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点&#xff0c;希望对大家有帮助。 第二章 模型评估 1、评估指标的局限性 准确率(Accuracy)&…

美团外卖订单中心的演进

美团外卖从2013年9月成交第一单以来&#xff0c;已走过了三个年头。期间&#xff0c;业务飞速发展&#xff0c;美团外卖由日均几单发展为日均500万单&#xff08;9月11日已突破600万&#xff09;的大型O2O互联网外卖服务平台。平台支持的品类也由最初外卖单品拓展为全品类。 随…

论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)

转载公众号 | 数据智能英文刊题目&#xff1a;A Knowledge Graph Based Approach to Social Science Surveys引用&#xff1a;Z. Pan, Z.J., et al.: A Knowledge Graph Based Approach to Social Science Surveys. Data Intelligence 3(3). doi: 10.1162/dint_a_00107文章摘要…

NYU Google: 知识蒸馏无处不在,但它真的有用吗?

文 | 小伟编 | 小轶导师: 小伟&#xff0c;听说你对知识蒸馏比较了解&#xff0c;你来给我说说知识蒸馏有什么用&#xff1f;我: 知识蒸馏是一种很典型的模型压缩的方法&#xff0c;我们可以用它来有效地从大型教师模型学习小型学生模型&#xff0c;并且学生模型的性能也很不错…

pyscript+py-env实现python+html效果

参考链接&#xff1a;https://developer.aliyun.com/article/976083?spma2c6h.12873581.group.dArticle976083.3a8057c73DINVs 今天我们要介绍的东西&#xff0c;叫做PyScript&#xff0c;使用它&#xff0c;不需要安装任何软件。只要有一个记事本&#xff0c;就能写一段HTMLP…

美团的DBProxy实践

本文整理自美团技术沙龙第10期&#xff1a;数据库技术架构与实践。 美团技术沙龙由美团技术团队主办&#xff0c;每月一期&#xff0c;每期沙龙邀请美团及其它互联网公司的技术专家分享来自一线的实践经验&#xff0c;覆盖各主要技术领域。 本次沙龙主要围绕数据库相关的主题&a…

LeetCode 606. 根据二叉树创建字符串(递归)

文章目录1. 题目2. 递归解题1. 题目 你需要采用前序遍历的方式&#xff0c;将一个二叉树转换成一个由括号和整数组成的字符串。 空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 示例 1: 输入: 二叉树: [1,…

论文浅尝 | 面向开放域的无监督实体对齐

笔记整理 | 谭亦鸣&#xff0c;东南大学博士生来源&#xff1a;DASFAA’21链接&#xff1a;https://arxiv.org/pdf/2101.10535.pdf概述与动机知识图谱对齐的目的是建立两个不同知识图谱之间实体的对应关系&#xff0c;如图1&#xff0c;本文作者发现现有的实体对齐方法依赖于标…

聊聊推荐系统

这两天&#xff0c;有种把某宝卸载的冲动&#xff0c;它的“猜你喜欢”推荐简直是我肚子里的蛔虫&#xff0c;每次看都忍不住剁手&#xff0c;钱包就这么日渐消瘦……但从技术的角度想想&#xff0c;不得不说阿里的推荐系统的确做得不错。其实&#xff0c;除了电商平台&#xf…

LeetCode 695. 岛屿的最大面积(图的BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS广度优先搜索2.2 DFS深度优先搜索1. 题目 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面…

Neo4j:入门基础(一)之安装与使用

原文链接&#xff1a;https://blog.csdn.net/sinat_36226553/article/details/108541370 # 图数据库 链接&#xff1a;什么是原生(Native)图数据库 一般认为具有“无索引邻接”特性的图数据库才称为原生图数据库 链接&#xff1a;常用的图数据库 图存储可以分为属性图、三元组…

论文浅尝 | 问题多样性对于问答的帮助

笔记整理 | 毕胜 东南大学在读博士&#xff0c;研究方向&#xff1a;自然语言处理 知识图谱问题生成通过生成一些合成的问题作为训练语料有效提高了问答系统的效果&#xff0c;本文的研究点是&#xff1a;在QG中&#xff0c;生成问题的文本多样性是否对下游的QA有帮助&#xf…

RDS平台介绍

本文整理自美团点评技术沙龙第10期&#xff1a;数据库技术架构与实践。 美团点评技术沙龙由美团点评技术团队主办&#xff0c;每期沙龙邀请美团点评及其它互联网公司的技术专家分享来自一线的实践经验&#xff0c;覆盖各主要技术领域。 本次沙龙主要围绕数据库相关的主题&#…

你已经是一个成熟的地图了,该学会帮我...

文 | 小戏当我们打开百度地图&#xff0c;选定到达目的地&#xff0c;导航软件里的小姐姐马上就用不紧不慢的语调告诉我们“准备出发&#xff0c;全程12公里&#xff0c;预计需要30分钟……”但一看手表上显示的不风驰电掣铁定迟到的时间&#xff0c;肯定不允许我们和导航软件里…

LeetCode 427. 建立四叉树(递归)

1. 题目 我们想要使用一棵四叉树来储存一个 N x N 的布尔值网络。网络中每一格的值只会是真或假。树的根结点代表整个网络。对于每个结点, 它将被分等成四个孩子结点直到这个区域内的值都是相同的. 每个结点还有另外两个布尔变量: isLeaf 和 val。isLeaf 当这个节点是一个叶子…