簡體   English   中英

如何理解RandomForestExplainer輸出(R包)

[英]How to understand RandomForestExplainer output (R package)

我有以下代碼,它基本上嘗試使用randomForestiris數據預測Species 我真正想要的是找到解釋物種分類的最佳特征(變量)。 我發現包randomForestExplainer是最好的服務目的。

library(randomForest)
library(randomForestExplainer)
forest <- randomForest::randomForest(Species ~ ., data = iris, localImp = TRUE)
importance_frame <- randomForestExplainer::measure_importance(forest)
randomForestExplainer::plot_multi_way_importance(importance_frame, size_measure = "no_of_nodes")

代碼的結果產生了這個圖:

在此輸入圖像描述

根據情節,解釋為什么Petal.Length和Petal.Width是最佳因素的關鍵因素是這些(解釋基於小插圖 ):

  1. mean_min_depth - 以參數mean_sample指定的三種方式之一計算的平均最小深度,
  2. times_a_root - Xj用於分割根節點的樹的總數(即,整個樣本根據Xj的值分為兩個),
  3. no_of_nodes - 使用Xj進行拆分的節點總數(如果樹淺,通常等於no_of_trees),

我不清楚為什么高times_a_rootno_of_nodes更好? mean_min_depth更好?

有什么直觀的解釋?

小插圖信息無濟於事。

您希望統計模型或度量是“權力”和“簡約”之間的平衡。 randomForest在內部設計用於懲罰,作為實現簡約的統計策略。 此外,在任何給定樣本中選擇的變量數量將小於預測變量的總數。 當hte預測變量數超過數據集中的個案(行)數時,這允許建模。 早期拆分或分類規則可以相對容易地應用,但隨后的拆分變得越來越難以滿足有效性標准。 “Power”是正確分類不在子樣本中的項目的能力,對於該子樣本,使用代理,即所謂的OOB或“out-of-bag”項目。 randomForest策略是多次執行此操作以構建一組有代表性的規則,這些規則在假設的情況下對項目進行分類,即袋外樣本將是整個數據集產生的“宇宙”的公平表示。

與其“競爭對手”相比, times_a_root將屬於衡量變量“相對功率”的類別。 times_a_root統計量度量變量在決策樹“頂部”的次數,即在選擇分割標准的過程中首先選擇變量的可能性。 no_of_node測量變量被選擇的次數作為所有子采樣中的分裂標准。 從:

?randomForest # to find the names of the object leaves
forest$ntree
[1] 500

...我們可以看到得到一個分母來評估圖中y軸的大約200值的含義。 樣品回歸約2/5度有Petal.Length在頂部分裂准則,而另一個2/5度有Petal.Width作為選擇作為最重要的變量頂部變量。 大約75個中的75個具有Sepal.Length而只有大約8個或9個具有Sepal.Width (...它是對數刻度。)對於虹膜數據集,子樣本將忽略每個子樣本中的至少一個變量因此, times_a_root的最大可能值將小於500.在這種情況下,分數為200非常好,我們可以看到這兩個變量具有相當的解釋能力。

no_of_nodes統計信息總計了在其任何節點中具有該變量的樹的總數,記住節點的數量將受到懲罰規則的約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM