数学基础
微积分
- 《北京大学高等数学B》
线性代数
- 北京大学出版社,《线性代数简明教程》
- MIT 的线性代数公开课
概率论与数理统计
- 李航《统计学习方法》
朴素概率论
- 钟开来概率论
朴素统计学理论
- 北京大学出版社,《概率论与数理统计下册》
- 北京大学出版社,《多元统计》
- Wasserman所著《All of Statistics》
朴素优化理论
- Boyd和Vandenberghe所著《Convex Optimization》
编程基础
编程语言(至少熟悉1+)
- 《集体智慧编程》
- LEETCODE刷题:链表、二叉树、排序
Python
基础语法
- Python基础语法
- Ramalho所著Fluent Python
numpy基础操作
pandas基础操作
- McKinney所著Python for Data Analysis
- Pandas官方文档
- groupby
matplotlib基础操作
scikit-learn机器学习框架
- scikit-learn官方文档
- scikit-learn中文文档
- train_test_split(划分训练集与测试集)
C/C++/Java/Matlab/R/Scala
- 参考相关文档
数据库(至少熟悉1+)
SQL
- 关于SQL的介绍
- 根据自己所使用的SQL库相关的深度材料(如MySQL,Oracle)等
- 根据自己所使用的NoSQL数据库的基本操作
MySQL基础操作
分布式计算
Spark基本操作
- Spark官方文档,注意尽可能查询Scala文档(Python文档有一些错误)
hadoop
hive
深度学习框架(至少熟悉1+)
tensorflow
TensorFlow 2.x基本操作
- Tensorflow教程,包括面向初学者和面向专家的快速入门教程
- Tensorflow最新版本的官方文档,注意由于TensorFlow bug很多并且每版API变化很多,不建议使用书籍。
pytorch
- PyTorch官方网站中的tutorial
- PyTorch XLA的官方例子
- PyTorch Lightning官方网站及源代码。由于源代码bug较多,建议对源代码有所了解
Caffe
keras
算法与数据结构能力
传统机器学习算法
- 《Pattern Recognition and Machine Learning》一书
- 吴恩达机器学习公开课
- Sklearn官方文档
- 周志华教授的《机器学习》
线性回归
逻辑回归
SVM
KNN
MLP
Random Forest和Extra Trees
- 见LightGBM booster为rf时候的相关文档;不建议使用Sklearn API
XGBoost
LightGBM
CatBoost
GBDT
深度学习算法
- 吴恩达深度学习公开课
- 如需要GPU加速,请见CuML文档
CNN
RNN
BERT
ATTENTION
常见特征构建方法
- 这部分并没有很好的书籍或文章介绍,更好的方法是根据Kaggle及其他主流比赛的Kernel进行总结
基于业务理解的特征构建方式
常见的encoder
常见的机遇探索性分析和Bad-Case分析方法构建模型
常见特征选择方法
基于单变量检验的选择方法
- 目前比较好的文档是Sklearn当中feature selection模块的文档
基于模型的自带选择方式(如树模型、线性回归、逻辑回归、L1损失等)
- 对于树模型(如XgBoost,LightGBM等)最好的就是看官方文档
- 对于L1模型,如果只对于常见模型感兴趣,可以看sklearn相关文档;如果想要深度了解,可以看proximal methods的原理
常见Stacking方法
- 介绍可以看https://towardsdatascience.com/a-guide-to-ensemble-learning-d3686c9bed9a
- 更多的介绍只能看Kaggle比赛的一些经验
项目
- Kaggle 历史赛事
项目处理方法论
NLP基础
- 基础可以参见国外知名NLP课程,如https://www.youtube.com/watch?v=8rXD5-xhemo&list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z
- 预训练模型见Hugging Face Transformer中的模型和paper
- 更新的进展可以参见比赛当中的一些应用
传统NLP模型
- Word Embedding
- LSTM
- TextCNN
预训练语言模型基础
文本分类
文本序列标注
业务能力
具体业务具体分析能力,不同的业务场景如何解决的能力,需要具备一定的业务数据敏感度和行业知识储备,多读业务相关知识
其它能力
逻辑分析思维
- 解决问题需要有清晰的思维,对知识点举一反三,在面对一个相对陌生的问题时,能否给出一个精练、合理、高效的解决方案
- 不要为了面试而去刷 LeetCode 等题库,而是保持一个稳定的节奏,可以是一周 2-3 道 Hard 难度的题目,保持自己的思维不会因为一些重复劳动的工作而固化,同样方式可以适用于 Kaggle 来训练自己
- 多做项目、多读分析思维书籍,讲一个大问题拆分为多个小问题,逐步解决
表达能力
- 清晰并富有逻辑的谈吐会给面试官带来极大的加分,这表明即使当你遇到问题了你也可以无障碍和你的同事、主管沟通,这在创业公司显得尤为重要,好的沟通下才能让产品快速迭代,完成所谓的精益创业目标。
输出能力
技术类博客
- 可以多写技术类博客,多用文字来总结自己所学的知识,业余时间可以多参与像狼人杀、阿瓦隆一类言语类游戏
-
csdn、博客园、stackoverflow、github
WORD/EXCEL/PPT输出
- excel常用函数、图表制作
大赛经验
- 大厂青睐 ACM 竞赛经历
-
比赛网站:kaggle、天池、科赛、数据
文献查阅能力
- 关注 ICML、NIPS、AAAI、CVPR 等顶级学会发布的相关论文