[英]How do I plot the Variable Importance of my trained rpart decision tree model?
[英]rpart variable importance shows more variables than decision tree plots
與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.