回歸預測 | Matlab實現DBO-LightGBM蜣螂算法優化輕量級梯度提升機多輸入單輸出回歸預測,作者:機器學習之心
目錄
- 回歸預測 | Matlab實現DBO-LightGBM蜣螂算法優化輕量級梯度提升機多輸入單輸出回歸預測,作者:機器學習之心
- 預測效果
- 基本介紹
- 程序設計
- 參考資料
預測效果
基本介紹
DBO-LightGBM蜣螂算法優化輕量級梯度提升機多輸入單輸出回歸預測Matlab實現
1.data為數據集,7個輸入特征,1個輸出特征,運行環境Matlab2018b及以上;
2.優化參數為葉子節點數 學習率 樹的深度;
3.main.m為主程序文件,其余為函數文件,無需運行。
4.命令窗口輸出MAE、MAPE、RMSE和R2,可在下載區獲取數據和程序內容。
5.代碼特點:參數化編程、參數可方便更改、代碼編程思路清晰、注釋明細。
(Light Gradient Boosting Machine)是一款基于決策樹算法的分布式梯度提升框架。為了滿足工業界縮短模型計算時間的需求,LightGBM的設計思路主要是兩點:減小數據對內存的使用,保證單個機器在不犧牲速度的情況下,盡可能地用上更多的數據;減小通信的代價,提升多機并行時的效率,實現在計算上的線性加速。
注:僅支持Windows 64位系統
程序設計
- 完整源碼和數據獲取方式:私信博主回復Matlab實現DBO-LightGBM蜣螂算法優化輕量級梯度提升機多輸入單輸出回歸預測(Matlab完整源碼和數據)。
%% 清空環境變量
warning off % 關閉報警信息
close all % 關閉開啟的圖窗
clear % 清空變量
clc % 清空命令行%% 添加工具箱路徑 加載工具箱
addpath("toolbox\")
loadlibrary('lib_lightgbm.dll', 'c_api.h')%% 導入數據
res = xlsread('數據集.xlsx');%% 數據分析
num_size = 0.7; % 訓練集占數據集比例
outdim = 1; % 最后一列為輸出
num_samples = size(res, 1); % 樣本個數
res = res(randperm(num_samples), :); % 打亂數據集(不希望打亂時,注釋該行)
num_train_s = round(num_size * num_samples); % 訓練集樣本個數
f_ = size(res, 2) - outdim; % 輸入特征維度%% 劃分訓練集和測試集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
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);%% 矩陣轉置
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';
參考資料
[1] https://blog.csdn.net/kjm13182345320/category_11003178.html?spm=1001.2014.3001.5482
[2] https://blog.csdn.net/kjm13182345320/article/details/117378431
[3] https://blog.csdn.net/kjm13182345320/article/details/118253644