R 平均套袋树的预测概率
使用package Crattle.data中的天气数据,我尝试为袋装树分类编写脚本,其中RainTomorning是目标列,如下所示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
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