簡體   English   中英

rpart 變量重要性顯示的變量多於決策樹圖

[英]rpart variable importance shows more variables than decision tree plots

我使用 R 中的插入符號庫在我的數據上安裝了一個 rpart model 交叉驗證。 一切都很好,但我想了解模型的變量重要性和決策樹 plot 之間的區別。

使用 function varImp()調用變量重要性顯示九個變量。 使用諸如fancyRpartPlot()rpart.plot()之類的函數繪制決策樹顯示了一個僅使用兩個變量對所有主題進行分類的決策樹。

怎么會這樣? 為什么決策樹 plot 沒有從變量重要性表中顯示相同的九個變量?

謝謝你。

變幅圖

在此處輸入圖像描述

rpart()類似, Caret有一個很酷的屬性:它處理代理變量,即未選擇用於拆分但接近贏得競爭的變量。

讓我更清楚。 假設在給定的拆分中,算法決定在 x1 上拆分。 假設還有另一個變量,比如 x2,它在那個階段幾乎和 x1 一樣好。 我們稱 x2 surrogate ,並像為 x1 所做的那樣為其分配變量重要性。

通過這種方式,您可以獲得實際上不用於拆分的重要性排名變量。 您還可以發現,這些變量比實際使用的其他變量更重要!

rpart()的文檔中解釋了這樣做的基本原理:假設我們有兩個相同的協變量,比如 x3 和 x4。 然后rpart()可能只在其中一個上拆分,例如 x3。 我們怎么能說 x4 不重要呢?

總而言之,變量重要性考慮了主要變量(即實際選擇用於拆分的變量)和代理變量的擬合度增加。 因此,x1 的重要性考慮了選擇 x1 作為拆分變量的拆分,以及選擇了另一個變量但 x1 是緊密競爭者的拆分。

希望這能澄清你的疑惑。 有關更多詳細信息,請參見此處 只是一個快速的報價:

以下方法可用於估計每個變量對 model 的貢獻[談到如何計算變量重要性]:

[...]

- 遞歸分區:每次拆分時歸因於每個變量的損失 function(例如均方誤差)的減少被制成表格並返回總和。 此外,由於可能存在重要但未在拆分中使用的候選變量,因此在每次拆分時也會列出最重要的競爭變量。 這可以使用 rpart.control 中的 maxcompete 參數關閉。

我不習慣caret ,但從這個引用看來,這樣的 package 實際上使用rpart()來種植樹木,從而繼承了關於代理變量的屬性。

暫無
暫無

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

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