关于”算法工程师/机器学习工程师”的笔试和面试总结
從16年九月份開始,參加了一些公司的算法工程師/機器學習工程師崗位的校園招聘,做一些總結,希望可以給大家準備這個職位提供些信息。
一、需要的基本技能
二、筆試和面試內容
大多是技術筆試然后二到三輪的技術面試
技術筆試都是考察基本的計算機知識,概率統計相關題目,智力題,linux常用命令和編程/算法能力等
- 計算機知識包括:
主要是數據結構包括數組,增刪鏈表,樹,排序算法等。也可能會有數據庫基本語句,操作系統進程和 線程相關的,計算機網絡的TCP/IP協議部分) - 編程能力:
一到三道在線編程題目 - 算法能力:
給出一個場景,回答使用什么算法去建模解決
面試問題
- 機器學習常用算法,例如:
- 決策樹的ID3,C4.5,CART等,決策樹的split原理和剪枝策略
- 神經網絡如何工作
- SVM的原理及公式推導
- 樸素貝葉斯的公式
- Bagging 和 Boosting的區別
- GBDT的參數怎么調
- 聚類過程
- 偏差和方差是什么,高偏差和高方差說明了什么
- 怎么理解損失函數,SVM的損失函數是什么,寫出公式
- 過擬合怎么解決,L1和L2正則化有什么區別
- 為什么用最小二乘而不是最小四乘
- GB和牛頓法的區別,它們和泰勒公式的關系
數據結構算法知識,手寫代碼,例如:
- 最大子數組和
- 快速排序
- 字典排序
- 機器學習常用算法,例如:
特征工程
PCA的原理
數據結構算法知識,手寫代碼,例如:
- 最大子數組和
- 快速排序
- 字典排序
編程能力,考察熟悉的編程語言的相關知識,編程語言掌握一門即可,例如:
- java:static的作用,hashmap,arraylist和linklist的區別,多線程
- c/c++:實現strstr(判斷一個字符串是否是另一個的子串)
編程能力,考察熟悉的編程語言的相關知識,編程語言掌握一門即可,例如:
- java:static的作用,hashmap,arraylist和linklist的區別,多線程
- c/c++:實現strstr(判斷一個字符串是否是另一個的子串)
python:安裝Python的命令是什么,用python讀取一個文件,一行一行的輸出(不能用庫函數)
python:安裝Python的命令是什么,用python讀取一個文件,一行一行的輸出(不能用庫函數),python常用庫
大數據開發能力:Hadoop/Hive/Map Reduce開發,例如Map Reduce 寫 word count
深度學習知識:
- 深度學習框架
- CNN:什么是卷積,為什么要padding(根據簡歷的具體項目問
Udacity的機器學習項目P0和P1,如果寫,請想好如下問題:
- P0(泰坦尼克號項目):預測這個有啥用?召回率是多少?(題目中并沒有算)
- P1(預測波士頓房價):特征都是離散的,為什么用決策樹?
(雖然是用的決策回歸樹,但我也沒想 到更好的回答的方式)。。。
這些面試題目僅供大家參考,各個公司問每個人的也不一樣,會根據公司的需求,個人簡歷上的項目問
三、總結:
各個公司的側重點不太一樣,有的公司側重數據分析/數據挖掘(京東,筆試題好多spass),有的公司偏向推薦算法(協同過濾,CTR點擊率預估)(美團,汽車之家也很注重思維能力),用戶畫像(百度的百家號),有的公司側重大數據開發(要求里寫了Hadoop/Hive)(中國移動),有的公司更側重算法層面,建模能力(滴滴)
如果是面試自然語言處理(NLP),圖像識別,語音識別之類的公司,基本是要求深度學習知識的。創業公司的話,要求關注最新會議,跟paper,關注領域內最新進展
深度學習知識:
- 1
- 2
- Udacity的機器學習項目P0和P1,如果寫,請想好如下問題:
- P0(泰坦尼克號項目):預測這個有啥用?召回率是多少?(題目中并沒有算)
- P1(預測波士頓房價):特征都是離散的,為什么用決策樹?
(雖然是用的決策回歸樹,但我也沒想 到更好的回答的方式)。。。
各個公司的側重點不太一樣,有的公司側重數據分析/數據挖掘(京東,筆試題好多spass),有的公司偏向推薦算法(協同過濾,CTR點擊率預估)(美團,汽車之家也很注重思維能力),用戶畫像(百度的百家號),有的公司側重大數據開發(要求里寫了Hadoop/Hive)(中國移動),有的公司更側重算法層面,建模能力(滴滴)
如果是面試自然語言處理(NLP),圖像識別,語音識別之類的公司,基本是要求深度學習知識的。創業公司的話,要求關注最新會議,跟paper,關注領域內最新進展
四、推薦網站和書目
推薦編程刷題網站:牛客網,Leecode
推薦書目《劍指offer》(c++),《程序員代碼面試指南》(java編寫),
《機器學習(周志華著)》(西瓜書),《統計學習方法(李航著)》
五:一些建議:
掌握基本知識后要確定好自己的目標,機器學習是一個大的方向,還有很多細分,究竟是要做文本,推薦,圖像還是語音識別,差別都很大,人不可能面面俱到,掌握好一個領域的內容就很厲害啦~~
六:數據分析與機器學習的區別
個人的一點理解,具體還是看崗位要求怎么寫的
數據分析偏向統計一些,要會SQL/Spass/SAS等數據分析軟件等,更適合數學和統計專業
* 大數據開發能力:Hadoop/Hive/Map Reduce開發,例如Map Reduce 寫 word count
這些面試題目僅供大家參考,各個公司問每個人的也不一樣,會根據公司的需求,個人簡歷上的項目問
三、總結:
四、推薦網站和書目
推薦編程刷題網站:牛客網,Leecode
推薦書目《劍指offer》(c++),《程序員代碼面試指南》(java編寫),
《機器學習(周志華著)》(西瓜書),《統計學習方法(李航著)》
五:一些建議:
掌握基本知識后要確定好自己的目標,機器學習是一個大的方向,還有很多細分,究竟是要做文本,推薦,圖像還是語音識別,差別都很大,人不可能面面俱到,掌握好一個領域的內容就很厲害啦~~
六:數據分析與機器學習的區別
個人的一點理解,具體還是看崗位要求怎么寫的
數據分析偏向統計一些,要會SQL/Spass/SAS等數據分析軟件等,更適合數學和統計專業
機器學習要求編程能力較強,即算法實現能力,更適合數學和計算機專業
七:感受到的現狀
機器學習是一個相對開發來說較新的職位,一些公司也開始增加這些職位,需求還是有的,要求也較高
機器學習要求編程能力較強,即算法實現能力,更適合數學和計算機專業
以上是一些筆試面試總結,僅供大家參考,歡迎大家補充交流和批評指正
2016年11月
總結
以上是生活随笔為你收集整理的关于”算法工程师/机器学习工程师”的笔试和面试总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平衡二叉树、二叉排序树-数据结构
- 下一篇: 关系抽取、时间抽取,实践项目推荐