天天看點

【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】

一、随機森林算法預測簡介

随機森林 (random forest) 是一種基于分類樹 (classification tree) 的算法 (Breiman, 2001) 。這個算法需要模拟和疊代, 被歸類為機器學習中的一種方法。經典的機器學習模型是神經網絡 (Hopfield, 1982) , 有半個多世紀的曆史了。神經網絡預測精确, 但是計算量很大。20世紀80年代Breiman等人 (1984) 發明了分類和回歸樹 (Classification And Regression Tree, 簡稱CART) 的算法, 通過反複二分資料進行分類或回歸, 計算量大大降低。

RF是由一系列樹型分類器{h (x, Θ) }k, 其中k=1, …, 組合成的分類器, 其中Θk是獨立同分布随機向量, 且每棵樹對輸入向量x所屬的最受歡迎類投一票[6]。RF生成步驟如圖1所示: (1) 從總訓練樣本集D中用Bootstrap采樣選取k個子訓練樣本集D1, D2, …, Dk, 并預建k棵分類樹; (2) 在分類樹的每個節點上随機地從n個名額中選取m個, 選取最優分割名額進行分割; (3) 重複步驟 (2) 周遊預建的k棵分類樹; (4) 由k棵分類樹形成随機森林。

Bootstrap随機抽樣得到輸入訓練集和節點随機選取名額進行分割, 使得RF對噪聲有很好的容忍性, 且降低了分類樹之間的相關性。單棵樹不剪枝任意生長的特點可獲得低偏差分類樹, 且能夠保證對新測試資料分類的正确率。

RF的生成和單棵風險分類樹如圖1和圖2所示。

【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】

圖1 RF生成步驟

【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】

圖2 單棵風險分類樹

二、部分源代碼

%% 清空環境變量
 warning off % 關閉報警資訊
 close all % 關閉開啟的圖窗
 clear % 清空變量
 clc % 清空指令行%% 導入資料
 res = xlsread(‘資料集.xlsx’);%% 劃分訓練集和測試集
 temp = randperm(357);P_train = res(temp(1: 240), 1: 12)‘;
 T_train = res(temp(1: 240), 13)’;
 M = size(P_train, 2);P_test = res(temp(241: end), 1: 12)‘;
 T_test = res(temp(241: end), 13)’;
 N = size(P_test, 2);%% 資料歸一化
 [p_train, ps_input] = mapminmax(P_train, 0, 1);
 p_test = mapminmax(‘apply’, P_test, ps_input );
 t_train = T_train;
 t_test = T_test ;%% 轉置以适應模型
 p_train = p_train’; p_test = p_test’;
 t_train = t_train’; t_test = t_test’;%% 訓練模型
 trees = 50; % 決策樹數目
 leaf = 1; % 最小葉子數
 OOBPrediction = ‘on’; % 打開誤差圖
 OOBPredictorImportance = ‘on’; % 計算特征重要性
 Method = ‘classification’; % 分類還是回歸
 net = TreeBagger(trees, p_train, t_train, ‘OOBPredictorImportance’, OOBPredictorImportance, …
 ‘Method’, Method, ‘OOBPrediction’, OOBPrediction, ‘minleaf’, leaf);
 importance = net.OOBPermutedPredictorDeltaError; % 重要性      

三、運作結果

【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】
【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】
【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】
【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】
【RF分類】基于matlab随機森林算法資料分類【含Matlab源碼 2048期】

四、matlab版本及參考文獻

1 matlab版本

2014a

繼續閱讀