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
Другие вопросы по тегам