
一文搞定數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的最常見面試題
去的幾個月中,我參加了一些公司數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)等方向初級崗位的面試。
我面試的這些崗位和數(shù)據(jù)科學(xué)、常規(guī)機(jī)器學(xué)習(xí)還有專業(yè)的自然語言處理、計算機(jī)視覺相關(guān)。我參加了亞馬遜、三星、優(yōu)步、華為等大公司的面試,除此之外還有一些初創(chuàng)公司的面試。這些初創(chuàng)公司有些處于啟動階段,也有些已經(jīng)成型并得到投資。
簡單介紹一下我的背景:在校期間攻讀機(jī)器學(xué)習(xí)和計算機(jī)視覺的碩士學(xué)位,主要進(jìn)行學(xué)術(shù)方面的研究,但是有在一家早期初創(chuàng)公司(和ML無關(guān))實(shí)習(xí)八個月的經(jīng)歷。
今天我想跟你們分享我在面試中被問到的問題,以及如去何解答。其中一部分問題很常見,旨在考察你的理論知識儲備。但也有一些問題頗具創(chuàng)意,非常有意思。我將把常見的問題簡單列出來,不多做解釋,因為網(wǎng)上有許多資料可以參考。比較罕見、棘手的問題,我會深入探討一下。希望你讀完這篇文章后,可以在機(jī)器學(xué)習(xí)的面試中表現(xiàn)出色,獲得自己滿意的工作。
首先來看一些常見的理論問題:
什么是偏差-方差之間的權(quán)衡?
什么是梯度下降?
如何解決維數(shù)災(zāi)難問題?
什么是正則化?為什么要正則化?請給出一些正則化常用方法。
為什么在神經(jīng)網(wǎng)絡(luò)中,ReLU是比Sigmoid更好、更常用的激活函數(shù)?
數(shù)據(jù)規(guī)范化是什么?為什么需要對數(shù)據(jù)進(jìn)行規(guī)范化?
我覺得這個問題很重要,值得強(qiáng)調(diào)。數(shù)據(jù)規(guī)范化在預(yù)處理階段尤為重要,它可以將數(shù)值縮放到特定的范圍,以在反向傳播時獲得更好的收斂性。一般而言,規(guī)范化就是讓每一個數(shù)據(jù)點(diǎn)減去它們的均值,并除以標(biāo)準(zhǔn)差。
如果不這樣處理,一些(數(shù)量級較大的)特征值在代價函數(shù)中的權(quán)重就會更大(如果大數(shù)量級特征值改變1%,代價函數(shù)的變化就會很大,但小數(shù)量級的特征值改變1%產(chǎn)生的影響則微乎其微)。規(guī)范化使得所有特征值具有相同的權(quán)重。
請解釋降維,以及使用場合和它的優(yōu)勢。
降維是一種通過分析出主變量來減少特征變量的過程,其中主變量通常就是重要的特征。一個特征變量的重要性取決于它對數(shù)據(jù)信息的解釋程度,以及你所采用的方法。至于如何選取方法,主要靠不斷摸索,以及你自己的偏好。通常大家會從線性方法開始,如果結(jié)果欠缺擬合性,則考慮嘗試非線性的方法。
數(shù)據(jù)降維的優(yōu)勢有以下幾點(diǎn):(1)節(jié)省存儲空間;(2)節(jié)省計算時間(比如應(yīng)用于機(jī)器學(xué)習(xí)算法時);(3)去除冗余特征變量,正如同時以平方米和平方英里存儲地區(qū)面積沒有任何意義(甚至可能是收集數(shù)據(jù)時出現(xiàn)錯誤);(4)將數(shù)據(jù)降維到二維或三維后,我們或許可以畫圖,將數(shù)據(jù)可視化,以觀察數(shù)據(jù)具有的模式,獲得對數(shù)據(jù)的直觀感受;(5)特征變量過多或模型過于復(fù)雜可能導(dǎo)致模型過擬合。
如何處理數(shù)據(jù)集中缺失或損壞的數(shù)據(jù)?
你可以在數(shù)據(jù)集中找到缺失/損壞的數(shù)據(jù),并刪除它所在的行或列,或是用其他值代替之。Pandas中有兩個非常有效的函數(shù):isnull()和dropna(),這兩個函數(shù)可以幫你找到有缺失/損壞數(shù)據(jù)的行,并刪除對應(yīng)值。如果要用占位符(比如0)填充這些無效值,你可以使用fillna()函數(shù)。
請解釋一下某種聚類算法。
我寫了一篇熱門文章《數(shù)據(jù)科學(xué)家應(yīng)當(dāng)知曉的5種聚類算法》,詳盡細(xì)致討論了這些算法,文章的可視化也很棒。(可以自行百度搜索)
如何開展探索性數(shù)據(jù)分析(EDA)?
EDA的目的是在應(yīng)用預(yù)測模型之前,了解數(shù)據(jù)的信息,獲得對數(shù)據(jù)的直觀感受??偟膩碚f,開展探索性數(shù)據(jù)分析一般采取由粗到精的方法。我們首先獲取一些高層次、全局性的直觀感受。檢查一下不平衡的類,查看每一類的均值和方差??纯吹谝恍?,了解數(shù)據(jù)大致內(nèi)容。
運(yùn)行pandas中的df.info()函數(shù),看看哪些是連續(xù)變量、分類變量,并查看變量的數(shù)據(jù)類型(整型、浮點(diǎn)型、字符串)。然后刪掉一些在分析、預(yù)測中不需要的列,這些列中的很多行數(shù)值都相同(提供的信息也相同),或者存在很多缺失值。我們也可以用某一行/列的眾數(shù)或中值填充該行/列中的缺失值。
此外可以做一些基本的可視化操作。從相對高層次、全局性的角度開始,比如繪制分類特征關(guān)于類別的條形圖,繪制最終類別的條形圖,探究一下最“常用”的特征,對獨(dú)立變量進(jìn)行可視化以獲得一些認(rèn)知和靈感等。
接下來可以展開更具體的探索。比如同時對兩三個特征進(jìn)行可視化,看看它們相互有何聯(lián)系。也可以做主成分分析,來確定哪些特征中包含的信息最多。類似地,還可以將一些特征分組,以觀察組間聯(lián)系。
比如可以考察一下,取A = B = 0時,不同的類會有什么表現(xiàn)?取A = 1、B = 0時呢?還要比較一下不同特征的影響,比方說特征A可以取“男性”或“女性”,則可以畫出特征A與旅客艙位的關(guān)系圖,判斷男性和女性選在艙位選擇上是否有差異。
除了條形圖、散點(diǎn)圖或是其他基本圖表,也可以畫出PDF(概率分布函數(shù))或CDF(累計分布函數(shù))、使用重疊繪圖方法等。還可以考察一下統(tǒng)計特性,比如分布、p值等。最后就該建立機(jī)器學(xué)習(xí)模型了。
從簡單的模型開始,比如樸素貝葉斯、線性回歸等。如果上述模型效果不理想,或是數(shù)據(jù)高度非線性,則考慮使用多項式回歸、決策樹或支持向量機(jī)。EDA可以挑選出重要的特征。如果數(shù)據(jù)量很大,可以使用神經(jīng)網(wǎng)絡(luò)。別忘了檢查ROC曲線(感受性曲線)、準(zhǔn)確率和召回率。
怎么知道應(yīng)當(dāng)選取何種機(jī)器學(xué)習(xí)模型?
雖然人們應(yīng)當(dāng)堅信天下沒有免費(fèi)的午餐,但還是有一些指導(dǎo)原則相當(dāng)通用。我在一篇文章里寫了如何選取合適的回歸模型,還有一篇備忘錄也很棒!
為什么對圖像使用卷積而不只是FC層?
這個問題比較有趣,因為提出這個問題的公司并不多。恰巧,在一家專攻計算機(jī)視覺的公司的面試中,我被問到這個問題。答案應(yīng)分成兩部分:首先,卷積可以保存、編碼、使用圖像的空間信息。只用FC層的話可能就沒有相關(guān)空間信息了。其次,卷積神經(jīng)網(wǎng)絡(luò)(CNN)某種程度上本身具有平移不變性,因為每個卷積核都充當(dāng)了它自己的濾波器/特征監(jiān)測器。
為什么CNN具有平移不變性?
上文解釋過,每個卷積核都充當(dāng)了它自己的濾波器/特征監(jiān)測器。假設(shè)你正在進(jìn)行目標(biāo)檢測,這個目標(biāo)處于圖片的何處并不重要,因為我們要以滑動窗口的方式,將卷積應(yīng)用于整個圖像。
為什么用CNN分類需要進(jìn)行最大池化?
這也是屬于計算機(jī)視覺領(lǐng)域的一個問題。CNN中的最大池化可以減少計算量,因為特征圖在池化后將會變小。與此同時,因為采取了最大池化,并不會喪失太多圖像的語義信息。還有一個理論認(rèn)為,最大池化有利于使CNN具有更好的平移不變性。關(guān)于這個問題,可以看一下吳恩達(dá)講解最大池化優(yōu)點(diǎn)的視頻。
為什么用CNN分割時通常需要編碼-解碼結(jié)構(gòu)?
CNN編碼器可以看作是特征提取網(wǎng)絡(luò),解碼器則利用它提供的信息,“解碼”特征并放大到原始大小,以此預(yù)測圖像片段。
殘差網(wǎng)絡(luò)有什么意義?
殘差網(wǎng)絡(luò)主要能夠讓它之前的層直接訪問特征,這使得信息在網(wǎng)絡(luò)中更易于傳播。一篇很有趣的論文解釋了本地的跳躍式傳導(dǎo)如何賦予網(wǎng)絡(luò)多路徑結(jié)構(gòu),使得特征能夠以不同路徑在整個網(wǎng)絡(luò)中傳播。
批量標(biāo)準(zhǔn)化是什么?它為什么有效?
訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)很復(fù)雜,因為在訓(xùn)練過程中,隨著前幾層輸入的參數(shù)不斷變化,每層輸入的分布也隨之變化。一種方法是將每層輸入規(guī)范化,輸出函數(shù)均值為0,標(biāo)準(zhǔn)差為1。對每一層的每個小批量輸入都采用上述方式進(jìn)行規(guī)范化(計算每個小批量輸入的均值和方差,然后標(biāo)準(zhǔn)化)。這和神經(jīng)網(wǎng)絡(luò)的輸入的規(guī)范化類似。
批量標(biāo)準(zhǔn)化有什么好處?我們知道,對輸入進(jìn)行規(guī)范化有助于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)。但神經(jīng)網(wǎng)絡(luò)不過是一系列的層,每層的輸出又成為下一層的輸入。也就是說,我們可以將其中每一層視作子網(wǎng)絡(luò)的第一層。把神經(jīng)網(wǎng)絡(luò)想象成一系列互相傳遞信息的網(wǎng)絡(luò)結(jié)構(gòu),因此在激活函數(shù)作用于輸出之前,先將每一層輸出規(guī)范化,再將其傳遞到下一層(子網(wǎng)絡(luò))。
如何處理不平衡數(shù)據(jù)集?
關(guān)于這個問題我寫了一篇文章,請查看文章中第三個小標(biāo)題。
為什么要使用許多小卷積核(如3*3的卷積核),而非少量大卷積核?
這篇VGGNet的論文中有很詳細(xì)的解釋。有兩個原因:首先,同少數(shù)大卷積核一樣,更多小卷積核也可以得到相同的感受野和空間背景,而且用小卷積核需要的參數(shù)更少、計算量更小。其次,使用小卷積核需要更多過濾器,這意味會使用更多的激活函數(shù),因此你的CNN可以得到更具特異性的映射函數(shù)。
你有和我們公司相關(guān)的項目經(jīng)歷嗎?
在回答這個問題時,你需要把自己的研究和他們的業(yè)務(wù)的聯(lián)系起來。想想看你是否做過什么研究,或?qū)W過什么技能,能和公司業(yè)務(wù)及你申請的崗位有所聯(lián)系。這種經(jīng)歷不需要百分之百符合所申請的崗位,只要在某種程度上有關(guān)聯(lián),這些經(jīng)歷就會成為你很大的加分項。
請介紹一下你目前的碩士研究項目。哪些項目和申請崗位有關(guān)聯(lián)?未來發(fā)展方向是什么?
這個問題的答案同上,你懂的
結(jié)論
以上就是所有我在應(yīng)聘數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)相關(guān)崗位時被問到的問題。希望你喜歡這篇文章,并從中獲益。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03