数据分析之机器学习与数据挖掘高频面试题及答案

机器学习与数据挖掘-4

16.lstm的原理、lstm和rdd的区别(猿辅导)

参考答案

LSTM原理:

LSTM 是一种特殊的RNN。通过精巧的设计(CNN中的深度残差网络也是类似)解决长序列训练过程中的梯度消失和梯度爆炸问题(即远距离传递导致的信息丢失问题)。标准RNN由简单的神经网络模块按时序展开成链式。这个重复模块往往结构简单且单一,如一个tanh层。这种记忆叠加方式显得简单粗暴。LSTM内部有较为复杂的结构。能通过门控状态来选择调整传输的信息,记住需要长时记忆的信息,忘记不重要的信息。LSTM关键在于增加一条贯穿与链上的信息传送带,称为细胞状态(cell state)。LSTM通过精心设计门结构来对cell state上的信息进行增添和移除。门是使得信息选择式通过的方法。包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作。Sigmoid 层输出0到1之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 代表“允许任意量通过”。LSTM通过三个门结构来维护cell state上的信息。

RNN和LSTM的区别如下:

1.RNN没有细胞状态;LSTM通过细胞状态记忆信息。

2.RNN激活函数只有tanh;LSTM通过输入门、遗忘门、输出门引入sigmoid函数并结合tanh函数,添加求和操作,减少梯度消失和梯度爆炸的可能性。

3.RNN只能够处理短期依赖问题;LSTM既能够处理短期依赖问题,又能够处理长期依赖问题。

答案解析

这道题主要是考察对LSTM的理解,以及与其他神经网络算法的区别

 

17.处理噪声数据方法(京东)

参考答案

1、分箱

分箱方法是一种简单常用的预处理方法,通过考察相邻数据来确定最终值。所谓“分箱”,实际上就是按照属性值划分的子区间,如果一个属性值处于某个子区间范围内,就称把该属性值放进这个子区间所代表的“箱子”内。把待处理的数据(某列属性值)按照一定的规则放进一些箱子中,考察每一个箱子中的数据,采用某种方法分别对各个箱子中的数据进行处理。在采用分箱技术时,需要确定的两个主要问题就是:如何分箱以及如何对每个箱子中的数据进行平滑处理。

分箱的方法:有4种:等深分箱法、等宽分箱法、最小熵法和用户自定义区间法。

(1)统一权重

也称等深分箱法,将数据集按记录行数分箱,每箱具有相同的记录数,每箱记录数称为箱子的深度。这是最简单的一种分箱方法。

(2)统一区间

也称等宽分箱法,使数据集在整个属性值的区间上平均分布,即每个箱的区间范围是一个常量,称为箱子宽度。

(3)用户自定义区间

用户可以根据需要自定义区间,当用户明确希望观察某些区间范围内的数据分布时,使用这种方法可以方便地帮助用户达到目的。

例:客户收入属性income排序后的值(人民币元):800 1000 1200 1500 1500 1800 2000 2300 2500 2800 3000 3500 4000 4500 4800 5000,分箱的结果如下。

统一权重:设定权重(箱子深度)为4,分箱后

箱1:800 1000 1200 1500

箱2:1500 1800 2000 2300

箱3:2500 2800 3000 3500

箱4:4000 4500 4800 5000

 

统一区间:设定区间范围(箱子宽度)为1000元人民币,分箱后

箱1:800 1000 1200 1500 1500 1800

箱2:2000 2300 2500 2800 3000

箱3:3500 4000 4500

箱4:4800 5000

 

用户自定义:如将客户收入划分为1000元以下、、2000-3000、3000-000和4000元以上几组,分箱后

箱1:800

箱2:1000 1200 1500 1500 1800 2000

箱3:2300 2500 2800 3000

箱4:3500 4000

箱5:4500 4800 5000

(4)数据平滑方法

数据平滑方法又可以细分为:平均值平滑、按边界值平滑和按中值平滑。

按平均值平滑

对同一箱值中的数据求平均值,用平均值替代该箱子中的所有数据。

按边界值平滑

用距离较小的边界值替代箱中每一数据。

按中值平滑

取箱子的中值,用来替代箱子中的所有数据。

2、聚类

将物理的或抽象对象的集合分组为由类似的对象组成的多个类。

找出并清除那些落在簇之外的值(孤立点),这些孤立点被视为噪声。

3、回归

试图发现两个相关的变量之间的变化模式,通过使数据适合一个函数来平滑数据,即通过建立数学模型来预测下一个数值,包括线性回归和非线性回归。

答案解析

这道题主要考察对噪声数据的处理,在建模过程中,前期数据的处理非常麻烦,所以对噪声数据的处理就更加重要了。常用的噪声处理有3种,为分箱,聚类,回归。

 

18.了解逻辑回归、决策树吗(贝壳找房)

参考答案

逻辑回归:

逻辑回归是用来做分类算法的,大家都熟悉线性回归,一般形式是Y=aX+b,y的取值范围是[-∞, +∞],有这么多取值,怎么进行分类呢?不用担心,伟大的数学家已经为我们找到了一个方法。也就是把Y的结果带入一个非线性变换的Sigmoid函数中,即可得到[0,1]之间取值范围的数S,S可以把它看成是一个概率值,如果我们设置概率阈值为0.5,那么S大于0.5可以看成是正样本,小于0.5看成是负样本,就可以进行分类了。

Sigmoid函数如下:

 

函数中t无论取什么值,其结果都在[0,-1]的区间内,回想一下,一个分类问题就有两种答案,一种是“是”,一种是“否”,那0对应着“否”,1对应着“是”,那又有人问了,你这不是[0,1]的区间吗,怎么会只有0和1呢?这个问题问得好,我们假设分类的阈值是0.5,那么超过0.5的归为1分类,低于0.5的归为0分类,阈值是可以自己设定的。

好了,接下来我们把aX+b带入t中就得到了我们的逻辑回归的一般模型方程:

结果P也可以理解为概率,换句话说概率大于0.5的属于1分类,概率小于0.5的属于0分类,这就达到了分类的目的。

决策树:

决策树是一种机器学习的方法。决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

决策树的构造过程:

决策树的构造过程一般分为3个部分,分别是特征选择、决策树生产和决策树裁剪。

(1)特征选择:

特征选择表示从众多的特征中选择一个特征作为当前节点分裂的标准,如何选择特征有不同的量化评估方法,从而衍生出不同的决策树,如ID3(通过信息增益选择特征)、C4.5(通过信息增益比选择特征)、CART(通过Gini指数选择特征)等。

目的(准则):使用某特征对数据集划分之后,各数据子集的纯度要比划分钱的数据集D的纯度高(也就是不确定性要比划分前数据集D的不确定性低)

(2)决策树的生成

根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。这个过程实际上就是使用满足划分准则的特征不断的将数据集划分成纯度更高,不确定行更小的子集的过程。对于当前数据集的每一次划分,都希望根据某个特征划分之后的各个子集的纯度更高,不确定性更小。

(3)决策树的裁剪

决策树容易过拟合,一般需要剪枝来缩小树结构规模、缓解过拟合。

决策树主要的算法有ID3,C4.5和CART,感兴趣的小伙伴可以深入研究。

 

19.常用pandas哪个包(京东)

参考答案

pandas中主要有两种数据结构,分别是:Series和DataFrame。

Series:一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。

DataFrame:一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

常用功能:

①读入CSV

data = pd.read_csv('C:\Users\xxx.csv')

如果涉及中文标题,加入参数:data = pd.read_csv('C:\Users\xxx.csv',encoding='GBK')

②获取行名、列名、行数、列数

data.dtypes # 查看dataframe 的数据类型

data.columns # 列名列表

data.shape #获取行列,返回数组,可以在后面加[0] 行 [1] 列

data.describe() #常看数据统计

③重命名

重命名所有列data.columns = ['A','B'] 按照顺序重新命名所有列

data.rename(columns={'A':'a', 'B':'b', 'C':'c', 'D':'d'}, inplace = True) 这种方式可以任意更改列名,且不用注意顺序。

④新增列、删除行

data['a'] = data['b']- 1 新增列并赋值

data.drop['2'] 删除索引为2的行

⑤筛选

筛选行列: df.at、 df.ix、df.loc、df.iloc等用法

df.ix 可以用数字也可以用列明来筛选 如: data.ix[1,1] data.ix["a","B"]

df.loc 只能用行名和列名来筛选 data.loc["b","B"] data.loc['b':'c','B','C']

df.iloc 只能用数字 data.loc[1,1]

df.at 可以支持数字行序和列名的混合使用: data[1,'a'] 可支持变量序号 如: for i in range(0,100): print(data.at[i,'shop_name'])

筛选空值、等于某值:

单条件:df[df.D>0]

多条件:df[(df.D>0)&(df.C<0)]

包含多值:df.A.isin([‘重庆’,’成都’])

⑥分组

data.groupby("a") #按照a列来分组处理数据,可以对处理后的数据进行sum(),count(),mean()等方式处理

答案解析

这道题主要考察对pandas的使用,只要说出pandas常用的功能及使用方式即可

 

20.PCA知道吗(广联达)

参考答案

在统计学中,主成分分析(PCA)是一种简化数据集的技术。它是一个线性变换。这个变换把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。

PCA的算法步骤如下:

设有m条n维数据。

1、将原始数据按列组成n行m列矩阵X

2、将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

3、求出协方差矩阵

4、求出协方差矩阵的特征值及对应的特征向量

5、将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

Y=PX即为降维到k维后的数据

答案解析

这道题主要考察PCA主成分分析,只要将主成分分析的基本概念描述出来即可

#学习路径#
全部评论
多谢楼主分享总结!收藏学习!
点赞 回复
分享
发布于 2022-02-14 18:00
谢谢楼主分享!😁
点赞 回复
分享
发布于 2022-02-28 22:56
联易融
校招火热招聘中
官网直投

相关推荐

一、团队名称蚂蚁集团-信贷事业群-风险管理部 二、关于我们邀请你加入一个专业、严谨、创新的团队,我们是蚂蚁集团信贷事业群的风险管理部门,我们通过搭建智能化风控策略和数据知识驱动的模型体系为亿级消费者提供普惠金融的服务,我们管理着万亿级资产,致力于运用机器学习、深度学习、图计算、知识图谱、运筹优化、大模型等前沿算法和技术在风险管理领域里不断探索升级我们的智能风控核心能力,为消费金融服务保驾护航。在这里,你将与海内外著名高校毕业的校友,金融机构大牛,以及深耕互联网金融的行业精英们共同工作,持续尝试用新的算法与技术来提升消费者的体验。&nbsp;我们有强大的平台,优秀的团队,成熟的人才培养机制,欢迎你的到来!三、岗位类型&nbsp;【算法工程师】1.计算机、数学、统计、运筹学、金融、经济学或相关专业,硕士及以上学历优先。2.良好的编程功底,至少熟练使用C/C++、JAVA、Python、R等主流编程语言中的一门。3.熟悉机器学习、数据挖掘、统计学、运筹学中至少一个方向的主流算法及原理。4.较强的学习能力和逻辑性,良好的建模思维,对前沿技术有热情。5.具备以下一个或多个经验的优先:&nbsp;&nbsp;-参加各项比赛,包括但不限于ACM-ICPC、Kaggle、天池大赛瓶奖&nbsp;&nbsp;&nbsp;-在NIPS、ICML、KDD、AAAI、IJCAI等顶会上发表过论文&nbsp;&nbsp;&nbsp;-参与过知名开源项目,或参与过大模型应用,大型机器学习、数据挖掘项目&nbsp;&nbsp;&nbsp;-能够在Tensorflow、PyTorch、Spark等至少一种主流框架上开发算法。四、工作地点杭州 五、联系方式fenghaijie.fhj@antgroup.com
投递蚂蚁集团等公司10个岗位
点赞 评论 收藏
转发
9 128 评论
分享
牛客网
牛客企业服务