算法工程师面试

1、编程语言

2、基本算法

3、传统的机器学习算法

机器学习模型

4、常见机器学习问题

            过拟合问题、交叉验证问题、模型融合、模型选择问题

1) 几种模型( SVM,LR,GBDT,EM )的原理以及公式推导; 

2) RF,GBDT 的区别; GBDT,XgBoost的区别; 

3) 决策树处理连续值的方法; 

4) 特征选择的方法; 

5) 过拟合的解决方法; 

6) K-means 的原理,优缺点以及改进; 

7) 常见分类模型( SVM ,决策树,贝叶斯等)的优缺点,适用场景以及如何选型; 

8) SVM 为啥要引入拉格朗日的优化方法; 

9) 假设面试官什么都不懂,详细解释 CNN 的原理; 

10) 梯度下降的优缺点 

11) EM与K-means的关系; 

12) L1与L2的作用,区别以及如何解决L1求导困难; 

13) 如何用尽可能少的样本训练模型同时又保证模型的性能; 

14) ID3和C4.5的优缺点,树的融合(RF和GBDT) 

15) 特征提取方法,如何判断特征是否重要 

16) BP神经网络以及推导 

17) HMM模型状态推导 

18) 过拟合原因以及解决办法(深度学习同) 

19) 常见损失函数 

20)机器学习性能评价,准确率,召回率,ROC 

22)降采样,PCA,LDA

5、深度学习问题

1)四种激活函数区别和作用 

2)过拟合解决方法 

3)(CNN)卷及神经网络各层作用 

4)(RNN)循环神经网络 

5)LSTM 

6)梯度弥散 

7)优化算法 adam,SGD等 

8)分析Alexnet,VGG的网络结构以及各层作用 

9)XgBoost(好像很多公司也面到了) 

10)梯度下降的优化 

12)卷积核参数计算 

13)TensorFlow中的session是什么,session和interactivesession的区别


一、机器学习基本掌握技能

1、数据结构知识

2、掌握常用算法或某一细分领域(推荐、自然语言处理、图像识别、语音识别)

二、笔试和面试内容

1、技术面试计算机基础知识,概率统计、智力题、linux或编程算法题目

        主要是数据结构包括数组,增删链表,树,排序算法等。也可能会有数据库基本语句,操作系统进程和 线程相关的,计算机网络的TCP/IP协议部分。

2、算法能力:

        给出一个场景,回答使用什么算法去建模解决。

2、面试问题:

    1、机器学习常用算法,例如:

            决策树的ID3,C4.5,CART等,决策树的split原理和剪枝策略

            神经网络如何工作

            SVM的原理及公式推导

            朴素贝叶斯的公式

            Bagging 和 Boosting的区别

            GBDT的参数怎么调

            聚类过程

            偏差和方差是什么,高偏差和高方差说明了什么

            怎么理解损失函数,SVM的损失函数是什么,写出公式

            过拟合怎么解决,L1和L2正则化有什么区别

            为什么用最小二乘而不是最小四乘

            GB和牛顿法的区别,它们和泰勒公式的关系

2、数据结构算法知识,手写代码:

最大子数组和、快速排序、字典排序

3、特征工程

4、pca原理

5、编程能力考察编程的相关知识,编程语言一门即可

        static的作用,hashmap,arraylist和linklist的区别,多线程

        实现strstr(判断一个字符串是否是另一个的子串)

8、大数据开发能力

       大数据开发能力:Hadoop/Hive/Map Reduce开发,例如Map Reduce 写 word count

9、深度学习知识

    1、深度学习框架

    2、cnn:什么是卷积,为什么要使用padding

10、Udacity的机器学习项目P0和P1

        P0(泰坦尼克号项目):预测这个有啥用?召回率是多少?(题目中并没有算)

        P1(预测波士顿房价):特征都是离散的,为什么用决策树? 

你可能感兴趣的:(算法工程师面试)