R 平均套袋树的预测概率

R 平均套袋树的预测概率,r,rstudio,R,Rstudio,使用package Crattle.data中的天气数据,我尝试为袋装树分类编写脚本,其中RainTomorning是目标列,如下所示 if(!require(rpart)) install.packages("rpart") if(!require(rpart.plot)) install.packages("rpart.plot") if(!require(caret)) install.packages("caret") if(!require(rattle.data)) insta

使用package Crattle.data中的天气数据,我尝试为袋装树分类编写脚本,其中RainTomorning是目标列,如下所示

if(!require(rpart)) install.packages("rpart") 
if(!require(rpart.plot)) install.packages("rpart.plot") 
if(!require(caret)) install.packages("caret") 
if(!require(rattle.data)) install.packages("rattle.data") 
if(!require(tidyverse)) install.packages("tidyverse") 
if(!require(ipred)) install.packages("ipred") 
if(!require(Metrics)) install.packages("Metrics") 
library(rpart)
library(rpart.plot)
library(rattle.data)
library(tidyverse)
library(caret)
library(ipred)
library(Metrics)

set.seed(500)

data <- weather

# cleaning data
data <-
  data %>%
  mutate(month = months(Date)) %>% 
  select(-Date, -Location, -RISK_MM) %>% 
  mutate(RainTomorrow = as.factor(ifelse(RainTomorrow == "No", 0, 1))) %>% 
  na.omit()

# creating train and test data
index <- createDataPartition(data$RainTomorrow, p = .6, list = FALSE)
train_data <- data[ index, ]
test_data <- data[-index, ]

# creating models

bagged_tree <- bagging(formula = RainTomorrow ~ ., 
                        data = train_data,
                        coob = TRUE)

pred_bagg_class <- predict(object = bagged_tree ,    
                            newdata = test_data,  
                            type = "class") 

# predictions on the test set
pred_bagg <- predict(object = bagged_tree,
                newdata = test_data,
                type = "prob")
if(!require(rpart))安装程序包(“rpart”)
如果(!require(rpart.plot))安装程序包(“rpart.plot”)
如果(!require(插入符号))安装程序包(“插入符号”)
如果(!require(flatter.data))安装程序包(“flatter.data”)
如果(!require(tidyverse))安装.packages(“tidyverse”)
如果(!require(ipred))安装.packages(“ipred”)
如果(!require(Metrics))安装.packages(“Metrics”)
图书馆(rpart)
库(rpart.plot)
图书馆(嘎嘎声、数据)
图书馆(tidyverse)
图书馆(插入符号)
图书馆(ipred)
图书馆(指标)
种子集(500)
数据%
选择(-Date,-Location,-RISK_MM)%>%
突变(RainTomory=as.factor(ifelse(RainTomory==“No”,0,1)))%>%
na.省略()
#创建列车和测试数据

索引所以,如果你需要找到所有预测值的平均值,那么你可能需要:

df <- as.data.frame(as.numeric(pred_bagg_class) - 1)
df <- cbind(df, pred_bagg)
df$pred_mean <- rowMeans(df)

但是,如果您在
pred_bag
上使用
rowmeaks
,那么您将始终得到0.5,因为
pred_bag
具有每类目标变量的单独概率,每行加起来等于1,如果您取平均值,每次每行0.5。

我严重怀疑这段代码是否可以剪切粘贴到会话中并运行。建议您包括必要的库调用和设置代码。啊,是的,我的坏,包括所有必要的(和不必要的)软件包。非常感谢。
 df
    as.numeric(pred_bagg_class) - 1    0    1 pred_mean
1                                 0 0.76 0.24 0.3333333
2                                 0 0.72 0.28 0.3333333
3                                 0 1.00 0.00 0.3333333
4                                 0 1.00 0.00 0.3333333
5                                 0 0.96 0.04 0.3333333
6                                 0 0.96 0.04 0.3333333
7                                 1 0.28 0.72 0.6666667
8                                 0 0.76 0.24 0.3333333
9                                 0 0.56 0.44 0.3333333
10                                0 0.84 0.16 0.3333333
11                                1 0.24 0.76 0.6666667