機器學習算法工程師 知能科技 筆試面經

首先是筆試,通過後才能面試。

筆試題目需要在1.5小時內做完,一共6道題目。兩道簡答題,一道計算題(機器學習的),一道numpy編程題,一道機器學習調參題,最後一道算法leetcode hard題,只需要寫出思路,不需要code。

 

題目如下:

1.(簡答題):防止overfit的方法,說三個,用英語

dropout

data augmentation(for images data(such as rotating,cut the images))

L1/L2 regularization

 

2.(簡答題):relu的作用

步驟:relu可以防止過擬合,讓一些神經元的輸出爲0,同時增加了神經網絡的非線性關係

3. (計算題:二選一):

我選的第一個題目做

題目一:樸素貝葉斯分類器,給出了條件概率,求分類的結果(分類的結果就是求出y等於多少)

解題步驟:直接寫出貝葉斯公式,帶入概率值,最後發現帶入的概率值是一個關於y的多項式方程,對其求導=0,得到最大似然估計的概率最大值時y的取值

本題得解

 

題目二:手算反向傳播

 

4. numpy還原矩陣

將原始m*n的矩陣交換行的順序,爲matrix1,然後交換原始矩陣的列的順序,爲matrix2.

通過matrix1和matrix2得到原始矩陣。拿到的是numpy數組,也需要返回numpy數組

這題我numpy當時忘記了,只寫了一半

 

 

5.機器學習調參題:

給了train data set,train lebel,和test data set,讓分類器的模型使得test data set的prediction acc達到90%以上。一共有5個數據集的prediction acc達到90%,就可以拿到滿分。

題目要求只能使用tensorflow,pytorch和sklearn。我尋思這個給的是結構化數據,深度神經網絡不太適合處理這樣的數據,因此肯定選GBDT,GBDT在sklearn當中也是最強的算法之一了,而且也不能用xgboost,catboost,gbdt或者svm就成了最優的選擇。

 

我首先用knn試了試grid search,但是考試平臺不能用grid search這個包,因爲看不到grid search輸出的結果。於是我就改用我用的sklearn當中GBDT手動調試的參數。只能手動調參,

最後我的最高acc爲92%,4個上了90,有一個test case沒上90% acc,爲89%。

 

6.算法題:

至少爲k的連續子序列,leetcode hard難度,類似於

leetcode 862. 和至少爲 K 的最短子數組

但是稍有改動,我稍微想了下就想出來了,用快排和哈希表輕鬆得解。

 

總結:最後沒有通過筆試,沒有拿到面試的資格,6個題目,我自認爲還做得不錯,除了第四題都做出來了,依然沒有通過筆試,挺奇怪的,一個小start up的門檻居然這麼高?這都不給面試機會?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章