天天看點

【預測模型-RF預測】基于随機森林算法實作資料回歸預測附matlab代碼

1 内容介紹

1.1.1 基本單元—決策樹

決策樹是廣泛用于分類和回歸任務的模型,因其結構呈樹形,故稱決策樹. 學習決策樹,本質上講就是學習一系列if/else問題,目标是通過盡可能少的if/else問題來得到正确答案,我們從這些一層層的if/else問題中進行學習并以最快的速度找到答案.

1.1.2 內建學習

內建學習是合并多個機器學習模型來建構更強大模型的方法. 目前,內建學習主要有兩大流派(bagging派系和boosting派系),其中boosting派系的代表算法主要有AdaBoost算法、梯度提升機(GBDT)和極限提升機(XGBoost),而本文中選擇的随機森林是屬于 bagging 派系的典型代表,其算法描述在表1中給出,從本質上講就是許多決策樹的集合,其中每棵樹都和其他樹略有不同.

對于分類問題,随機森林中的每棵樹都是一個分類器,也就是說,每棵樹做出一個分類結果,随機森林內建了所有樹的分類投票結果且結果的投票是等權的,即對所有的投票取平均值,并将投票次數最多的結果作為輸出.

2 仿真代碼

%%  清空環境變量

warning off             % 關閉報警資訊

close all               % 關閉開啟的圖窗

clear                   % 清空變量

clc                     % 清空指令行

%%  導入資料

res = xlsread('資料集.xlsx');

%%  劃分訓練集和測試集

temp = randperm(103);

P_train = res(temp(1: 80), 1: 7)';

T_train = res(temp(1: 80), 8)';

M = size(P_train, 2);

P_test = res(temp(81: end), 1: 7)';

T_test = res(temp(81: end), 8)';

N = size(P_test, 2);

%%  資料歸一化

[p_train, ps_input] = mapminmax(P_train, 0, 1);

p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);

t_test = mapminmax('apply', T_test, ps_output);

%%  轉置以适應模型

3 運作結果

【預測模型-RF預測】基于随機森林算法實作資料回歸預測附matlab代碼
【預測模型-RF預測】基于随機森林算法實作資料回歸預測附matlab代碼
【預測模型-RF預測】基于随機森林算法實作資料回歸預測附matlab代碼

4 參考文獻

部落客簡介:擅長智能優化算法、神經網絡預測、信号處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。

部分理論引用網絡文獻,若有侵權聯系部落客删除。

繼續閱讀