机器学习工程师面试问题
这机器学习工程师角色是一个高度技术性的角色,通常与公司相关,其主要产品线有一个非常强大的数据驱动组件。机器学习工程师具有与数据科学家但特别专注于模型建设的设计和应用,利用机器学习解决现实世界问题。因此,机器学习工程师将研究理论基础和机器学习的实际应用,并在统计,优化,数据挖掘和算法设计等相关领域特别强大。
他们知道如何为一个特定的问题选择正确的模型类型,有各种各样的模型可供他们使用。对于每个模型,他们了解局限性和假设,如何调优和改进模型性能,以及使用正确的度量来评估模型的准确性。研究通常是这一职位的核心技能,拥有博士学位等强大研究背景的候选人非常受欢迎。从实践的角度来看,候选人将有使用专门的机器学习工具和包的经验,如scikit-learn (Python), Spark ML, R, Mahout等。应聘者通常有计算机科学或统计学背景。
特定角色问题
(了解模型如何运作)
一个奇妙的方式来开始和建立技术对话是让候选人描述如何熟悉它们的模型。技术面试往往对候选人来说往往非常紧张,这是让候选人轻微放松的一种方式,谈论他们有更多经验的事情。如果他们选择非常简单的东西并不重要,因为目标是看候选人是否真正了解模型,而且不仅仅知道基础知识。在作为K-Collessbors或线性回归的内容上进入大量深度可以非常透露候选人。
- 模型试图解决什么类型的问题?
- 它是否容易过度拟合?如果是这样,我们能做些什么呢?
- 该模型是否对数据进行了任何重要的假设?什么时候可能是不现实的?我们如何检查数据以测试这些假设是否满意?
- 模型是否有收敛问题?它是否具有随机组件或相同的训练数据始终生成相同的型号?我们如何处理培训中的随机效果?
- 模型句柄可以是哪些类型的数据(数字,分类等......)?
- 模型可以丢失缺少数据吗?如果我们在我们的数据中发现缺少字段,我们该怎么办?
- 模型的可解释性如何?
- 对于同一类型的问题,我们可以使用什么替代模型来解决这个问题,它与其他模型相比如何?
- 我们可以在不重新训练的情况下更新模型吗?
- 与其他模型相比预测有多快?与其他模型相比,训练有多快?
- 该模型是否具有任何元参数,因此需要调整?我们如何做到这一点?
(更深的机器学习问题)
- EM算法是什么?给出几个应用
- 什么是深度学习?它与传统机器学习的主要区别是什么
- 什么是通用线性模型中的线性?
- 什么是概率图形模型?马尔可夫网络和贝叶斯网络之间有什么区别?
- 举例说明非负矩阵分解的应用
- 基于什么类型的集成技术是随机森林?它试图解决哪些特别的限制?
- 您知道哪种方法减少了维数,以及它们如何相互比较?
- 有哪些好方法可以在不涉及穷举搜索的情况下进行特征选择?
- 您如何评估由K-Means的运行产生的群集的质量?
(工具和研究)
- 您是否在机器学习或相关领域有任何研究经验?你有任何出版物吗?
- 您曾经训练和评估模型的哪些工具和环境?
- 您是否有使用Spark ML或其他平台使用非常大的数据集构建机器学习模型的经验?