答對這些面試題,心儀的數據科學offer來敲門 (上)
《哈佛商業評論》稱數據科學家為「21世紀最性感的工作」。根據IBM的數據,到2020年,這一職位的需求將猛增28%。如果在面試中想給僱主留下好印象,除了解釋為什麼數據科學如此重要(以及為什麼你為什麼喜歡它),你還需要在技術上精通數據科學中的概念、框架和各種應用案例。
DataGirls特意為你精選了參加數據科學工作面試時的must know考題,將分為三期為你放送。
Q1: 正則化(regularization)是什麼? 它有什麼用?
正則化是在模型中加入調優參數(tuning parameter)以模型其平滑(smoothness),以防止過度擬合的過程。
這通常是通過在現有的權重向量中添加一個常數倍數來實現的。這個常數通常是L1 (Lasso)或L2(Ridge),但實際上可以是任何標準。然後,模型的預測應該最小化基於正則化訓練集計算的損失函數的均值。
如果你感興趣,可以看看Xavier Amatriain在Quora提供了L1和L2正則化的對比。
https://www.quora.com/What-is-the-difference-between-L1-and-L2-regularization-How-does-it-solve-the-problem-of-overfitting-Which-regularizer-to-use-and-whenQ2:什麼是過度擬合(overfitting),如何避免?
過度擬合(overfitting)是當你建立一個預測模型與數據的擬合程度太過接近,因為它捕獲的是數據中的隨機雜訊(random noise)而不是真正模型。所以模型應用於新數據時的預測結果時會出錯。
我們經常聽到的研究報告不同尋常的結果,或學習研究推翻先前建立的發現。許多這樣的研究得出結果並不能重複。
這是一個大問題,尤其是在社會科學或醫學領域,當研究人員經常犯數據科學的主要錯誤——過度擬合時。
研究人員在沒有適當的統計控制的情況下測試了太多的假設(hypotheses),直到他們發現了一些有趣的東西。然後他們撰寫報告。理所當然的,下一次的效果(部分是由於偶然)將會小得多或少得多。
約翰·p·a·埃尼迪斯(John P. A. Ioannidis)在其具有里程碑意義的論文中指出了這些研究實踐的缺陷,並報告了為什麼大多數發表的研究結果都是錯誤的( Why Most Published Research Findings Are False ,PLoS Medicine, 2005)。埃尼迪斯發現,要麼是結果被誇大了,要麼是發現不能重複。在他的論文中,他提出了統計證據,證明大多數聲稱的研究結果都是假的!
埃尼迪斯指出,為了使研究發現可靠,它應該有:
· 樣本量大,效果顯著
· 測試關係的可選擇數量更多,但所選更少。
· 在設計、定義、結果和分析模式上有更大的靈活性。
· 由於金融和其他因素(包括該科學領域的受歡迎程度)造成的最小偏差
不幸的是,人們常常不遵守規則,製造出虛假的結果,例如標準普爾500指數與孟加拉國黃油產量強烈相關,或美國在科學、宇宙、技術上的投入與上吊,勒殺空和窒息的自殺人數密切相關。
有幾種方法可以避免「過度擬合」數據:
試著找出最簡單的假設。
正則化Regularization (增加複雜性的懲罰penalty for complexity)
隨機化測試Randomization Testing (隨機化類變數,在這個數據上嘗試你的方法——如果它發現了同樣的強大結果,那就錯了)
嵌套交叉驗證Nested cross-validation (在一個層次上進行特徵選擇,然後在外部層次上運行整個方法進行交叉驗證)
調整錯誤發現率。False Discovery Rate
使用可重複使用的holdout方法——2015年提出的一種突破方法。
良好的數據科學是科學認識世界的前沿。避免過度擬合數據,教育公眾和媒體不良數據分析的危險則是數據科學家的責任。
Q3:請分別解釋什麼是假陽性(False Positive)和假陰性(false negative),並且說明區分他們的重要性。
在二進位分類(或醫學測試)中,假陽性表示當一個演算法(或測試)顯示一個條件的存在時,但實際中它是不存在的情況。一個假陰性是當一個演算法(或測試)表明沒有條件缺失時,但在現實中它是存在的情況。
在統計假設檢驗中,假陽性也被稱為I型錯誤(type I error )和假陰性-II型錯誤(false negative - type II error)。
顯然,區分和處理假陽性和假陰性是非常重要的,因為這些錯誤的代價可能會大不相同。
例如,如果對嚴重疾病的測試結果是假陽性的(測試表明疾病,但是人是健康的),那麼病人不得不進行額外的檢查,以確診真正的病情。然而,如果一個測試結果是假陰性(測試說病人健康,實際上有疾病),那麼醫院會停止治療,病人可能會因此而死亡。
Q4:請解釋一下precision和recall.它們和ROC曲線是如何聯繫的?
計算precision和recall實際上非常簡單。
假設1萬例患者中有100例陽性病例。你想要預測哪些是陽性的,而你選擇了200個,以便有更大的幾率找到100個陽性病例。你記錄下你的預測的id,當你得到實際的結果時,你總結了你所有的正確次數和錯誤次數。
有四種尋找正誤的方法:
1 TN / True Negative真陰性:病例為陰性,預測結果為陰性。
2 TP / True Positive 真陽性:病例為陽性,預測結果為陽性。
3 FN / False Negative 假陰性:病例為陽性,但預測結果為陰性。
4 FP / False Positive 假陽性:病例為陰性,但預測結果為陽性。
假設有1萬個例子
根據表格你可能在面試中被詢問以下3個問題:
1、你的預測有多正確?
正確答案:「準確度」 accuracy是(9760 +60),10000 = 98.2%
2、你發現的陽性例子佔比多少?
正確答案:recall是TP/(TP+FP),即60/(60+40) = 60%
3、有多少的陽性預測是正確的?
正確答案: precision是TP/(TP+FP) ,即60/(60+140 = 30%
ROC曲線代表了靈敏性(sensitivity 同時也是recall)和專用性(specificity也就是NOT precision)之間的關係,通常用來衡量二進位分類器的性能。
然而,當處理高度傾斜的數據集時,Precision-Recall (PR)曲線給出了更具有代表性的性能圖像。
Q6:什麼是維度災難(curse of dimensionality)?
「隨著特徵(features)或維度的增加,我們需要對數據進行精確的歸納。」
——查爾斯·伊斯貝爾教授(Charles Isbell)
下面舉個例子。圖1 (a)在一個維度上顯示10個數據點,即數據集中只有一個特徵(feature),可以很容易地用10個值表示,x=1、2、3……10。
但是如果我們再添加一個特性,同樣的數據將在二維中表示(圖1 (b)),導致維度空間增加到10*10 =100。如果我們添加第三個特徵,維度空間會增加到10*10*10 = 1000。隨著維度的增長,維度空間呈指數增長。
10 ^ 1 = 10
10 ^ 2 = 100
10 ^ 3 = 1000…
數據的這種指數增長導致了數據集的高稀疏性(high sparsity),並且增加了不必要的特定建模演算法的存儲空間和處理時間。想想的高解析度的圖片識別問題,像素圖像1280×720 =921600維度。這就是為什麼它被稱為維度災難。附加維度給模型增加的價值遠比不上給它給演算法帶來的開銷。
底線是,可以用一個真正的維度的10個空間單位來表示的數據,需要1000個空間單位以及增加2個維度,而那是因為我們在實驗中觀察到了這些維度。真正的維度是指精確概括數據和觀察維度的維度,這意味著我們在數據集中考慮的其他維度可能有助於準確地概括數據。
Q7:什麼是推薦引擎(recommendation engine)? 它如何工作?
我們現在都很熟悉Netflix等電影網站的推薦,像是「你可能喜歡的其他電影」,或者是來自亞馬遜的——購買X產品的顧客也購買了Y產品。
這種系統被稱為推薦引擎,或者更寬泛的被稱為推薦系統(recommender systems)。
他們通常以兩種方式運作:協同過濾(collaborative filtering)與基於內容過濾(content-based filtering)
協同過濾方法建立一個基於用戶過去行為的模型(先前購買的項目,觀看的電影和評級等),並使用當前和其他用戶的決策。然後,該模型用於預測用戶可能感興趣的項目(或項目的評級)。
基於內容的過濾方法使用一個項目的特性(feature)來推薦具有相似屬性的附加項。這些方法經常結合在混合推薦系統(Hybrid Recommender Systems)中。
以Last.fm 與Pandora Radi來舉例:
?Last.fm通過觀察用戶定期收聽的樂隊和個人歌曲,並將其與其他用戶的收聽行為進行比較,從而創建推薦歌曲的「站點」(station)。station會播放未出現在用戶的庫中的曲目,但通常是其他擁有相似品味的用戶播放的。由於該方法利用了用戶的行為,它是協同過濾技術的一個示例。
?pandora則使用歌曲或藝術家的屬性。它們的音樂基因組計劃(the Music Genome Project)提供了一個擁有400個屬性(attributes)的子集,以形成一個「電台」,來播放具有相似屬性的音樂。用戶反饋用於優化站點(station)的結果,當用戶「不喜歡」某首歌時,它會弱化某些屬性,並在用戶「喜歡」一首歌時強調其他屬性。這是基於內容的方法的一個示例。
Q8:什麼是重採樣方法 (resampling methods)?
經典的統計參數檢驗將觀察到的統計數據與理論抽樣分布進行比較。重新採樣是一個數據驅動(data-driven)方法,而不是基於相同樣本內重複抽樣的理論驅動方法(theory-driven )。
重採樣主要採用以下幾種方法:
- 通過使用可用數據子集(jackknifing)或從一組數據點(bootstrapping)隨機抽取,估計樣本統計數據的精確度(precision),比如(中位數,方差,百分位數)
- 在進行顯著性測試significance tests(置換測試permutation tests,也稱為精確測試exact tests,隨機測試randomization tests,或重新隨機化測試re-randomization tests)時,在數據點上進行標籤(label)交換
- 使用隨機子集(bootstrapping,交叉驗證cross validation)驗證模型
Q9:什麼是選擇偏差(selection bias)? 它的重要性以及如何避免?
一般來說,選擇偏差是由於非隨機的人口樣本(non-random population sample)而引入誤差的情況。
例如,如果一個給定的100個測試樣本是由60/20/15/5分成的4個類別(class),而這4個類別實際上是在數量相對相等的人群中發生的,那麼一個給定的模型可能會做出錯誤的假設,即概率可能是決定性的預測因子。
避免非隨機樣本是處理偏差的最好方法;然而,當這在現實中很難實現的時候,可以使用例如重採樣resampling、boosting和加權weighting等技術策略來幫助處理這種情況。
Q10:什麼是根本原因分析(root cause analysis)?
根本原因分析(RCA)是一種解決問題的方法,用於識別錯誤或問題的根本原因。如果將一個根本原因從問題-斷層序列(problem-fault-sequence)中去除,就能防止不良結果的再次發生;而其他的因素雖然能影響事件的結果,但不能被叫做根本原因。
根本原因分析最初是用來分析工業事故的,但現在廣泛應用於其他領域,如醫療保健、項目管理或軟體測試。
下圖展示的是明尼蘇達州的一個根本原因分析工具包(Toolkit)。
從本質上說,你可以找到問題的根本原因,並通過反覆問「為什麼?」來顯示原因的關係,直到你找到問題的根源。這種技術通常被稱為「5個Whys」,儘管它可以包含更多或少於5個問題。
第二部分面試題下周繼續公布,下次見。
*面試答案整理自數據科學家Gregory Piatetsky等人在Kdnuggets上的發布的回答。
DataGirls每月在北京舉辦線下的Tableau周末集訓營,為對數據可視化感興趣的零基礎人群提供紮實、快速而系統的學習機會,欲了解更多集訓營情況,可跳轉至:【DataGirls-Tableau專場03期】用Tableau成就你的商業數據分析師之路
(PS:Tableau是目前商業數據分析領域中最流行的可視化工具。它是一款幫助公司及其管理者更好地理解數據信息的商業智能軟體。)
如果想了解更多數據分析和數據可視化的相關信息,可以關注微信公眾號:DataGirls
如果大家有關於更多相關問題,可以邀請DataGirls回答~
推薦閱讀:
※若想修鍊成數據科學家,最重要的技能居然是...?
※「數據故事」的兩大危險信號
※上海證券交易所Level-2行情對比Level-1行情有什麼優勢?
※看完,你就理解什麼是數據的全量、增量、差異備份了
※數據分析師必修課(1)——數據質量評估