1:R语言系列介绍包
R功能强大,因为它具有功能丰富的扩展软件包。例如,基于软件包及其扩展软件包的数据可视化。数据分类,清洁和探索是根据系列软件包进行的。基于系列软件包等算法的应用,例如数据分析,统计分析,机器学习等。
系列和系列包2:基于数据预处理过程
根据数据预处理过程,您可以参考下图。特别是对于基于()函数的数据预处理操作,可以调用许多函数,包括数据缺失值插值,离散化,虚拟变量和编码,归一化和多变量。转换,过滤器和其他功能。
3:工作流程图
有关基于分类,回归和其他问题的示意图工作流程图,请参阅下图。
此过程基于一般过程,数据建模和分析可用于回归和分类问题。
3:实际情况申请
以下是泰坦尼克号数据集,用于执行随机森林分类算法的实际应用。所使用的数据集是已清洁的数据集。以下程序是导入将使用的R软件包和数据集。
library(tidymodels);library(tidyverse);library(rpart.plot)
library(vip);library(embed)
## 数据导入
Titanic <- read_csv("data/chap05/Titanic_train_clear.csv")
## 相关变量转化为因子变量
Titanic <- Titanic%>%mutate_at(c("Survived","Pclass","Name","Sex",
"Parch","Embarked"),factor)
head(Titanic)
## # A tibble: 6 × 11
## Survived Pclass Name Sex Age SibSp Parch Fare Embarked FamilySize
##
## 1 0 3 2 1 22 1 0 7.25 2 2
## 2 1 1 3 0 38 1 0 71.3 0 2
## 3 1 3 1 0 26 0 0 7.92 2 1
## 4 1 1 3 0 35 1 0 53.1 2 2
## 5 0 3 2 1 35 0 0 8.05 2 1
## 6 0 3 2 1 22.7 0 0 8.46 1 1

## # … with 1 more variable: Age_Pclass
在导入的数据集中,一个具有11个功能,其中大多数是因子变量,其中要预测的变量为。导入数据后,在以下程序中以5个步骤搜索随机森林模型,以找到最合适的建模参数。这些步骤是:
(1)将数据集随机分为一个训练集和一个测试集,其中75%的数据用于培训,其余数据用于测试;
(2)将功能预处理过程添加到数据集,定义模型的形式以及所使用的训练数据;
(3)定义一个随机的森林分类模型。需要搜索的参数包括:二进制树节点中使用的变量数(参数mtry = tune())和树的数量( = tune());
(4)定义工作流程,并将数据预处理过程和分类模型添加到工作流程中;
(5)生成要通过()函数搜索的两个参数的网格数据,并在工作流程上执行参数网格搜索;最后可视化参数搜索的结果。
所使用的程序如下:
## 1:将数据切分为训练数据和测试数据
set.seed(222)
data_split <- initial_split(Titanic, prop = 3/4)
train_data <- data_split%>%training()
test_data <- data_split%>%testing()
## 2:添加数据特征处理过程, 定义模型的形式
Titanic_rec <- recipe(Survived ~ ., data = train_data)
## 3: 定义一个随机森林分类模型,并进行参数搜索
## 需要搜索的参数是树的深度和树的数量
rf_model <- rand_forest(mtry = tune(),trees = tune()) %>%
set_engine("ranger", importance = "impurity") %>%
set_mode("classification")
## 4:定义模型的工作流程
rf_workflow <- workflow()%>%add_model(rf_model)%>%
add_recipe(Titanic_rec) # 添加数据预处理过程
## 5:进行参数搜索
set.seed(123)
mtry <- 1:5
trees <- c(50,100,200,300,400,500,800,1000)
rf_grid <- crossing(mtry = mtry,trees = trees)
## 进行搜索
rf_tuning = tune_grid(

rf_workflow,resamples = vfold_cv(train_data, v = 5), grid = rf_grid)
## 查看参数搜索的结果
collect_metrics(rf_tuning) %>% mutate(mtry = factor(mtry)) %>%
ggplot(aes(trees, mean, color = mtry,shape = mtry)) +
geom_line() +geom_point(size = 2) +
facet_wrap(~ .metric, scales = "free", nrow = 2) +
scale_x_continuous(breaks = trees,labels = trees) +
scale_shape_manual(values = c(15,16,17,23,24))+
scale_color_viridis_d(option = "plasma", begin = .9, end = 0)+
ggtitle("随机森林参数搜索")
运行上述程序后,您可以获取下图中显示的图像。从结果来看,您可以看到,当树的数量为200,并且节点中的二进制树的变量数为5时,可以获得具有高精度的随机森林分类器。
以下程序使用()函数查找最佳参数组合,并使用()函数定义最佳工作流,并使用()函数执行最终模型训练以在测试数据集中获得预测准确性。 ,从输出结果中,我们可以看到测试集的预测准确性为0.852。
## 找到精度最高时使用的参数
best_tree <- rf_tuning %>% select_best("accuracy")
## 定义最终的模型流程
final_rf_workflow <- rf_workflow%>%finalize_workflow(best_tree)
## 6: 在训练数据训练最终的模型,并查看在测试集上的预测效果
rf_fit <- final_rf_workflow%>%last_fit(split = data_split)
rf_metrics <- rf_fit%>%collect_metrics()
rf_metrics
## .metric .estimator .estimate .config
## 1 accuracy binary 0.852 Preprocessor1_Model1
## 2 roc_auc binary 0.892 Preprocessor1_Model1
参考书:“ R语言数据分析:基础知识,算法和实践实践”作者:Sun 编辑出版商:化学工业出版商
学习与沟通小组
“ R语言数据分析:基础知识,算法和实践实践”在撰写时使用了最新版本的相关资源。欢迎加入QQ组以相互通信,QQ组编号:。
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态