partykit: дерево регрессии - идентифицируйте выбросы на блокпостах конечных узлов
Дерево регрессии, созданное с использованием приведенного ниже кода, имеет блок-схемы для всех терминальных узлов. Бокплоты показывают медиану, IQR и выбросы, что здорово.
plot(as.party(tree), terminal_panel = node_boxplot)
Но как я могу определить выбросы на своих бокс-листах? Я полагал, что, так как коробочные графики уже были созданы, должно быть относительно легко вытащить выбросы, но информация, кажется, не хранится в дереве. Я знаю, что могу проследить пути своего дерева, чтобы определить выбросы в моем наборе данных, но мне было интересно, есть ли более быстрый способ сделать это.
1 ответ
Поскольку вы не предоставляете данные, я сделаю это с помощью встроенного cars
данные.
Вы правы в том, что эта информация не хранится в дереве. Также сюжет не обеспечивает значимого возврата. По крайней мере, один из способов добиться этого - просто переделать боксплоты, используя boxplot
и вы можете получить выбросы.
library(rpart)
library(partykit)
CarTree = rpart(dist ~ ., data=cars)
PCT = as.party(CarTree)
P = plot(PCT, terminal_panel = node_boxplot)
BP = boxplot(cars$dist ~ PCT[1]$fitted[[1]])
BP$out
[1] 80