机器学习算法工程师面试集锦(更新中)

  • 面试问题汇总
    • 常用的损失函数
    • 介绍交叉验证
    • 特征选择方法
    • 机器学习项目的一般步骤
    • 经验风险最小化与结构风险最小化
    • 训练决策树时的参数是什么
    • 在决策树的节点处分割标准是什么
    • 决策树的剪枝策略
    • 基尼系数的公式
    • 熵的公式是什么
    • 决策树如何决定在哪个特征处分割
    • 随机森林的优点有哪些
    • 为什么要模型融合,模型融合方法有哪些
    • 介绍一下boosting
    • Bagging 和 Boosting区别
    • gradient boosting如何工作
    • GBDT和XGBoost区别
    • 关于AdaBoost算法,你了解多少?它如何工作?
    • SVM中用到了哪些核?SVM中的优化技术有哪些?
    • SVM和LR的区别
    • SVM如何学习超平面?用数学方法详细解释一下。
    • 介绍一下无监督学习,算法有哪些?
    • 聚类方法有哪几种?
    • 在K-Means聚类算法中,如何定义K?
    • 讲一下PCA
    • 讲一下LDA
    • Isolation Forest——异常检测(没问过,但我把它总结在这里)
    • ReLU函数的性质(相比sigmoid)
  • 参考资料

面试问题汇总

问题来自于牛客,公众号,以及自己的亲身体验。

常用的损失函数

  • 0-1损失函数
  • 平方损失函数
    L(Y,f(X))=(Y-f(X))^2
  • 绝对损失函数
    L(Y,f(X))=|Y-f(X)|
  • 对数损失函数
    L(Y,P(Y|X))=-log P(Y-|X)

介绍交叉验证

  • 简单交叉验证
  • K折交叉验证
  • 留一交叉验证

特征选择方法

  • 递归特征消除RFE(网上有很多RFE资料)
  • 基于学习模型的特征排序
  • 去掉取值变化小的特征

机器学习项目的一般步骤

  • 问题抽象
  • 数据获取
  • 特征工程(数据清洗,预处理,采样)
  • 模型训练、调优
  • 模型验证、误差分析
  • 模型融合
  • 模型上线

经验风险最小化与结构风险最小化

  • 经验风险最小化
    统计学中的极大似然估计(Maximum Likelihood Estimation MLE)就是经验风险最小化的一个典型的例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化与极大似然估计等价。虽然在样本数量足够大的情况下,经验风险最小化求解出来的模型能够取得不错的预测效果,但是当训练数据集也就是样本容量比较小时,基于经验风险最小化训练出来的模型往往容易过拟合
  • 结构风险最小化
    与经验风险最小化对应的叫做结构风险最小化。结构风险最小化是为了防止过拟合而提出来的一种策略,它与正则化等价。结构风险在经验风险的基础上加上表示模型复杂度的正则化项或者罚项。其定义如下:

训练决策树时的参数是什么

class sklearn.tree.DecisionTreeClassifier(criterion=‘gini’, splitter=‘best’, max_depth=None, min_samples_split=2,min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None,min_impurity_split=1e-07, class_weight=None, presort=False)
重要的参数
criterion:规定了该决策树所采用的的最佳分割属性的判决方法,有两种:“gini”,“entropy”。
max_depth:限定了决策树的最大深度,对于防止过拟合非常有用。
min_samples_leaf:限定了叶子节点包含的最小样本数,这个属性对于防止数据碎片问题很有作用。
min_weight_fraction_leaf: 这个值限制了叶子节点所有样本权重和的最小值,如果小于这个值,则会和兄弟节点一起被剪枝。 默认是0,就是不考虑权重问题。一般来说,如果我们有较多样本有缺失值,或者分类树样本的分布类别偏差很大,就会引入样本权重,这时我们就要注意这个值了。
min_samples_split:部节点再划分所需最小样本数。这个值限制了子树继续划分的条件,如果某节点的样本数少于min_samples_split,则不会继续再尝试选择最优特征来进行划分。 默认是2.如果样本量不大,不需要管这个值。如果样本量数量级非常大,则推荐增大这个值。我之前的一个项目例子,有大概10万样本,建立决策树时,我选择了min_samples_split=10。可以作为参考。
参考博客

在决策树的节点处分割标准是什么

确定最优划分特征的方法是整个决策树的关键部分。最优划分特征的选择基于一个目标:使得分裂后各个节点数据的“纯度”最高。即尽量使得通过该特征进行分类后的分支节点所包含的样本属于同一类别。选择一个合适的特征作为判断节点,可以快速的分类,减少决策树的深度。

决策树的剪枝策略

预剪枝:当分裂点对应的增益值不再增加时停止分裂。优点是计算时间上能保证最优
后剪枝:生成决策树后,递归的进行剪枝,剪去那些增益为负的叶子结点。优点是保证决策树最优,缺点是比预剪枝计算复杂度高

基尼系数的公式

熵的公式是什么

决策树如何决定在哪个特征处分割

根据信息增益决策划分节点时特征选择方法是:对训练数据集D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。

  1. 信息增益用在ID3决策树中,信息增益是依据熵的变化值来决定的值。
  2. 以信息增益作为划分数据集的特征,存在偏向于选择去取值较多的特征的问题,这时候可以使用信息增益比对这一问题进行修正。C4.5决策树正是基于信息增益比进行特征的选择进行结点的分割。
  3. CART树分为回归树和分类树,CART分类树结点选择特征进行分裂时选择特征的方法就是基尼指数。

随机森林的优点有哪些

参考博客

  • 表现性能好,与其他算法相比有着很大优势。
  • 随机森林能处理很高维度的数据(也就是很多特征的数据),并且不用做特征选择。
  • 在训练完之后,随机森林能给出哪些特征比较重要。
  • 训练速度快,容易做成并行化方法(训练时,树与树之间是相互独立的)。
  • 在训练过程中,能够检测到feature之间的影响。
  • 对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。
  • 如果有很大一部分的特征遗失,用RF算法仍然可以维持准确度。
  • 随机森林算法有很强的抗干扰能力(具体体现在6,7点)。所以当数据存在大量的数据缺失,用RF也是不错的。
  • 随机森林抗过拟合能力比较强(虽然理论上说随机森林不会产生过拟合现象,但是在现实中噪声是不能忽略的,增加树虽然能够减小过拟合,但没有办法完全消除过拟合,无论怎么增加树都不行,再说树的数目也不可能无限增加的。)
  • 随机森林能够解决分类与回归两种类型的问题,并在这两方面都有相当好的估计表现。(虽然RF能做回归问题,但通常都用RF来解决分类问题)。
  • 在创建随机森林时候,对generlization error(泛化误差)使用的是无偏估计模型,泛化能力强。

为什么要模型融合,模型融合方法有哪些

原因:
方法:Voting,Bagging,Boosting,Stacking

介绍一下boosting

Boosting算法是一种把若干个分类器整合为一个分类器的方法

Bagging 和 Boosting区别

  • 样本选择
  • 权重
  • 预测函数
  • 并行计算
    参考博客

gradient boosting如何工作

Gradient Boosting 在迭代的时候选择梯度下降的方向来保证最后的结果最好。

损失函数用来描述模型的“靠谱”程度,假设模型没有过拟合,损失函数越大,模型的错误率越高.

如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度方向上下降。

GBDT和XGBoost区别

关于AdaBoost算法,你了解多少?它如何工作?

  1. 给定训练样本集S,其中X和Y分别对应于正例样本和负例样本; T为训练的最大循环次数;
  2. 初始化样本权重为1/n ,即为训练样本的初始概率分布;
  3. 第一次迭代:
    (1) 训练样本的概率分布相当下,训练弱分类器;
    (2) 计算弱分类器的错误率;
    (3) 选取合适阈值,使得误差最小;
    (4) 更新样本权重;

经T次循环后,得到T个弱分类器,按更新的权重叠加,最终得到的强分类器。

SVM中用到了哪些核?SVM中的优化技术有哪些?

SVM和LR的区别

参考博客1、 参考知乎2

SVM如何学习超平面?用数学方法详细解释一下。

步骤1:读取想分类的数据集D
步骤2:找到两个平行超平面,可以划分数据并且两平面之间没有数据点。
步骤3:两个超平面之间的距离最大化

介绍一下无监督学习,算法有哪些?

K均值聚类(K-means clustering)
高斯混合模型(GMM)
自组织映射神经网络(SOM)

聚类方法有哪几种?

原型聚类、密度聚类以及层次聚类

在K-Means聚类算法中,如何定义K?

(1) 随机选取k个中心点;
(2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为该类;
(3) 更新中心点为每类的均值;
(4) j<-j+1 ,重复(2)(3)迭代更新,直至误差小到某个值或者到达一定的迭代步数,误差不变.
空间复杂度o(N)
时间复杂度o(IKN)
其中N为样本点个数,K为中心点个数,I为迭代次数
K值确定
法1:(轮廓系数)在实际应用中,由于Kmean一般作为数据预处理,或者用于辅助分聚类贴标签。所以k一般不会设置很大。可以通过枚举,令k从2到一个固定值如10,在每个k值上重复运行数次kmeans(避免局部最优解),并计算当前k的平均轮廓系数,最后选取轮廓系数最大的值对应的k作为最终的集群数目。
法2:(Calinski-Harabasz准则)
其中SSB是类间方差, ,m为所有点的中心点,mi为某类的中心点;
SSW是类内方差,;
(N-k)/(k-1)是复杂度;
比率越大,数据分离度越大.
法3:肘部法则
也称手肘法。尝试不同的k值,横轴为k,纵轴为误差平方和定义的损失函数,该法认为拐点就是k的最佳值。
法4:Gap Statistic
不需肉眼判断,找到最大的Gap Statistic对应的k
参考博客

讲一下PCA

PCA是比较常见的线性降维方法,通过线性投影将高维数据映射到低维数据中,所期望的是在投影的维度上,新特征自身的方差尽量大,方差越大特征越有效,尽量使产生的新特征间的相关性越小。具体操作为对所有的样本进行中心化操作,计算样本的协方差矩阵,然后对协方差矩阵做特征值分解,取最大的n个特征值对应的特征向量构造投影矩阵。

讲一下LDA

LDA 的全称是 Linear Discriminant Analysis (线性判别分析),它是一种有监督学习方法。LDA 的原理是:将带上类标的实例数据,通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分开。同一个类别的实例,在投影后的空间中将会更接近.

Isolation Forest——异常检测(没问过,但我把它总结在这里)

ReLU函数的性质(相比sigmoid)

  • (计算角度)采用 ReLU 的神经元只需要进行加、乘和比较的操作,计算上更加高效
  • (生物角度)ReLU 函数被认为有生物上的解释性,比如单侧抑制、 宽兴奋边界(即兴奋程度也可以非常高)
  • (稀疏性)Sigmoid 型激活函数会导致一个非稀疏的神经网络,而ReLU却具有很好的稀疏性,大约50%的神经元会处于激活状态。
  • (优化方面)相比于Sigmoid型函数的两端饱和, ReLU函数为左饱和函数,且在x > 0时导数为1,在一定程度上缓解了神经网络的梯度消失问题,加速梯度下降的收敛速度。

参考资料

部分答案来源

机器学习算法工程师面试集锦(更新中)相关推荐

  1. 机器学习算法工程师面试知识点汇总

    机器学习算法工程师面试知识点汇总 机器学习 梯度下降 k-means 1 × 1卷积核 模型 SVM Bagging & Boosting 随机森林 激活函数 Sigmod tanh ReLU ...

  2. 机器学习-算法工程师 -面试/笔试准备-重要知识点梳理

    原文地址:http://blog.csdn.net/lrs1353281004/article/details/79529818 整理了一下机器学习-算法工程师需要掌握的机器学习基本知识点,并附上了网 ...

  3. 机器学习算法工程师面试总结

    转自北邮人论坛 2017年即将过去,今年是忙碌的一年,从2月17还没开学就来学校,到现在12月初,工作的事情终于尘埃落定,现将这一段经历写下来,希望能帮助来年找工作的学弟学妹,同时,对自己来说,也是一 ...

  4. 机器学习算法工程师面试学习经验

    作为一个过来人,分享一点我的经验. 先介绍一下自己,本人是国内读的数学本科,北美top统计系硕士毕业,之后在FLAG之一的总部核心部门做数据科学家.期间面试过20-30名candidate. 想要找到 ...

  5. 【2020秋招】提前批陌陌机器学习算法工程师面试经验

    铺垫 时间:9.2日中午1点钟 地点:西工大翱翔会议中心(一开始去成翱翔训练馆了= =,绕着西工大走了一大圈) 形式:现场面试,如果顺利的话,会有2-3轮技术面试,1轮HR面试,HR小哥哥不错. 面试 ...

  6. 机器学习算法工程师面试总结(基于个人简历自用)

    机器学习 回归和分类的相同点和不同点? 相同点:都是对输入做预测,属于有监督学习. 不同点:输出不同.目的不同.结果不同. 分类的输出是离散的.是所属类别.是定性的,回归的输出是连续的.是值.是定量的 ...

  7. 华为车BU机器学习算法工程师面试经验

    作者:Klause 来源:投稿 编辑:学姐 首先是机考 机考一共600分,三道题.一道100分,一道200分,一道300分.只要拿够一百分就算过. 第1题:数组 给定一个数组,数组各个元素代表每个礼物 ...

  8. 机器学习算法工程师面试经验谈:以个性化推荐算法为例

    向AI转型的程序员都关注了这个号

  9. kmeans聚类算法_机器学习/算法校招面试考点汇总(附面试题和答案)【持续更新】_笔经面经...

    以下不作为机器学习/算法工程师的学习路径,只是汇总的校招机器学习/算法工程师面试考点(因为还有笔试考点,后面结合在一起给大家学习路径),后续会为大家更新10w+字数的机器学习/算法工程师校招面试题库, ...

最新文章

  1. 试图更改利润中心,但物料库存仍然存在
  2. 京东向下沉市场打出“京喜”,拼多多和阿里惊不惊喜?
  3. React开发(263):react中处理时间的判断
  4. win8计算机管理员权限删除文件,win8系统使用管理员权限无法删除部分文件怎么办...
  5. python中的ix是啥_pandas中ix的使用详细讲解
  6. 一周内被程序员疯转 2.4 W次,最终被大厂封杀!
  7. 【李宏毅2020 ML/DL】P97-98 More about Meta Learning
  8. 安装logstash-7.9.3和filebeat-7.9.3
  9. 【CC2640R2F】香瓜CC2640R2F之LED
  10. php基础-基本语法
  11. MATLAB 距离函数及用法
  12. php旧物交易开源代码_仿互站PHP源码 虚拟物品在线交易网站源码 附14套风格
  13. -f shell 模糊匹配_shell模糊匹配与正则详解
  14. 左撇子的成长指南:我是左撇子.TXT
  15. 前端使用身份证阅读器(高拍仪)集成vue项目
  16. python 安装失败 errorcode 2203_win10系统安装软件出现the error code is 2203错误怎么办...
  17. c语言编程显示未定义的引用,c – 链接时奇怪的未定义引用
  18. 在vue中使用高德地图添加窗体
  19. 【科普贴】LDO电源详解
  20. mac 浏览器解决跨域问题

热门文章

  1. linux下查看opencv安装路径以及版本号;多个opencv管理
  2. Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法(亲测)
  3. stc15w系列单片机——TCRT5000(寻迹传感器)与光敏传感器(附代码)
  4. php 怎么上传图片,php怎么把图片上传到图片服务器
  5. [转载]C语言图形处理
  6. 用Python实现地理探测器
  7. 安卓项目实战之快速集成emojicon表情开源库
  8. oracle成本cbo,基于成本的优化器(CBO)
  9. 网页特效应用二期(电脑新建一个文本文档复制粘贴改后缀名为.html就能用)
  10. 一张图,三分钟看懂什么是动态IP,内网和外网