# 机器学习面试

## 机器学习面试

* [返回顶层目录](https://luweikxy.gitbook.io/machine-learning-notes/summary#目录)
* [返回上层目录](https://luweikxy.gitbook.io/machine-learning-notes/perface)
* [机器学习](#机器学习)
* [深度学习](#深度学习)
* [代码能力](#代码能力)
* [工程能力](#工程能力)

## 机器学习

* SVM和LR的区别和联系
* LR可不可以做非线性分类
* bagging和boosting的区别
* 决策树，GBDT
* 介绍一下xgboost，xgboost和GBDT的区别
* l1正则化和l2正则化
* 如何处理类别不均衡问题
* 如何判断分类器的好坏（分类器的评价指标）
* 介绍Kmeans算法
* 特征工程的方法

## 深度学习

* 防止过拟合的方法，dropout的原理
* 常用的激活函数，sigmoid的缺点，relu的缺点
* 平时用什么优化方法，adam的缺点及解决方法
* 介绍平时调参的经验
* 介绍BatchNorm
* RNN的缺点，LSTM的作用，LSTM和GRU
* 除了LSTM和GRU是否了解其它循环单元
* 如何处理OOV问题
* 介绍word2vec的作用，缺点
* 常用的文本分类方法，优缺点
* 残差网络resnet介绍，解决什么问题
* CNN在图像中1\*1卷积的作用
* 一维卷积的作用
* 介绍transformer，为什么比LSTM好，怎么获取顺序信息
* 介绍BERT，ELMO等

机器学习/深度学习这里，《**百面机器学习**》看两遍就可以了，如果有多余时间可以看一遍西瓜书或者统计学习方法。

## 代码能力

除了机器学习/深度学习水平之外，还要考察工程能力，以及代码编写。代码编写准备的方法比较统一，就是刷题。至少要刷完《剑指offer》的所有以及leetcode的"top interview questions"。需要注意的是写题并不是写对了就可以了，还要尽量保证代码的工整性，以及复杂度、异常处理、边界值等等。

## 工程能力

工程能力就是考察“机器学习工程师”岗位除了“机器学习”的相关能力了。考察的点很多，比如操作系统，线程/进程，编程语言特点等等，这块通常面试算法工程师的同学都比较薄弱，需要多准备。分享几个常考到的：

* 进程/线程的区别，python中怎么实现，谈谈GIL
* python2和python3的区别
* python中浅拷贝和深拷贝
* python的生成器是什么

## 参考资料

* [如何准备机器学习工程师的面试 ？](https://www.zhihu.com/question/23259302/answer/1136153589)

本文主要参考此知乎回答。

\===

[七月在线：一站式刷遍各大互联网公司人工智能笔试面试题](https://www.julyedu.com/question/index?utm_source=zh\&utm_medium=tiku\&utm_campaign=t\&utm_content=ti\&utm_term=ti)

涵盖了所有知识点和课程。
