成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何解讀決策樹和隨機森林的內部工作機制?

開發 開發工具
隨機森林在過去幾年里得到了蓬勃的發展。它是一種非線性的基于樹的模型,往往可以得到準確的結果。該文從隨機森林的構造模塊決策樹談起,通過生動的圖表對隨機森林的工作過程進行了介紹,能夠幫助讀者對隨機森林的工作方式有更加透徹的認識。

隨機森林在過去幾年里得到了蓬勃的發展。它是一種非線性的基于樹的模型,往往可以得到準確的結果。但是,隨機森林的工作過程大都處于黑箱狀態,往往難以解讀和完全理解。近日,Pivotal Engineering Journal 網站發表了一篇文章,對隨機森林的基礎進行了深度解讀。該文從隨機森林的構造模塊決策樹談起,通過生動的圖表對隨機森林的工作過程進行了介紹,能夠幫助讀者對隨機森林的工作方式有更加透徹的認識。本文內容基于 Ando Saabas 的一個 GitHub 項目。另外,你也能在 GitHub 上找到用于創建本文中各種圖表的代碼。

  • Ando Saabas 的項目:https://github.com/andosa/treeinterpreter
  • 創建圖表的代碼:https://github.com/gregtam/interpreting-decision-trees-and-random-forests

決策樹的工作方式

決策樹可以看成為一個 if-then 規則的集合,即由決策樹的根節點到葉節點的每一條路徑構建一條規則,路徑上內部節點的特征對應著規則的條件,而葉節點的類對應于規則的結論。因此決策樹就可以看作由條件 if(內部節點)和滿足條件下對應的規則 then(邊)組成。

決策樹的工作方式是以一種貪婪(greedy)的方式迭代式地將數據分成不同的子集。其中回歸樹(regression tree)的目的是最小化所有子集中的 MSE(均方誤差)或 MAE(平均絕對誤差);而分類樹(classification tree)則是對數據進行分割,以使得所得到的子集的熵或基尼不純度(Gini impurity)最小。

結果得到的分類器可以將特征空間分成不同的子集。對某個觀察的預測將取決于該觀察所屬的子集。

一個決策樹的迭代過程

圖 1:一個決策樹的迭代過程

決策樹的貢獻

以鮑魚數據集(https://archive.ics.uci.edu/ml/datasets/abalone)為例。我們將根據殼的重量、長度、直徑等變量來預測鮑魚殼上環的數量。為了演示,我們構建了一個很淺的決策樹。我們可以通過將樹的***層數限制為 3 而得到這個樹。

預測不同環數的決策樹路徑

圖 2:預測不同環數的決策樹路徑

要預測鮑魚的環的數量,決策樹將沿著樹向下移動直到到達一個葉節點。每一步都會將當前的子集分成兩個。對于一次特定的分割,我們根據平均環數的改變來定義對該分割做出了貢獻的變量。

比如說,如果我們拿到一個殼重 0.02、長度為 0.220 的鮑魚,那么它就將落在最左邊的葉節點上,預測的環數是 4.4731。殼重對預測環數的貢獻為:

  1. (7.587 - 9.958) + (5.701 - 7.587) = -4.257 

長度的貢獻為:

  1. (4.473 - 5.701) = -1.228 

這些貢獻都是負數,說明對于這個特定的鮑魚,殼重和長度值會使預測的環數下降。

我們可以通過運行以下代碼得到這些貢獻。

  1. from treeinterpreter import treeinterpreter as ti dt_reg_pred, dt_reg_bias, dt_reg_contrib = ti.predict(dt_reg, X_test) 

其中變量 dt_reg 是 sklearn 分類器目標,X_test 是一個 Pandas DataFrame 或 numpy 數組,包含了我們希望從中得到預測和貢獻的特征。其貢獻變量 dt_reg_contrib 是一個二維 numpy 數組 (n_obs, n_features),其中 n_obs 是觀察的數量,n_features 是特征的數量。

我們可以繪制一個給定鮑魚的這些貢獻的圖表,看看哪些特征對預測得到的值的影響***。我們可以從下面這幅圖表看到這個特定的鮑魚的重量和長度值對預測得到的環數所產生的負影響。

一個貢獻圖表示例(決策樹)

圖 3:一個貢獻圖表示例(決策樹)

我們可以使用小提琴圖表(Violin plot)將這個特定鮑魚的貢獻與所有鮑魚的情況進行比較。這樣可以在這張圖表上疊加一個核密度估計。在下圖中,我們可以看到,與其它鮑魚相比,這個特定鮑魚的殼重異乎尋常地低。實際上,很多鮑魚的殼重值的貢獻都是正數。

使用 violin 圖對一個觀察樣本繪制的貢獻圖(決策樹)

圖 4:使用 violin 圖對一個觀察樣本繪制的貢獻圖(決策樹),文末將附上 violin 圖的基本概念與用法。

上面的圖雖然有些信息,但仍然無法讓我們完全理解一個特定變量對鮑魚所擁有的環數的影響。于是,我們可以根據一個給定特征的值繪制其貢獻。如果我們繪制殼重的值與其貢獻的比較,我們可以知道殼重的增長會導致貢獻的增長。

貢獻與殼重(決策樹)

圖 5:貢獻與殼重(決策樹)

另一方面,去殼后的重量與貢獻的關系是非線性非單調的。更低的去殼后的重量沒有任何貢獻,更高的去殼后的重量有負貢獻,而在兩者之間,貢獻是正的。

貢獻與去殼后的重量(決策樹)

圖 6:貢獻與去殼后的重量(決策樹)

擴展成隨機森林

通過將許多決策樹組成森林并為一個變量取所有樹的平均貢獻,這個確定特征的貢獻的過程可以自然地擴展成隨機森林。

使用 violin 圖對一個觀察繪制的貢獻圖(隨機森林)

圖 7:使用 violin 圖對一個觀察繪制的貢獻圖(隨機森林)

因為隨機森林固有的隨機性,一個給定殼重值的貢獻會有所不同。但是如下圖平滑的黑色趨勢線所示,這種增長的趨勢仍然存在。就像在決策樹上一樣,我們可以看到殼重增大時,貢獻會更高。

貢獻與殼重(隨機森林)

圖 8:貢獻與殼重(隨機森林)

同樣,我們也可能會看到復雜的不單調的趨勢。直徑的貢獻似乎在大約 0.45 處有一處下降,而在大約 0.3 和 0.6 處各有一處峰值。除此之外,直徑和環數之間的關系基本上是增長的。

貢獻與直徑(隨機森林)

圖 9:貢獻與直徑(隨機森林)

分類

我們已經看到回歸樹的特征分布源自環的平均值以及其在后續分割中的變化方式。我們可以通過檢查每個子集中某個特定類別的觀察的比例,從而將其擴展成二項分類或多項分類。一個特征的貢獻就是該特征所導致的總的比例變化。

通過案例解釋更容易理解。假設現在我們的目標是預測性別,即鮑魚是雌性、雄性還是幼體。

多項分類的決策樹路徑

圖 10:多項分類的決策樹路徑

每個節點都有 3 個值——該子集中雌性、雄性和幼體各自的比例。一個臟器重量為 0.1 且殼重 0.1 的鮑魚屬于最左邊的葉節點(概率為 0.082、0.171 和 0.747)。適用于回歸樹的貢獻邏輯在這里也同樣適用。

如果這個特定鮑魚是幼體,那么臟器重量的貢獻為:

  1. (0.59 - 0.315) = 0.275 

殼重的貢獻為:

  1. (0.747 - 0.59) = 0.157 

我們可以為每個類別繪制一張貢獻圖。下面我們給出了針對幼體類別的貢獻圖。

使用 violin 圖對一個幼體觀察繪制的貢獻圖(多類決策樹)

圖 11:使用 violin 圖對一個幼體觀察繪制的貢獻圖(多類決策樹)

和之前一樣,我們也可以為每一類繪制貢獻與特征的圖表。殼重對鮑魚是雌性的貢獻會隨殼重的增長而增長,而對鮑魚是幼體的貢獻則會隨殼重的增長而降低。對于雄性來說,殼重的貢獻首先會增長,在殼重超過了 0.5 之后貢獻又會下降。

每個類別的貢獻與殼重(隨機森林)

圖 12:每個類別的貢獻與殼重(隨機森林)

結語

在這篇文章中,我們表明可以通過查看路徑來獲得對決策樹和隨機森林的更加深入的理解。這對隨機森林尤其有用,因為隨機森林是一種非常并行的而且通常性能很高的機器學習模型。為了滿足 Pivotal 客戶的業務需求,我們不僅需要提供有很高預測能力的模型,也要提供可解釋的模型。也就是說,不管效果如何,我們都不想給他們一個黑箱。當與政府和金融領域的客戶做生意時,這就是一個很重要的要求,因為我們的模型需要通過合規性檢查。

附 violin 圖基礎

violin 圖是繪制數字數據的方法,它和箱線圖十分相似,但其另外展示了分布的概率密度。下面我們先了解箱線圖:

箱線圖

上圖這一組數據表明:

  • 最小值等于 5
  • ***值等于 10
  • 平均值為 8
  • 下四分位數為 7,即***四分位數(Q1),等于該樣本中所有數值由小到大排列后第 25% 的值。
  • 中位數為 8.5,即第二四分位數(Q2),等于該樣本中所有數值由小到大排列后第 50% 的值。
  • 上四分位數為 9,即第三四分位數(Q3),等于該樣本中所有數值由小到大排列后第 75% 的值。
  • 四分位距為 2(即ΔQ=Q3-Q1)。

上述是箱線圖的基本參數,箱線圖只顯示諸如平均值/中值和四分位數范圍的匯總統計數據,violin 圖顯示了數據的完整分布。

violin 圖概括了箱線圖所表達的統計量

violin 圖概括了箱線圖所表達的統計量:

  • 上圖白點代表中位數
  • 灰色的矩形代表 Q3 和 Q1 之間的四分位距
  • 灰線代表 95% 的置信區間

兩邊的灰色曲線代表核密度估計,其展示了數據的分布形狀。其中兩邊間距較寬的曲線段代表樣本總體取給定值有較高的概率,較窄的曲線段表明取給定值有較小的概率。

原文:http://engineering.pivotal.io/post/interpreting-decision-trees-and-random-forests/

【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】

 

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2022-09-25 23:19:01

機器學習決策樹Python

2017-10-18 14:11:20

機器學習決策樹隨機森林

2014-07-07 10:05:57

機械學習

2017-08-04 14:28:40

決策樹隨機森林CART模型

2019-05-15 09:00:00

決策樹機器學習人工智能

2022-11-11 08:00:00

決策樹機器學習監督學習

2018-02-02 15:50:07

決策樹Apache Spar數據

2017-11-21 13:00:20

機器學習決策樹可視化

2022-01-24 09:00:00

機器學習決策樹算法

2016-09-30 16:12:47

GBDT算法決策樹

2022-12-21 14:39:35

機器學習案發決策樹

2021-05-28 17:18:44

TensorFlow數據機器學習

2012-08-06 09:04:01

決策樹建模

2021-01-12 18:40:58

基尼不純度決策樹機器學習

2017-09-11 13:33:44

大數據數據可視化決策樹

2017-12-12 12:24:39

Python決策樹

2017-07-18 16:25:31

機器學習算法決策樹

2017-05-10 15:41:29

機器學習算法數據

2022-10-19 11:33:07

決策樹策略搜索

2023-11-28 12:08:56

機器學習算法人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品观看 | 中文字幕成人av | 久久精品av| 日本不卡在线观看 | 成人午夜黄色 | 亚洲在线一区 | 久久影院一区 | 国产美女自拍视频 | 国产精品视频导航 | 久久精彩 | 国产成人免费视频网站高清观看视频 | 亚洲成人网在线观看 | 一级特黄色毛片 | 狠狠狠干 | 成人精品一区二区三区中文字幕 | 国产偷录视频叫床高潮对白 | 午夜在线视频 | 91观看| 精品一区二区三区在线观看国产 | 午夜视频在线播放 | 日本三级在线视频 | 黑人精品欧美一区二区蜜桃 | 三级av网址| 亚洲一区二区 | 成人性视频在线播放 | 91精品国产乱码久久久 | 911网站大全在线观看 | 久久中文字幕av | 草久久久 | 国产aⅴ| 久久精品国产免费 | 91av精品 | 国产精品美女www爽爽爽视频 | 久久久青草婷婷精品综合日韩 | 亚洲乱码一区二区 | 人人干天天干 | 亚洲精品第一 | 免费在线观看成人 | 久久国| 久久久久久高清 | 一级做a爰片久久毛片免费看 |