19年春招實習心得

19屆實習面試

一、CVTE(自然語言處理) 40min

1.希爾伯特空間是什麼,線性空間是什麼

2.sigmoid函數形式,其導數形式是啥

3.dropout原理,和DAE區別

4.svm核函數的用處

5.autoencoder爲什麼要加噪音,怎麼加的噪音

6.常用的中文分詞算法

7.word2vec中有那些方法是用來提高計算效率的

8.項目中你覺得做的最好的地方

9.bagging和boosting區別,哪個是獨立建樹的

10.貝葉斯公式,哪個是先驗概率哪個是後驗概率

11.樸素貝葉斯的樸素表現在哪裏,舉例子

 

HR面   5人一小時

他們公司hr考察的比較多,其中涉及家庭,父母職業,自己失敗點各種

 

二、海康威視(大數據算法工程師) 40min

從機器學習算法問到數據結構問到開發語言問到sql問到spark問到深度學習

1.svm核函數哪幾種,怎麼個算法,核函數需要滿足什麼條件

  解決非線性問題是採取一個非線性變換,將非線性問題變換爲線性問題,通過解變換後的線性問題的方法求解原來的非線性問題,設原空間,新空間是,定義從原空間到新空間的變化(映射):

核函數:設x是輸入空間(歐式空間),H爲特徵空間(希爾伯特空間),如果存在一個從X到H的映射,滿足,稱爲核函數,爲映射函數,式中爲和的內積

核函數的充要條件:設K: 是對稱函數,則爲正定核函數的充要條件是對任意的,i=1,2…m,對應的Gram矩陣(向量內積組成的矩陣):

半正定矩陣:所有的特徵值不小於0

常用核函數:1.多項式核函數   

            2.高斯核函數     

            3.字符串核函數

2.svm怎樣判斷超平面是否分割好了,還是應該加軟間隔或者是換核函數

3.給你姓名,判斷性別,無附加樣本空間

4.spark中算子,map和flatmap,mappartition的區別

    map是對rdd中的每一個元素進行操作;

    flatmap會將所得答案進行展平

mapPartitions則是對rdd中的每個分區的迭代器進行操作

  • 使用MapPartitions操作之後,一個task僅僅會執行一次function,function一次接收所有的partition數據。只要執行一次就可以了,性能比較高。
  • 普通的map操作通常不會導致內存的OOM異常。 
  • 但是MapPartitions操作,對於大量數據來說,比如甚至一個partition,100萬數據,一次傳入一個function以後,那麼可能一下子內存不夠,但是又沒有辦法去騰出內存空間來,可能就OOM,內存溢出。

 

 

5.sql語句,一句話寫出全班男生成績與男生平均成績差異,女生成績與女生平均成績差異

  • Select  name , score-avg(score) from table
  • Select  name,case when sex=’女’  then (score – (select  avg(score) from table where sex=’女’)) 

when sex=’男’  then (score – (select  avg(score) from table where sex=’男’)) end  as  delta  from  table

6.svm重要參數

C是懲罰係數,即對誤差的寬容度。c越高,說明越不能容忍出現誤差,容易過擬合。C越小,容易欠擬合。C過大或過小,泛化能力變差。

gamma是選擇RBF函數作爲kernel後,該函數自帶的一個參數。隱含地決定了數據映射到新的特徵空間後的分佈,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的個數影響訓練與預測的速度。

7.xgboost中gbtree和gblinear區別

booster基學習器類型,gbtree,gblinear 或 dart(增加了 Dropout) ,gbtree 和 dart 使用基於樹的模型,而 gblinear 使用線性模型

8.xgboost如何調參防止過擬合

9.N個數中選出topk最大/最小數的最優時間複雜度

  1.  O(nlogk)適合處理海量數據

創造一個存放k個最小數的容器,先取前k個樹構造一個大頂堆,後面的n-k個數依次和大頂堆的頂(最大值)比較,如果後面數較小,則替換頂,並把該數字放在堆中合適位置,直到遍歷完所有數。

  1.  O(n)只有當我們可以修改輸入的數字時纔可用

使用快排中的partition思想。

 

①我們設定partition函數的哨兵爲key=lists[left],在partition函數中完成一輪比較的結果是,比key大的數都在其右邊,比key小的數放在其左邊。完成該輪後返回其left=right時left的值。

②我們判斷left的值是比k大還是小:

如果left的值比k大,說明上輪partition之後,lists中前left個小的數在左邊,其餘的數在其右邊,我們還需要把尋找範圍縮小,下次找的時候只在數組前面left個數中找了。

如果left的值比k小,說明上輪partition之後,前left個數找的太少了,我們需要再往數組的後面找。

10.RNN,gru,lstm,attention區別,爲什麼說能防止梯度消失

11.仔細推導lstm和attention

12.pandas中用每一列平均數填充缺失值怎麼寫

 

HR面  12min

1.說一個項目經歷,最大的挑戰是什麼

2.參加什麼活動,喜歡幹什麼

3.未來規劃,爲什麼想來杭州,考慮定居嗎

4.本科成績排名,碩士成績排名,拿過什麼獎學金

。。。

 

三、阿里(數據分析師)一面 40min

1.介紹一下你自己

2.你爲什麼選擇統計這個專業

3.介紹你的項目,挖的很深很深,總體就是你怎麼做的,你爲什麼這樣做,爲什麼會有這個結論,數據來源在哪,怎樣衡量數據準確性,樣本覆蓋率,以及去噪音等等,以及怎麼判斷你真的去除了噪音…

4.還是問項目,搜索廣告是什麼,你認爲商業價值在哪…

 

 

四、騰訊 PCG 應用研究-機器學習崗  1h10min

視頻面試,真的是面的最長的一次,感覺整個人都被掏空,但是跟隨面試官是真的學到了很多,感覺大廠都是更加註重於基礎知識,對於項目更加註重的是你爲什麼這麼做,你的思維方式,而不是你做了什麼,所以在面試準備中應該經常思考一下,綜合對比一下

1.摳項目,特別特別細,這個項目中輸入維度是多少?經過embedding層維度是多少,經過卷積核維度又變成了多少?卷積核你設置了多少個?爲什麼這麼設置?你要對你的網絡結構非常清楚,並且表達流利

2.爲什麼用了dropout,意義是什麼,參數是怎麼設置,dropout在訓練集和測試集上分別是怎麼使用的

3.BN層作用是啥,測試一條數據如何得到參數呢,爲什麼還要再仿射變換,如果輸入一條數據,那均值和方差怎麼取。

4.爲什麼用了最大池化和平均池化拼接

5.用了dropout,爲什麼還要用BN,會衝突嗎?

6.項目中特徵問題,你在項目中做了什麼,你是怎麼想的,爲什麼設置這個參數,你有嘗試過其他參數嗎。

7.lgb中你設置了多少顆樹,樹的深度呢,那如果用隨機森林參數如何設置

8.lgb葉子結點分裂對於連續的和離散的有什麼區別,分別是怎麼分裂的

在對離散特徵分裂時,每個取值都當作一個桶,分裂時的增益算的是”是否屬於某個category“的gain。類似於one-hot編碼

在Xgb中需要將離散特徵one-hot編碼,和連續特徵一起輸入訓練,這樣做是爲了達到在cart樹中處理離散特徵的方式一致,即每次選擇一個離散特徵對應的樣本作爲一類,剩下的所有特徵值對應的樣本作爲一類。不按照掃描切分,因爲掃描切分會導致後續的子樹中特徵組合變少。

9.autoencoder和pca的區別在哪,爲什麼不用pca

10.集成學習對方差和偏差的影響

面試官說對偏差沒有什麼影響但也可能降低(沒有啥支撐),但是會降低方差(這個是有理論支撐的)

 

 

五、百度金融 算法崗  50min

在線編程,算法題

1.對於有重複出現數字的數組取出現頻率最高的topk個

2.對於無重複數字的數組取最大topk大的數,時間複雜度爲O(n)

3.一羣運動員打比賽,一些運動員已經打過比賽,分出勝負,現給這些運動員排序,排序要求如下

a.若運動員打過比賽,勝的排在負的前面

b.沒打過比賽的運動員排序則無要求

c.不存在環

4.一羣運動員坐成一怕,每個運動員體重已知,現給運動員分饅頭,要求如下

    a.每個運動員至少分一個饅頭

    b.運動員體重比左右兩邊高,則分的饅頭數要多於左右兩邊的

    c.給定運動員的座位順序和體重,問至少需要多少個饅頭

5.spark中wordcount寫一下

6.spark中每個ua帶一個值,你要計算ua後面帶的值的平均值

7.spark中對於TB級大數據計算acc你怎麼設計

8.爲什麼用樹模型

9.xgboost和lightgbm的區別

10.說一下項目中你特徵怎麼做的

11.說一下arima模型

12.你知道FM模型嗎,說一下

13.測度論學過?

 

 

六、隨手科技  算法工程師  共50min

1.介紹項目

2.GBDT+LR中取葉子結點是幹什麼?

3.爲什麼用樹模型

4.講一下boosting算法

5.講一下梯度下降,梯度下降一度會到最優點嗎?鞍點是什麼?解決辦法呢?

學習率是什麼?學習率一般怎麼設置?有什麼辦法嗎?

6.LR的損失函數說一下,和交叉熵的區別是啥,softmax公式

7.python底層有了解過嗎,比如sort函數的實現

8.用過sql嗎,對spark框架熟悉嗎,hive和sql的區別在哪,c++會嗎

9.你從你的項目中學到最大的是什麼

 

Hr面  30min

1.對我們公司瞭解嗎

2.參加過什麼活動嗎,社團?興趣愛好是什麼

3.爸媽工作是什麼,以後想在哪發展爲什麼

4.講一個你做項目的過程

5.你平時是如何學習的呢,爲什麼寫blog,什麼時候開始寫的?github呢

 

七、百度 機器學習/數據挖掘/深度學習崗  1h

1.最長迴文字符串,時間複雜度(在線編程)

2.二叉樹深度最優搜索時間複雜度,比如說搜索某一個葉子結點

3.細問項目,平常看了哪些paper

4.你對數據挖掘的概念,拿到一份數據你的流程是怎樣的。

5.boosting和bagging算法

 

 

八、芒果tv  算法工程師 

一面是羣面,7人一組,20min,5張報紙做一個塔,要求穩固的前提下,用料最少,最美觀,第一次羣面,全程懵逼,沒怎麼發言也過了

二面是技術面,介紹了一下項目,問了二分法,海量數據查詢問題,就收到了offer。這裏說一下,長沙這邊面試學習基本都是湖大,中南的,師大的都非常少,長理的我只知道有我一個。。。

 

 

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