文章目录

  • 一、步骤
  • 二、演示

一、步骤

(1)确定最优参数的大致范围(粗调)。train函数中的方法刚一开始都有默认的参数,由于我们也都不知道最优的参数是什么,所以可以先直接使用默认的参数进行调参。
(2)确定参数范围之后,进一步缩小最优参数的范围(精调)。这一个过程可以无限重复,直到选出你认为最好的参数"_",过程有点粗暴。

二、演示

以一个简单的PM2.5数据来演示整个调参过程:

1、导入数据

rm(list = ls())data<-read.csv("C:\\data\\PM2.5.csv",sep=",",head=TRUE)
len = length(data)
traindata <- data[,1:len-1]     #x值
trainClass <- data[,len]      #y值

2、使用xgblinear方法来进行回归分析(粗调)

#xgblinear
set.seed(1)
fit_xgblinear<- train(traindata,trainClass,method = "xgbLinear",    #这里可以设置使用的模型trControl = trainControl(method = "cv",number = 10,search = "grid"),      #使用十折交叉验证metric = "Rsquared")
summary(fit_xgblinear)
fit_xgblinear
fit_xgblinear$bestTune
# fit_xgblinear$finalModel
fit_xgblinear$results
plot(fit_xgblinear)

运行结果:

从运行结果来看,R方最高为0.7147,此时对应的参数是nrounds = 100, lambda = 0.1, alpha = 0 and eta = 0.3,我们将以这组参数为基础进行后续的精调。关于train函数中方法参数的具体情况,可以参阅网址:http://topepo.github.io/caret/train-models-by-tag.html。

3、进一步缩小参数范围(精调)。指定的参数范围尽可能在上面参数的附近(nrounds = 100, lambda = 0.1, alpha = 0 and eta = 0.3),因此这里我们将nrounds =100 , lambda = seq(0,2.0,0.2), alpha =seq(0,1.0,0.1) and eta =0.3 ,从中我们找到更为优秀的模型。

#xgblinear
tune_xgbLinear <- expand.grid(lambda  = seq(0,2.0,0.2),alpha  = seq(0,1.0,0.1),nrounds  = 100,eta      = 0.3)    #这里可以指定每一个参数的范围set.seed(1)
fit_xgblinear<- train(traindata,trainClass,method = "xgbLinear",    #这里可以设置使用的模型trControl = trainControl(method = "cv",number = 10,search = "grid"),metric = "Rsquared",tuneGrid = tune_xgbLinear)
summary(fit_xgblinear)
fit_xgblinear
fit_xgblinear$bestTune
# fit_xgblinear$finalModel
fit_xgblinear$results

运行结果:

从精调的结果来看,此时的R方为0.7398,相较于上一套参数,模型要更为优秀。以此类推,精调的过程可以无限重复,通过不断缩小参数范围总会找到一套最优参数。我这里模型的判断标准为R-square,其中也可以使用RMSE等指标,这点根据个人需要进行设置即可。

R语言train函数调参(caret包)相关推荐

  1. R语言libPaths函数获取或者设置包安装的路径实战

    R语言libPaths函数获取或者设置包安装的路径实战 目录 R语言libPaths函数获取或者设置包安装的路径实战 #.libP

  2. R语言学习记录之安装caret包与jupyter关联R内核

    1.安装caret包 #以下是caret包所依赖的所有包,可以用如下脚本进行安装预先依赖包 caret_needed_packages <- c("ps","pro ...

  3. R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts))

    R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts)) ...

  4. R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series)、使用window函数从时间序列对象中提取数据子集

    R语言window函数提取时序数据数据子集(subset):使用xts包将dataframe数据转化为时间序列数据(time series).使用window函数从时间序列对象中提取数据子集 目录

  5. R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析、用虚线标记进行数据填充的区域

    R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析.用虚线标记进行数据填充的区域 目录

  6. R语言可视化R原生plot函数与ggplot可视化结果组合、整合输出实战:原生R绘图plot函数可视化、ggplot2包可视化、R原生plot函数与ggplot可视化结果组合

    R语言可视化R原生plot函数与ggplot可视化结果组合.整合输出实战:原生R绘图plot函数可视化.ggplot2包可视化.R原生plot函数与ggplot可视化结果组合 目录

  7. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用scale_x_continuous函数中的limits参数指定X轴数值范围

    R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图.使用scale_x_continuous函数中的limits参数指定X轴数值范围 目录

  8. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用scale_x_continuous函数指定X轴坐标轴的取值范围(起始值和终止值)

    R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图.使用scale_x_continuous函数指定X轴坐标轴的取值范围(起始值和终止值) 目录

  9. R语言glm函数构建二分类logistic回归模型、epiDisplay包logistic.display函数获取模型汇总统计信息(自变量初始和调整后的优势比及置信区间,回归系数的Wald检验的p值

    R语言glm函数构建二分类logistic回归模型(family参数为binomial).使用epiDisplay包logistic.display函数获取模型汇总统计信息(自变量初始和调整后的优势比 ...

最新文章

  1. 《领域模型》——通过重构得到更深层次的理解
  2. ThreadPoolExecutor使用错误导致死锁
  3. Bootstrap Metronic 学习记录(一)简介
  4. CopyOnWriteArrayList简介
  5. 康纳的表情包(思维)
  6. python腐蚀膨胀代码_OpenCV+python实现膨胀和腐蚀的示例
  7. WebForms VS. MVC(翻译)
  8. 华为机试HJ75:公共子串计算
  9. 图书管理系统软件测试报告_软件测试新手入门小知识点,一定要牢记
  10. axios 中文文档
  11. 基于JavaWeb的微博系统设计与实现
  12. 板邓:wordpress自定义用户角色和权限全面解析
  13. 国防科技大学 educoder C语言答案(湖南工业大学)
  14. Linux下通过vi修改只读文件
  15. FineBI01:FineBI介绍
  16. FreeSwitch学习(1)-总体简介
  17. 第一个iOS应用 —— Hello world!
  18. 免费在线生成二维码网站,支持二维码自定义
  19. c语言宏定义在预处理阶段,预处理和宏定义
  20. vscode连接寒武纪开发容器

热门文章

  1. html 图片纵向拉伸,css如何让图片拉伸?
  2. C# /.NET6 实现语音转文字(科大讯飞语音转文字接口)
  3. 技术胖React博客实战 - 新版问题解决方式整理
  4. Java用“埃氏筛法”求素数
  5. mysql查询成绩并排名_一条SQL语句实现查询出成绩名次排名
  6. WAP中的ASP技术
  7. 节奏快?压力大?VR全景客栈带你体验安逸生活
  8. 面试:Jetpack相关
  9. Digital Square HDU - 4394 dfs + 剪枝
  10. IDEA如何多次启动同一个程序