【问题标题】:partykit: regression tree - identify outliers in terminal node boxplotspartykit:回归树 - 识别终端节点箱线图中的异常值
【发布时间】:2018-12-21 03:42:38
【问题描述】:

使用以下代码创建的回归树包含所有终端节点的箱线图。箱线图显示了中位数、IQR 和异常值,非常棒。

plot(as.party(tree), terminal_panel = node_boxplot)

但是如何识别箱线图中的异常值?我认为由于已经创建了箱线图,因此提取异常值应该相对容易,但信息似乎没有存储在树中。 我知道我可以按照树的路径来识别数据集中的异常值,但想知道是否有更快的方法来做到这一点。

【问题讨论】:

  • 请使用从您的数据中提取的较小样本修改您的问题(检查?dput())。发布您的数据或没有数据的图像使我们难以为您提供帮助!此外,您的输出图看起来如何?

标签: r tree party


【解决方案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

【讨论】:

  • 这类似于 plot 内部的操作:它提取 $fitted[["response"]]$fitted[["fitted"]] 节点 ID,然后使用 boxplot(.., plot = FALSE) 在每个组中动态构建箱线图。然后在grid 中从头开始生成实际绘图。
猜你喜欢
  • 2022-10-09
  • 1970-01-01
  • 2012-06-23
  • 2017-11-06
  • 2015-08-19
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 2019-01-08
相关资源
最近更新 更多