机器学习之MATLAB代码--随机森林(一)

这篇具有很好参考价值的文章主要介绍了机器学习之MATLAB代码--随机森林(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码:

%% 初始化数据
clc
clear
close all
%%  导入数据
data = xlsread('数据集.xlsx','Sheet1','A1:F100');%导入数据库

%%  划分训练集和测试集
TE= randperm(100);%将数据打乱,重新排序;

PN = data(TE(1: 80), 1: 5)';%划分训练集输入
TN = data(TE(1: 80), 6)';%划分训练集输出

PM = data(TE(81: end), 1: 5)';%划分测试集输入
TM = data(TE(81: end), 6)';%划分测试集输出

%%  数据归一化
[pn, ps_input] = mapminmax(PN, 0, 1);%归一化到(01)
pn=pn';
pm = mapminmax('apply', PM, ps_input);%引用结构体,保持归一化方法一致;
pm=pm';
[tn, ps_output] = mapminmax(TN, 0, 1);
tn=tn';

%%  模型参数设置及训练模型
trees = 100; % 决策树数目
leaf  = 5; % 最小叶子数
OOBPrediction = 'on';  % 打开误差图
OOBPredictorImportance = 'on'; % 计算特征重要性
Method = 'regression';  % 选择回归或分类
net = TreeBagger(trees, pn, tn, 'OOBPredictorImportance', OOBPredictorImportance,...
      'Method', Method, 'OOBPrediction', OOBPrediction, 'minleaf', leaf);
importance = net.OOBPermutedPredictorDeltaError;  % 重要性

%%  仿真测试
pyuce = predict(net, pm );

%%  数据反归一化
Pyuce = mapminmax('reverse', pyuce, ps_output);
Pyuce =Pyuce';

%%  绘图
figure %画图真实值与预测值对比图
plot(TM,'bo-')
hold on
plot(Pyuce,'r*-')
hold on
legend('真实值','预测值')
xlabel('预测样本')
ylabel('预测结果')
grid  on

figure % 绘制特征重要性图
bar(importance)
legend('各因素重要性')
xlabel('特征')
ylabel('重要性')

%%  相关指标计算
error=Pyuce-TM;
[~,len]=size(TM);
R2=1-sum((TM-Pyuce).^2)/sum((mean(TM)-TM).^2);%相关性系数
MSE=error*error'/len;%均方误差
RMSE=MSE^(1/2);%均方根误差
disp(['测试集数据的MSE为:', num2str(MSE)])
disp(['测试集数据的MBE为:', num2str(RMSE)])
disp(['测试集数据的R2为:', num2str(R2)])




数据部分截图

机器学习之MATLAB代码--随机森林(一)

结果:
机器学习之MATLAB代码--随机森林(一)
机器学习之MATLAB代码--随机森林(一)
机器学习之MATLAB代码--随机森林(一)
如有需要数据和代码压缩包请在评论区发邮箱留言,一般一天之内会发送,记得关注和点赞哦!!文章来源地址https://www.toymoban.com/news/detail-504876.html

到了这里,关于机器学习之MATLAB代码--随机森林(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能-深度学习之延后初始化

    到目前为止,我们忽略了建立网络时需要做的以下这些事情: 我们定义了网络架构,但没有指定输入维度。 我们添加层时没有指定前一层的输出维度。 我们在初始化参数时,甚至没有足够的信息来确定模型应该包含多少参数。 有些读者可能会对我们的代码能运行感到惊讶。

    2024年02月05日
    浏览(29)
  • 神经网络基础-神经网络补充概念-24-随机初始化

    在神经网络的训练过程中,权重和偏差的初始值对模型的性能和训练过程的收敛速度都有影响。随机初始化是一种常用的权重和偏差初始值设置方法,它有助于打破对称性,避免网络陷入局部最优解。 当所有权重和偏差都被设置为相同的初始值时,神经网络的每个神经元在反

    2024年02月12日
    浏览(41)
  • 6、机器学习之随机森林

    使用更复杂的机器学习算法。 本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP 决策树给你留下了一个困难的选择。一个深度很大、有很多叶子的树会因为每个预测都来自其叶子上仅有的几个房屋的历史数据而过拟合。但是一个浅树,叶子较少,

    2024年01月19日
    浏览(35)
  • 机器学习之随机森林(Random forest)

    随机森林是一种监督式算法,使用由众多决策树组成的一种集成学习方法,输出是对问题最佳答案的共识。随机森林可用于分类或回归,是一种主流的集成学习算法。 随机森林中有许多的分类树。我们要将一个输入样本进行分类,我们需要将输入样本输入到每棵树中进行分类

    2024年02月15日
    浏览(34)
  • 深度学习参数初始化(二)Kaiming初始化 含代码

    目录 一、介绍 二、基础知识 三、Kaiming初始化的假设条件  四、Kaiming初始化的简单的公式推导 1.前向传播 2.反向传播 五、Pytorch实现 深度学习参数初始化系列: (一)Xavier初始化 含代码 (二)Kaiming初始化 含代码         Kaiming初始化论文地址:https://arxiv.org/abs/1502.01

    2024年02月04日
    浏览(62)
  • Matlab和Python的初始化内存开销

    Matlab矩阵初始化: A=zeros(10000,10000); A=zeros(20000,20000); A=zeros(30000,30000); 错误使用 zeros 请求的 30000x30000 (6.7GB)数组超过预设的最大数组大小。创建大于此限制的数组可能需要较长时间,并且会导致 MATLAB 无响应。有关详细信息,请参阅 array size limit 或预设面板。 维数为30000及以上

    2024年02月05日
    浏览(32)
  • 【Go学习之 go mod】gomod小白入门,在github上发布自己的项目(项目初始化、项目发布、项目版本升级等)

    Go语言基础之包 | 李文周的博客 Go mod的使用、发布、升级 | wei Go Module如何发布v2及以上版本 1.2.7. go mod命令 — 新溪-gordon V1.7.9 文档 golang go 包管理工具 go mod的详细介绍-腾讯云开发者社区-腾讯云 Go Mod 常见错误的原因 | walker的博客 oceanweave/testgomod 用于发布 go 包,v1 v2 版本等

    2024年02月03日
    浏览(52)
  • 【机器学习300问】78、都有哪些神经网络的初始化参数方法?

            在训练神经网络时,权重初始化是确保良好收敛的关键步骤之一。不合适的初始化方法可能会导致梯度消失或爆炸,特别是在深层网络中。那么都有哪些神经网络的初始化参数方法呢?选择它这些方法的原则是什么?         关于随机初始化神经网络参数的方法

    2024年04月23日
    浏览(37)
  • 把本地代码初始化到远程git仓库

    本地代码,推送到远程的git仓库。 第一种方法 第一步:建立远程的git仓库 第二步:拉取git仓库到本地 第三步:将本地代码复制到本地的git拉下来的文件夹中 第四步:代码提交即可 git add . -- git commit -m 初始化 -- git push 第二种方法 第一步:建立远程的git仓库 第二步: 输入

    2024年02月09日
    浏览(44)
  • git如何初始化本地代码提交到远程仓库?

    1.在本地项目目录中打开终端,使用以下命令初始化Git仓库 2.使用以下命令将项目中的所有文件添加到Git仓库中: 如果只想添加某个文件,可以使用以下命令: 3.使用以下命令提交添加的文件到本地Git仓库: 其中,-m参数后面的内容是提交的说明信息,可以根据实际情况修改

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包