
一文搞定數據科學和機器學習的最常見面試題
去的幾個月中,我參加了一些公司數據科學、機器學習等方向初級崗位的面試。
我面試的這些崗位和數據科學、常規機器學習還有專業的自然語言處理、計算機視覺相關。我參加了亞馬遜、三星、優步、華為等大公司的面試,除此之外還有一些初創公司的面試。這些初創公司有些處于啟動階段,也有些已經成型并得到投資。
簡單介紹一下我的背景:在校期間攻讀機器學習和計算機視覺的碩士學位,主要進行學術方面的研究,但是有在一家早期初創公司(和ML無關)實習八個月的經歷。
今天我想跟你們分享我在面試中被問到的問題,以及如去何解答。其中一部分問題很常見,旨在考察你的理論知識儲備。但也有一些問題頗具創意,非常有意思。我將把常見的問題簡單列出來,不多做解釋,因為網上有許多資料可以參考。比較罕見、棘手的問題,我會深入探討一下。希望你讀完這篇文章后,可以在機器學習的面試中表現出色,獲得自己滿意的工作。
首先來看一些常見的理論問題:
什么是偏差-方差之間的權衡?
什么是梯度下降?
如何解決維數災難問題?
什么是正則化?為什么要正則化?請給出一些正則化常用方法。
為什么在神經網絡中,ReLU是比Sigmoid更好、更常用的激活函數?
數據規范化是什么?為什么需要對數據進行規范化?
我覺得這個問題很重要,值得強調。數據規范化在預處理階段尤為重要,它可以將數值縮放到特定的范圍,以在反向傳播時獲得更好的收斂性。一般而言,規范化就是讓每一個數據點減去它們的均值,并除以標準差。
如果不這樣處理,一些(數量級較大的)特征值在代價函數中的權重就會更大(如果大數量級特征值改變1%,代價函數的變化就會很大,但小數量級的特征值改變1%產生的影響則微乎其微)。規范化使得所有特征值具有相同的權重。
請解釋降維,以及使用場合和它的優勢。
降維是一種通過分析出主變量來減少特征變量的過程,其中主變量通常就是重要的特征。一個特征變量的重要性取決于它對數據信息的解釋程度,以及你所采用的方法。至于如何選取方法,主要靠不斷摸索,以及你自己的偏好。通常大家會從線性方法開始,如果結果欠缺擬合性,則考慮嘗試非線性的方法。
數據降維的優勢有以下幾點:(1)節省存儲空間;(2)節省計算時間(比如應用于機器學習算法時);(3)去除冗余特征變量,正如同時以平方米和平方英里存儲地區面積沒有任何意義(甚至可能是收集數據時出現錯誤);(4)將數據降維到二維或三維后,我們或許可以畫圖,將數據可視化,以觀察數據具有的模式,獲得對數據的直觀感受;(5)特征變量過多或模型過于復雜可能導致模型過擬合。
如何處理數據集中缺失或損壞的數據?
你可以在數據集中找到缺失/損壞的數據,并刪除它所在的行或列,或是用其他值代替之。Pandas中有兩個非常有效的函數:isnull()和dropna(),這兩個函數可以幫你找到有缺失/損壞數據的行,并刪除對應值。如果要用占位符(比如0)填充這些無效值,你可以使用fillna()函數。
請解釋一下某種聚類算法。
我寫了一篇熱門文章《數據科學家應當知曉的5種聚類算法》,詳盡細致討論了這些算法,文章的可視化也很棒。(可以自行百度搜索)
如何開展探索性數據分析(EDA)?
EDA的目的是在應用預測模型之前,了解數據的信息,獲得對數據的直觀感受??偟膩碚f,開展探索性數據分析一般采取由粗到精的方法。我們首先獲取一些高層次、全局性的直觀感受。檢查一下不平衡的類,查看每一類的均值和方差??纯吹谝恍?,了解數據大致內容。
運行pandas中的df.info()函數,看看哪些是連續變量、分類變量,并查看變量的數據類型(整型、浮點型、字符串)。然后刪掉一些在分析、預測中不需要的列,這些列中的很多行數值都相同(提供的信息也相同),或者存在很多缺失值。我們也可以用某一行/列的眾數或中值填充該行/列中的缺失值。
此外可以做一些基本的可視化操作。從相對高層次、全局性的角度開始,比如繪制分類特征關于類別的條形圖,繪制最終類別的條形圖,探究一下最“常用”的特征,對獨立變量進行可視化以獲得一些認知和靈感等。
接下來可以展開更具體的探索。比如同時對兩三個特征進行可視化,看看它們相互有何聯系。也可以做主成分分析,來確定哪些特征中包含的信息最多。類似地,還可以將一些特征分組,以觀察組間聯系。
比如可以考察一下,取A = B = 0時,不同的類會有什么表現?取A = 1、B = 0時呢?還要比較一下不同特征的影響,比方說特征A可以取“男性”或“女性”,則可以畫出特征A與旅客艙位的關系圖,判斷男性和女性選在艙位選擇上是否有差異。
除了條形圖、散點圖或是其他基本圖表,也可以畫出PDF(概率分布函數)或CDF(累計分布函數)、使用重疊繪圖方法等。還可以考察一下統計特性,比如分布、p值等。最后就該建立機器學習模型了。
從簡單的模型開始,比如樸素貝葉斯、線性回歸等。如果上述模型效果不理想,或是數據高度非線性,則考慮使用多項式回歸、決策樹或支持向量機。EDA可以挑選出重要的特征。如果數據量很大,可以使用神經網絡。別忘了檢查ROC曲線(感受性曲線)、準確率和召回率。
怎么知道應當選取何種機器學習模型?
雖然人們應當堅信天下沒有免費的午餐,但還是有一些指導原則相當通用。我在一篇文章里寫了如何選取合適的回歸模型,還有一篇備忘錄也很棒!
為什么對圖像使用卷積而不只是FC層?
這個問題比較有趣,因為提出這個問題的公司并不多。恰巧,在一家專攻計算機視覺的公司的面試中,我被問到這個問題。答案應分成兩部分:首先,卷積可以保存、編碼、使用圖像的空間信息。只用FC層的話可能就沒有相關空間信息了。其次,卷積神經網絡(CNN)某種程度上本身具有平移不變性,因為每個卷積核都充當了它自己的濾波器/特征監測器。
為什么CNN具有平移不變性?
上文解釋過,每個卷積核都充當了它自己的濾波器/特征監測器。假設你正在進行目標檢測,這個目標處于圖片的何處并不重要,因為我們要以滑動窗口的方式,將卷積應用于整個圖像。
為什么用CNN分類需要進行最大池化?
這也是屬于計算機視覺領域的一個問題。CNN中的最大池化可以減少計算量,因為特征圖在池化后將會變小。與此同時,因為采取了最大池化,并不會喪失太多圖像的語義信息。還有一個理論認為,最大池化有利于使CNN具有更好的平移不變性。關于這個問題,可以看一下吳恩達講解最大池化優點的視頻。
為什么用CNN分割時通常需要編碼-解碼結構?
CNN編碼器可以看作是特征提取網絡,解碼器則利用它提供的信息,“解碼”特征并放大到原始大小,以此預測圖像片段。
殘差網絡有什么意義?
殘差網絡主要能夠讓它之前的層直接訪問特征,這使得信息在網絡中更易于傳播。一篇很有趣的論文解釋了本地的跳躍式傳導如何賦予網絡多路徑結構,使得特征能夠以不同路徑在整個網絡中傳播。
批量標準化是什么?它為什么有效?
訓練深層神經網絡很復雜,因為在訓練過程中,隨著前幾層輸入的參數不斷變化,每層輸入的分布也隨之變化。一種方法是將每層輸入規范化,輸出函數均值為0,標準差為1。對每一層的每個小批量輸入都采用上述方式進行規范化(計算每個小批量輸入的均值和方差,然后標準化)。這和神經網絡的輸入的規范化類似。
批量標準化有什么好處?我們知道,對輸入進行規范化有助于神經網絡學習。但神經網絡不過是一系列的層,每層的輸出又成為下一層的輸入。也就是說,我們可以將其中每一層視作子網絡的第一層。把神經網絡想象成一系列互相傳遞信息的網絡結構,因此在激活函數作用于輸出之前,先將每一層輸出規范化,再將其傳遞到下一層(子網絡)。
如何處理不平衡數據集?
關于這個問題我寫了一篇文章,請查看文章中第三個小標題。
為什么要使用許多小卷積核(如3*3的卷積核),而非少量大卷積核?
這篇VGGNet的論文中有很詳細的解釋。有兩個原因:首先,同少數大卷積核一樣,更多小卷積核也可以得到相同的感受野和空間背景,而且用小卷積核需要的參數更少、計算量更小。其次,使用小卷積核需要更多過濾器,這意味會使用更多的激活函數,因此你的CNN可以得到更具特異性的映射函數。
你有和我們公司相關的項目經歷嗎?
在回答這個問題時,你需要把自己的研究和他們的業務的聯系起來。想想看你是否做過什么研究,或學過什么技能,能和公司業務及你申請的崗位有所聯系。這種經歷不需要百分之百符合所申請的崗位,只要在某種程度上有關聯,這些經歷就會成為你很大的加分項。
請介紹一下你目前的碩士研究項目。哪些項目和申請崗位有關聯?未來發展方向是什么?
這個問題的答案同上,你懂的
結論
以上就是所有我在應聘數據科學和機器學習相關崗位時被問到的問題。希望你喜歡這篇文章,并從中獲益。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25在當今數字化時代,數據分析師的重要性與日俱增。但許多人在踏上這條職業道路時,往往充滿疑惑: 如何成為一名數據分析師?成為 ...
2025-04-24以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《劉靜:10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda ...
2025-04-23