1. 程式人生 > >機器學習/數據挖掘/算法崗位面試題匯總

機器學習/數據挖掘/算法崗位面試題匯總

工程 ext nbsp ati 減少 數據挖掘 分析 分布 函數

1、過擬合和欠擬合怎麽判斷,如何解決?

答:主要可以通過訓練誤差和測試誤差入手判斷是否過擬合或欠擬合。一般而言訓練誤差很低,但是測試誤差較高,過擬合的概率較大,如果訓練誤差和測試誤差都很高,一般是欠擬合。過擬合可以從增加樣本量,減少特征數,降低模型復雜度等方面入手,實際的例子比如線性回歸中,對於幾十個樣本的數據點就沒必要用幾十個變量去擬合。欠擬合則反之,需要考慮模型是否收斂,特征是否過少,模型是否過於簡單入手。另外還有L1,L2正則化用於限制權重以及dropout用在神經網絡中使得每次訓練的網絡結構多樣。L1正則化其實就是講權值的絕對值和加入損失函數,使得權值中0值比重增大,因此得到的權值較為稀疏。L2正則化則是將權重的平方和加入損失函數,使得權值分布更加平均,所以權值較為平滑。

2、特征如何構造?

答:其實特征主要針對業務來構造,業務則對應數據,舉個例子,時間特征可能在交通預測方面有效,但是對於文本挖掘可能無效。因此可以考慮從數據統計分析入手,結合業務場景構造特征,後期可考慮細化特征或組合特征等。

3、邏輯回歸的含義和推導?邏輯回歸和線性回歸的區別?

答:含義不多說,這個算法原理是最基本的。推導可以從損失函數最小化或最大似然方向入手。二者的區別曾經在面試阿裏的時候被問到,當時脫口而出一個是分類一個是回歸,但深層的含義或許是一個是叠代求解,一個是直接求解。望指教

4、模型怎麽優化?怎麽評估模型好壞?

答:模型優化主要從數據模型兩方面入手,根據具體問題來,比如過擬合且數據量太少的話可以考慮增加數據量。模型評估指標包括分類和回歸

,分類比如準確率AUC值,或和業務相關的加權計算公式。這裏強調下ROC曲線AUC值是比較重要的內容,要能知道具體ROC曲線是怎麽畫出來的。回歸的話比如MSE,RMSE或和業務相關的加權計算公式等。

5、數據如何清洗,怎麽處理缺失值?

答:數據清洗主要還是通過分析數據的統計信息、分布情況、缺失情況等來定,在數據質量較好的前提下盡可能保留更多數據。缺失值的處理方法較多,也是根據具體特征和業務來定,可以隨機填充均值填充、或采用簡單算法如KNN,聚類進行填充。當然,如果某些特征或某些樣本的缺失率太大,可以考慮直接舍棄,是具體情況而定。

6、bagging,boosting的含義?

答:bagging主要和隨機森林關聯,采用有放回的抽樣,所以某個樣本可能出現在多棵樹的訓練集中也可能一次也沒出現,可以並行

。另外每棵樹用的特征集也是從原始特征集中隨機選擇部分特征集作為分裂集合。boosting主要和adaboosting關聯,每棵樹都是根據前一棵樹訓練的殘差作為輸入的,所以一般是串行跑的,每棵樹的訓練集都是整個樣本集,另外對特征也沒做選擇。

另外說一些幾個相關崗位側重點:

1、算法工程師

這個崗位的工作內容根據不同公司而定,不過一般都離不開模型算法,但是這個算法可能是圖像、語音、文本或者其他業務產品的建模。所以具體準備方向也看具體的崗位要求,以圖像算法為例,如今深度學習的火熱不用我說,所以基本的卷積神經網絡算法圖像分類圖像檢測等最近幾年比較有名的paper都應該讀一讀。有條件的話像Caffe,TensorFlow框架都要用用。

2、機器學習工程師

這個崗位基本上是和算法差不多的,而且主要服務於公司內部的一些交易數據或流量數據的建模。所以基本的機器學習算法優化方法等理論你要清楚,再搭配一些項目或比賽的實戰經驗就更好了。另外有Spark的使用經驗會有加分。

3、大數據平臺工程師

這個崗位側重平臺開發,比如你的公司要開發這樣的一個平臺,以後公司的機器學習工程師跑模型都在這個平臺上跑,涉及分布式系統會更多一點,算法方面不多。

4、數據挖掘工程師

這個崗位主要還是看公司,有些公司裏面可能做建模工作,有些公司做數據分析或者ETL工作,所以面試的時候一定要問清楚。

5、數據分析工程師

從title也看出來主要是做數據統計分析的一些工作,老實說建模前很重要的一個工作就是需要你對自己的數據有充分的理解,不過一般機器學習崗位可以做數據分析的工作,要不處理一個問題分太多步著實麻煩。準備的話可以從比如R語言還有一些數據分析統計和可視化角度入手。算法方面的東西應該涉及不多。

6、ETL工程師

這個崗位很多公司都需要,主要是做數據的前期處理,包括數據清洗整理校驗等等,很繁瑣,但是很重要。可以從SQL等語言入手。

機器學習/數據挖掘/算法崗位面試題匯總