原文:機器學習面試題彙總(集成學習相關),做了一些筆記。
1.什麼是集成學習算法?
2.集成學習主要有哪幾種框架?
3.簡單介紹一下bagging,常用bagging算法有哪些?
4.簡單介紹一下boosting,常用boosting算法有哪些?
5.boosting思想的數學表達式是什麼?
6.簡單介紹一下stacking,常用stacking算法有哪些?
7.你意識到你的模型受到低偏差和高方差問題的困擾,應該使用哪種算法來解決問題呢?爲什麼?
8.簡述一下隨機森林算法的原理
9.隨機森林的隨機性體現在哪裏?
10.隨機森林爲什麼不容易過擬合?
11.你已經建了一個有10000棵樹的隨機森林模型。在得到0.00的訓練誤差後,你非常高興。但是,驗證錯誤是34.23。到底是怎麼回事?你還沒有訓練好你的模型嗎?
12.如何使用隨機森林去彌補特徵向量中的缺失值
13.如何使用隨機森林對特徵重要性進行評估?
14.隨機森林算法訓練時主要需要調整哪些參數?
15.隨機森林爲什麼不能用全樣本去訓練m棵決策樹?
16.隨機森林算法有哪些優缺點
17.簡述一下Adaboost原理
18.AdaBoost的優點和缺點
19.爲什麼Adaboost對噪聲敏感?
20.Adaboost和隨機森林算法的異同點
21.簡述GBDT原理
22.GBDT常用損失函數有哪些?
23.GBDT中爲什麼要用負梯度來代替殘差計算?
24.GBDT如何用於分類?
25.GBDT中的決策樹是分類樹還是迴歸樹?
26.如何使用GBDT構建特徵?
27.爲什麼GBDT不適合使用高維稀疏特徵?
28.GBDT通過什麼方式減少誤差?
- GBDT如何進行正則化?
30.GBDT裏的G代表什麼,體現在哪裏?
31.GBDT需要調試的參數有哪些?
32.GBDT算法的優缺點有哪些?
33.Xgboost/GBDT在調參時爲什麼樹的深度很少就能達到很高的精度,而隨機森林需要的深度相對較高?
34.爲什麼Xgboost要用泰勒展開,優勢在哪裏?
35.Xgboost如何尋找最優特徵?
36.Xgboost採樣是有放回還是無放回的呢?
37.XGBoost訓練通常調整的參數有哪些?
38.XGBoost中的樹是如何剪枝?
39.XGBoost如何解決缺失值問題?
40.XGBoost和GBDT的區別
1.什麼是集成學習算法?
集成弱學習器,提升模型效果。
弱學習器可以是SVM
、KNN
、決策樹
、樸素貝葉斯
等。
2.集成學習有哪幾種框架?
- Bagging: 並行,對數據做有放回採樣,用投票(分類)和平均值(迴歸)做集成;
- Boosting:串行,使用帶樣本權重的樣本訓練弱學習器,更新下一輪的樣本權重(預測錯的樣本權重更高),採用對弱學習器加權(如LR)的方式做集成;
- Stacking:並行,弱學習器j對訓練樣本i的預測結果作爲其特徵值j,從而得到新的訓練集和測試集,重新訓練(集成體現在特徵的重組上)。
3.簡單介紹一下bagging,常用bagging算法有哪些?
並行,對數據做有放回採樣,用投票(分類)和平均值(迴歸)做集成。
常用Bagging算法:隨機森林
。
4.簡單介紹一下Boosting,常用Boosting算法有哪些?
串行,使用帶樣本權重的樣本訓練弱學習器,更新下一輪的樣本權重(預測錯的樣本權重更高)。
常用Boosting算法:AdaBoost
、GBDT
、XGBoost
。
5.boosting思想的數學表達式是什麼?
對弱學習器加權。
6.簡單介紹一下stacking,常用stacking算法有哪些?
並行,弱學習器j對訓練樣本i的預測結果作爲其特徵值j,從而得到新的訓練集和測試集,重新訓練(集成體現在特徵的重組上)。
常用集成方式:弱學習器一般選KNN、隨機森林、樸素貝葉斯,使用邏輯迴歸做加權的集成。
7.你意識到你的模型受到低偏差和高方差問題的困擾,應該使用哪種算法來解決問題呢?爲什麼?
偏差指的是真實數據和預測之間的差距,方差指的是模型輸出和模型平均輸出的差距,描述了模型的穩定性。
低偏差、高方差即過擬合。
解決方法:
- 隨機森林,引入隨機屬性選擇對特徵採樣;
- 對模型參數做正則化處理,降低模型複雜度。
8.簡述一下隨機森林算法的原理
基學習器是決策樹,在Bagging的基礎上引入了隨機屬性選擇
。
解釋隨機屬性選擇:傳統決策樹在屬性劃分時,在屬性全集(d
個屬性)中選擇一個最優屬性;而RF在屬性全集中隨機選擇一個屬性子集(k
個屬性),再選擇一個最優屬性,從列採樣上引入了隨機性,推薦值k = log2d
(k<d)。
9.隨機森林的隨機性體現在哪裏?
- 樣本上,隨機森林是Bagging的變體,Bagging對樣本做隨機有放回採樣;
- 特徵上,隨機森林引入隨機屬性選擇,在特徵選擇的時候隨機採樣特徵子集。
10.隨機森林爲什麼不容易過擬合?
引入樣本和特徵上的隨機性,使模型多樣性增加。
11.你已經建了一個有10000棵樹的隨機森林模型。在得到0.00的訓練誤差後,你非常高興。但是,驗證錯誤是34.23。到底是怎麼回事?你還沒有訓練好你的模型嗎?
過擬合。使用交叉驗證法。
12.如何使用隨機森林去彌補特徵向量中的缺失值
如果是離散型變量,用衆數填充;如果是連續型變量,用中位數填充。
13.如何使用隨機森林對特徵重要性進行評估?
對於袋外數據OOB理解
根據概率論,可知數據集中有大約1/3的數據是沒有被選取的(稱爲Out of bag),所以就是這沒被選取的部分作爲小樹的測試集。