机器/深度学习面试题集锦

什么是特征工程?
答:也是对数据的处理,使得特征集在算法上发挥更好作用的过程。

 

为什么需要特征工程?
答:数据特征决定了机器学习的上限,而模型算法只是逼近这个上限而已。

特征工程中,为什么将类别转换成one-hot编码?
答:因为类别无差异,使用one-hot编码可以平等对待所有类别;然后通过稀疏矩阵来减少存储空间。

 

为什么我们要进行归一化/标准化?
答:特征数值相差太大,不利于计算;我们需要进行无量钢化,使不同规格的数据转换到同一规格。

什么是归一化?
答:通过对原始数据进行变换把数据映射到(默认为[0,1])之间

归一化计算有何问题?缺点?怎么解决?
答:如果数据集中异常点比较多,而且异常点往往出现在最大值or最小值,那么归一化出来的结果就不可用了。所以通常使用标准化

 

什么是降维?
答:降低特征个数,得到一组“不相关”主变量的过程。

为什么要尽量使得特征之间“不相关”?
答:模型是通过特征进行学习的,如果特征大量冗余或者许多特征之间都具有相关性,那么对于算法学习预测会影响较大。

 

为什么要进行交叉验证?
答:在有限的数据集下,使得被评估的模型更加准确可信。

 

 

CPU与GPU的区别?
答:
CPU:"诸葛亮"
综合能力比较强
核芯的数量更少
更适用于处理连续性任务

GUP:"臭皮匠"
专做某一个事情很好
核芯的数量更多
更适用于并行任务

 

文本的表示方法?

答:

一、稀疏式表示(wordOfbag、count、tf-idf)   one-hot型

二、分布式表示

1.基于矩阵

2.基于神经网络(词向量)

 

TF-IDF了解吗?

答:一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少,TFIDF越大。

tf=词频

idf=逆文件频率

 

 

100维的one-hot表示法最多可以表达多少个不同的单词?

答:100

100维的分布式表示法最多可以表达多少个不同的单词?

答:2^100  (无穷个)

 

如何判断一个模型是否为线性模型?
答:
根本判断:看决策边界是否为直线
补充判断:X自变量是否为一次的,或者x前的系数w是否仅作用于一个x上

逻辑回归是线性模型!!广义线性模型!!

 

模型复杂度由哪些因素决定?
答:
1.模型本身的选择
2.模型参数的个数
3.模型的参数空间选择
4.样本数量

参数空间的选择:同样可以决策分界的两个超平面,一个更复杂,一个更简单,这个由模型参数控制;一般采用正则化来约束模型过于复杂而导致过拟合。

 

正则化的作用?
答:

正则化就是在损失函数上加上一个惩罚项,用于控制模型的复杂度,防止过拟合。

谈一下L1\L2正则化?

答:

L1:λ*|w|

L2:λ*w2

lasso回归=线性回归+L1

岭回归=线性回归+L2

 

L1正则化与L2正则化最大的区别?
答:

L1更趋向于产生少量的特征,其它特征为0,最优的参数值很大概率出现在坐标轴上,从而导致产生稀疏的权重矩阵,而L2会选择更多的矩阵,但是这些矩阵趋向于0。

L1会产生的sparse solution(稀疏矩阵)
L2会产生的Non-sparse solution
比如:L1会导致w参数中许多为0,也表示一些特征对模型决定无影响。
要使得θ变小:用L2
要θ变成稀疏矩阵:用L1

 

 

从几个维度分析一个函数?(分析目标函数)

答:可以从以下4个维度
一、【平滑性】smooth vs Non-Smooth
看是否在任意点上可以进行求导

二、【凸函数】Convex vs Non-Convex(非凸函数难)

三、【约束条件】(越多约束条件越难)

四、【连续性】定义域:连续性 vs 离散型 (定义域为离散型的难)

 

如何处理定义域为离散型的问题?
答:

【第一步:Relaxation】
思路:Relaxation=问题的松弛化,在有限时间内找到较优的解
比如:xi只能取值0或1,转化为xi=[0,1]

【第二步:求证局部最优解较靠近全局最优解】

 

决策树中三种算法?分别使用场景?

答:决策树分为三种ID3,C4.5和CART,分别是用信息增益、信息增益率、GINI系数作为分裂节点的依据。

ID3:信息增益值

C4.5:信息增益率

CART:GINI系数

决策树的构建关键在于如何分裂节点,以上是3种分裂节点的算法依据。

ID3缺点:当一个属性可取值数目较多时,可能在这个属性对应值下的样本只有一个或者很少个,此时它的信息增益将很高,ID3会认为这个属性很适合划分,但实际情况下叫多属性的取值会使模型的泛化能力较差,所以C4.5不采用信息增益作为划分依据,而是采用信息增益率作为划分依据。但是仍不能完全解决以上问题,而是有所改善,这个时候引入了CART树,它使用gini系数作为节点的分裂依据。

CART构造树的过程?

答:根据gini,分裂节点并且构造出一颗二叉树,如果是特征节点有多属性,那么会尝试所有可能分别计算最优。

把一个属性作为二叉其中一支,其他属性归为另外一支。

递归式生成CART树。gini系数越大越不纯,所以gini系数小的属性靠近根节点。

 

优点:

1.可解释性高

2.可处理线性不可分割数据

3.不需要数据归一化

4.可用于特征选择:节点越靠近根节点的属性,越重要。

 缺点:

1.容易过拟合(于是有了随机森林

2.对不均衡数据不友好

决策树过拟合原因?(一定要分析)
样本问题:1.噪音数据 2.抽样错误 3.无用特征
模型问题:1.树无限制自由生长

如何解决?
答:
样本问题:合理抽样,类别均衡
模型问题:
前剪枝,提前设定阈值限定树的增长;例如:定义树的深度,最小实例数,信息增益率来。
后剪枝,对已经生成的树按照一定规则进行剪枝。REP,删除节点利用验证集数据来评估此节点是否真的可删除。

随机森林原理?

答:随机森林是一种集成模型,构造多颗树来对样本进行训练及预测的一种分类器。

随机体现在两方面:一是样本随机,二是特征随机。

使得森林中每棵树都能不同,投票得到最终分类,从而提升分类性能,泛化能力,防止过拟合。

有哪些参数?

1.树的个数(奇数)、树的深度(太深易过拟合)

2.样本数、特征数

3.叶子节点的数量

 

优点:

防止过拟合,准确率高,训练速度快

缺点:

黑盒子

 

有哪些基于的算法?

答:常见的基于核的算法包括:支持向量机(Support Vector Machine,SVM), 径向基函数(Radial Basis Function,RBF),以及线性判别分析(Linear Discriminate Analysis,LDA)等。

 

有哪些降维的算法?

答:

常见的算法包括:主成份分析(Principle Component Analysis,PCA),偏最小二乘回归(Partial Least Square Regression,PLS),Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等。

还有LDA,LDA是一种基于有监督学习的降维方式,将数据集在低维度的空间进行投影,要使得投影后的同类别的数据点间的距离尽可能的靠近,而不同类别间的数据点的距离尽可能的远。

 

 


 

新来词不在词向量列表中,如何处理?todo...

 

 

分词原理?
答:方法有两种:基于匹配规则和基于概率
【基于匹配规则】:
1>前向/后向/双向最大匹配分词算法(窗口大小)

【基于概率】:
1>使用语言模型来进行分词(unitgram)
2>时序模型有HMM和CRF等,底层其实是维特比算法,也是动态规划算法。

 

jieba分词原理?

答:基于概率语言模型

jieba自带一个词典2W多词+词性(存储结构:前缀树)

两步:

1.将句子切分成所有可能

2.寻求概率最大的那种可能

涉及算法:

1.利用前缀树实现高效词图扫描,生成有向无环图(所有可能)

2.采用动态规划查找图的最优路径(最大概率)

 

oov未登记词怎么办?(就是在jiaba词典中未见过的词)

答:基于HMM模型,使用viterbi算法

 

word2vec、glove原理?(预测词的)
答:词向量模型,都是为了训练处词向量的。
word2vec两种训练方式,cbow(上下文预测中心词)和skip-gram(中心词预测上下文)。
用三层神经网络即可训练(输入层、映射层、输出层), 输出层为层次softmax
word2vec中两个trick:
1.层次softmax
2.负例采样
glove则是对共现矩阵进行降维,得到词向量。
差异不大,glove更容易并行训练更快。
Glove包:训练glove
gensim包:训练word2vec
word2vec缺点?
答:
1.一词多义问题(使用预训练模型来解决)
2.局部视角,窗口大小受限
3.OOV问题
4.未考虑语序
OOV问题怎么处理?
OOV就是out of vecabulary,未登记词,在训练数据中没出现再测试数据中有。
答:
1)直接忽略
2)subword Model  (像fasttext就是如此的)   继续进行分词,或者词库加上未登记词。
为什么word2vec输出层是层次softmax?而不是普通softmax?
答:根本原因就是减少计算量,提高计算速度!
层次softmax构建了一颗哈弗曼树,不必计算所有词的打分只需要计算根到叶的概率即可(log(V))
word2vec中滑动窗口设定大小有何影响?
答:默认为5,可以理解为中心词被上下文影响的范围,窗口越大,参考上下文距离越长。

fastText原理?(预测句子的)
答:将句子中词映射成词向量,然后将词向量取平均成句向量,然后接一个线性分类器,实现文本分类效果。
但对于情感类,或者需要考虑语序的,无法胜任。

 

常用处理过拟合问题?

答:

1.正则化--L1/L2

2.early stopping

3.加噪音--dropout   p是超参试出来的  (集成模型)

 

dropout的原理作用和实现?

答:dropout本质就是加噪音,在神经网络层中随机使某些神经元失活从而达到防止过拟合效果。

像是tensorflow和keras都有对dropout专门的封装,直接使用即可。

 

优化模型和调参?方法论

答:

【传统机器学习】拿决策树、随机森林为例子

第一步:明确要调整的参数

1.树的个数n_estimaters

2.两个max:最大深度max_depth、最大特征数

3.两个min:叶节点最小样本数,允许分裂节点最小样本数min_samples_split

4.分裂算法critertion

第二步:选择合适方法进行调参

方式1:使用网格搜索GridSearchCV,逐个参数进行K折交叉验证调参。

方式2:随机网络搜索RandomizedSearchCV()

 

 

【深度机器学习】

2

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

机器/深度学习面试题集锦
嘿!有什么能帮到您的吗?
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close