5個必須了解的數(shù)據(jù)科學面試問題
為了不讓自己在同一個地方失敗兩次,也為了讓自己對他人有用,我的這篇文章獻給那些想追隨自己的激情,成為數(shù)據(jù)科學家的人。我堅信,即使你不想換工作,你也必須不斷地接受面試,因為你在面試中學到了很多東西。沒有比這更快的學習方法了。數(shù)據(jù)科學是一個需要你不斷提高技能的領域,同時每天都在發(fā)展機器學習算法的基本概念。因此,廢話不多說,讓我們直接進入一些問題和答案,你可能在下次面試中有用。
問題1:你能解釋一下決策樹的損失函數(shù)嗎?
答案: 在回答這個問題之前,需要注意的是,決策樹是一種通用的機器學習算法,它可以執(zhí)行分類和回歸任務。因此,它們的損失函數(shù)也不同。
分類問題的損失函數(shù):
在我們理解損失函數(shù)之前,Gini不純度是一個很重要的概念,讓我先解釋一下。

式1:Gini不純度
其中“p”為第i個節(jié)點上類k的實例與總的訓練實例的比例。這是什么意思??我們通過下面的例子來理解。圖一顯示了深度為2的Iris決策樹的簡單可視化。頂層是根節(jié)點。將訓練集劃分為決策集的概念在算法中相當簡單。例如,在這里,iris數(shù)據(jù)集根據(jù)根節(jié)點上一個稱為“ petal width”的單一特征被分成兩個子集。如果petal width小于或等于0.8,則算法進入深度1(左)。如果不是,就進入深度1的右邊。它根據(jù)“petal width”的附加特征進一步劃分實例。在深度1上,右節(jié)點有100個實例的樣本,將0個實例應用于Iris-Setosa, 50個實例應用于Iris-Versicolor,其余50個應用于Iris-Virginica。

圖1: Iris決策樹
所以這個節(jié)點的基尼系數(shù)是0.5:

式2: Gini不純度的計算
類似地,在深度1(左節(jié)點)處,Gini不純度為0,因為所有的訓練實例都應用于同一個類。節(jié)點本質上是“純”的。
現(xiàn)在我們已經理解了什么是Gini不純度,讓我們進入問題的實質。決策樹使用分類和回歸樹(CART)算法進行訓練,基于一個簡單的概念,即使用單個特征(k)和閾值(t)將數(shù)據(jù)集分成兩個子集。iris數(shù)據(jù)集的特征為“petal width”,閾值為0.8。它是如何選擇k和t的?它搜索產生最純子集的對(k, t)。因此,算法試圖最小化的代價函數(shù)如下式所示:

其中G左右代表子集的gini不純度,m代表子集的實例。
回歸型問題的損失函數(shù):
對于回歸樹,損失函數(shù)是相當直觀的。我們使用殘差平方和(RSS),式(3)為回歸型樹的損失函數(shù),其中y為ground truth, y-hat為預測值。

式3:殘差的平方和
問題2:共線性會對模型有影響嗎?
答案: 共線性是指兩個或多個預測變量之間關系密切。下面的圖2顯示了共線變量的例子。變量2嚴格遵循變量1,Pearson相關系數(shù)為1。所以很明顯,當這些變量被輸入到機器學習模型中時,它們中的一個會表現(xiàn)得像噪音一樣。

圖2: 共線性變量的例子
共線性的存在在回歸類型的問題中可能成為問題,因為很難分離出共線性變量對響應的個別影響?;蛘邠Q句話說,共線性降低了回歸系數(shù)估計值的準確性,導致誤差增加。這將最終導致t統(tǒng)計量的下降,因此,在共線性存在的情況下,我們可能無法拒絕原假設。
檢測共線性的一個簡單方法是查看預測變量的相關矩陣。這個矩陣的一個元素的絕對值很大,表明了一對高度相關的變量,存在數(shù)據(jù)共線性的問題。不幸的是,并不是所有的共線性問題都可以通過檢查相關矩陣來發(fā)現(xiàn):即使沒有一對變量具有特別高的相關性,三個或多個變量之間也可能存在共線性。這種情況稱為多重共線性。對于這種情況,評估多重共線性的一個更好的方法是計算方差膨脹因子 (VIF),而不是檢查相關矩陣。每個變量的VIF可以用公式計算:

式4: 方差膨脹因子
其中r平方項是變量X對所有其他預測因子的回歸。如果VIF接近或大于1,則存在共線性。當遇到共線性問題時,有兩種可能的解決方案。一種是刪除冗余變量。這可以在不影響回歸擬合的情況下完成。第二種方法是將共線變量合并成單個預測器。
問題3:給外行解釋一下深度神經網絡
答案:神經網絡(NN)的概念最初起源于人類大腦,其目的是識別模式。神經網絡是一套通過機器感知、標記和聚類原始輸入數(shù)據(jù)來解釋感知數(shù)據(jù)的算法。任何類型的現(xiàn)實世界數(shù)據(jù),無論是圖像、文本、聲音甚至時間序列數(shù)據(jù),都必須轉換成包含數(shù)字的向量空間。
深度神經網絡中的深度是指神經網絡由多層構成。這些層是由節(jié)點組成的,在節(jié)點上進行計算。人腦中的一個類似節(jié)點的神經元在遇到足夠的刺激時就會被激活。節(jié)點將原始輸入的數(shù)據(jù)與其系數(shù)或權值組合在一起,這些系數(shù)或權值根據(jù)權值減弱或放大輸入。輸入和權重的乘積在圖3所示的求和節(jié)點上求和,然后將其傳遞給激活函數(shù),激活函數(shù)決定該信號是否應該在網絡中進一步擴展并影響最終結果。節(jié)點層是一排類似神經元的開關,當輸入通過網絡輸入時,這些開關就會打開或關閉。

圖3: 神經網絡中節(jié)點的可視化
深度神經網絡不同于早期的神經網絡,如感知器,因為它們是淺層的,只是由輸入層和輸出層以及一個隱含層組成。

圖4: 深度神經網絡包含多個隱含層
問題4:3分鐘簡單闡述一個可以讓你回去解決的數(shù)據(jù)科學的項目
答案:一個典型的數(shù)據(jù)科學面試過程始于具體的數(shù)據(jù)分析項目。我做過兩次,取決于項目的復雜度。第一次,我有兩天的時間來解決一個問題,使用機器學習。而第二次,我有兩個星期的時間來解決一個問題。不需要指出的是,當我第二次處理類別不平衡的數(shù)據(jù)集時,這是一個更加困難的問題。因此,3分鐘的推銷式面試問題可以讓你展示你對手頭問題的把握。請務必從你對問題的解釋開始,你解決問題的簡單方法,你在你的方法中使用了什么類型的機器學習模型,為什么?不要對模型準確性過多的吹噓。
我相信這是你在面試中非常重要的一個問題,它可以讓你證明你是數(shù)據(jù)科學領域的領導者,并且可以使用較新和較好的工具來解決復雜的問題。
問題5:模型正則化是什么意思?如何在線性模型中實現(xiàn)正則化?
答案: 正則化是一個用于約束機器學習模型的術語。在機器學習模型中約束或減少過度擬合的一個好方法是減少自由度。自由度越少,模型越難過度擬合數(shù)據(jù)。例如,正則化多項式模型的一種簡單方法是減少多項式的自由度。然而,對于線性模型,正則化通常是通過限制模型的權值來實現(xiàn)的。因此,與線性回歸不同,嶺回歸、lasso回歸和彈性網絡模型有三種不同的約束權重的方法。為了完整起見,我們先從線性回歸的定義開始:

式5:線性回歸和模型預測
線性回歸模型的損失函數(shù)定義為均方誤差:

嶺回歸:是線性回歸的正則化版本,即,則在成本函數(shù)中增加一個額外的正則化項。這就迫使學習算法不僅要適應數(shù)據(jù),還要使模型的權值盡可能小。注意,正則化術語只應在訓練期間添加到損失函數(shù)中。一旦對模型進行了訓練,你就需要使用非正則化的性能度量來評估模型的性能。

超參數(shù)alpha控制模型的正則化程度。如果是零,那么嶺回歸就是線性回歸。
Lasso回歸: Lasso回歸是另一個正規(guī)化的線性回歸,就像嶺回歸,它增加了損失函數(shù)的正則化項,但它使用L1范數(shù)的權向量,而不是L2范數(shù)的平方。

Lasso回歸的一個重要特征是它傾向于完全消除最不重要特征(即最不重要特征)的權重,把它們設為零。換句話說,Lasso回歸自動執(zhí)行特征選擇并輸出一個稀疏模型(即,只有少數(shù)非零的特征權重)。
彈性網回歸:這是介于嶺回歸和Lasso回歸之間的中間地帶。正則化項是Ridge和Lasso正則化項的簡單組合,可以用“r”來控制。當r=0時,彈性網相當于嶺回歸,當r=1時,彈性網相當于Lasso回歸。

它總是可取的,至少有一點點正則化和一般的線性回歸總是應該避免。Ridge是一個很好的默認設置,但是如果在一個特定的數(shù)據(jù)集中只有幾個有用的特性,那么應該使用Lasso。一般來說,彈性網優(yōu)于Lasso,因為Lasso在特征數(shù)量大于實例數(shù)量或多個特征強烈相關時可能表現(xiàn)不規(guī)律。