【问题标题】:How to calculate R-squared after using bagging function to develop CART decision trees?使用bagging函数开发CART决策树后如何计算R-squared?
【发布时间】:2019-10-13 04:19:15
【问题描述】:

我正在使用以下带有 ipred 的 bagging 函数在 R 中引导样本 500 次以开发决策树:

baggedsample <- bagging(p ~., data, nbagg=500, coob=TRUE, control = list 
(minbucket=5))

在此之后,我想知道 R 平方。

我注意到如果我使用插入符号函数进行装袋,R-squared 将自动计算如下:

# Specify 10-fold cross validation
ctrl <- trainControl(method = "cv",  number = 10) 

# CV bagged model
baggedsample <- train(
  p ~ .,
  data,
  method = "treebag",
  trControl = ctrl,
  importance = TRUE
  )

# assess results
baggedsample

RMSE      Rsquared   MAE     
##   36477.25  0.7001783  24059.85

感谢您对此问题的任何指导,谢谢。

【问题讨论】:

  • rsquared 应使用(1 - mse)/var(response) 计算。所以你只需要评估mse(均方误差)和你的y的方差。

标签: r function statistics cart decision-tree


【解决方案1】:

由于您没有提供任何数据,我将使用内置的虹膜数据进行说明。

您可以简单地根据公式计算 R 平方。

attach(iris) 
BAG = bagging(Sepal.Length ~ ., data=iris)
R2 = 1 - sum((Sepal.Length - predict(BAG))^2) /
    sum((Sepal.Length - mean(Sepal.Length))^2)
R2
[1] 0.824782

【讨论】:

  • 感谢你们的帮助@RLaye @G5W,我在我的数据集中尝试了这两种方法,但 R2 略有不同(在 2% 以内)。我还尝试了以下代码,这些代码生成了另一个略有不同的 R2,这是为什么呢? >predict_bagged_m14 bagged.m14$Prediction head(bagged.m14) >bagged.m14$rss bagged.m14$tss 1 - (sum(bagged.m14[,20])/sum(bagged.m14 [,21]))
猜你喜欢
  • 2017-03-18
  • 2014-07-20
  • 2016-07-24
  • 2019-04-12
  • 2014-04-15
  • 2011-05-23
  • 2020-01-03
  • 1970-01-01
  • 2018-07-24
相关资源
最近更新 更多