MATLAB实现随机森林回归算法

随机森林回归是一种基于集成学习的机器学习算法,它通过组合多个决策树来进行回归任务。随机森林的基本思想是通过构建多个决策树,并将它们的预测结果进行平均或投票来提高模型的准确性和鲁棒性。

以下是随机森林回归的主要特点和步骤:

  1. 决策树的构建: 随机森林由多个决策树组成。每个决策树都是通过对原始数据进行有放回的随机抽样(bootstrap抽样)来训练的。此外,在每次分裂节点时,算法随机选择一个特征子集进行分裂,以增加模型的多样性。

  2. 预测过程: 对于回归任务,随机森林中的每个决策树都会输出一个预测值。最终的随机森林预测结果是这些预测值的平均值。

  3. 超参数调优: 随机森林有一些重要的超参数,如树的数量、每棵树的最大深度、特征子集的大小等。通过交叉验证等方法,可以调整这些超参数以优化模型性能。

  4. 特征重要性: 随机森林可以提供每个特征对于模型预测的重要性程度。这对于理解模型和特征选择非常有帮助。

  5. 抗过拟合: 随机森林具有较好的抗过拟合能力,因为每个决策树都是在不同的数据子集上训练的,且通过随机选择特征子集来减少相关性。

    Matlab 复制代码
    In=ques2c(:,2:7);
    Out=ques2c(:,1);;
    %此处未进行归一化,切记,使用归一化的数据进行训练,后面要记得反归一化,且数据多处进行归一化,不可遗漏
    nTree = 100;%树的个数
    %训练模型
    Factor = TreeBagger(nTree, In, Out,'Method','regression','OOBpredictorImportance','on','MinLeafSize',5);%
    %性能评估,k-fold交叉验证法
    subplot(121)
    [Predict_label,Scores] = predict(Factor, In);
    plot(Out,Out,'LineWidth',3);
    hold on
    scatter(Out,Predict_label,'filled');
    xlabel('Real temp')
    ylabel('Predict temp')
    hold off
    grid on
    subplot(122)
    plot(Factor.oobError,'LineWidth',2);
    xlabel('Number of grown trees')
    ylabel('Out-of-bag classification error')
    grid on
    %%
    view(Factor.Trees{1},'Mode','graph')
    %变量重要性直方图
    weights=Factor.OOBPermutedVarDeltaError;
    %重要性降序
    
    barh(weights)
    set(gca,'yticklabels',{'CO? emission','NOx emission','SO? emission','VOCs emission','CO? concentration','Population'})
    xlabel('Weights')
    ylabel('Index')
    %误差变化图
    figure
    plot(Factor.oobError,'LineWidth',2);
    xlabel('生长树数量','FontSize',30)
    ylabel('袋外错误率','FontSize',30)
    title('袋外错误率','FontSize',30)
    set(gca,'FontSize',16)
    set(gca,'LineWidth',2);   
    grid on
    % 计算R方值
    SSR = sum((Predict_label - mean(y_test)).^2);
    SST = sum((y_test - mean(y_test)).^2);
    R_squared = 1 - SSR/SST;
    % 打印R方值
    disp(['R方值为: ', num2str(R_squared)]);
相关推荐
AI算法沐枫11 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
哥布林学者12 小时前
高光谱拼接算法(一)扫推式成像和航带拼接算法
机器学习·高光谱成像
malog_13 小时前
大语言模型后训练全解析
人工智能·深度学习·机器学习·ai·语言模型
枫叶林FYL14 小时前
【强化学习】3 双系统持续强化学习:快速迁移与元知识整合架构手册
人工智能·机器学习·架构
yuan1999715 小时前
基于MATLAB的梁非线性动力学方程编程实现框架
开发语言·matlab
:mnong15 小时前
SHAP 自动解释成本构成分析报告
机器学习·shap
Deep-w15 小时前
【MATLAB】含光伏 - 储能的家庭/工业微电网能量管理仿真研究
开发语言·算法·matlab
★飞翔的企鹅★16 小时前
【参考答案】2026 山东省数学建模 C题 “五一”五日自驾景点优选与行程规划
数学建模·2026山东数学建模·“五一”五日自驾景点优选
★飞翔的企鹅★16 小时前
【参考答案】 2026 山东省数学建模 D题 基于多维指标因子分析的“苏超”球队竞争力评估
数学建模·2026山东省数学建模·基于多维指标因子分析的“苏超”
大囚长16 小时前
自由能原理与预测处理的理论解析及其跨领域启示
人工智能·数学建模