從16年九月份開(kāi)始,參加了一些公司的算法工程師/機(jī)器學(xué)習(xí)工程師崗位的校園招聘,做一些總結(jié),希望可以給大家準(zhǔn)備這個(gè)職位提供些信息。
一、需要的基本技能
數(shù)據(jù)結(jié)構(gòu)知識(shí)
掌握一門(mén)編程語(yǔ)言,c/c++/Java/Python
機(jī)器學(xué)習(xí)常用算法或者某一細(xì)分領(lǐng)域(推薦,自然語(yǔ)言處理,圖像識(shí)別,語(yǔ)音識(shí)別等)的常用算法
二、筆試和面試內(nèi)容
大多是技術(shù)筆試然后二到三輪的技術(shù)面試
技術(shù)筆試都是考察基本的計(jì)算機(jī)知識(shí),概率統(tǒng)計(jì)相關(guān)題目,智力題,linux常用命令和編程/算法能力等
計(jì)算機(jī)知識(shí)包括:
主要是數(shù)據(jù)結(jié)構(gòu)包括數(shù)組,增刪鏈表,樹(shù),排序算法等。也可能會(huì)有數(shù)據(jù)庫(kù)基本語(yǔ)句,操作系統(tǒng)進(jìn)程和 線(xiàn)程相關(guān)的,計(jì)算機(jī)網(wǎng)絡(luò)的TCP/IP協(xié)議部分)
編程能力:
一到三道在線(xiàn)編程題目
算法能力:
給出一個(gè)場(chǎng)景,回答使用什么算法去建模解決
面試問(wèn)題
機(jī)器學(xué)習(xí)常用算法,例如:
決策樹(shù)的ID3,C4.5,CART等,決策樹(shù)的split原理和剪枝策略
SVM的原理及公式推導(dǎo)
樸素貝葉斯的公式
Bagging 和 Boosting的區(qū)別
GBDT的參數(shù)怎么調(diào)
聚類(lèi)過(guò)程
偏差和方差是什么,高偏差和高方差說(shuō)明了什么
怎么理解損失函數(shù),SVM的損失函數(shù)是什么,寫(xiě)出公式
過(guò)擬合怎么解決,L1和L2正則化有什么區(qū)別
為什么用最小二乘而不是最小四乘
GB和牛頓法的區(qū)別,它們和泰勒公式的關(guān)系
數(shù)據(jù)結(jié)構(gòu)算法知識(shí),手寫(xiě)代碼,例如:
最大子數(shù)組和
快速排序
字典排序
特征工程
PCA的原理
數(shù)據(jù)結(jié)構(gòu)算法知識(shí),手寫(xiě)代碼,例如:
最大子數(shù)組和
快速排序
字典排序
編程能力,考察熟悉的編程語(yǔ)言的相關(guān)知識(shí),編程語(yǔ)言掌握一門(mén)即可,例如:
java:static的作用,hashmap,arraylist和linklist的區(qū)別,多線(xiàn)程
c/c++:實(shí)現(xiàn)strstr(判斷一個(gè)字符串是否是另一個(gè)的子串)
編程能力,考察熟悉的編程語(yǔ)言的相關(guān)知識(shí),編程語(yǔ)言掌握一門(mén)即可,例如:
java:static的作用,hashmap,arraylist和linklist的區(qū)別,多線(xiàn)程
c/c++:實(shí)現(xiàn)strstr(判斷一個(gè)字符串是否是另一個(gè)的子串)
python:安裝Python的命令是什么,用python讀取一個(gè)文件,一行一行的輸出(不能用庫(kù)函數(shù))
python:安裝Python的命令是什么,用python讀取一個(gè)文件,一行一行的輸出(不能用庫(kù)函數(shù)),python常用庫(kù)
大數(shù)據(jù)開(kāi)發(fā)能力:Hadoop/Hive/Map Reduce開(kāi)發(fā),例如Map Reduce 寫(xiě) word count
深度學(xué)習(xí)知識(shí):
深度學(xué)習(xí)框架
CNN:什么是卷積,為什么要padding(根據(jù)簡(jiǎn)歷的具體項(xiàng)目問(wèn)
Udacity的機(jī)器學(xué)習(xí)項(xiàng)目P0和P1,如果寫(xiě),請(qǐng)想好如下問(wèn)題:
P0(泰坦尼克號(hào)項(xiàng)目):預(yù)測(cè)這個(gè)有啥用?召回率是多少?(題目中并沒(méi)有算)
P1(預(yù)測(cè)波士頓房?jī)r(jià)):特征都是離散的,為什么用決策樹(shù)?
(雖然是用的決策回歸樹(shù),但我也沒(méi)想 到更好的回答的方式)。。。
這些面試題目?jī)H供大家參考,各個(gè)公司問(wèn)每個(gè)人的也不一樣,會(huì)根據(jù)公司的需求,個(gè)人簡(jiǎn)歷上的項(xiàng)目問(wèn)
三、總結(jié):
各個(gè)公司的側(cè)重點(diǎn)不太一樣,有的公司側(cè)重?cái)?shù)據(jù)分析/數(shù)據(jù)挖掘(京東,筆試題好多spass),有的公司偏向推薦算法(協(xié)同過(guò)濾,CTR點(diǎn)擊率預(yù)估)(美團(tuán),汽車(chē)之家也很注重思維能力),用戶(hù)畫(huà)像(百度的百家號(hào)),有的公司側(cè)重大數(shù)據(jù)開(kāi)發(fā)(要求里寫(xiě)了Hadoop/Hive)(中國(guó)移動(dòng)),有的公司更側(cè)重算法層面,建模能力(滴滴)
如果是面試自然語(yǔ)言處理(NLP),圖像識(shí)別,語(yǔ)音識(shí)別之類(lèi)的公司,基本是要求深度學(xué)習(xí)知識(shí)的。創(chuàng)業(yè)公司的話(huà),要求關(guān)注最新會(huì)議,跟paper,關(guān)注領(lǐng)域內(nèi)最新進(jìn)展
四、推薦網(wǎng)站和書(shū)目
推薦編程刷題網(wǎng)站:牛客網(wǎng),Leecode
推薦書(shū)目《劍指offer》(c++),《程序員代碼面試指南》(java編寫(xiě)),
《機(jī)器學(xué)習(xí)(周志華著)》(西瓜書(shū)),《統(tǒng)計(jì)學(xué)習(xí)方法(李航著)》
五:一些建議:
掌握基本知識(shí)后要確定好自己的目標(biāo),機(jī)器學(xué)習(xí)是一個(gè)大的方向,還有很多細(xì)分,究竟是要做文本,推薦,圖像還是語(yǔ)音識(shí)別,差別都很大,人不可能面面俱到,掌握好一個(gè)領(lǐng)域的內(nèi)容就很厲害啦~~
六:數(shù)據(jù)分析與機(jī)器學(xué)習(xí)的區(qū)別
個(gè)人的一點(diǎn)理解,具體還是看崗位要求怎么寫(xiě)的
數(shù)據(jù)分析偏向統(tǒng)計(jì)一些,要會(huì)SQL/Spass/SAS等數(shù)據(jù)分析軟件等,更適合數(shù)學(xué)和統(tǒng)計(jì)專(zhuān)業(yè)
* 大數(shù)據(jù)開(kāi)發(fā)能力:Hadoop/Hive/Map Reduce開(kāi)發(fā),例如Map Reduce 寫(xiě) word count
深度學(xué)習(xí)知識(shí):
* 深度學(xué)習(xí)框架
* CNN:什么是卷積,為什么要padding(根據(jù)簡(jiǎn)歷的具體項(xiàng)目問(wèn)
1
2
Udacity的機(jī)器學(xué)習(xí)項(xiàng)目P0和P1,如果寫(xiě),請(qǐng)想好如下問(wèn)題:
P0(泰坦尼克號(hào)項(xiàng)目):預(yù)測(cè)這個(gè)有啥用?召回率是多少?(題目中并沒(méi)有算)
P1(預(yù)測(cè)波士頓房?jī)r(jià)):特征都是離散的,為什么用決策樹(shù)?
(雖然是用的決策回歸樹(shù),但我也沒(méi)想 到更好的回答的方式)。。。
這些面試題目?jī)H供大家參考,各個(gè)公司問(wèn)每個(gè)人的也不一樣,會(huì)根據(jù)公司的需求,個(gè)人簡(jiǎn)歷上的項(xiàng)目問(wèn)
三、總結(jié):
各個(gè)公司的側(cè)重點(diǎn)不太一樣,有的公司側(cè)重?cái)?shù)據(jù)分析/數(shù)據(jù)挖掘(京東,筆試題好多spass),有的公司偏向推薦算法(協(xié)同過(guò)濾,CTR點(diǎn)擊率預(yù)估)(美團(tuán),汽車(chē)之家也很注重思維能力),用戶(hù)畫(huà)像(百度的百家號(hào)),有的公司側(cè)重大數(shù)據(jù)開(kāi)發(fā)(要求里寫(xiě)了Hadoop/Hive)(中國(guó)移動(dòng)),有的公司更側(cè)重算法層面,建模能力(滴滴)
如果是面試自然語(yǔ)言處理(NLP),圖像識(shí)別,語(yǔ)音識(shí)別之類(lèi)的公司,基本是要求深度學(xué)習(xí)知識(shí)的。創(chuàng)業(yè)公司的話(huà),要求關(guān)注最新會(huì)議,跟paper,關(guān)注領(lǐng)域內(nèi)最新進(jìn)展
四、推薦網(wǎng)站和書(shū)目
推薦編程刷題網(wǎng)站:牛客網(wǎng),Leecode
推薦書(shū)目《劍指offer》(c++),《程序員代碼面試指南》(java編寫(xiě)),
《機(jī)器學(xué)習(xí)(周志華著)》(西瓜書(shū)),《統(tǒng)計(jì)學(xué)習(xí)方法(李航著)》
五:一些建議:
掌握基本知識(shí)后要確定好自己的目標(biāo),機(jī)器學(xué)習(xí)是一個(gè)大的方向,還有很多細(xì)分,究竟是要做文本,推薦,圖像還是語(yǔ)音識(shí)別,差別都很大,人不可能面面俱到,掌握好一個(gè)領(lǐng)域的內(nèi)容就很厲害啦~~
六:數(shù)據(jù)分析與機(jī)器學(xué)習(xí)的區(qū)別
個(gè)人的一點(diǎn)理解,具體還是看崗位要求怎么寫(xiě)的
數(shù)據(jù)分析偏向統(tǒng)計(jì)一些,要會(huì)SQL/Spass/SAS等數(shù)據(jù)分析軟件等,更適合數(shù)學(xué)和統(tǒng)計(jì)專(zhuān)業(yè)
機(jī)器學(xué)習(xí)要求編程能力較強(qiáng),即算法實(shí)現(xiàn)能力,更適合數(shù)學(xué)和計(jì)算機(jī)專(zhuān)業(yè)
七:感受到的現(xiàn)狀
機(jī)器學(xué)習(xí)是一個(gè)相對(duì)開(kāi)發(fā)來(lái)說(shuō)較新的職位,一些公司也開(kāi)始增加這些職位,需求還是有的,要求也較高
機(jī)器學(xué)習(xí)要求編程能力較強(qiáng),即算法實(shí)現(xiàn)能力,更適合數(shù)學(xué)和計(jì)算機(jī)專(zhuān)業(yè)
以上是一些筆試面試總結(jié),僅供大家參考,歡迎大家補(bǔ)充交流和批評(píng)指正
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68574 -
算法
+關(guān)注
關(guān)注
23文章
4625瀏覽量
93123
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論