看完決策樹相關的30道面試題,再也不怕遇到相關的問題了

2019-07-24   AI公園
作者:ANKIT GUPTA編譯:ronghuaiyang

導讀

決策樹相關的算法是機器學習里非常常用,也非常有效的算法,梯度提升樹更是Kaggle必備,同時也是面試的時候,面試官非常願意問的問題,看完下面的30道題,相信你再遇到基於決策樹的問題,心裡就有底了!

介紹

決策樹是機器學習和數據科學中最受歡迎的算法之一。它們是透明的、易於理解的、健壯的和廣泛適用的。你可以看到算法在做什麼,它執行了什麼步驟來得到一個解。在需要解釋決策時,這種特性在業務中尤其重要。

這個技能測試是專門為你測試決策樹技術知識而設計的。超過750人報名參加了考試。如果你錯過了這個技能測試,這裡有一些問題和解決方案。

這裡是參加測試的參與者的排行榜。

問題和答案

1) 下面關於bagging樹的說法哪個是正確的?

  1. 在bagging樹中,每棵樹都是獨立的
  2. Bagging是通過對弱學習器的結果進行綜合來提升能力的方法

A) 1

B) 2

C) 1 和 2

D) 都不對

答案:C

兩種說法都是正確的。在Bagging中,每棵樹都是相互獨立的,因為它們考慮了不同子集的特徵和樣本。


2) 下面關於提升樹的說法哪個是正確的?

  1. 在提升樹中,每個弱學習器是相互獨立的
  2. 這是通過對弱學習器的結果進行綜合來提升能力的方法

A) 1

B) 2

C) 1 和 2

D) 都不對

答案: B

在提升樹中,每個弱學習器不是相互獨立的,因為每棵樹都糾正了前一棵樹的結果。Bagging和Boosting都可以被認為是提高基礎學習器能力的方法。


3) 下面關於隨機森林和梯度提升集成方法的說法哪個是正確的?

  1. 這兩種方法都可以用來做分類
  2. 隨機森林用來做分類,梯度提升用來做回歸
  3. 隨機森林用來做回歸,梯度提升用來做分類
  4. 兩種方法都可以用來做回歸

A) 1

B) 2

C) 3

D) 4

E) 1 和4

答案: E

兩種方法既可以做分類又可以做回歸。


4) 在隨機森林裡,你生成了幾百顆樹(T1, T2 …..Tn),然後對這些樹的結果進行綜合,下面關於隨機森林中每顆樹的說法正確的是?

  1. 每棵樹是通過數據集的子集和特徵的子集構建的
  2. 每棵樹是通過所有的特徵構建的
  3. 每棵樹是通過所有數據的子集構建的
  4. 每棵樹是通過所有的數據構建的

A) 1 和 3

B) 1 和 4

C) 2 和 3

D) 2 和 4

答案: A

隨機森林是基於bagging的方法,是通過對數據和特徵的採集來構建每一棵樹。


5) 下面關於梯度提升中"max_depth"的超參數的說法正確的是?

  1. 對於相同的驗證準確率,越低越好
  2. 對於相同的驗證準確率,越高越好
  3. max_depth增加可能會導致過擬合
  4. max_depth增加可能會導致欠擬合

A) 1 和 3

B) 1 和 4

C) 2 和 3

D) 2 和 4

答案: A

增加樹的深度可能會導致過擬合,對於兩個深度值,如果驗證準確率一樣的話,我們偏向於選擇小的深度的模型。


6) 下面的算法中哪個沒有使用學習率作為超參數?

  1. 梯度提升
  2. Extra Trees
  3. AdaBoost
  4. 隨機森林

A) 1 和 3

B) 1 和 4

C) 2 和 3

D) 2 和 4

Solution: D

隨機森林和Extra Trees的超參數中沒有學習率。


7) 下面的算法中,基於performance哪個你不會在最後的模型構建中使用?

假設你有了下面的圖,顯示了兩個不同分類算法的ROC曲線,隨機森林(紅色)和邏輯回歸(藍色)。

A) 隨機森林

B) 邏輯回歸

C) 兩個都可以

D) 兩個都不行

答案: A

隨機森林的AUC大的多,所以選擇隨機森林。


8) 關於訓練和測試誤差哪個說法是正確的?

假設你想對數據集D使用AdaBoost算法,數據集D有T個觀測值。一半數據用於訓練,一半數據用於測試。現在你想增加數據點的數量來訓練T1,T2…Tn其中T1 < T2 ....Tn-1 < Tn。

A) 數據點變多,訓練誤差和測試誤差的差別變大

B) 數據點變多,訓練誤差和測試誤差的差別變小

C) 數據點變多,訓練誤差和測試誤差的差別不變

D) 都不對

答案: B

我們有了更多的數據,訓練誤差會變大,測試誤差會變小,兩者都會向真實的誤差收斂。


9) 在隨機森林或梯度提升算法中,特徵可以是任何類型。例如,它可以是連續特徵,也可以是類別特徵。當你考慮這些類型的特性時,下列哪個選項是正確的?

A) 只有隨機森林在處理實數值特徵的時候會進行離散化

B) 只有梯度提升算法在處理實數值特徵的時候會進行離散化

C) 兩個算法都會在處理實數值特徵的時候會進行離散化

答案: C

兩者都可以處理實數值特徵。


10) 下面哪個算法不是集成學習算法的例子?

A) 隨機森林

B) Adaboost

C) Extra Trees

D) 梯度提升

E) 決策樹

答案: E

決策樹並沒有綜合多顆樹的結果,所以不是集成算法。


11) 假設你要用基於bagging的算法,比如隨機森林來構建模型,下面說法正確的是?

  1. 樹的數量越多越好
  2. 使用隨機森林具備可解釋性

A) 1

B) 2

C) 1 和 2

D) 都不對

答案: A

隨機森林組合弱學習器的結果,如果可能的話,樹的數量越多越好,隨機森林是一個黑盒子模型,不具備可解釋性。


12-15題

為了回答下面幾個問題,我們來看看下面這個圖。在圖中,X1和X2是兩個特徵,數據點用點表示(-1為負類,+1為正類)。首先根據特徵X1對數據進行分割(假設分割點為x11),如圖中用垂線表示。每一個小於x11的值將被預測為正類,而大於x11的值將被預測為負類。

12) 上面的圖中,有多少數據點被錯誤分類?

A) 1

B) 2

C) 3

D) 4

答案: A

沒什麼可說的。


13) 在x1特徵上哪個分割點可以對數據正確分類?

A) 比x11大

B) 比x11小

C) 等於x11

D)上面都不對

答案: D

在x1維度上,沒有哪個點可以100%的正確分類。

14) 如果使用x2特徵進行分割,可以在x2特徵上完美分類正負樣本嗎?

A) 可以

B) 不行

答案: B

也沒什麼可說的。


15) 現在在兩個特徵上都使用一個點(一個x1上,1個x2上),可以把所有的點都分正確嗎?

A) 可以

B) 不行

答案: B


16-17題

假如你正在處理一個包含3個輸入特性的二分類問題。你選擇對這些數據使用bagging算法(X),你選擇max_features = 2和n_estimators =3。現在,假設每個估計器都有70%的準確率。

注:算法X是基於最大投票對單個估計量的結果進行聚合

16) 你可以得到的最大準確率是多少?

A) 70%

B) 80%

C) 90%

D) 100%

答案: D

參考下面的表,由M1,M2得到M3

17)你能得到的最小準確率?

A) 大於70%

B) 大於等於%

C) 可以小於70%

D) 都不對

答案: C

參考下面的表,由M1,M2得到M3

18) 假設你構建一個隨機森林模型,在一個特徵節點上進行分割,具有最高的信息增益。下面的圖中,哪個是具有最高的信息增益的特徵?

A) Outlook

B) Humidity

C) Windy

D) Temperature

答案: A

信息增益隨著子集的平均純度的增加而增加,所以說A是正確答案。

19) 關於梯度提升樹,下面說法正確的是?

  1. 在每一個步驟,使用一個新的回歸樹來補償已有模型的缺點
  2. 我們可以使用梯度下降的方法來最小化損失函數

A) 1

B) 2

C) 1 和 2

D) 都不對

答案: C


20) 對還是錯: bagging適用於高的方差低偏差的模型?

A) 對

B) 錯

答案: A

bagging適用於高的方差低偏差的模型,或者說複雜的模型


21) 當你選擇觀測樣本的比例來構建基本的基於樹的學習器的時候,下面哪個是正確?

A) 減小樣本的比例來構建基礎學習器可以降低方差

B) 減小樣本的比例來構建基礎學習器可以提高方差

C) 增大樣本的比例來構建基礎學習器可以降低方差

D) 增大樣本的比例來構建基礎學習器可以提高方差

答案: A

22-23題

假如,你構建一個梯度提升模型,數據集有幾百萬個數據,1000多個特徵,構建模型之前,考慮到時間,你需要考慮一下不同的參數設置。

22) 考慮超參數 「number of trees」 ,構建梯度提升模型時花費的時間的排序是?

注: 其他的超參數是一樣的

  1. 樹的數量 = 100
  2. 樹的數量 = 500
  3. 樹的數量 = 1000

A) 1~2~3

B) 1<2<3

C) 1>2>3

D) 都不對

答案: B

1000棵樹花的時間最多,100棵樹最少。

23) 現在,考慮學習率超參數,構建梯度提升模型,每個超參數花的時間排序是?

注: 其他的超參數是一樣的

  1. 學習率 = 1
  2. 學習率 = 2
  3. 學習率 = 3

A) 1~2~3

B) 1<2<3

C) 1>2>3

D) 都不對

答案: A

學習率並不影響時間,所以所有的學習率花的時間是一樣的。

24) 在梯度提升中,利用學習率來獲得最優輸出是非常重要的,在選擇學習速率時,下列哪個選項是正確的

A) 學習率越高越好

B) 學習率越低越好

C) 學習率應該低一點但是不能太低

D) 學習率應該高一點但是不能太高

答案: C

學習率應該低一點,但不應該很低,否則算法需要很長時間才能完成訓練,因為你需要增加樹的數量。


25) [對還是錯] 交叉驗證可用於選擇提升中的疊代次數;這個過程可以幫助減少過擬合

A) 對

B) 錯

答案: A

26) 當你使用提升算法時,你會考慮弱學習器,以下哪項是使用弱學習器的主要原因?

  1. 防止過擬合
  2. 防止欠擬合

A) 1

B) 2

C) 1 和 2

D) 都不對

答案: A

為了防止過擬合,在提升算法的每個步驟中,模型的複雜度都在提升,從弱學習器開始意味著最終的分類器過擬合的可能性會小。

27) 在回歸樹上使用bagging方法,下面的說法正確的是?

  1. 我們在N個又放回採用的樣本上構建N個回歸器
  2. 我們使用N個回歸樹
  3. 每一棵樹具有高的方差低的偏差

A) 1 和 2

B) 2 和3

C) 1 和 3

D) 1,2 和 3

答案: D

28) 如何為基於樹的模型選擇最佳超參數?

A) 在訓練數據上度量perfermance

B) 在驗證數據上度量perfermance

C) 兩個都對

D) 兩個都不對

答案: B

我們使用驗證集的結果來進行對比。

29) 在以下哪種情況下,增益比比信息增益更可取?

A) 當類別變量具有非常大的類別數量的時候

B) 當類別變量具有非常小的類別數量的時候

C) 和類別數量無關

答案: A

30) 假設已經給出了以下場景下梯度提升的訓練和驗證錯誤,在這種情況下,您會選擇以下哪個超參數?

A) 1

B) 2

C) 3

D) 4

答案: B

場景2和場景4具有相同的驗證精度,但是我們將選擇2,因為深度越低越好。

總得分的分布

下面是所有參與者的得分的分布:

您可以這裡訪問分數。350多人參加了技能測試,最高得分為28分。

原文連結:https://www.analyticsvidhya.com/blog/2017/09/30-questions-test-tree-based-models/

更多文章,請關注微信公眾號:AI公園