关于算法:随机森林优化贝叶斯预测分析汽车燃油经济性

8次阅读

共计 1462 个字符,预计需要花费 4 分钟才能阅读完成。

原文链接: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 对象,其中包含指标函数的最小值和优化的超参数值。

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

MinObjective
bestHyperpara

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

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

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

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


最受欢迎的见解

1. 从决策树模型看员工为什么到职

2. R 语言基于树的办法:决策树,随机森林

3.python 中应用 scikit-learn 和 pandas 决策树

4. 机器学习:在 SAS 中运行随机森林数据分析报告

5. R 语言用随机森林和文本开掘进步航空公司客户满意度

6. 机器学习助推快时尚精准销售工夫序列

7. 用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

8.python 机器学习:举荐零碎实现(以矩阵合成来协同过滤)

9.python 中用 pytorch 机器学习分类预测银行客户散失

正文完
 0