周志華《機器學習》課後習題(第八章):集成學習

作者 | 我是韓小琦

鏈接 | https://zhuanlan.zhihu.com/p/51206123

8.1 假設拋硬幣正面朝上的概率爲  , 反面朝上的概率爲  。令  代表拋  次硬幣所得正面朝上的次數,則最多  次正面朝上的概率爲

 . (8.43)

 有:  不等式

 . (8.44)

試推導8.3。

答:

8.3式如下:

 .

第一個等式很好理解,  表示  個基分類器中有  個分類器預測錯誤的概率,  即將所有  下可能預測錯誤的基分類器個數遍歷取總。或者可以直接套用8.43式,

  ,

其中  表示  個基分類器中,預測正確的個數,即可得第一個等式。

關於第二個不等式,

取8.44中 

 

且於是:

於是8.3得證。這裏需要注意一點 

 

是建立在  的基礎上的。

8.3 從網上下載或自己編程實現 AdaBoost,以不剪枝抉策樹爲基學習器,在西瓜數據集 3.0α 上訓練一個 AdaBoost 集成,並與圖 8.4進行比較。

答:

代碼在:

https://github.com/han1057578619/MachineLearning_Zhouzhihua_ProblemSets/tree/master/ch8--%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0

這裏題目有點問題,如果以不剪枝決策樹爲基學習器,可以生成一個完美符合數據的決策樹,此時AdaBoost就沒意義了,因爲第一顆樹錯誤率就爲0了,樣本權重也不會發生改變。

所有這裏代碼是限定樹的深度爲2,但訓練到第四顆樹,錯誤率就已經到0了,下圖給出來的決策邊界,其實基本上就是第四顆樹的決策了,因爲錯誤率爲0,其權重太大。

8.4 GradientBoosting [Friedman, 2001] 是一種常用的 Boosting 算法,試析其與 AdaBoost 的異同.

答:

這個問題,網上已經有很多總結了:

Gradient Boosting和其它Boosting算法一樣,通過將表現一般的數個模型(通常是深度固定的決策樹)組合在一起來集成一個表現較好的模型。抽象地說,模型的訓練過程是對一任意可導目標函數的優化過程。通過反覆地選擇一個指向負梯度方向的函數,該算法可被看做在函數空間裏對目標函數進行優化。因此可以說Gradient Boosting = Gradient Descent + Boosting。
和AdaBoost一樣,Gradient Boosting也是重複選擇一個表現一般的模型並且每次基於先前模型的表現進行調整。不同的是,AdaBoost是通過提升錯分數據點的權重來定位模型的不足而Gradient Boosting是通過算梯度(gradient)來定位模型的不足。因此相比AdaBoost, Gradient Boosting可以使用更多種類的目標函數。

參考:機器學習算法中GBDT與Adaboost的區別與聯繫是什麼?

8.5 試編程實現 Bagging,以決策樹樁爲基學習器,在西瓜數據集 3.0α 上訓練一個 Bagging 集戚,井與圖 8.6 進行比較.

答:

代碼在:han1057578619/MachineLearning_Zhouzhihua_ProblemSets

以決策樹樁作爲Bagging的基學習器,效果不太好。嘗試了下,設置基學習器數量爲21時算是擬合最好的,決策邊界如下:

8.6 試析 Bagging 通常爲何難以提升樸素貝葉斯分類器的性能.

答:

書中P177和P179提到過:

從偏差—方差分解的角度看, Boosting 主要關住降低偏差,因此 Boosting能基於泛化性能相當弱的學習器構建出很強的集成.
從偏差—方差分解的角度看, Bagging 主要關注降低方差,因此它在不剪枝決策樹、神經網絡等易受樣本擾動的學習器上效用更爲明顯.

樸素貝葉斯中假設各特徵相互獨立,已經是很簡化模型,其誤差主要是在於偏差,沒有方差可降。

ps.同樣道理,這也是爲什麼8.5中,以決策樹樁爲基學習器的Bagging時,效果很差的原因;決策樹樁同樣是高偏差低方差的模型。

個人理解:

  • 方差大(偏差低)的模型往往是因爲對訓練數據擬合得過好,模型比較複雜,輸入數據的一點點變動都會導致輸出結果有較大的差異,它描述的是模型輸出的預測值相比於真實值的離散程度,方差越大,越離散,所以爲什麼Bagging適合以不剪枝決策樹、神經網絡這些容易過擬合的模型爲基學習器;

  • 偏差大(方差低)的模型則相反,往往因爲對訓練數據擬合得不夠,模型比較簡單,輸入數據發生變化並不會導致輸出結果有多大改變,它描述的是預測值和和真實值直接的差距,偏差越大,越偏離真實值。

8.7 試析隨機森林爲何比決策樹 Bagging 集成的訓練速度更快.

答:

決策樹的生成過程中,最耗時的就是搜尋最優切分屬性;隨機森林在決策樹訓練過程中引入了隨機屬性選擇,大大減少了此過程的計算量;因而隨機森林比普通決策樹Bagging訓練速度要快。

系列文章:

1. 周志華機器學習課後習題解析【第二章】

2. 周志華《機器學習》課後習題(第三章):線性模型

3. 周志華《機器學習》課後習題解析(第四章):決策樹

4. 周志華《機器學習》課後習題(第五章):神經網絡

5. 周志華《機器學習》課後習題(第六章):支持向量機

6. 周志華《機器學習》課後習題(第七章):貝葉斯分類


推薦閱讀

(點擊標題可跳轉閱讀)

乾貨 | 公衆號歷史文章精選

我的深度學習入門路線

我的機器學習入門路線圖

重磅

AI有道年度技術文章電子版PDF來啦!

掃描下方二維碼,添加 AI有道小助手微信,可申請入羣,並獲得2020完整技術文章合集PDF(一定要備註:入羣 + 地點 + 學校/公司。例如:入羣+上海+復旦。 

長按掃碼,申請入羣

(添加人數較多,請耐心等待)

 

最新 AI 乾貨,我在看 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章