全文共8343字,預計學習時長24分鐘
不管你是擁有上萬經驗條的「老手」,亦或是初出茅廬卻天資過人的「新手」,面試官總能「難倒你」。
在面試的時候,面試官所出題目涉及的範圍可能會非常廣,這既考驗了面試者的技能知識,又很能體現面試者的溝通技巧。面試官會通過一系列的問題來衡量你的數據統計、編程,和數據建模能力,而且這些問題是經過專門設計的,需要你精神高度集中,並迫使你展示在壓力下的工作狀態。
好的準備工作是數據科學職業生涯成功的關鍵,這當然也包括面試過程。
怎樣才能不被面試官「難倒」?怎樣才能在一場數據科學面試上脫穎而出?小芯這次特別整理了你應該準備的所有數據科學面試問題,包括國內外109個面試問答,都是數據科學面試時面試者曾遇到的真實的問題哦,作為年末送給大家的福利~快將它收入囊中吧~
現在,我們將數據科學家將會遇到的面試問題分為了六個不同的類別:數據統計、編程、建模、行為、文化,和解決問題類。
1. 數據統計(Statistics)
2. 編程
3. 一般問題
4. 大數據
5. Python
6. R語言
7. 結構化查詢語言(SQL)
8. 建模
9. 行為
10. 文化契合
11. 問題解決能力
數據統計面試問題
統計計算就是數據科學家通過原始數據來做出預測和建模的過程。沒有傑出的統計學知識,是很難成為一個成功的數據科學家的。因此,一個優秀的面試官大概率會通過一些統計向的數據科學問題,來試探你對這個領域的理解。那麼面試者最好對一些基本的統計問題有所準備,以此為數據面試做更充分的準備。
下列是我們搜尋到的一些常見統計問題:
1. 什麼是中心極限定理?它為什麼很重要?
○ 「假設,我們有興趣來估算所有人的平均身高。搜集世界上每個人的數據是不可能的。雖然我們不能獲得每個人的身高測量數據,但我們仍可以從一些人身上取樣。那麼問題就變成了,對於這個單一的樣本推測出的整個人口的平均身高,你的看法是怎麼樣的。中心極限定理其實也就是在討論這個問題。」
2. 什麼是抽樣? 你知道多少種抽樣方法?
○ 「數據抽樣是一種統計分析技術,用於選擇、操作和分析具有代表性的數據點子集,以識別正在測試的更大數據集中的模式和趨勢。」
3. I類錯誤和II類型錯誤的區別是什麼?
○ 「當原假設為真但被拒絕時,會發生I類錯誤。如果原假設是不成立的,但卻錯誤地沒有被拒絕,就會發生 II 類錯誤。」
4. 什麼是線性回歸?P 值、係數、和R平方值這些術語又是什麼意思?它們各自的重要性又是怎樣的?
○ 線性回歸是快速預測分析的好工具。舉例來講,房子的價格取決於許多因素,比如它的大小或位置。為了看到這些變量之間的關係,我們需要建立一個線性回歸模型,它可以預測變量之間的最佳匹配線,並且可以幫助得出這兩個因素之間是正相關還是負相關。
5. 線性回歸需要什麼樣的假設?
○ 有四個主要假設: 1. 因變量和回歸變量之間存在線性關係,這意味著你正在創建的模型實際上適合數據。2. 數據的誤差或殘差是正態分布的,相互獨立。3. 在解釋變量間存在最小多重共線性。4. 同方差性。這意味著對於預測變量的所有值,回歸線周圍的方差是相同的。
○
6. 什麼是統計交互作用?
○ 「基本上,交互作用是指一個因素(輸入變量)對因變量(輸出變量)的影響在另一個因素的不同水平上存在差異。」
7. 什麼是選擇性偏差?
○ 「當為建模而收集和準備的樣本數據具有不能代表模型將預測到的未來真實情況的特徵時,選擇(或『抽樣』)偏差會在『主動的』意義上發生。也就是說,當一部分數據被系統地,即非隨機地排除在分析之外時,就會出現主動選擇性偏差。」
8. 非高斯分布的數據集是什麼樣的?
○ 「高斯分布是指數族分布的一部分,但除此之外,還有很多使用十分便捷的分布。對研究深度學習的人而言,如果在統計學方面有堅實的基礎,則能夠更加熟練地應用這些分布。」
9. 二項式概率公式是什麼?
○ 「二項分布的概率包括:n次獨立試驗中每次成功的可能數量的概率,每次試驗都發生的概率(希臘字母 pi)。」
在Glassdoor*上找到的類似的數據科學面試問題實例:
*Glassdoor 是美國一家做企業點評與職位搜索的職場社區。
什麼是P值?如果有不同(更大,有三百萬個期望值)的數據集你又如何理解P值變化?
Wayfair*公司(一家美國電子商務公司,主要銷售家具和家居用品。)決定不再向過半的線上客戶提供電話客服,它為什麼要這麼做?
如何巧妙地應用一些計算技巧,來更快速地計算逆矩陣?
編程
為了檢驗編程技能,你通常會遇到以下兩類問題:在不寫出代碼的情況下,你會如何從理論上解決編程問題?隨後,面試官會要求你在白板上當場寫下你的解決方案。對於後一種問題,這裡有幾個案例可供參考。在「實踐出真知」的方針指導下,該網站圍繞著核心概念出了很多有挑戰的題目,而它們也是面試時常見的問題。
一般問題
1. 你最擅長的程式語言和環境是什麼?
2. 你最喜歡的統計軟體有哪些優缺點?
3. 展示一個你原創的算法。
4. 描述一次你參與了實質性的編程組件的數據科學項目經歷。以及你從那次經歷中學到了什麼?
5. 你是否為任何開源項目做過貢獻?
6. 如何清理數據集(以insert語句為例)?
7. 展示你在上一個項目中做的代碼。
大數據
1. Hadoop框架的兩個主要構成部分?
○ Hadoop分布式文件系統(HDFS),MapReduce(編程模型),和另一種資源協調者(YARN)。
2. 儘量簡潔地解釋MapReduce的工作原理。
○ 「MapReduce是一個編程模型,可以在使用商用硬體的計算機群上對大型數據集進行分布式處理。HadoopMapReduce首先會執行數據映射,這包括將大文件分割成多個部分,以生成另一組數據。」
3. 如何處理一長列數字?
4. 假設有一個大數據集。你將如何處理其中的異常值、缺失值,以及數據轉換?
Python
1. 你最熟悉的模塊和資料庫有哪些?它們哪些特點讓你喜歡,哪些讓你討厭?
2. Python是如何管理內存?
○ 在Python中,內存是在私有堆空間中管理的,這意味著所有Python對象和數據結構都位於一個私有堆中。但是,程式設計師無法訪問這個私有空間。相反,Python解釋器將處理它。同時,核心應用程式接口(API)允許程式設計師使用一些Python工具來編寫代碼。內存管理器將為Python對象分配堆空間,而內置垃圾收集器則回收所有未使用的內存,並釋放內存使其可用到堆空間。
3. Python支持哪些數據類型?
○ 「Python的內置,或者標準數據類型可以分為幾類。按Python官方文檔中使用的層次結構模式來看,即數字類型、序列、集合和映射。」
4. Python中的元組(tuple)和列表(list)有什麼區別?
○ 「除了元組是不可變的之外,語句應用上兩者也有區別。」
R語言
1.R語言中有哪些不同類型的排序算法?
○ 有插入、選擇和冒泡(bubble)排序算法。這裡閱讀更多。
2. R語言中的不同數據對象是什麼?
○ 「R語言可以將數值存儲為不同的核心數據類型(在R術語中稱為模式);這些類型包括數字(整數和雙精度浮點數)、字符和邏輯符號。」
3. 你最熟悉的軟體包是什麼?你認為它們哪些特點讓你喜歡,哪些讓你討厭?
4.如何訪問名為M的矩陣的第2列和第4行中的元素?
○ 「我們可以使用方括號索引方法訪問矩陣中的元素。元素可以作為var[row, column]來訪問。」
5. 在文件中用來存儲R對象的命令是什麼?
○ save (x,file=」x.Rdata」)
6. Hadoop和R語言一起進行數據分析的最佳方式是什麼?
○ 「Hadoop和R語言在大數據的可視化和分析方面相互補充。有四種不同的方法可以同時使用Hadoop和R語言。」
7. 在R語言中,如何將連續變量分成不同的組或級?
8. 用R語言編寫一個函數,其功能是使向量的平均值替換該向量中的缺失值。
結構化查詢語言(SQL)
SQL問題通常是基於實際案例的,這就意味著面試官會從實用的角度來測試你的技能。舉例來講,面試官會給你一個表單,要求你提取相關數據,然後根據你認為合適的方式對數據進行篩選和排序,最後陳述你的發現。如果你還沒有準備好在面試環境中進行這樣的操作,Mode Analytics(模式分析)提供了使用SQL的有趣介紹,它將通過一個交互式SQL環境來教你這些命令。
1. 組函數在SQL中的用途是什麼?給出一些組函數的例子。
○ 組函數是獲得數據集的摘要統計信息的必要途徑。 COUNT、MAX、MIN、AVG、SUM和DISTINCT都是組函數。
2. 交集(innerjoin)、左結果集(left join)、右結果集(rightjoin)和合併(union)之間的區別。
○ 「在維恩圖中,交集就是左右兩個表單匹配的部分,左結果集則產生於左表中有匹配項且右表無效時,右結果集與左結果集是相對的,合併就是指所有的數據。」
3. 合併(UNION)的功能?合併和全合併(UNIONALL)有什麼不同?
○ 「合併會刪除重複的記錄,也就是那些結果相同的欄,而全合併則不刪除重複的部分。」
4. SQL、MySQL和SQLServer有什麼區別?
○ 「SQL就是結構化查詢語言,它是訪問和操作資料庫的標準語言。MySQL是一個資料庫管理系統,像SQLServer,Oracle1,Informix2,PostgreSQL3都是資料庫管理系統。
1:甲骨文公司的一款關聯式資資料庫管理系統。
2:IBM信息管理部門的一個產品系列。
3:是以加州大學計算機系開發的POSTGRES,4.2版本為基礎的對象關係型資料庫管理系統。
5. 如果表單內包含重複行,查詢結果是否默認顯示重複值?如何從查詢結果中消除重複行?
○ 會的。使用DISTINCT語句是消除重複行的一種方法。
有關特定代碼片段的其他SQL問題,請查看Toptal創建的資源。
在Glassdoor上找到的類似的數據科學面試問題實例:
評價一個Python函數。
SQL查詢分為自我查詢(self joins)和內查詢(innerqueries)。可以通過分析性查詢來解決問題。
建模
數據建模才是數據科學家為公司創造價值的途徑。將數據轉化為可預測的、可運用的信息是很困難的,與潛在僱主談論這些問題更是如此。練習描述你過去建立模型的經歷:你使用了哪些技巧,克服了哪些挑戰,又取得了怎樣的成功?
下面的一組問題就是幫助你了解這些信息,以及回顧不同建模技術。如果你不能描述你使用模型背後相關的理論和假設,你不會給面試官留下好印象。
那麼請瀏覽以下的問題來進行練習,並不是所有的問題都會出現在你的面試裡,你不需要掌握所有的技巧。這些問題更多的是幫助你重新熟悉過去學過的建模技術的。
1. 你如何為過去的僱主或客戶設計一個模型?
2. 你最喜歡的數據可視化工作技巧是什麼?
3. 如何有效地用五維方式展示數據?
4. k鄰近算法和K均值算法有什麼不同?
○ k-NN(距k最近區域的英文縮寫),是一種分類算法,其中k是一個整數,用來描述影響給定觀測值分類的相鄰數據點的數量。K均值算法是一種聚類算法,其中k是一個整數,用於描述從給定數據創建的聚類數量。
5. 如何創建一個Logistic回歸分析模型?
6. 用過時間序列模型嗎?理解時滯的交叉相關性嗎?
7. 解釋二八法則,並說出它在模型驗證中的重要性。
○ 「人們通常傾向於用一個80%和20%的比例(80%的訓練集,20%的測試集)開始建模,然後再次將訓練集分離成80%和20%的比例來創建驗證集。」
8. 解釋什麼是準確率、召回率,它們和ROC曲線有什麼關係?
○ 召回率表示了真正值在模型中被記為正值的比率。準確率描述了正面預測的正確率。ROC曲線顯示了模型召回率和特異性之間的關係:特異性是用來衡量真負值在模型中被記為負值的比率。召回率、準確率和ROC是用來衡量給定分類模型有多大用處的指標。
9. 解釋L1和L2正則化方法的區別。
○ 「使用L1正則化技巧的回歸模型稱為套索回歸(LassoRegression),使用 L2的回歸模型稱為嶺回歸,這兩者之間的關鍵區別在於懲罰因子。」
10. 根本原因分析法是什麼?
○ 「我們所有人都害怕一種會議,那就是老闆會問『為什麼營收減少了?』。更糟糕的是,我們對這個問題一點想法都沒有。生意可謂是日新月異,但你想要準確地了解是什麼在推動這些變化,尤其是那些意想不到的變化。理解變化的潛在原因被稱為根本原因分析。」
11. 什麼是哈希表碰撞?
○ 「如果鍵值的範圍大於哈希表的大小(通常都是這樣的),那麼我們必須考慮到兩個不同的記錄,和兩組不同的答案會散列到同一個表索引的可能性。其實有幾種不同的方法來解決這個問題。在哈希表中,這種解決方案稱為碰撞解決方案。」
12. 什麼是精確檢驗?
○ 「精確(顯著性)檢驗中所有推導檢驗統計量分布假設都能夠得到滿足,而在近似檢驗中,通過使樣本規模足夠大,就可以得到足夠接近的近似值。之後就要進行顯著性檢驗,其錯誤拒絕率總是等於檢驗的顯著性水平。例如,在顯著性水平為5%的精確檢驗中,從長遠來看,拒絕真正的零假設的時間只佔5%。」
13. 在你看來,設計機器學習模型時,哪個更重要:模型性能還是模型準確性?
○ 這裡有本問題的一個解答。
14. 如何處理一個用於預測的不平衡數據集,例如在負類比正類多得多的情況下?
15. 如何使用多元回歸來驗證,你創建的生成預測模型的定量結果?
16. 兩個模型的準確性和計算性能相當,該選擇哪一個模型投入生產,為什麼?
17. 如何處理稀疏性?
18. 花五天時間研究出一個準確度為90%解決方案,還是花10天時間研究出100%準確的解決方案?
19. 一般線性模型失敗的情況有哪些?
20. 你是否認為50個小的決策樹比一整個大的更好?為什麼?
21. 在修改算法時,如何知道你的更改是對是對不執行任何操作的改進?
22. 是有太多的假正值還是太多的假負值更好?
○ 這取決於幾個因素。
在Glassdoor上找到的類似的數據科學面試問題實例:
如何對各有一百條消費記錄的百萬用戶,進行有效分類,分類標準是一萬人為一組,他們的共同特徵是消費過同類產品。
學術型問題總是能找到答案的。請回憶一下各基本算法的一兩個特點:神經網絡,隨機森林,支持向量機,線性回歸。
你會怎樣調整一個隨機森林?
想像一下場景:我籤署了一份保密協議,所以我不能揭露過多細節。但是面試官提出了一個開放式問題,它包含了我創建、設計、應用一個算法的全過程。
過去的行為
僱主很喜歡行為性問題。因為這些問題不僅能夠揭示受試者的工作經歷,還有他們的工作態度,以及受試者曾給一個團隊帶來的影響。從這些問題出發,面試官想了解的是面試者在過去是如何應對這些環境的,他們又是如何把自己的作用發揮到極致的,以及他們能從這些經歷中學到什麼。
那麼行為性問題通常有以下幾類:
1. 團隊合作
2. 領導力
3. 衝突應對
4. 解決問題
5. 面對失敗
在開始面試前,寫下和這些話題有關的工作經歷,幫助你喚醒之前的記憶,因為你可能需要之前發生的真實的案例來回答這些問題。注意,要求你陳述前段經歷的時候,確保你說的是一個故事,而簡潔並有邏輯地講述你詳盡的經歷是非常重要的。
比如:「我被要求去做X。我做了A,B,和C,然後我覺得正確答案應該是Y。」
當然,如果你能夠突出講述和數據科學有關的經歷,這些問題就是展示你作為一個優秀的數據科學家的大好時機。
下面是一些具體問題:
1. 描述一次你主動工作的情景。
2. 描述一次你需要克服困境的經歷。
3. 描述一次你解決爭端的經歷。
4. 描述一次你失敗的經歷,以及你從中學到了什麼。
5. 描述你簡歷上的一次工作經歷。你選擇那份工作的理由是什麼?以及你最喜歡那份工作的哪一點。
6. 描述一次小組工作經歷中你所戰勝的挑戰。
7. 當你接手了一個無趣的工作,你會如何解決它?以及你如何讓自己有動力完成它?
8. 在過去,你如何讓客戶滿意或者開心?
9. 上一份工作中你引以為傲的地方。
10. 你的私生活影響到工作時你會怎麼做?
在Glassdoor上找到的類似的數據科學面試問題實例:
看看那個混蛋發給我的這封郵件,你會怎麼處理這種情況?(他實際上給我看了他的收件箱,然後讓我看公司其他部門發來的一封命令語氣極強的郵件。)
你如何通過數據改變世界?
圖源:Unsplash
文化契合
如果面試官問到了一下的問題,那麼他們主要是想了解你是誰,以及你將如何適應這個公司的環境。他們在估量你對數據科學,以及對他們公司的興趣是從哪兒來的。
看看以下的問題,想出你最好的答案,但注意回答問題時一定要誠實。沒有理由不去做你自己。這些問題沒有標準答案,但能夠確定的一點是,好的回答誕生於充滿自信感的交流。
1. 你最崇拜哪個數據科學家?最崇拜哪些初創企業?
○ 有很多偉大的數據科學家可以選擇,多了解一些世界頂級數據科學家的趣事。
2. 你認為成為一個優秀的數據科學家需要哪些品質?
3. 你是如何對數據科學產生興趣的?
4. 舉出幾個數據科學中的最佳應用實例。
5. 你最近閱讀的數據科學書籍或文章是什麼?你最近參與的數據挖掘會議、線上研討會、課程、工作坊、訓練有哪些?
○ 如果最近你沒有閱讀優秀的數據科學書籍,Springboard提供了最佳數據科學書籍書單。
6. 你想參與我們公司的哪個項目?
7. 你認為你能給團隊帶來什麼獨特的能力?
8. 如果不加限制的話,你最想獲得什麼數據?
9. 你想過創立自己的公司嗎?它是基於什麼想法或概念的?
10. 你的愛好能夠傳達出的簡歷裡表現不出來的信息有哪些?
11. 你對未來20年的五個主要預測?
12. 你今天做了什麼?或者你這個周、上個周做了什麼?
13. 如果你中了一百萬美金的彩票,你會如何用這筆錢?
14. 大多數人不認同但你堅持相信的一件事?
15. 你不認同哪些性格特徵?
16. 數據科學領域外你感興趣的事情?
在Glassdoor上找到的類似的數據科學面試問題實例:
你看重一個企業的五個原因。
如果你可以擁有一種超能力,你希望它是什麼?
問題解決能力
在數據科學面試中,面試官會不定時的想要測試你的問題解決能力。通常這些問題都是開放式的,你會如何解決X?一般來說,這個X會是你所面試的公司需要解決的問題。
比如,Yelp的面試官就會讓面試者回答如何解決Yelp*上的虛假評論。
*美國最大的點評網站。
一些小技巧:首先,不要害怕問問題。面試官想要衡量你的批判性思維能力,而問問題來解決不確定性是每一個數據科學家都應該有的能力。
同時,如果這個問題為展示你白板演示代碼,或是原理圖的能力提供了機會,不要浪費,多多展示自己。
它不僅展示了你的專業技能,還通過不同的溝通模式展示了你的思維過程。記得一定要展示你的思維過程,對於面試官來說,過程比結果更重要。
1. 如何想出一個識別作弊的方法?
2. 一個Yelp評論會收到幾個「有用」?
3. 如何識別個人帳戶為多個消費者買單的情況?
4. 你要發送一百萬封郵件。怎樣最優化傳輸過程?以及如何最優化回復?
5. 一個有十萬行和一百列的數據集,其中一列是要解決問題的因變量。如何快速確定哪一列對於預測因變量有幫助?想出兩個方案,並向我解釋,就當我只有五歲。
6. 如何檢測那些惡意的假評論和假帳戶?
○ 這是展示你對機器學習算法掌握程度的好時機,尤其是情感分析算法和文本分析算法。展示你對欺詐行為的了解,那些假帳戶通常會有什麼異常的表現?
7. 如何對一百萬個關鍵詞進行聚類算法?假設有一千萬個數據點,每一個都包含兩個關鍵詞,你需要衡量兩個關鍵詞的相似度。一開始你會如何創建者一千萬個數據點的表單呢?
8. 如何最優化一個網絡蜘蛛使其運行得更快,提取更優的信息,並且更好得總結信息從而創立一個更清晰的資料庫?
在Glassdoor上找到的類似的數據科學面試問題實例:
假設你有一家咖啡店,如何來擴大客戶數量?
如何根據已知消費記錄預測未來消費?
假設你的桶裡有很多截繩子,你隨機拿出一個,再拿出一個,然後把它們系起來。那麼桶內成環的預計數值是多少?
結語
沒有百分之一百的成功途徑,只有不斷努力與完善自己各個方面,才能更加自信,超常發揮!
祝大家好運~
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範