机器学习常见面试知识点整理
最近在整理知识要点,正好看到有许多关于面试知识点的文章,集百家之所长、取其精华去其糟粕,本文将汇总一些收集的资料并给予出处。
本文将分 机器学习
、 深度学习
和 基本素养
三大板块进行阐述。
注:本文属于入门级知识要点,掌握对应的知识点就相当于对该领域入门
0x01 机器学习
1、Classification / Regression 常见的算法原理与推导,如 SVM 、 NN 、Trees & ensemble methods,其中 SVM 是重中之重。
2、Clustering 常见算法与用途,如 K-means/median/medoids 、DBSCAN 、Spectral clustering 等。
3、Bias
和 Variance
的含义,并结合 Ensemble Method
分析哪种算法降低 Bias
,哪种算法降低 Variance
4、LR
与 SVM
的区别与联系
5、GBDT
与 Adaboost
的区别与联系,并理解原理
6、PCA
与 LDA
的区别与联系,并学会推导
7、白化的原理与作用
8、给定一个常见算法,如 LR ,询问该算法 model、evaluate、optimization 分别是什么
其中,LR
和 SVM
都要会手推,面试遇到的几率较大
入门书籍推荐
Introduction to Data Mining (Pang-Ning Tan, Michael Steinbach, Vipin Kumar)
进阶书籍推荐
The Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani , Jerome Friedman)
0x02 深度学习
1、Back Propagation 原理及推导,尤其是可以手推
2、梯度消失、爆炸的原因以及解决办法
3、常见激活函数的应用场景及优劣
4、常见优化函数的原理的区别与联系,SGD 、Momentum 、RmsProp 、Adam
5、Batch Normalization 的原理,以及和白化的联系
6、防止过拟合的方法
7、DNN 、CNN 、RNN 的区别与联系
8、Batch Size 对于训练以及收敛的影响
9、训练参数初始化对训练以及收敛的影响
进阶知识点
0x03 基本素养
1、基本的 Coding 能力,可以熟练运用 Python / R / Matlab 其中之一的语言
2、基本了解常见深度学习框架,如 PyTorch / Keras / MXNet / Caffee2 / Tensorflow ,并选一框架熟练掌握
3、基本了解常见机器学习支持库,如 xgBoost / sklearn ,并有一定的使用经历
4、基本了解数据清洗、特征处理、特征选择的常见做法
5、基本了解常见算法及其思想,如 排序、分治、递归、贪心、DP 、DFS 、BFS 等
6、(进阶)熟练使用 Jupyter Notebook