暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MATLAB随机森林优化贝叶斯预测分析汽车燃油经济性

拓端数据部落 2022-07-07
1340

原文链接:http://tecdat.cn/?p=23075

这个例子展示了如何用Matlab实现贝叶斯优化,使用分位数误差调整回归树随机森林的超参数。如果你打算使用模型来预测条件量值而不是条件平均值,那么使用分位数误差而不是平均平方误差来调整模型是合适的。

加载和预处理数据

加载数据集。考虑建立一个模型,预测一辆汽车的燃油经济性中位数,给定它的加速度、汽缸数、发动机排量、马力、制造商、型号和重量。考虑将汽缸数、制造商和型号_年份作为分类变量。

Cylinders = categorical(Cylinders);
复制

指定调整参数

考虑调整:

  • 森林中的树木的复杂性(深度)。深的树倾向于过度拟合,但浅的树倾向于欠拟合。因此,规定每片叶子的最小观测值数量最多为20。

  • 生长树时,在每个节点上要采样的预测器数量。指定从1到所有预测的采样。

实现贝叶斯优化的函数,要求你将这些参数作为优化变量对象传递。

optim('minLS',\[1,maxMinLS\],'Type');
复制

超参数随机森林是一个2乘1的优化变量对象数组

贝叶斯优化倾向于选择包含很多树的随机森林,因为具有更多学习者的合集更准确。如果可用的计算资源是一个考虑因素,并且你倾向于树数较少的合集,那么可以考虑将树的数量与其他参数分开调整,或者对含有许多学习者的模型进行惩罚。

定义目标函数

为贝叶斯优化算法定义一个要优化的目标函数。该函数应:

  • 接受要调整的参数作为输入。

  • 使用TreeBagger训练一个随机森林。在TreeBagger调用中,指定要调整的参数并指定返回袋外指数。

  • 根据中位数估计袋外分位数误差。

  • 返回袋外数据的分位数误差。

function Err = RF(X)
%训练随机森林并估计袋外的分位数误差
% 使用X中的预测数据和params中的参数说明,训练一个由300棵回归树组成的随机森林,然后根据中位数返回袋外误差。X是一个表,params是一个数组,对应于每个节点的最小叶子大小和预测器数量来采样。
randomForest = Tree(300,X);
Error(randomForest);

复制

使用贝叶斯优化实现目标最小化

使用贝叶斯优化法,找到在树的复杂性和每个节点的预测因子数量方面达到最小的、惩罚的、袋外分位数误差的模型。

bayes(@(params)oobErrRF,parameters,...);
复制

结果是一个BayesianOptimization对象,其中包括目标函数的最小值和优化的超参数值。




点击标题查阅往期内容


R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病


左右滑动查看更多


01

02

03

04


显示观察到的目标函数的最小值和优化的超参数值。

MinObjective
bestHyperpara

复制

使用优化的超参数训练模型

使用整个数据集和优化的超参数值训练一个随机森林。

Tree(300,X,'MPG','regression',...);
复制

Mdl是为中位数预测优化的TreeBagger对象。你可以通过将Mdl和新数据传递给quantilePredict来预测给定的预测数据的燃油经济性中值。 





本文摘选《MATLAB随机森林优化贝叶斯预测分析汽车燃油经济性,点击“阅读原文”获取全文完整资料。





点击标题查阅往期内容

R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数
R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
Python贝叶斯回归分析住房负担能力数据集
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
Python用PyMC3实现贝叶斯线性回归模型
R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据
R语言基于copula的贝叶斯分层混合模型的诊断准确性研究
R语言贝叶斯线性回归和多元线性回归构建工资预测模型
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言stan进行基于贝叶斯推断的回归模型
R语言中RStan贝叶斯层次模型分析示例
R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化
R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较
R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化
视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型
R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计
R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据
R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析
R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者
R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化




文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论