當前位置:
首頁 > 新聞 > 數據科學和機器學習面試問題集錦

數據科學和機器學習面試問題集錦

本文為 AI 研習社編譯的技術博客,原標題 :

Data Science and Machine Learning Interview Questions

作者 |George Seif

翻譯 | Disillusion

校對 | 醬番梨       整理 | 菠蘿妹

https://towardsdatascience.com/data-science-and-machine-learning-interview-questions-3f6207cf040b

可怕的機器學習面試。你覺得自己什麼都懂,直到你進行了測試!但一切可以得到改變。

在過去的幾個月里,我面試了許多公司涉及數據科學和機器學習的初級職位。介紹一下我自己,以讓你對我有一定了解。我還有最後幾個月就研究生畢業,我的碩士是機器學習和計算機視覺,我之前的大部分經驗是研究/學術,但在一個早期創業公司待過8個月(與機器學習無關)。這些角色包括數據科學、通用機器學習和專精自然語言處理及計算機視覺。我面試過亞馬遜、特斯拉、三星、優步、華為等大公司,也面試過很多從初創階段到資金雄厚的初創公司。

今天我將和大家分享我被問到過的所有面試問題以及如何應答這些問題。許多問題都是很常見的理論,但許多其他問題相當有創意。我將簡單地列出最常見的一些問題,因為網上有很多關於它們的資源,並將更深入地介紹一些不太常見和更刁鑽的問題。我希望通過閱讀這篇文章,你可以在機器學習面試中取得好成績,找到你夢想的工作!


  讓我們開始吧:

偏差和方差之間的協調是什麼?

什麼是梯度下降?

解釋過擬合和欠擬合以及如何與之對抗?

你如何對抗維度的詛咒?

什麼是正則化,我們為什麼要使用它,並給出一些常見方法的例子?

解釋主成分分析法 (PCA)?

為什麼在神經網路中ReLU比Sigmoid更好更常用 ?

什麼是數據標準化,我們為什麼需要它?  我覺得很有必要強調這一題。數據標準化是非常重要的預處理步驟,用於對數值進行調節,使其擬合特定的範圍,以確保在反向傳播過程中更好地收斂。一般來說,這可以歸結為減去每個數據點的均值,再除以其標準差。如果我們不這樣做,那麼一些特徵(那些高量級的)將在成本函數中得到更多的權重(如果一個高量級的特徵變化了1%,那麼這個變化是相當大的,但是對於較小量級的特徵來說,它是相當小的)。數據標準化使得所有特徵的權重相等。

解釋降維,在哪裡會用到以及它的好處?  降維是通過減少所考慮的特徵變數數量來得到一組主變數(也就是重要特徵)的過程。特性的重要性取決於特徵變數對數據信息表示的貢獻,並取決於你使用哪種技術。決定使用哪種技術取決於反覆試驗和偏好。通常從線性技術開始,當結果不擬合時,就轉向非線性技術。數據集降維的潛在好處有:(1)減少所需存儲空間 (2)加速計算(例如在機器學習演算法),維度低意味著更少的計算,維度低也意味著可以使用不適合高維度的演算法 (3)刪除冗餘特徵,例如沒有意義同時用平方米和平方英里來存儲地形的大小(可能是數據採集存在缺陷) (4)降低數據維度到2D或3D可能允許我們繪圖和可視化它們,如觀察模式,給我們深刻見解 (5)太多的特徵或太複雜的模型可能導致過度擬合。

如何處理數據集中丟失或損壞的數據? 你可以在數據集中找到丟失/損壞的數據,你可以刪除這些行或列,或者用另一個值替換它們。在Pandas中,有兩個非常有用的方法:isnull()和dropna(),它們將幫助您找到丟失或損壞數據的數據列,並刪除這些值。如果希望用佔位符值(例如0)填充無效值,可以使用fillna()方法。

解釋這種聚類演算法? 我寫了一篇很受歡迎的文章,是關於數據科學家需要知道的5種聚類演算法,用各種可視化圖形詳細解釋了每種演算法。

你將如何進行探索性數據分析(EDA)? EDA的目標是在應用預測模型之前從數據中收集一些見解,也就是獲得一些信息。基本上,你希望以一種從粗到細的方式進行EDA。我們從獲得一些高層次的全局見解開始。看看一些不平衡的類。看看每個類的均值和方差。查看前幾行,看看它是關於什麼的。運行Pandas df.info()來查看哪些特性是連續的、分類的、它們的類型(int、float、string)。接下來,刪除在分析和預測中不無用的列。這些可能是看起來無用的列,其中一個是許多行具有相同的值(即該列沒有給我們很多信息),或者它丟失了很多值。我們還可以用該列中最常見的值或中值填充缺失的值。現在我們可以開始做一些基本的可視化。從高層次的東西開始。為特徵是分類和有少數組的做一些條形圖。最後類的條形圖。看看最「寬泛的特徵」。對這些單獨的特徵創建一些可視化,以嘗試獲得一些基本見解。現在我們可以開始更具體的。在兩個或三個特性之間創建可視化。特性是如何相互關聯的?你還可以用PCA查看哪些特徵包含最多的信息。將一些特性組合在一起,看看它們之間的關係。例如,當A = 0和B = 0時,類會發生什麼?當A = 1,B = 0時呢?比較不同的特徵。例如,如果特徵A可以是「女性」或「男性」,那麼我們可以將特徵A與他們呆在哪個小屋相對照,看看男性和女性是否住在不同的小屋。除了條形圖、散點圖和其他基本圖外,我們還可以繪製PDF/CDF、重疊圖等。查看一些統計數據,如分布、p值等。最後,是時候創建ML模型了。從簡單的貝葉斯和線性回歸開始。如果你發現很糟糕或者數據是高度非線性的,那就使用多項式回歸、決策樹或者SVMs。可以根據EDA中特徵的重要性選擇它們。如果你有很多數據,你可以使用神經網路。檢查ROC曲線。精度、回憶  。

你如何知道應該使用哪種機器學習模型?雖然人們應該時刻牢記「天下沒有免費的午餐」,但還是有一些基本原則的。我在這裡寫了一篇關於如何選擇合適的回歸模型的文章。這個備忘單也很棒!

為什麼我們對圖像使用卷積而不僅僅是FC層?這個問題很有趣,因為公司通常不會問這個問題。正如你所料,我從一家專註於計算機視覺的公司得到了這個問題。這個答案有兩部分。首先,卷積保存、編碼並實際使用了圖像中的空間信息。如果我們只使用FC層,就不會有相關的空間信息。其次,卷積神經網路(CNNs)具有部分內建的平移方差,因為每個卷積核都充當自己的濾波器/特徵檢測器。

什麼使CNNs不受平移影響?如上所述,每個卷積核都充當自己的濾波器/特徵檢測器。假設你在做物體檢測,物體在圖像中的什麼位置並不重要因為我們要以滑動窗口的方式對整個圖像進行卷積。

為什麼分類CNNs 有最大池化?正如你所預料的,這是為了計算機視覺中的一個角色。CNN中的最大池化允許你減少計算,因為你的特徵圖在池化之後更小。你不會丟失太多的語義信息,因為你正在進行最大限度的激活。也有一種理論認為,最大池效應在一定程度上增加了CNNs的不受平移影響性。看看吳恩達關於最大池化的好處視頻。

為什麼分段CNNs通常具有編碼器-解碼器風格/結構?編碼器CNN基本上可以被認為是一個特徵提取網路,而解碼器利用這些信息通過「解碼」特徵並向上放大到原始圖像大小來預測圖像的片段。

什麼是批量標準化,它為什麼有效? 深度神經網路的訓練是複雜的,因為每一層的輸入分布在訓練過程中會隨著前一層參數的變化而變化。批量標準化的目的是使每一層的輸入標準化,使它們的平均輸出激活為0,標準偏差為1。每一層中的每一個小批都會進行處理,即單獨計算小批的均值和方差,然後標準化。這類似於網路輸入的標準化。這有什麼幫助呢?我們知道對網路輸入進行標準化有助於其學習。但是網路只是一系列層,其中一層的輸出成為下一層的輸入。這意味著我們可以把神經網路中的任何一層看作是更小的後續網路的第一層。我們將神經網路看作是一系列相互饋入的神經網路,在應用激活函數之前對一層的輸出進行標準化,然後將其饋入下一層(子網路)。

如何處理不平衡的數據集?我有一篇關於這個的文章!

為什麼要使用很多小的卷積核,比如3x3,而不是幾個大的?這在VGGNet的論文中得到了很好的解釋。有兩個原因:首先,你可以使用幾個較小的內核而不是幾個較大的內核來獲得相同的接收域並捕獲更多的空間信息,但是使用較小的內核可以使用較少的參數和計算。其次,因為使用更小的內核,你將使用更多的過濾器,使用更多的激活函數,因此CNN將學習到更有鑒別性的映射函數。

你還有其他相關的項目嗎?在這裡,你將真正在你的研究和他們的業務之間建立聯繫。你有沒有做過什麼事或學過什麼技能,可能與他們的業務或你申請的職位有關? 不必是100%相關,只是某種程度上相關,這樣你就可以證明你能夠直接為公司增加很多價值。

解釋一下你目前的碩士研究?什麼成功了?沒有失敗了?未來的發展方向?和上一個問題一樣!


  結論

這就是所有我在申請數據科學和機器學習職位時得到的面試問題。我希望你喜歡這篇文章,並學到一些新的、有用的東西!如果你覺得學到點什麼,請點贊!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

神經架構優化(NAO):新的神經架構搜索(NAS)演算法
馬化騰評ofo的真正死因;德國對iPhone頒布永久性禁令;樂視旗下資產遭拍賣|雷鋒早報|雷鋒早報

TAG:雷鋒網 |