如何準備機器學習工程師的面試
我之前面試一些公司的機器學習或者數據挖掘工程師的職位。感覺自己準備的不夠充分。想了解下一般會問哪些問題,考察哪些方面的東西。
機器學習方面的面試主要分成三個部分:
1. 理論方面,我推薦最經典的一本書《統計學習方法》,這書可能不是最全的,但是講得最精髓,薄薄一本,適合面試前突擊準備。 我認為一些要點是: 統計學習的核心步驟:模型、策略、算法,你應當對logistic、SVM、決策樹、KNN及各種聚類方法有深刻的理解。能夠隨手寫出這些算法的核心遞歸步的偽代碼以及他們優化的函數表達式和對偶問題形式。 非統計學習我不太懂,做過復雜網絡,但是這個比較深,面試可能很難考到。 數學知識方面,你應當深刻理解矩陣的各種變換,尤其是特征值相關的知識。 算法方面:你應當深刻理解常用的優化方法:梯度下降、牛頓法、各種隨機搜索算法(基因、蟻群等等),深刻理解的意思是你要知道梯度下降是用平面來逼近局部,牛頓法是用曲面逼近局部等等。
2. 工程實現能力與編碼水平 機器學習從工程實現一般來講都是某種數據結構上的搜索問題。 你應當深刻理解在1中列出的各種算法對應應該采用的數據結構和對應的搜索方法。比如KNN對應的KD樹、如何給圖結構設計數據結構?如何將算法map-red化等等。 一般來說要么你會寫C,而且會用MPI,要么你懂Hadoop,工程上基本都是在這兩個平臺實現。實在不濟你也學個python吧。
3. 非常令人失望地告訴你盡管機器學習主要會考察1和2 但是實際工作中,算法的先進性對真正業務結果的影響,大概不到30%。當然算法必須要足夠快,離線算法最好能在4小時內完成,實時算法我沒搞過,要求大概 更高。 機器學習大多數場景是搜索、廣告、垃圾過濾、安全、推薦系統等等。對業務有深刻的理解對你做出來的系統的結果影響超過70%。這里你沒做過實際的項目,是 完全不可能有任何體會的,我做過一個推薦系統,沒有什么算法上的`高大上的改進,主要是業務邏輯的創新,直接就提高了很明顯的一個CTR(具體數目不太方便 透露,總之很明顯就是了)。如果你做過實際的項目,一定要主動說出來,主動讓面試官知道,這才是最大最大的加分項目。 最后舉個例子,阿里內部機器學習挑戰賽,無數碾壓答主10000倍的大神參賽。最后冠軍沒有用任何高大上的算法而是基于對數據和業務的深刻理解和極其細致 的特征調優利用非;镜囊粋算法奪冠。所以啥都不如真正的實操擼幾個生產項目啊。
【如何準備機器學習工程師的面試】相關文章:
如何準備MBA面試09-11
如何準備面試資料09-03
關于如何準備小升初面試11-29
該如何準備參加面試11-10
網絡面試應該如何準備10-16
如何準備MBA英文面試09-04
德國留學如何準備面試10-07
如何面試前應該做好的面試準備09-01
面試的自我介紹如何準備01-04