多輸入多輸出 | Matlab實現(xiàn)基于LightGBM多輸入多輸出預測
預測效果
基本介紹
Matlab實現(xiàn)基于LightGBM多輸入多輸出預測(完整源碼和數(shù)據(jù))
1.data為數(shù)據(jù)集,輸入多個特征,輸出多個變量。
2.main.m為程序主文件,其他為函數(shù)文件無需運行。
3.命令窗口輸出MBE、MAE、RMSE、R^2和MAPE,可在下載區(qū)獲取數(shù)據(jù)和程序內(nèi)容。
注意程序和數(shù)據(jù)放在一個文件夾,運行環(huán)境為Matlab2018及以上。文章來源:http://www.zghlxwxcb.cn/news/detail-810449.html
程序設計
- 完整源碼和數(shù)據(jù)獲取方式:私信博主回復Matlab實現(xiàn)基于LightGBM多輸入多輸出預測。
%% 設置參數(shù)
parameters = containers.Map;
parameters('verbose') = 1; % 可視化訓練信息
parameters('task') = 'train'; % 訓練模型
parameters('num_threads') = 1; % 閾值
parameters('num_leaves') = 4; % 葉子節(jié)點數(shù)
parameters('boosting_type') = 'gbdt'; % 設置提升類型
parameters('feature_fraction') = 0.9; % 建樹的特征選擇比例
parameters('bagging_fraction') = 0.8; % 建樹的樣本采樣比例
parameters('objective') = 'regression'; % 回歸任務
%% 訓練網(wǎng)絡
num_boost_round = 20; % 最大迭代次數(shù)
early_stopping_rounds = 5; % 早停參數(shù)
[booster, bestIteration, metrics, metricNames] = train(pv_train, parameters, num_boost_round, pv_test, early_stopping_rounds);
%% 特征的重要性
importance = booster.importance;
%% 仿真測試
t_sim1 = booster.predictMatrix(p_train, bestIteration);
t_sim2 = booster.predictMatrix(p_test , bestIteration);
%% 數(shù)據(jù)轉置
t_sim1 = t_sim1'; t_sim2 = t_sim2';
%% 數(shù)據(jù)反歸一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
%% 均方根誤差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);
%% 繪制特征重要性
figure
bar(importance)
legend('重要性')
xlabel('特征')
ylabel('重要性')
參考資料
[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文章來源地址http://www.zghlxwxcb.cn/news/detail-810449.html
到了這里,關于多輸入多輸出 | Matlab實現(xiàn)基于LightGBM多輸入多輸出預測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!