首页/知天下事/正文
R语言tidymodels系列包简介与数据预处理过程详解

 2025年02月14日  阅读 15

摘要:1:R语言系列介绍包R功能强大,因为它具有功能丰富的扩展软件包。例如,基于软件包及其扩展软件包的数据可视化。数据分类,清洁和探索是根据系列软件包进行的。基于系列软件包等算法的应用,例如数据分析,统计分析,机器学习等。系列和系列包2:基于数据预处理过程根据...

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

机器学习python_机器学习与数据挖掘_r 机器学习

## # … 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(

机器学习与数据挖掘_机器学习python_r 机器学习

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组编号:。

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/3598.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1