rpart 包中位数或几何平均值而不是平均值
rpart package median or geometric mean instead of mean
是否可以使用 R
中的 rpart
库通过不同于均值的方式更改区域中的平均估计量,例如中位数或几何平均值? (或其他图书馆)
我相信我的树划分受极端值的影响很大,我想构建显示其他估计量的树。
谢谢!
右偏响应的常用技巧之一是记录日志。在许多应用程序中,这会使响应分布更加对称,然后您不需要从通常的平均预测切换。
另一种改变树学习的解决方案是使用一些更稳健的分数,例如等级等。partykit
中的 ctree()
函数为此提供了一个非参数推理框架。
最后,partykit
包还允许计算除来自所有终端节点的均值之外的其他预测。您可以通过 as.party()
轻松地将 rpart
树转换为 party
树。一个非常简单的例子是为 cars
数据
学习一棵 rpart
树
library("rpart")
data("cars", package = "datasets")
rp <- rpart(dist ~ speed, data = cars)
然后转化为party
:
library("partykit")
pr <- as.party(rp)
树结构保持不变,但您会得到增强的绘图和预测。默认绘图方法产量:
此外,对两个对象的默认预测是相同的。
nd <- data.frame(speed = c(10, 15, 20))
predict(rp, nd)
## 1 2 3
## 18.20000 39.75000 65.26316
predict(pr, nd)
## 1 2 3
## 18.20000 39.75000 65.26316
但是,后者允许您指定一个 FUN
应该在每个节点中使用的动作。这必须是 function(y, w)
的形式,其中 y
是响应,w
是个案权重。由于我们在这里没有使用任何权重,我们可以简单地忽略该参数并执行:
predict(pr, nd, FUN = function(y, w) mean(y))
## 1 2 3
## 18.20000 39.75000 65.26316
predict(pr, nd, FUN = function(y, w) median(y))
## 1 2 3
## 18 35 64
predict(pr, nd, FUN = function(y, w) quantile(y, 0.9))
## 1 2 3
## 28.0 57.0 92.2
等等...更多详细信息请参阅包插图。
是否可以使用 R
中的 rpart
库通过不同于均值的方式更改区域中的平均估计量,例如中位数或几何平均值? (或其他图书馆)
我相信我的树划分受极端值的影响很大,我想构建显示其他估计量的树。
谢谢!
右偏响应的常用技巧之一是记录日志。在许多应用程序中,这会使响应分布更加对称,然后您不需要从通常的平均预测切换。
另一种改变树学习的解决方案是使用一些更稳健的分数,例如等级等。partykit
中的 ctree()
函数为此提供了一个非参数推理框架。
最后,partykit
包还允许计算除来自所有终端节点的均值之外的其他预测。您可以通过 as.party()
轻松地将 rpart
树转换为 party
树。一个非常简单的例子是为 cars
数据
rpart
树
library("rpart")
data("cars", package = "datasets")
rp <- rpart(dist ~ speed, data = cars)
然后转化为party
:
library("partykit")
pr <- as.party(rp)
树结构保持不变,但您会得到增强的绘图和预测。默认绘图方法产量:
此外,对两个对象的默认预测是相同的。
nd <- data.frame(speed = c(10, 15, 20))
predict(rp, nd)
## 1 2 3
## 18.20000 39.75000 65.26316
predict(pr, nd)
## 1 2 3
## 18.20000 39.75000 65.26316
但是,后者允许您指定一个 FUN
应该在每个节点中使用的动作。这必须是 function(y, w)
的形式,其中 y
是响应,w
是个案权重。由于我们在这里没有使用任何权重,我们可以简单地忽略该参数并执行:
predict(pr, nd, FUN = function(y, w) mean(y))
## 1 2 3
## 18.20000 39.75000 65.26316
predict(pr, nd, FUN = function(y, w) median(y))
## 1 2 3
## 18 35 64
predict(pr, nd, FUN = function(y, w) quantile(y, 0.9))
## 1 2 3
## 28.0 57.0 92.2
等等...更多详细信息请参阅包插图。