百面01_特征工程

wangzycloud wangzycloud     2022-12-03     547

关键词:

  《百面机器学习》这本书真的是太好了,忍不住要记录一下学习过程中的所思所想。文章内容仅做适当摘取和记录,如有所需,请购书!另外,本文中所摘抄的内容,仅是个人认为比较重要的地方(实际上是想学习的内容)。比如NLP有关的东西,实在是打不起兴趣,舍去了...

  机器学习是要和数据打交道,数据如何表征?如何将数据利用起来?要知道,自然而然得到的数据,基本上都是散乱不整的。“特征工程”要做的,就是“以整易乱”将散乱的数据包装成‘好处理’的样子。文中讲到“特征工程”,顾名思义是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。这就很直接了,“特征工程”就是一个表示和展示数据的过程。围绕“特征工程”,有以下问题需要了解。


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

  是什么?首先要知道什么是特征归一化,数值类型的特征做归一化就是将所有的特征都统一到一个大致相同的数值区间内。

  为什么?为了消除数据特征之间的量纲影响,使得不同指标之间具有可比性。这里直接使用书本中的例子,分析一个人的身高和体重对健康的影响,如果使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。怎么理解呢?如果每个特征不进行归一化,50是不是要比1.8在直观的数值上大的多?50这个元素比1.8大这么多,能说明体重50kg的重要性要比身高1.8m的重要性大吗?不能!因为这两个指标没有可比性!那么,能不能把每一维特征同等看待呢?从而消除特征间单位和尺度的差异。这是可以做到的,类似向量进行单位化,每一维特征,把单位和尺度的影响抹掉就好了(数学操作)。大家都进行归一化,都到[0,1]这个赛道上来比较。

  怎么做?

  (1)线性函数归一化

  (2)零均值归一化

  很多文章用随机梯度下降的实例来说明归一化的重要性,又没人做实验。单纯从数学知识来解释,我目前理解不了。只要初值选的好,更窄的地方不是更容易到达最优解吗。

2.在对数据进行预处理时,应该怎样处理类别型特征?

  是什么?类别型特征(Categorical Feature)主要是指性别(男、女)、血型(A、B、AB、O)等只在有限选项内取值的特征。

  为什么?类别型特征原始输入通常是字符串形式,除了决策树等少数模型能直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型来说,类别型特征必须经过处理转换成数值型特征才能正确工作。

  怎么做?

  (1)序号编码,通常用于处理类别间具有大小关系的数据,比如成绩。

  (2)独热编码,通常用于处理类别间不具有大小关系的特征,比如血型。

  (3)二进制编码,先用序号编码给每个类别赋予一个类别ID, 然后将类别ID对应的二进制编码作为结果。二进制编码本质上是利用二进制对ID进行哈希映射,最终得到0/1特征向量,且维数少于独热编码,节省了存储空间。

3.什么是组合特征?怎样有效地找到组合特征?如何处理高维组合特征?

  是什么?为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。说白了就是把相关的几个特征组合成一个特征项。

  为什么?为了提高拟合能力。这里怎么理解呢?在我的理解里,“拟合能力”对应着模型的“复杂程度”,在神经网络中模型越复杂,该模型的拟合能力就越高,同时容易出现过拟合。特征进行组合,相当于增加了特征。直观上,需要拟合的特征参数增多了。并且,人为先验的对特征进行组合,相当于给特征与特征赋予了强关联关系(表1.2,表1.3不懂)。另外,在很多实际问题中,我们常常需要面临多种高维特征,如果简单对特征进行两两组合,会存在参数过多,过拟合等问题。因此需要一种有效的方式对特征进行组合。

  怎么做?

  (1)怎样有效地寻找组合特征?文中给出了基于决策树地特征组合寻找方式,说实话,这里没有看懂作者的意思。按照我自己的理解,寻找有效特征,可以通过组合特征所具有的信息量来作为判断依据。信息增益也好,基尼指数也好,寻找有效特征的过程,就是一个判断组合特征信息量的过程。

  (2)如何处理高维组合特征?高维->低维,SVD降维就好了。

4.有哪些文本表示模型?

  (1)词袋模型和N-gram模型。将每篇文章看成一袋子词,并忽略每个词出现的顺序。具体地说,就是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章中的重要程度。通常,可以将连续出现的n个词(n≤N)组成的词组(N-gram)也作为一个单独的特征放到向量表示中去,构成N-gram模型。

  (2)主题模型。主题模型用于从文本库中发现有代表性的主题(得到每个主题上面词的分布特性),并且能够计算出每篇文章的主题分布。《统计学习方法第二版》书中LSA和PLSA好像是做这个的。

  (3)词嵌入和深度学习模型。词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常K=50~300维)上的一个稠密向量(Dense Vector)。K维空间的每一维也可以看作一个隐含的主题,只不过不像主题模型中的主题那样直观。

5.什么是Word2Vec?

  谷歌2013年提出的Word2Vec是目前最常用的词嵌入模型之一。Word2Vec实际是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW(Continues Bag of Words)和Skip-gram。感兴趣的需要深入了解。

6.在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?

  该问题作者首先给出了一个很好的观点,“信息的来源”。

  一个模型所能提供的信息一般来源于两个方面, 一是训练数据中蕴含的信息;二是在模型的形成过程中(包括构造、 学习、 推理等),人们提供的先验信息。当训练数据不足时,说明模型从原始数据中获取的信息比较少,这种情况下要想保证模型的效果,就需要更多先验信息。先验信息可以作用在模型上,例如让模型采用特定的内在结构、条件假设或添加其他一些约束条件;先验信息也可以直接施加在数据集上,即根据特定的先验假设去调整、变换或扩展训练数据,让其展现出更多的、更有用的信息,以利于后续模型的训练和学习。

  具体到图像分类任务上,训练数据不足带来的问题主要表现在过拟合上,也就是训练效果好,测试效果差。

  解决过拟合一般有两种方法:一是基于模型的方法,采取降低过拟合风险的措施,如简化模型(非线性模型简化为线性模型)、添加惩罚项以缩小参数假设空间(L1/L2正则化)、集成学习、DropOut等;二是基于数据的方法,进行数据扩充,即根据一些先验知识,在保持特定信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果。

  具体到图像分类任务上,如何缓解数据量不足带来的问题?

  (1)进行数据增强。

    ①变换观察角度类。在一定程度内,进行随机旋转、平移、缩放、裁剪、填充、左右翻转等。

    ②噪声扰动类。对图像中的像素添加噪声扰动,比如高斯噪声等。

    ③颜色变换类。如在图像的RGB颜色空间上进行主成分分析,对主成分变量添加增量,改变整体颜色。

    ④图像显示类。改变图像的亮度、清晰度、对比度、锐度等。

  (2)除了直接在图像空间进行变换之外,还可以对图像进行特征提取,然后在特征空间内进行变换,利用如SMOTE算法等进行数据扩充。

  (3)另外,现在非常火的GANs,可以利用生成器来生成一些训练样本。

  (4)针对小样本的弱监督学习模型也是可以考虑的一个解决方法。

  (5)利用预训练网络进行迁移学习,再使用自身数据进行微调,也不失为一种选择。

程序员面试宝典:百面机器学习+百面深度学习算法工程师带你去面试

作者:葫芦娃,诸葛越,江云胜出版社:人民邮电出版社品牌:异步图书出版时间:2020-08-01程序员面试宝典:百面机器学习+百面深度学习算法工程师带你去面试 查看详情

《百面机器学习算法工程师带你去面试》pdf版+epub版

下载:https://pan.baidu.com/s/1DgV5JxWZgyQBKd7wkMXmWw《百面机器学习算法工程师带你去面试》高清PDF版,392页,带书签目录,文字可以复制;《百面机器学习算法工程师带你去面试》高清epub版,101页,带书签目录,文字可以复制。本书作... 查看详情

:特征工程

  🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃🎁欢迎各位→点赞👍+收藏⭐️+留... 查看详情

特征工程学习01-sklearn单机特征工程

特征工程学习01-sklearn单机特征工程小书匠 kindle 0.数据的导入fromsklearn.datasetsimportload_iris  #导入IRIS数据集 iris=load_iris()  #特征矩阵 print(iris.data[:5],len(iris.data))   查看详情

特征工程专题

特征工程Feature-Engineering中文版特征学习笔记_Fire特征选择缺失值处理数据预处理_林逸飞 查看详情

天池二手车_特征工程(代码片段)

前面已经做了类别和连续特征的分析,本文将针对特征工程进行导入数据importpandasaspdimportnumpyasnpimportmatplotlibimportmatplotlib.pyplotaspltimportseabornassns%matplotlibinline#导入训练集和测试集train_data=pd.read_csv(‘F:\python\天池_二手车交易价格... 查看详情

特征工程

不会做特征工程的AI研究员不是好数据科学家!上篇-连续数据的处理方法不会做特征工程的AI研究员不是好数据科学家!下篇-离散数据的处理方法特征处理(FeatureProcessing)【机器学习】特征工程七种常用方法离... 查看详情

ai学习---特征工程(featureengineering)(代码片段)

为什么需要特征工程(FeatureEngineering)  数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已什么是特征工程帮助我们使得算法性能更好发挥性能而已sklearn主要用于特征工程pandas主要用于数据清洗、数据... 查看详情

特征工程

不会做特征工程的AI研究员不是好数据科学家!上篇-连续数据的处理方法不会做特征工程的AI研究员不是好数据科学家!下篇-离散数据的处理方法特征处理(FeatureProcessing)【机器学习】特征工程七种常用方法离... 查看详情

特征工程之归一化及标准化(代码片段)

特征的预处理:对数据进行处理特征处理:通过特定的统计方法(数学方法)将数据转换成算法要求的数据 归一化:多个特征同等重要的时候需要进行归一化处理目的:使得某一个特征对最终结果不会造成更大影响归一化API... 查看详情

mybatis_笔记_01_逆向工程

通过Mybatis逆向工程,可以从数据库中的表自动生成pojo、mapper映射文件和mapper接口此处暂存怎么使用逆向工程,原理以后再探讨 工程结构 要修改的地方:generatorConfig.xml配置文件中数据库信息(用户名、密码等)、指定数... 查看详情

特征工程(完)(代码片段)

...学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理(上)特征工程之数据预处理(下)特征工程之特征缩放&特征编码这也 查看详情

04_特征工程

1.FeatureScaling对数据的自变量或特征范围进行标准化的一种方法。在数据处理中,它也称为数据规范化,通常在数据预处理步骤中执行。 为什么要进行FeatureScaling:如果输入范围变化,在某些算法中,对象函数将不能正常工作... 查看详情

机器学习实战基础(十八):sklearn中的数据预处理和特征工程特征选择之wrapper包装法

Wrapper包装法 包装法也是一个特征选择和算法训练同时进行的方法,与嵌入法十分相似,它也是依赖于算法自身的选择,比如coef_属性或feature_importances_属性来完成特征选择。但不同的是,我们往往使用一个目标函数作为黑盒... 查看详情

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.19

现代软件工程团队项目贝塔阶段_开发日志_2018.01.15-2018.01.192018.01.15已完成:1.版本上线 1.1上线操作步骤 1.1.1将网站整体文件夹拷贝到keqi11.1.2修改microDefinition.php的数据库名和根目录名1.1.3修改注册界面发送验证码后直接填... 查看详情

01_教育4

...onallyadv.个人地personalisev.人格化personalisationn.人格化traintn.特征Theysuddenlyshowanewtrait.它们突然呈现一种新的特征。personalitytrait个性特征transformationn.转变Thisplanmeansacompletetransformation.这份计划意味着全面的转变。amajortransformation重大... 查看详情

特征工程(代码片段)

目录特征工程处理分类特征处理数值特征缺失值的处理特殊符号的处理np.clip()数据分布特征工程select_dtypes可以选择指定类型的数据#Createsubsetofonlythenumericcolumnsso_numeric_df=so_survey_df.select_dtypes(include=['int','float'])处理分... 查看详情

[机器学习与scikit-learn-50]:特征工程-特征选择(降维)-5-二级过滤-特征值与标签之间的关系:f过滤与互信息量法过滤(代码片段)

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124080785目录前言:第1章F检验代码示例1.1过滤条件为02.2过滤条件为0.... 查看详情