作者:ANKIT GUPTA編譯:ronghuaiyang
導讀
決策樹相關的算法是機器學習里非常常用,也非常有效的算法,梯度提升樹更是Kaggle必備,同時也是面試的時候,面試官非常願意問的問題,看完下面的30道題,相信你再遇到基於決策樹的問題,心裡就有底了!
介紹
決策樹是機器學習和數據科學中最受歡迎的算法之一。它們是透明的、易於理解的、健壯的和廣泛適用的。你可以看到算法在做什麼,它執行了什麼步驟來得到一個解。在需要解釋決策時,這種特性在業務中尤其重要。
這個技能測試是專門為你測試決策樹技術知識而設計的。超過750人報名參加了考試。如果你錯過了這個技能測試,這裡有一些問題和解決方案。
這裡是參加測試的參與者的排行榜。
問題和答案
1) 下面關於bagging樹的說法哪個是正確的?
- 在bagging樹中,每棵樹都是獨立的
- Bagging是通過對弱學習器的結果進行綜合來提升能力的方法
A) 1
B) 2
C) 1 和 2
D) 都不對
答案:C
兩種說法都是正確的。在Bagging中,每棵樹都是相互獨立的,因為它們考慮了不同子集的特徵和樣本。
2) 下面關於提升樹的說法哪個是正確的?
- 在提升樹中,每個弱學習器是相互獨立的
- 這是通過對弱學習器的結果進行綜合來提升能力的方法
A) 1
B) 2
C) 1 和 2
D) 都不對
答案: B
在提升樹中,每個弱學習器不是相互獨立的,因為每棵樹都糾正了前一棵樹的結果。Bagging和Boosting都可以被認為是提高基礎學習器能力的方法。
3) 下面關於隨機森林和梯度提升集成方法的說法哪個是正確的?
- 這兩種方法都可以用來做分類
- 隨機森林用來做分類,梯度提升用來做回歸
- 隨機森林用來做回歸,梯度提升用來做分類
- 兩種方法都可以用來做回歸
A) 1
B) 2
C) 3
D) 4
E) 1 和4
答案: E
兩種方法既可以做分類又可以做回歸。
4) 在隨機森林裡,你生成了幾百顆樹(T1, T2 …..Tn),然後對這些樹的結果進行綜合,下面關於隨機森林中每顆樹的說法正確的是?
- 每棵樹是通過數據集的子集和特徵的子集構建的
- 每棵樹是通過所有的特徵構建的
- 每棵樹是通過所有數據的子集構建的
- 每棵樹是通過所有的數據構建的
A) 1 和 3
B) 1 和 4
C) 2 和 3
D) 2 和 4
答案: A
隨機森林是基於bagging的方法,是通過對數據和特徵的採集來構建每一棵樹。
5) 下面關於梯度提升中"max_depth"的超參數的說法正確的是?
- 對於相同的驗證準確率,越低越好
- 對於相同的驗證準確率,越高越好
- max_depth增加可能會導致過擬合
- max_depth增加可能會導致欠擬合
A) 1 和 3
B) 1 和 4
C) 2 和 3
D) 2 和 4
答案: A
增加樹的深度可能會導致過擬合,對於兩個深度值,如果驗證準確率一樣的話,我們偏向於選擇小的深度的模型。
6) 下面的算法中哪個沒有使用學習率作為超參數?
- 梯度提升
- Extra Trees
- AdaBoost
- 隨機森林
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的算法,比如隨機森林來構建模型,下面說法正確的是?
- 樹的數量越多越好
- 使用隨機森林具備可解釋性
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) 關於梯度提升樹,下面說法正確的是?
- 在每一個步驟,使用一個新的回歸樹來補償已有模型的缺點
- 我們可以使用梯度下降的方法來最小化損失函數
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」 ,構建梯度提升模型時花費的時間的排序是?
注: 其他的超參數是一樣的
- 樹的數量 = 100
- 樹的數量 = 500
- 樹的數量 = 1000
A) 1~2~3
B) 1<2<3
C) 1>2>3
D) 都不對
答案: B
1000棵樹花的時間最多,100棵樹最少。
23) 現在,考慮學習率超參數,構建梯度提升模型,每個超參數花的時間排序是?
注: 其他的超參數是一樣的
- 學習率 = 1
- 學習率 = 2
- 學習率 = 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) 當你使用提升算法時,你會考慮弱學習器,以下哪項是使用弱學習器的主要原因?
- 防止過擬合
- 防止欠擬合
A) 1
B) 2
C) 1 和 2
D) 都不對
答案: A
為了防止過擬合,在提升算法的每個步驟中,模型的複雜度都在提升,從弱學習器開始意味著最終的分類器過擬合的可能性會小。
27) 在回歸樹上使用bagging方法,下面的說法正確的是?
- 我們在N個又放回採用的樣本上構建N個回歸器
- 我們使用N個回歸樹
- 每一棵樹具有高的方差低的偏差
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公園